From df03eddc8c7736b41d9e92209e9fc3ecee7fdb02 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Wed, 25 Dec 2024 13:27:18 +0800 Subject: [PATCH] * [task#135327,doing,1h] process confirmStoryChange button. --- module/execution/model.php | 2 ++ module/execution/ui/task.html.php | 2 ++ module/my/ui/task.html.php | 1 + module/task/ui/view.html.php | 16 +++++++++++++++- 4 files changed, 20 insertions(+), 1 deletion(-) diff --git a/module/execution/model.php b/module/execution/model.php index d222914419..9a909fa8c7 100755 --- a/module/execution/model.php +++ b/module/execution/model.php @@ -4789,6 +4789,8 @@ class executionModel extends model if(!common::hasDBPriv($task, 'task', 'confirmStoryChange')) continue; $clickable = $this->task->isClickable($task, 'confirmStoryChange'); $task->actions[] = array('name' => 'confirmStoryChange', 'disabled' => !$clickable); + + $task = $this->task->processConfirmStoryChange($task); } else { diff --git a/module/execution/ui/task.html.php b/module/execution/ui/task.html.php index 8389f5b958..7162703fbd 100644 --- a/module/execution/ui/task.html.php +++ b/module/execution/ui/task.html.php @@ -67,6 +67,8 @@ foreach($tableData as $task) $task->canAssignTo = $canAssignTo ? common::hasDBPriv($task, 'task', 'assignTo') : false; if(helper::isZeroDate($task->deadline)) $task->deadline = ''; if(helper::isZeroDate($task->estStarted)) $task->estStarted = ''; + + $task = $this->task->processConfirmStoryChange($task); } if($config->edition == 'ipd') diff --git a/module/my/ui/task.html.php b/module/my/ui/task.html.php index eecc5382df..67311a60c6 100644 --- a/module/my/ui/task.html.php +++ b/module/my/ui/task.html.php @@ -72,6 +72,7 @@ foreach($tasks as $task) { if(!isset($task->rawStatus)) $task->rawStatus = $task->status; $task->status = $this->processStatus('task', $task); + if($app->rawMethod == 'contribute') $task = $this->task->processConfirmStoryChange($task); } $data = array_values($tasks); diff --git a/module/task/ui/view.html.php b/module/task/ui/view.html.php index a2fbcd1c83..be1e878531 100644 --- a/module/task/ui/view.html.php +++ b/module/task/ui/view.html.php @@ -90,6 +90,20 @@ if($task->fromBug) } if(!$task->fromBug && $task->story) { + $disabledConirmStoryChange = false; + $hintConirmStoryChange = ''; + if(empty($task->team) && !empty($task->assignedTo) && $task->assignedTo != $this->app->user->account) + { + $disabledConirmStoryChange = true; + $hintConirmStoryChange = $lang->task->disabledHint->assignedConfirmStoryChange; + } + elseif(!empty($task->team)) + { + $taskMembers = !empty($task->team) ? array_column($task->team, 'account') : array(); + $disabledConirmStoryChange = !in_array($this->app->user->account, $taskMembers); + if($disabledConirmStoryChange) $hintConirmStoryChange = $lang->task->disabledHint->memberConfirmStoryChange; + } + $storyDetailProps = array ( 'control' => 'detailCard', @@ -100,7 +114,7 @@ if(!$task->fromBug && $task->story) 'toolbar' => $task->needConfirm ? array ( array('text' => $lang->task->storyChange, 'class' => 'ghost pointer-events-none'), - array('text' => $lang->confirm, 'type' => 'primary', 'class' => 'ajax-submit', 'url' => createLink('task', 'confirmStoryChange', "taskID={$task->id}")) + array('text' => $lang->confirm, 'type' => 'primary', 'class' => 'ajax-submit', 'url' => createLink('task', 'confirmStoryChange', "taskID={$task->id}"), 'disabled' => $disabledConirmStoryChange, 'hint' => $hintConirmStoryChange) ) : null, 'sections' => array (