From 5d0ee7df8b5b24abf9f60c142c58fda8002ccb89 Mon Sep 17 00:00:00 2001 From: liumengyi Date: Wed, 20 Mar 2024 16:36:49 +0800 Subject: [PATCH] * Merge ai code from 18.x. --- module/ai/lang/de.php | 3 ++- module/ai/lang/en.php | 3 ++- module/ai/lang/fr.php | 3 ++- module/ai/lang/zh-cn.php | 3 ++- module/ai/view/miniprograms.html.php | 8 +++++--- module/aiapp/control.php | 1 + module/aiapp/css/browseminiprogram.ui.css | 6 ++++++ module/aiapp/js/browseminiprogram.ui.js | 19 +++++++++++++++++++ module/aiapp/ui/browseminiprogram.html.php | 10 ++++++---- 9 files changed, 45 insertions(+), 11 deletions(-) diff --git a/module/ai/lang/de.php b/module/ai/lang/de.php index e86ee3a612..df5325bfe5 100644 --- a/module/ai/lang/de.php +++ b/module/ai/lang/de.php @@ -68,12 +68,13 @@ $lang->ai->exportMiniProgram = 'Export AI Mini Program'; $lang->ai->importMiniProgram = 'Import AI Mini Program'; $lang->ai->editMiniProgramCategory = 'Manage group'; +$lang->ai->store = 'Store'; $lang->ai->export = 'Export'; $lang->ai->import = 'Import'; $lang->ai->saveFail = 'Save failed'; $lang->ai->installPackage = 'Installation package'; $lang->ai->toPublish = 'Publish after installation'; -$lang->ai->toZentaoStoreAIPage = 'Click to jump to Zentao official app store AI mini programs page'; +$lang->ai->toZentaoStoreAIPage = 'Click to jump to Zentao official app store AI mini programs page.'; $lang->ai->chatPlaceholderMessage = 'Hi, I\'m Adao, your AI assistant at ZenTao!'; $lang->ai->chatPlaceholderInput = 'type here...'; diff --git a/module/ai/lang/en.php b/module/ai/lang/en.php index b851aaaf56..3459d39925 100644 --- a/module/ai/lang/en.php +++ b/module/ai/lang/en.php @@ -68,12 +68,13 @@ $lang->ai->exportMiniProgram = 'Export AI Mini Program'; $lang->ai->importMiniProgram = 'Import AI Mini Program'; $lang->ai->editMiniProgramCategory = 'Manage group'; +$lang->ai->store = 'Store'; $lang->ai->export = 'Export'; $lang->ai->import = 'Import'; $lang->ai->saveFail = 'Save failed'; $lang->ai->installPackage = 'Installation package'; $lang->ai->toPublish = 'Publish after installation'; -$lang->ai->toZentaoStoreAIPage = 'Click to jump to Zentao official app store AI mini programs page'; +$lang->ai->toZentaoStoreAIPage = 'Click to jump to Zentao official app store AI mini programs page.'; $lang->ai->chatPlaceholderMessage = 'Hi, I\'m Adao, your AI assistant at ZenTao!'; $lang->ai->chatPlaceholderInput = 'type here...'; diff --git a/module/ai/lang/fr.php b/module/ai/lang/fr.php index b851aaaf56..3459d39925 100644 --- a/module/ai/lang/fr.php +++ b/module/ai/lang/fr.php @@ -68,12 +68,13 @@ $lang->ai->exportMiniProgram = 'Export AI Mini Program'; $lang->ai->importMiniProgram = 'Import AI Mini Program'; $lang->ai->editMiniProgramCategory = 'Manage group'; +$lang->ai->store = 'Store'; $lang->ai->export = 'Export'; $lang->ai->import = 'Import'; $lang->ai->saveFail = 'Save failed'; $lang->ai->installPackage = 'Installation package'; $lang->ai->toPublish = 'Publish after installation'; -$lang->ai->toZentaoStoreAIPage = 'Click to jump to Zentao official app store AI mini programs page'; +$lang->ai->toZentaoStoreAIPage = 'Click to jump to Zentao official app store AI mini programs page.'; $lang->ai->chatPlaceholderMessage = 'Hi, I\'m Adao, your AI assistant at ZenTao!'; $lang->ai->chatPlaceholderInput = 'type here...'; diff --git a/module/ai/lang/zh-cn.php b/module/ai/lang/zh-cn.php index f886d8c8c0..6c267c5ff3 100644 --- a/module/ai/lang/zh-cn.php +++ b/module/ai/lang/zh-cn.php @@ -68,12 +68,13 @@ $lang->ai->exportMiniProgram = '导出AI小程序'; $lang->ai->importMiniProgram = '导入AI小程序'; $lang->ai->editMiniProgramCategory = '维护分组'; +$lang->ai->store = '商店'; $lang->ai->export = '导出'; $lang->ai->import = '导入'; $lang->ai->saveFail = '保存失败'; $lang->ai->installPackage = '安装包'; $lang->ai->toPublish = '安装后发布'; -$lang->ai->toZentaoStoreAIPage = '点击可跳转至禅道官网应用商店AI小程序页面'; +$lang->ai->toZentaoStoreAIPage = '点击可跳转至禅道官网应用商店AI小程序页面。'; $lang->ai->chatPlaceholderMessage = 'Hi,我是 AI 助手阿道,您可以问我任何问题。'; $lang->ai->chatPlaceholderInput = '问问阿道…'; diff --git a/module/ai/view/miniprograms.html.php b/module/ai/view/miniprograms.html.php index cdcdcbc790..a1b9d398a4 100644 --- a/module/ai/view/miniprograms.html.php +++ b/module/ai/view/miniprograms.html.php @@ -20,9 +20,11 @@ $isNotOpen = $config->edition != 'open';
- - - help; ?> + + + + + ai->store; ?> diff --git a/module/aiapp/control.php b/module/aiapp/control.php index 2dd024c3ba..e327fc6883 100644 --- a/module/aiapp/control.php +++ b/module/aiapp/control.php @@ -57,6 +57,7 @@ class aiapp extends control $this->view->fields = $this->ai->getMiniProgramFields($id); $this->view->collectedIDs = $this->aiapp->getCollectedMiniProgramIDs($this->app->user->id); $this->view->title = "{$this->lang->aiapp->title}#{$miniProgram->id} $miniProgram->name"; + $this->view->hasModels = $this->ai->hasModelsAvailable(); $this->display(); } diff --git a/module/aiapp/css/browseminiprogram.ui.css b/module/aiapp/css/browseminiprogram.ui.css index d7188ee6c7..f8d2ebdf3f 100644 --- a/module/aiapp/css/browseminiprogram.ui.css +++ b/module/aiapp/css/browseminiprogram.ui.css @@ -116,6 +116,7 @@ pre.message-content { white-space: pre-wrap; + font-family: inherit !important; } .ai-message-content { @@ -227,3 +228,8 @@ pre.message-content { .loading-bar { background: #E4E4E4; } + +textarea::placeholder { + white-space: nowrap; + overflow: hidden; +} diff --git a/module/aiapp/js/browseminiprogram.ui.js b/module/aiapp/js/browseminiprogram.ui.js index 73c38a5502..46370e3331 100644 --- a/module/aiapp/js/browseminiprogram.ui.js +++ b/module/aiapp/js/browseminiprogram.ui.js @@ -419,8 +419,19 @@ function createServerNotification(content) return $(`
${content}
`); } +/** + * Append current path. + */ +function appendCurrentPath() +{ + $('#heading .toolbar') + .append(``) + .append(`${pathname}`); +} + $(function() { + appendCurrentPath(); $('#to-language-model').prop('href', $.createLink('ai', 'models')); $('#reload-current').on('click', () => { @@ -464,4 +475,12 @@ $(function() $inputBox.attr('data-bind', 'true'); } + + if(!hasModels) + { + $('.chat').addClass('hidden'); + $('.chat-nomodel').removeClass('hidden'); + $('form .footer .btn.primary').attr('disabled', 'disabled'); + $('.generate-btn').attr('disabled', 'disabled'); + } }); diff --git a/module/aiapp/ui/browseminiprogram.html.php b/module/aiapp/ui/browseminiprogram.html.php index aa132079a0..5ee3ddcc37 100644 --- a/module/aiapp/ui/browseminiprogram.html.php +++ b/module/aiapp/ui/browseminiprogram.html.php @@ -13,6 +13,8 @@ jsVar('prompt', $miniProgram->prompt); jsVar('postLink', createLink('aiapp', 'miniProgramChat', "id={$miniProgram->id}")); jsVar('messages', $messages); jsVar('isAppDisabled', $miniProgram->published === '0'); +jsVar('hasModels', $hasModels); +jsVar('pathname', $miniProgram->name); $app->loadLang('ai'); @@ -29,7 +31,7 @@ if(count($fields) !== 0) set::rows(1), set::name("field-{$field->id}"), set::placeholder($field->placeholder), - set::disabled($isDeleted), + set::disabled($isDeleted || !$hasModels), set::className('form-field'), setData('name', $field->name), setData('fid', $field->id) @@ -41,7 +43,7 @@ if(count($fields) !== 0) $control = picker( set::name("field-{$field->id}"), set::items(array_combine($options, $options)), - set::disabled($isDeleted), + set::disabled($isDeleted || !$hasModels), setData('name', $field->name), setData('fid', $field->id) ); @@ -53,7 +55,7 @@ if(count($fields) !== 0) set::name("field-{$field->id}"), set::items(array_combine($options, $options)), set::multiple(true), - set::disabled($isDeleted), + set::disabled($isDeleted || !$hasModels), setData('name', $field->name), setData('fid', $field->id) ); @@ -63,7 +65,7 @@ if(count($fields) !== 0) $control = input( set::name("field-{$field->id}"), set::placeholder($field->placeholder), - set::disabled($isDeleted), + set::disabled($isDeleted || !$hasModels), set::className('form-field'), setData('name', $field->name), setData('fid', $field->id)