Просмотр исходного кода

#5406 AI Agents revamp: alerts trigger

Aleksandr Trofimov 5 месяцев назад
Родитель
Сommit
e67ec78ee7

+ 2 - 1
inc/classes/BxDolAIQuery.php

@@ -956,7 +956,7 @@ class BxDolAIQuery extends BxDolDb
     public function getAlerts()
     {
         $aValues = [];
-        $aAlerts = $this->getAll("SELECT `unit`, `action` FROM `sys_alerts_log` ORDER BY `unit`, `action`");
+        $aAlerts = $this->getAll("SELECT `unit`, `action`, `counter_24h` FROM `sys_alerts_log` ORDER BY `unit`, `action`");
         foreach ($aAlerts as $a) {
             $sKey = $a['unit'] . ':' . $a['action'];
             $aValues[$sKey] = [
@@ -965,6 +965,7 @@ class BxDolAIQuery extends BxDolDb
                 'action' => $a['action'],
                 'name' => $a['unit'] . ' - ' . $a['action'],
                 'desc' => $this->getAlertDesc($a['unit'] . ':' . $a['action']),
+                'counter_24h' => $a['counter_24h'],
             ];
         }
         return $aValues;

+ 5 - 8
inc/classes/BxDolAlerts.php

@@ -241,20 +241,17 @@ class BxDolAlerts extends BxDol
         $oDb->query("
             INSERT INTO sys_alerts_log
             SET
-                unit  = :unit,
+                unit = :unit,
                 action = :action,
                 object = :object,
                 sender = :sender,
-                extra  = :extra,
-                extra_refs  = :extra_refs,
-                ts     = UNIX_TIMESTAMP(),
+                extra = :extra,
+                extra_refs = :extra_refs,
+                ts = UNIX_TIMESTAMP(),
                 counter_total = 1,
                 counter_24h = 1
             ON DUPLICATE KEY UPDATE
-                object = :object,
-                sender = :sender,
-                extra  = :extra,
-                ts     = UNIX_TIMESTAMP(),
+                ts = UNIX_TIMESTAMP(),
                 counter_total = counter_total + 1,
                 counter_24h = counter_24h + 1
         ", $aBind);

+ 1 - 0
modules/boonex/english/data/langs/system/en.xml

@@ -2283,6 +2283,7 @@
     <string name="_sys_agents_automators_btn_tune"><![CDATA[Tune]]></string>
     <string name="_sys_agents_automators_btn_approve"><![CDATA[Approve]]></string>
     <string name="_sys_agents_automators_popup_add"><![CDATA[Add automator]]></string>
+    <string name="_sys_agents_count_today"><![CDATA[{0} calls today]]></string>
     <string name="_sys_agents_popup_edit"><![CDATA[Edit automator]]></string>
     <string name="_sys_agents_field_name"><![CDATA[Name]]></string>
     <string name="_sys_agents_field_name_info"><![CDATA[Uniq agent name]]></string>

+ 1 - 0
modules/boonex/russian/data/langs/system/ru.xml

@@ -2259,6 +2259,7 @@
         <string name="_sys_agents_automators_btn_tune"><![CDATA[Настройка]]></string>
         <string name="_sys_agents_automators_btn_approve"><![CDATA[Одобрить]]></string>
         <string name="_sys_agents_automators_popup_add"><![CDATA[Добавить автоматизатор]]></string>
+        <string name="_sys_agents_count_today"><![CDATA[{0} вызовов сегодня]]></string>
         <string name="_sys_agents_popup_edit"><![CDATA[Редактировать автоматизатор]]></string>
         <string name="_sys_agents_field_name"><![CDATA[Название]]></string>
         <string name="_sys_agents_field_name_info"><![CDATA[Уникальное название агента.]]></string>

+ 5 - 1
studio/template/agents_agents_alerts_select.html

@@ -1,7 +1,7 @@
 <div id="bx-agents-agents-alert-cont" style="overflow:visible;">
 <select id="bx-agents-agents-alert" name="alert" class="bx-def-font-inputs bx-form-input-select">
     <bx_repeat:alerts>
-        <option value="__value__" <bx_if:sel>__sel__</bx_if:sel> data-desc="__desc__">__name__</option>
+        <option value="__value__" <bx_if:sel>__sel__</bx_if:sel> data-desc="__desc__" data-count="__count__">__name__</option>
     </bx_repeat:alerts>
 </select>
 </div>
@@ -10,11 +10,15 @@
         if (!state.id) 
             return state.text;
         const desc = $(state.element).data('desc');
+        const count = $(state.element).data('count');
         return $(`
+        <div class="bx-alert-wrap">
             <div>
                 <div class="bx-alert-text">${state.text}</div>
                 <div class="bx-alert-desc">${desc || ''}</div>
             </div>
+            <div class="bx-alert-counter">${count}</div>
+        </div>
         `);
     }
     $('#bx-agents-agents-alert').select2({

+ 12 - 0
studio/template/css/agents.css

@@ -129,6 +129,12 @@
     height: 30px;
 }
 
+.select2-results__option .bx-alert-wrap {
+    display:flex;
+    justify-content:space-between;
+    gap:10px;
+    width:100%;
+}
 .select2-results__option .bx-alert-text {
     font-weight:600;
 }
@@ -136,3 +142,9 @@
     font-size:12px;
     color:#888;
 }
+.select2-results__option .bx-alert-counter {
+    padding:2px 8px;
+    border-radius:10px;
+    font-size:12px;
+    height:fit-content;
+}

+ 1 - 0
studio/template/scripts/BxBaseStudioAgentsAgents.php

@@ -585,6 +585,7 @@ class BxBaseStudioAgentsAgents extends BxDolStudioAgentsAgents
                 'name' => $r['name'],
                 'value' => $r['key'],
                 'desc' => bx_html_attribute($r['desc']),
+                'count' => bx_html_attribute(_t('_sys_agents_count_today', $r['counter_24h'])),
                 'bx_if:sel' => [
                     'condition' => $sValue == $r['key'],
                     'content' => [