diff --git a/module/execution/js/task.ui.js b/module/execution/js/task.ui.js index 449dfa6e70..090b01cf41 100644 --- a/module/execution/js/task.ui.js +++ b/module/execution/js/task.ui.js @@ -16,6 +16,29 @@ $(document).off('click','.batch-btn').on('click', '.batch-btn', function() { $.ajaxSubmit({url, data: form}).then(); } + else if($(this).hasClass('ajax-batch-close')) + { + $.ajaxSubmit({ + url, + data: form, + onComplete: function(message) + { + if(message.result == 'confirmSkipTask') + { + const skipTasks = message.skipTasks; + zui.Modal.confirm(skipTaskTip.replace('%s', Object.keys(skipTasks).join(','))).then((res) => + { + if(res) + { + const newForm = new FormData(); + Object.keys(skipTasks).forEach((id) => newForm.append('taskIdList[]', id)); + $.ajaxSubmit({url: $.createLink('task', 'batchClose', 'confirm=yes'), data: newForm}).then(); + } + }) + } + } + }).then(); + } else { postAndLoadPage(url, form); diff --git a/module/execution/ui/task.html.php b/module/execution/ui/task.html.php index de1f41bc87..84ebafc4b1 100644 --- a/module/execution/ui/task.html.php +++ b/module/execution/ui/task.html.php @@ -263,7 +263,7 @@ if($canBatchAction) $batchCancelClass = $config->edition == 'open' ? 'ajax-btn' : 'ajax-cancel-btn'; $batchItems = array ( - array('text' => $lang->close, 'innerClass' => 'batch-btn ajax-btn not-open-url', 'disabled' => !$canBatchClose, 'data-url' => createLink('task', 'batchClose')), + array('text' => $lang->close, 'innerClass' => 'batch-btn ajax-batch-close not-open-url', 'disabled' => !$canBatchClose, 'data-url' => createLink('task', 'batchClose')), array('text' => $lang->task->cancel, 'innerClass' => "batch-btn $batchCancelClass not-open-url", 'disabled' => !$canBatchCancel, 'data-url' => createLink('task', 'batchCancel')) ); } @@ -312,6 +312,7 @@ jsVar('todayLabel', $lang->today); jsVar('yesterdayLabel', $lang->yesterday); jsVar('teamLang', $lang->task->team); jsVar('delayWarning', $lang->task->delayWarning); +jsVar('skipTaskTip', $lang->task->error->skipClose); if($viewType == 'tiled') $cols['name']['nestedToggle'] = false; dtable diff --git a/module/task/zen.php b/module/task/zen.php index e846b4a688..0724f319ca 100644 --- a/module/task/zen.php +++ b/module/task/zen.php @@ -1880,12 +1880,7 @@ class taskZen extends task */ protected function responseAfterBatchClose(array $skipTasks, string $confirm): array { - if(!empty($skipTasks) && $confirm == 'no') - { - $skipTasks = implode(',', $skipTasks); - $confirmURL = $this->createLink('task', 'batchClose', "confirm=yes"); - return array('result' => 'success', 'load' => array('confirm' => sprintf($this->lang->task->error->skipClose, $skipTasks), 'confirmed' => $confirmURL)); - } + if(!empty($skipTasks) && $confirm == 'no') return array('result' => 'confirmSkipTask', 'skipTasks' => $skipTasks); return array('result' => 'success', 'load' => true); }