diff --git a/module/ai/control.php b/module/ai/control.php index 1095288e09..d48fabda9a 100644 --- a/module/ai/control.php +++ b/module/ai/control.php @@ -137,7 +137,26 @@ class ai extends control public function view($id) { - $this->locate($this->createLink('ai', 'miniProgramChat', "id=$id")); + $this->locate($this->createLink('ai', 'browseMiniProgram', "id=$id")); + } + + /** + * Browse mini program by id from square. + * + * @param string $id + * @access public + * @return void + */ + public function browseMiniProgram($id) + { + $miniProgram = $this->ai->getMiniProgramByID($id); + + $this->view->miniProgram = $miniProgram; + $this->view->messages = $this->ai->getHistoryMessages($id); + $this->view->fields = $this->ai->getMiniProgramFields($id); + $this->view->collectedIDs = $this->ai->getCollectedMiniProgramIDs($this->app->user->id); + $this->view->title = "{$this->lang->ai->miniPrograms->common}#{$miniProgram->id} $miniProgram->name"; + $this->display(); } /** @@ -151,9 +170,9 @@ class ai extends control { $miniProgram = $this->ai->getMiniProgramByID($id); - $messages = array(); if(!empty($_POST)) { + $messages = array(); if($miniProgram->published === '0' && $this->post->test !== '1') return $this->send(array('result' => 'fail', 'message' => $this->lang->ai->miniPrograms->unpublishedTip, 'reason' => 'unpublished')); $history = $this->post->history; @@ -179,13 +198,6 @@ class ai extends control return $this->send(array('result' => 'fail', 'message' => $this->lang->ai->models->noModelError, 'reason' => 'no model')); } } - - $this->view->miniProgram = $miniProgram; - $this->view->messages = $this->ai->getHistoryMessages($id); - $this->view->fields = $this->ai->getMiniProgramFields($id); - $this->view->collectedIDs = $this->ai->getCollectedMiniProgramIDs($this->app->user->id); - $this->view->title = "{$this->lang->ai->miniPrograms->common}#{$miniProgram->id} $miniProgram->name"; - $this->display(); } /** diff --git a/module/ai/css/miniprogramchat.ui.css b/module/ai/css/browseminiprogram.ui.css similarity index 100% rename from module/ai/css/miniprogramchat.ui.css rename to module/ai/css/browseminiprogram.ui.css diff --git a/module/ai/js/miniprogramchat.ui.js b/module/ai/js/browseminiprogram.ui.js similarity index 87% rename from module/ai/js/miniprogramchat.ui.js rename to module/ai/js/browseminiprogram.ui.js index 64cf4c4fe5..b236e3cf70 100644 --- a/module/ai/js/miniprogramchat.ui.js +++ b/module/ai/js/browseminiprogram.ui.js @@ -1,4 +1,4 @@ -if(!window.aiMiniProgramChat) window.aiMiniProgramChat = {}; +if(!window.aiBrowseMiniProgram) window.aiBrowseMiniProgram = {}; let firstGenerate = true; let messageList = []; @@ -32,14 +32,8 @@ function getFormValue() { const {name} = field; const $field = $(`[data-name="${name}"]`); - if(!$field.hasClass('picker-box')) - { - fieldValueMap.set(name, $field.prop('value')); - } - else - { - fieldValueMap.set(name, $field.zui('picker').$.value); - } + if(!$field.hasClass('picker-box')) fieldValueMap.set(name, $field.prop('value')); + else fieldValueMap.set(name, $field.zui('picker').$.value); }); return fieldValueMap; } @@ -114,7 +108,7 @@ function sendMessagesToAI(message) $.post( postLink, formData, - function(response) + function (response) { $inputBox.removeAttr('readonly'); $sendBtn.removeAttr('disabled'); @@ -152,7 +146,7 @@ function sendMessagesToAI(message) $messageList[0].scrollTo(0, $messageList[0].scrollHeight); } -window.aiMiniProgramChat.startAIChat = function() +window.aiBrowseMiniProgram.startAIChat = function() { clearErrorTip(); const fields = getFormValue(); @@ -185,11 +179,11 @@ window.aiMiniProgramChat.startAIChat = function() sendMessagesToAI(promptStr); }; -window.aiMiniProgramChat.handleStarBtnClick = function() +window.aiBrowseMiniProgram.handleStarBtnClick = function() { const $btn = $(this); const url = $btn.attr('data-url'); - $.get(url, function(response) + $.get(url, function (response) { if(response.status == '1') { @@ -204,7 +198,7 @@ window.aiMiniProgramChat.handleStarBtnClick = function() }, 'json'); }; -window.aiMiniProgramChat.handleRestBtnClick = function() +window.aiBrowseMiniProgram.handleRestBtnClick = function() { try { @@ -224,17 +218,17 @@ let composing = false; * * @param {KeyboardEvent} event */ -window.aiMiniProgramChat.handleInputEnter = function(event) +window.aiBrowseMiniProgram.handleInputEnter = function(event) { console.log(composing, 3); if(event.code === 'Enter' && !composing) { event.preventDefault(); - window.aiMiniProgramChat.clearInputAndChat(); + window.aiBrowseMiniProgram.clearInputAndChat(); } }; -window.aiMiniProgramChat.clearInputAndChat = function() +window.aiBrowseMiniProgram.clearInputAndChat = function() { const $inputBox = $('.chat-input-box'); const message = $inputBox.val() @@ -243,13 +237,13 @@ window.aiMiniProgramChat.clearInputAndChat = function() sendMessagesToAI(message); }; -window.aiMiniProgramChat.handleInputCompositionStart = function() +window.aiBrowseMiniProgram.handleInputCompositionStart = function() { composing = true; console.log(composing, 1); }; -window.aiMiniProgramChat.handleInputCompositionEnd = function() +window.aiBrowseMiniProgram.handleInputCompositionEnd = function() { composing = false; console.log(composing, 2); @@ -258,7 +252,7 @@ window.aiMiniProgramChat.handleInputCompositionEnd = function() /** * @param {Event} event */ -window.aiMiniProgramChat.handleInput = function(event) +window.aiBrowseMiniProgram.handleInput = function(event) { /** * @type {HTMLTextAreaElement} @@ -268,7 +262,7 @@ window.aiMiniProgramChat.handleInput = function(event) inputBox.style.height = `${(inputBox.scrollHeight + 2)}px` }; -window.aiMiniProgramChat.backToSquare = function() +window.aiBrowseMiniProgram.backToSquare = function() { location.href = $.createLink('ai', 'square', '#app=ai'); }; @@ -391,12 +385,13 @@ $(function() } const $inputBox = $('.chat-input-box'); - if(!$inputBox.attr('data-bind')) { + if(!$inputBox.attr('data-bind')) + { $inputBox - .on('input', window.aiMiniProgramChat.handleInput) - .on('keydown', window.aiMiniProgramChat.handleInputEnter) - .on('compositionstart', window.aiMiniProgramChat.handleInputCompositionStart) - .on('compositionend', window.aiMiniProgramChat.handleInputCompositionEnd); + .on('input', window.aiBrowseMiniProgram.handleInput) + .on('keydown', window.aiBrowseMiniProgram.handleInputEnter) + .on('compositionstart', window.aiBrowseMiniProgram.handleInputCompositionStart) + .on('compositionend', window.aiBrowseMiniProgram.handleInputCompositionEnd); $inputBox.attr('data-bind', 'true'); } diff --git a/module/ai/ui/miniprogramchat.html.php b/module/ai/ui/browseminiprogram.html.php similarity index 97% rename from module/ai/ui/miniprogramchat.html.php rename to module/ai/ui/browseminiprogram.html.php index 5566c11bc0..7b5b3ea7c4 100644 --- a/module/ai/ui/miniprogramchat.html.php +++ b/module/ai/ui/browseminiprogram.html.php @@ -104,7 +104,7 @@ div( btn( setClass('primary'), setData('dismiss', 'modal'), - on::click('window.aiMiniProgramChat.backToSquare'), + on::click('window.aiBrowseMiniProgram.backToSquare'), $lang->confirm ) ) @@ -145,7 +145,7 @@ div( setClass('ghost btn-star absolute'), set::size('md'), setData('url', createLink('ai', 'collectMiniProgram', "appID={$miniProgram->id}&delete={$delete}")), - on::click('window.aiMiniProgramChat.handleStarBtnClick'), + on::click('window.aiBrowseMiniProgram.handleStarBtnClick'), html(html::image("static/svg/{$star}.svg", "class='$star'")), $lang->ai->miniPrograms->collect ) @@ -170,7 +170,7 @@ div( set::disabled($isDeleted), set::icon('trash'), $lang->ai->chatReset, - on::click('window.aiMiniProgramChat.handleRestBtnClick') + on::click('window.aiBrowseMiniProgram.handleRestBtnClick') ) ), empty($formGroups) @@ -190,7 +190,7 @@ div( setClass('primary block w-full'), set::disabled($isDeleted), $lang->ai->miniPrograms->generate, - on::click('window.aiMiniProgramChat.startAIChat') + on::click('window.aiBrowseMiniProgram.startAIChat') ) ) ), @@ -267,7 +267,7 @@ div( html(""), btn( setClass('ghost send-btn'), - on::click('window.aiMiniProgramChat.clearInputAndChat'), + on::click('window.aiBrowseMiniProgram.clearInputAndChat'), html(<< diff --git a/module/ai/ui/square.html.php b/module/ai/ui/square.html.php index 25818a75fc..69eb261b0e 100644 --- a/module/ai/ui/square.html.php +++ b/module/ai/ui/square.html.php @@ -68,7 +68,7 @@ $miniProgramCard = function($miniProgram) use ($categoryList, $collectedIDs, $sh $delete = $star === 'star' ? 'true' : 'false'; return a( - set::href(createLink('ai', 'miniProgramChat', "id={$miniProgram->id}#app=ai")), + set::href(createLink('ai', 'browseMiniProgram', "id={$miniProgram->id}#app=ai")), setClass('miniprogram-card'), div( setClass('program-content'),