From 6cd97bc1888d94c3297c39c3733c0ddab072c8b8 Mon Sep 17 00:00:00 2001 From: chaideqing Date: Tue, 7 Nov 2023 06:30:57 +0000 Subject: [PATCH] * Fix bug #39572. --- module/task/control.php | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/module/task/control.php b/module/task/control.php index 9d457376b1..1b7da5bce4 100755 --- a/module/task/control.php +++ b/module/task/control.php @@ -1692,13 +1692,17 @@ class task extends control * @access public * @return void */ - public function batchClose($skipTaskIdList = '') + public function batchClose($confirm = 0) { - if($this->post->taskIDList or $skipTaskIdList) + if($this->post->taskIDList or $confirm) { $taskIDList = $this->post->taskIDList; - if($taskIDList) $taskIDList = array_unique($taskIDList); - if($skipTaskIdList) $taskIDList = $skipTaskIdList; + if(!isset($_POST['taskIDList']) && !empty($_SESSION['batchCloseTaskIDList'])) + { + $taskIDList = explode(',', $this->session->batchCloseTaskIDList); + unset($_SESSION['batchCloseTaskIDList']); + } + if($taskIDList) $taskIDList = array_unique($taskIDList); unset($_POST['taskIDList']); unset($_POST['assignedTo']); @@ -1707,7 +1711,7 @@ class task extends control $tasks = $this->task->getByList($taskIDList); foreach($tasks as $taskID => $task) { - if(empty($skipTaskIdList) and ($task->status != 'done' and $task->status != 'cancel')) + if(($task->status != 'done' and $task->status != 'cancel') and empty($confirm)) { $skipTasks[$taskID] = $taskID; continue; @@ -1730,11 +1734,12 @@ class task extends control $this->action->logHistory($actionID, $changes); } } - if(isset($skipTasks) and empty($skipTaskIdList)) + if(isset($skipTasks) and empty($confirm)) { $skipTasks = join(',', $skipTasks); - $confirmURL = $this->createLink('task', 'batchClose', "skipTaskIdList=$skipTasks"); + $confirmURL = $this->createLink('task', 'batchClose', "confirm=1"); $cancelURL = $this->server->HTTP_REFERER; + $this->session->set('batchCloseTaskIDList', $skipTasks, 'task'); return print(js::confirm(sprintf($this->lang->task->error->skipClose, $skipTasks), $confirmURL, $cancelURL, 'self', 'parent')); }