* Code for task #85502

This commit is contained in:
guofeilong
2023-03-01 13:54:45 +08:00
parent bec24aafa9
commit 68e10e515e
3 changed files with 144 additions and 4 deletions
+22 -4
View File
@@ -1196,10 +1196,28 @@ EOT;
if($config->tabSession and helper::isWithTID()) $jsConfig->tid = zget($_GET, 'tid', '');
$jsLang = new stdclass();
$jsLang->submitting = isset($lang->loading) ? $lang->loading : '';
$jsLang->save = $jsConfig->save;
$jsLang->expand = isset($lang->expand) ? $lang->expand : '';
$jsLang->timeout = isset($lang->timeout) ? $lang->timeout : '';
$jsLang->submitting = isset($lang->loading) ? $lang->loading : '';
$jsLang->save = $jsConfig->save;
$jsLang->expand = isset($lang->expand) ? $lang->expand : '';
$jsLang->timeout = isset($lang->timeout) ? $lang->timeout : '';
$jsLang->confirmDraft = isset($lang->confirmDraft) ? $lang->confirmDraft : '';
$jsLang->resume = isset($lang->resume) ? $lang->resume : '';
$jsLang->program = isset($lang->program->common) ? $lang->program->common : '';
$jsLang->project = isset($lang->project->common) ? $lang->project->common : '';
$jsLang->product = isset($lang->product->common) ? $lang->product->common : '';
$jsLang->task = isset($lang->task->common) ? $lang->task->common : '';
$jsLang->story = isset($lang->story->common) ? $lang->story->common : '';
$jsLang->bug = isset($lang->bug->common) ? $lang->bug->common : '';
$jsLang->testcase = isset($lang->testcase->common) ? $lang->testcase->common : '';
$jsLang->testsuite = isset($lang->testsuite->common) ? $lang->testsuite->common : '';
$jsLang->zahost = isset($lang->zahost->common) ? $lang->zahost->common : '';
$jsLang->zanode = isset($lang->zanode->common) ? $lang->zanode->common : '';
$jsLang->gitlab = isset($lang->gitlab->common) ? $lang->gitlab->common : '';
$jsLang->gogs = isset($lang->gogs->common) ? $lang->gogs->common : '';
$jsLang->gitea = isset($lang->gitea->common) ? $lang->gitea->common : '';
$jsLang->jenkins = isset($lang->jenkins->common) ? $lang->jenkins->common : '';
$jsLang->sonarqube = isset($lang->sonarqube->common) ? $lang->sonarqube->common : '';
$jsLang->repo = isset($lang->repo->common) ? $lang->repo->common : '';
$js = static::start(false);
$js .= 'window.config=' . json_encode($jsConfig) . ";\n";
+2
View File
@@ -90,6 +90,8 @@ $lang->viewDetails = '查看详情';
$lang->actions = '操作';
$lang->restore = '恢复默认';
$lang->confirmDraft = '有未保存的%s%表单,是否恢复?';
$lang->resume = '恢复';
$lang->comment = '备注';
$lang->history = '历史记录';
$lang->attatch = '附件';
Regular → Executable
+120
View File
@@ -3,6 +3,125 @@
{
if(!config.tabSession) return;
/**
* Handle the logic save form draft.
*
* @access public
* @return void
*/
function handleSaveFormDraft()
{
if (config.currentMethod === 'login') return;
setTimeout(() => {
var form = $('.table-form').parent();
if(form.length)
{
var formDataID = config.currentMethod + '-' + config.currentModule + '-' + $(form).attr("id");
var formDataStored = $.zui.store.get(formDataID);
if(formDataStored)
{
var message = lang.confirmDraft.replace('%s%', lang[config.currentModule] || '');
new $.zui.Messager(message, {
type: 'success',
close: true,
placement: 'center',
time: 0,
actions: [
{
name: 'undo',
icon: 'undo',
text: lang.resume,
action: function() {
var valueMultiple = {};
for(var i = 0; i < formDataStored.length; i++)
{
var item = formDataStored[i];
/* formItem === checkbox || formItem === multipleSelect */
if(item.name.indexOf('[]') != -1)
{
var formItem = $('[name^=' + item.name.replace('[]', '') + ']');
}
else if((item.name.indexOf(']') != -1) && (item.name.indexOf('[') != -1))
{
var formItem = $('[id^=' + item.name.replace('[', '').replace(']', '') + ']');
}
else
{
/* var formItem = $('#' + item.name);*/
var formItem = $('[id^=' + item.name + ']');
}
var tagName = formItem.prop('tagName');
if(tagName === 'SELECT')
{
formItem.val(item.value);
if($(formItem).hasClass('chosen'))
{
$(formItem).trigger('chosen:updated');
}
else if($(formItem).hasClass('picker-select'))
{
if($(formItem).attr('multiple'))
{
var value = [];
if (!valueMultiple[item.name])
{
valueMultiple[item.name] = [];
}
valueMultiple[item.name].push(item.value);
$(formItem).data('zui.picker').setValue(valueMultiple[item.name]);
}
else
{
$(formItem).data('zui.picker').setValue(item.value);
}
}
}
else if(tagName === 'INPUT')
{
if($(formItem).attr('type') === 'checkbox')
{
$(formItem).prop('checked', true).trigger('change');
}
else if($(formItem).attr('type') === 'radio')
{
$('#' + item.name + item.value).prop('checked', true).trigger('change');
}
else
{
formItem.val(item.value);
}
}
else if(tagName === 'TEXTAREA' && $(formItem).hasClass('kindeditor'))
{
KindEditor.remove('#' + item.name);
formItem.val(item.value);
$(formItem).kindeditor();
}
}
}
}
]
}).show();
}
form.on('input', function()
{
$.zui.store.set(formDataID, $(form).serializeArray());
}).on('change', function()
{
$.zui.store.set(formDataID, $(form).serializeArray());
console.log($(form).serializeArray());
}).on('success.form.zui', function(event, res)
{
if (res.result === 'fail' || res.status === 'fail') return
$.zui.store.remove(formDataID);
})
}
}, 500);
}
/** Store current tab id */
var _tid = '';
@@ -31,6 +150,7 @@
return $.createLink(link);
}
/** Init */
function init()
{