PluginProbe
AutomatorWP – No-Code Workflow Automation, Integration & Webhooks Plugin, now with AI / 6.0.0
AutomatorWP – No-Code Workflow Automation, Integration & Webhooks Plugin, now with AI v6.0.0
6.0.3 6.0.2 6.0.1 6.0.0 5.8.6 5.8.5 5.8.4 5.8.3 5.8.2 5.8.1 5.8.0 5.7.9.2 5.7.9.1 5.7.8 5.7.9 5.7.6 5.7.7 5.7.5 5.7.4 5.7.3 5.7.2 5.7.1 trunk 5.6.0 5.6.1 All 34 releases
automatorwp / modules / ai-assistant / includes / templates.php

templates.php in AutomatorWP – No-Code Workflow Automation, Integration & Webhooks Plugin, now with AI 6.0.0, at modules/ai-assistant/includes/templates.php

145 lines 5.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Templates
4 *
5 * @package AutomatorWP\AI_Assistant\Templates
6 * @since 1.0.0
7 * @version 1.0.0
8 */
9 // Exit if accessed directly
10 if ( ! defined( 'ABSPATH' ) ) exit;
11
12 /**
13 * Add custom footer to the admin dashboard
14 *
15 * @since 1.0.0
16 */
17 function automatorwp_ai_assistant_admin_footer() {
18 if( automatorwp_ai_assistant_is_valid_page() ) automatorwp_ai_assistant_render();
19 }
20 add_action( 'admin_footer', 'automatorwp_ai_assistant_admin_footer' );
21
22 /**
23 * Render AI assistant
24 *
25 * @since 1.0.0
26 */
27 function automatorwp_ai_assistant_render() {
28
29 // Bail if disabled
30 if( (bool) automatorwp_get_option( 'disable_ai_assistant', false ) ) {
31 return false;
32 }
33
34 ?>
35
36 <div class="automatorwp-ai-assistant">
37
38 <div class="automatorwp-ai-assistant-help" data-status="close" style="display: none;">
39 <?php automatorwp_ai_assistant_render_help(); ?>
40 </div>
41
42 <div class="automatorwp-ai-assistant-chat" data-status="close" style="display: none;">
43
44 <div class="automatorwp-ai-assistant-chat-top">
45 <div class="automatorwp-ai-assistant-chat-title">
46 <span>
47 <div class="automatorwp-logo"></div>
48 <?php esc_html_e( 'AutomatorWP', 'automatorwp' ); ?>
49 </span>
50 <?php esc_html_e( 'AI Assistant', 'automatorwp' ); ?>
51 </div>
52 <div class="automatorwp-ai-assistant-chat-help-button">
53 <span class="cmb-tooltip">
54 <span class="dashicons dashicons-cmb-tooltip"></span>
55 <span class="cmb-tooltip-desc cmb-tooltip-top"><?php esc_html_e( 'Click to get help', 'automatorwp' ); ?></span>
56 </span>
57 </div>
58
59 <div class="automatorwp-ai-assistant-chat-close-button">
60 <span class="cmb-tooltip">
61 <span class="dashicons dashicons-no-alt"></span>
62 <span class="cmb-tooltip-desc cmb-tooltip-top"><?php esc_html_e( 'Close', 'automatorwp' ); ?></span>
63 </span>
64 </div>
65 </div>
66
67 <div class="automatorwp-ai-assistant-chat-history"></div>
68
69 <div class="automatorwp-ai-assistant-chat-bottom">
70 <form action="" class="automatorwp-ai-assistant-chat-form">
71 <textarea rows="1" id="automatorwp-ai-assistant-chat-input" class="automatorwp-ai-assistant-chat-input" placeholder="<?php esc_html_e( 'Ask anything...', 'automatorwp' ); ?>"></textarea>
72 <button type="submit" class="automatorwp-ai-assistant-chat-input-submit automatorwp-ai-assistant-button automatorwp-ai-assistant-button-primary">
73 <i class="automatorwp-ai-assistant-icon automatorwp-ai-assistant-icon-send"></i>
74 </button>
75 <?php automatorwp_ai_assistant_render_model_select(); ?>
76 </form>
77 </div>
78
79 </div>
80
81 <div class="automatorwp-ai-assistant-bubble cmb-tooltip">
82 <div class="cmb-tooltip-desc cmb-tooltip-left"><?php esc_html_e( 'AI Assistant', 'automatorwp' ); ?></div>
83 <?php automatorwp_ai_assistant_render_face(); ?>
84 </div>
85
86 </div>
87 <?php
88 }
89
90 /**
91 * Render models select
92 *
93 * @since 1.0.0
94 */
95 function automatorwp_ai_assistant_render_model_select() {
96
97 $providers = automatorwp_ai_assistant_get_models();
98
99 if( ! count( $providers ) ) return;
100
101 ?>
102
103 <select id="automatorwp-ai-assistant-chat-model-input" class="automatorwp-ai-assistant-chat-model-input">
104 <option value=""><?php esc_html_e( 'Default Model', 'automatorwp' ); ?></option>
105 <?php foreach( $providers as $provider ) : ?>
106 <optgroup label="<?php echo esc_attr( $provider['name'] ); ?>">
107 <?php foreach( $provider['models'] as $model => $name ) : ?>
108 <option value="<?php echo esc_attr( $model ); ?>"><?php echo esc_html( $name ); ?></option>
109 <?php endforeach; ?>
110 </optgroup>
111 <?php endforeach; ?>
112 </select>
113
114 <?php
115
116 }
117
118 /**
119 * Render AI assistant face
120 *
121 * @since 1.0.0
122 */
123 function automatorwp_ai_assistant_render_face() {
124 $url = AUTOMATORWP_AI_ASSISTANT_URL . 'assets/img/'; ?>
125
126 <div class="automatorwp-ai-assistant-face" data-status="idle">
127 <span class="automatorwp-ai-assistant-head">
128 <img src="<?php echo esc_attr( $url . 'head.svg' ); ?>" alt="" data-key="head-01">
129 </span>
130 <span class="automatorwp-ai-assistant-eyes">
131 <img src="<?php echo esc_attr( $url . 'eyes-idle.svg' ); ?>" alt="" data-key="eyes-idle">
132 <img src="<?php echo esc_attr( $url . 'eyes-happy.svg' ); ?>" alt="" data-key="eyes-happy">
133 <img src="<?php echo esc_attr( $url . 'eyes-error.svg' ); ?>" alt="" data-key="eyes-error">
134 <img src="<?php echo esc_attr( $url . 'eyes-loading.svg' ); ?>" alt="" data-key="eyes-loading">
135 </span>
136 <span class="automatorwp-ai-assistant-mouth">
137 <img src="<?php echo esc_attr( $url . 'mouth-idle.svg' ); ?>" alt="" data-key="mouth-idle">
138 <img src="<?php echo esc_attr( $url . 'mouth-smile.svg' ); ?>" alt="" data-key="mouth-smile">
139 <img src="<?php echo esc_attr( $url . 'mouth-happy.svg' ); ?>" alt="" data-key="mouth-happy">
140 <img src="<?php echo esc_attr( $url . 'mouth-error.svg' ); ?>" alt="" data-key="mouth-error">
141 </span>
142 </div>
143
144 <?php
145 }