From a40917684685087c9078763ddca15311da536677 Mon Sep 17 00:00:00 2001 From: dingyongliang Date: Thu, 2 Nov 2023 17:26:07 +0800 Subject: [PATCH] * add miniprogram publish confirm. --- module/ai/js/configuredminiprogram.js | 40 ++++++++++++++----- module/ai/lang/de.php | 2 + module/ai/lang/en.php | 2 + module/ai/lang/fr.php | 2 + module/ai/lang/zh-cn.php | 2 + module/ai/model.php | 5 +++ module/ai/view/configuredminiprogram.html.php | 20 ++++++++++ 7 files changed, 62 insertions(+), 11 deletions(-) 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); ?>