From 8ebcd035b626acb662519dfc67ece3fb26d8a1f2 Mon Sep 17 00:00:00 2001 From: xieqiyu Date: Tue, 21 Nov 2023 10:32:37 +0800 Subject: [PATCH] * Modify task required item. --- module/task/model.php | 13 +++++++++-- module/task/tao.php | 18 ++------------- module/task/ui/activate.html.php | 11 +++++---- module/task/ui/edit.html.php | 38 ++++++++++++++++++-------------- module/task/zen.php | 1 + 5 files changed, 41 insertions(+), 40 deletions(-) diff --git a/module/task/model.php b/module/task/model.php index 774342f29d..e369ad110c 100755 --- a/module/task/model.php +++ b/module/task/model.php @@ -28,7 +28,7 @@ class taskModel extends model if(strpos($this->config->task->activate->requiredFields, 'comment') !== false && !$comment) { - dao::$errors[] = sprintf($this->lang->error->notempty, $this->lang->comment); + dao::$errors['comment'] = sprintf($this->lang->error->notempty, $this->lang->comment); return false; } @@ -331,6 +331,14 @@ class taskModel extends model */ public function afterUpdate(object $oldTask, object $task): void { + /* Update children task. */ + if(isset($task->execution) && $task->execution != $oldTask->execution) + { + $newExecution = $this->loadModel('execution')->getByID((int)$task->execution); + $task->project = $newExecution->project; + $this->dao->update(TABLE_TASK)->set('execution')->eq($task->execution)->set('module')->eq($task->module)->set('project')->eq($task->project)->where('parent')->eq($task->id)->exec(); + } + /* Multi-task change to normal task. */ if($task->mode == 'single') $this->dao->delete()->from(TABLE_TASKTEAM)->where('task')->eq($task->id)->exec(); @@ -2720,8 +2728,9 @@ class taskModel extends model } $requiredFields = $this->taskTao->getRequiredFields4Edit($task); - $this->taskTao->doUpdate($task, $oldTask, $requiredFields); + if(dao::isError()) return false; + $this->taskTao->doUpdate($task, $oldTask, $requiredFields); if(dao::isError()) return false; $this->afterUpdate($oldTask, $task); diff --git a/module/task/tao.php b/module/task/tao.php index 1e473802b2..18edb728a4 100644 --- a/module/task/tao.php +++ b/module/task/tao.php @@ -548,14 +548,6 @@ class taskTao extends taskModel $execution = $this->dao->select('*')->from(TABLE_PROJECT)->where('id')->eq($task->execution)->fetch(); if($this->isNoStoryExecution($execution)) $task->story = 0; - /* Update children task. */ - if(isset($task->execution) && $task->execution != $oldTask->execution) - { - $newExecution = $this->loadModel('execution')->getByID((int)$task->execution); - $task->project = $newExecution->project; - $this->dao->update(TABLE_TASK)->set('execution')->eq($task->execution)->set('module')->eq($task->module)->set('project')->eq($task->project)->where('parent')->eq($task->id)->exec(); - } - /* Set the datetime and operator when the task is modified. */ if(empty($task->lastEditedDate) || empty($task->lastEditedBy)) { @@ -867,22 +859,16 @@ class taskTao extends taskModel * @access protected * @return string */ - protected function getRequiredFields4Edit(object $task): string + protected function getRequiredFields4Edit(object $task): string|bool { $execution = $this->dao->select('*')->from(TABLE_PROJECT)->where('id')->eq($task->execution)->fetch(); $requiredFields = ',' . $this->config->task->edit->requiredFields . ','; if($this->isNoStoryExecution($execution)) $requiredFields = str_replace(',story,', ',', $requiredFields); - if($task->status != 'cancel' && strpos($requiredFields, ',estimate,') !== false) - { - if(empty($task->estimate)) dao::$errors['estimate'] = sprintf($this->lang->error->notempty, $this->lang->task->estimate); - $requiredFields = str_replace(',estimate,', ',', $requiredFields); - } - if(strpos(',doing,pause,', $task->status) && empty($task->left)) { - dao::$errors[] = sprintf($this->lang->task->error->leftEmptyAB, $this->lang->task->statusList[$task->status]); + dao::$errors['left'] = sprintf($this->lang->task->error->leftEmptyAB, $this->lang->task->statusList[$task->status]); return false; } diff --git a/module/task/ui/activate.html.php b/module/task/ui/activate.html.php index 4e2f5da569..d5537a4b91 100644 --- a/module/task/ui/activate.html.php +++ b/module/task/ui/activate.html.php @@ -330,7 +330,7 @@ formPanel ( set::width('1/2'), set::label($lang->task->assignedTo), - set::required($isMultiple), + set::required($isMultiple || strpos(",{$this->config->task->activate->requiredFields},", ',assignedTo,')), inputGroup ( picker @@ -339,6 +339,7 @@ formPanel set::name('assignedTo'), set::items($isMultiple ? $teamMembers : $members), set::value($isMultiple ? '' : $task->finishedBy), + set::required(strpos(",{$this->config->task->activate->requiredFields},", ',assignedTo,') !== false), on::change('setTeamUser') ), $modalTeamBtn @@ -350,11 +351,9 @@ formPanel formGroup ( set::label($lang->comment), - editor - ( - set::name('comment'), - set::rows('5') - ) + set::control('editor'), + set::name('comment'), + set::rows('5') ), modalTrigger ( diff --git a/module/task/ui/edit.html.php b/module/task/ui/edit.html.php index 387a2156b0..6855719356 100644 --- a/module/task/ui/edit.html.php +++ b/module/task/ui/edit.html.php @@ -411,16 +411,19 @@ detailBody ( set::name($lang->task->estimate), set::required(strpos(",{$this->config->task->edit->requiredFields},", ",estimate,") !== false), - inputControl + formGroup ( - input + inputControl ( - set::name('estimate'), - set::value($task->estimate), - !empty($task->team) ? set::readonly(true) : null - ), - to::suffix($lang->task->suffixHour), - set::suffixWidth(20) + input + ( + set::name('estimate'), + set::value($task->estimate), + !empty($task->team) ? set::readonly(true) : null + ), + to::suffix($lang->task->suffixHour), + set::suffixWidth(20) + ) ) ), item @@ -448,16 +451,19 @@ detailBody item ( set::name($lang->task->left), - inputControl + formGroup ( - input + inputControl ( - set::name('left'), - set::value($task->left), - !empty($task->team) ? set::readonly(true) : null - ), - to::suffix($lang->task->suffixHour), - set::suffixWidth(20) + input + ( + set::name('left'), + set::value($task->left), + !empty($task->team) ? set::readonly(true) : null + ), + to::suffix($lang->task->suffixHour), + set::suffixWidth(20) + ) ) ) ), diff --git a/module/task/zen.php b/module/task/zen.php index 33e9e334e8..4b677815c0 100644 --- a/module/task/zen.php +++ b/module/task/zen.php @@ -765,6 +765,7 @@ class taskZen extends task ->setDefault('assignedTo', $oldTask->openedBy) ->get(); + if(strpos(",{$this->config->task->finish->requiredFields},", ',comment,') !== false && empty($_POST['comment'])) dao::$errors['comment'] = sprintf($this->lang->error->notempty, $this->lang->comment); if(!$this->post->currentConsumed && $oldTask->consumed == '0') dao::$errors['currentConsumed'][] = $this->lang->task->error->consumedEmpty; if($task->realStarted > $task->finishedDate) dao::$errors['finishedDate'][] = $this->lang->task->error->finishedDateSmall;