diff --git a/module/ai/js/configuredminiprogram.js b/module/ai/js/configuredminiprogram.js
index e17904baa6..a76a42b1e0 100644
--- a/module/ai/js/configuredminiprogram.js
+++ b/module/ai/js/configuredminiprogram.js
@@ -439,8 +439,7 @@ function createFieldButtons()
*/
function formatContent(content)
{
- if(!/\s {content = content.replace(new RegExp(`\\s<${word}>\\s`, 'g'), ` <${word}> `);});
return content;
}
@@ -454,13 +453,10 @@ function updatePromptPreview()
{
const innerText = $('#autocomplete-textarea').text();
let innerHTML = formatContent(innerText);
- if(typeof innerHTML === 'string')
+ $('#autocomplete-textarea').html(innerHTML);
+ if(!innerHTML || words.size === 0)
{
- $('#autocomplete-textarea').html(innerHTML);
- }
- if(!innerHTML)
- {
- $('.prompt-preview-area .preview-container').html('');
+ $('.prompt-preview-area .preview-container').html(innerHTML);
return;
}
@@ -508,15 +504,37 @@ function getRequiredFields()
* @returns {void}
*/
function saveMiniProgram(toPublish)
+{
+ const prompt = $('#autocomplete-textarea').html();
+ if(!prompt)
+ {
+ alert(emptyPrompterTip);
+ return;
+ }
+ if(toPublish === '1')
+ {
+ const $modal = $('#publish-confirm-modal');
+ $modal.modal('show', 'fit');
+ return;
+ }
+ postMiniProgramData('0', console.log);
+}
+
+$('#publish-confirm-modal .btn-primary').on('click', function()
+{
+ postMiniProgramData('1', () => {window.location.href = createLink('ai', 'miniPrograms');});
+});
+
+function postMiniProgramData(toPublish, callback)
{
const [fields, prompt] = getRequiredFields();
- if(fields.length && prompt) $.post(createLink('ai', 'configuredMiniProgram', `appID=${appid}`), {fields, prompt, toPublish}).done(console.log);
+ $.post(createLink('ai', 'configuredMiniProgram', `appID=${appid}`), {fields, prompt, toPublish}).done(callback);
}
function backToList()
{
- const [fields, prompt] = getRequiredFields();
- if(fields.length && prompt)
+ const [prompt] = getRequiredFields();
+ if(prompt)
{
$modal = $('#back-to-list-modal');
$modal.modal('show', 'fit');
diff --git a/module/ai/lang/de.php b/module/ai/lang/de.php
index 4d851e5c93..ce5642e22a 100644
--- a/module/ai/lang/de.php
+++ b/module/ai/lang/de.php
@@ -422,6 +422,8 @@ $lang->ai->miniPrograms->backToListPage = 'Return to list page';
$lang->ai->miniPrograms->lastStep = 'Previous step';
$lang->ai->miniPrograms->backToListPageTip = 'There are data changes in the form. Do you want to save and go back?';
$lang->ai->miniPrograms->saveAndBack = 'Save and Go Back';
+$lang->ai->miniPrograms->publishConfirm = array('Are you sure you want to publish?', 'It will be displayed on the front-end mini program plaza in the client.');
+$lang->ai->miniPrograms->emptyPrompterTip = 'The prompter of the mini program is empty. Please edit it before publishing.';
$lang->ai->miniPrograms->placeholder = new stdClass();
$lang->ai->miniPrograms->placeholder->name = 'Please enter a small program name';
diff --git a/module/ai/lang/en.php b/module/ai/lang/en.php
index 1077c1c9c3..997127a291 100644
--- a/module/ai/lang/en.php
+++ b/module/ai/lang/en.php
@@ -422,6 +422,8 @@ $lang->ai->miniPrograms->backToListPage = 'Return to list page';
$lang->ai->miniPrograms->lastStep = 'Previous step';
$lang->ai->miniPrograms->backToListPageTip = 'There are data changes in the form. Do you want to save and go back?';
$lang->ai->miniPrograms->saveAndBack = 'Save and Go Back';
+$lang->ai->miniPrograms->publishConfirm = array('Are you sure you want to publish?', 'It will be displayed on the front-end mini program plaza in the client.');
+$lang->ai->miniPrograms->emptyPrompterTip = 'The prompter of the mini program is empty. Please edit it before publishing.';
$lang->ai->miniPrograms->placeholder = new stdClass();
$lang->ai->miniPrograms->placeholder->name = 'Please enter a small program name';
diff --git a/module/ai/lang/fr.php b/module/ai/lang/fr.php
index 12bfc565a2..240a952fc9 100644
--- a/module/ai/lang/fr.php
+++ b/module/ai/lang/fr.php
@@ -422,6 +422,8 @@ $lang->ai->miniPrograms->backToListPage = 'Return to list page';
$lang->ai->miniPrograms->lastStep = 'Previous step';
$lang->ai->miniPrograms->backToListPageTip = 'There are data changes in the form. Do you want to save and go back?';
$lang->ai->miniPrograms->saveAndBack = 'Save and Go Back';
+$lang->ai->miniPrograms->publishConfirm = array('Are you sure you want to publish?', 'It will be displayed on the front-end mini program plaza in the client.');
+$lang->ai->miniPrograms->emptyPrompterTip = 'The prompter of the mini program is empty. Please edit it before publishing.';
$lang->ai->miniPrograms->placeholder = new stdClass();
$lang->ai->miniPrograms->placeholder->name = 'Please enter a small program name';
diff --git a/module/ai/lang/zh-cn.php b/module/ai/lang/zh-cn.php
index a62b09c7ce..71344ce222 100644
--- a/module/ai/lang/zh-cn.php
+++ b/module/ai/lang/zh-cn.php
@@ -422,6 +422,8 @@ $lang->ai->miniPrograms->backToListPage = '返回列表页';
$lang->ai->miniPrograms->lastStep = '上一步';
$lang->ai->miniPrograms->backToListPageTip = '表单有数据变动,是否保存并返回';
$lang->ai->miniPrograms->saveAndBack = '保存并返回';
+$lang->ai->miniPrograms->publishConfirm = array('您确定要发布吗?', '发布后将在客户端前台小程序广场显示。');
+$lang->ai->miniPrograms->emptyPrompterTip = '小程序提词为空,请编辑后再进行发布';
$lang->ai->miniPrograms->placeholder = new stdClass();
$lang->ai->miniPrograms->placeholder->name = '请输入小程序名称';
diff --git a/module/ai/model.php b/module/ai/model.php
index 362d801757..fa89a4268a 100644
--- a/module/ai/model.php
+++ b/module/ai/model.php
@@ -336,6 +336,11 @@ class aiModel extends model
->where('id')->eq($appID)
->exec();
+ $this->dao->delete()
+ ->from(TABLE_MINIPROGRAMFIELDS)
+ ->where('id')->eq($appID)
+ ->exec();
+
$fields = $data->fields;
foreach ($fields as $field)
{
diff --git a/module/ai/view/configuredminiprogram.html.php b/module/ai/view/configuredminiprogram.html.php
index bb20a34786..0c17fa2b33 100644
--- a/module/ai/view/configuredminiprogram.html.php
+++ b/module/ai/view/configuredminiprogram.html.php
@@ -19,6 +19,8 @@ js::set('emptyWarning', $lang->ai->miniPrograms->field->emptyNameWarning);
js::set('duplicatedWarning', $lang->ai->miniPrograms->field->duplicatedNameWarning);
js::set('emptyOptionWarning', $lang->ai->miniPrograms->field->emptyOptionWarning);
js::set('appid', $appid);
+js::set('publishConfirm', $lang->ai->miniPrograms->publishConfirm);
+js::set('emptyPrompterTip', $lang->ai->miniPrograms->emptyPrompterTip);
?>
@@ -123,6 +125,24 @@ js::set('appid', $appid);
+