From 86ebfc0480ca664049458929f325679302362f83 Mon Sep 17 00:00:00 2001 From: wangyidong Date: Mon, 5 Sep 2022 11:29:46 +0800 Subject: [PATCH] * fix bug #27262. --- module/task/control.php | 18 ++++++++++++++---- module/task/lang/de.php | 1 + module/task/lang/en.php | 1 + module/task/lang/fr.php | 1 + module/task/lang/zh-cn.php | 1 + module/task/model.php | 7 ++++++- module/task/view/lineareffort.html.php | 8 ++++---- 7 files changed, 28 insertions(+), 9 deletions(-) diff --git a/module/task/control.php b/module/task/control.php index 177825a892..cbeb2b7120 100755 --- a/module/task/control.php +++ b/module/task/control.php @@ -1227,20 +1227,30 @@ class task extends control */ public function deleteEstimate($estimateID, $confirm = 'no') { - if($confirm == 'no') + $estimate = $this->task->getEstimateById($estimateID); + $task = $this->task->getById($estimate->task); + if($confirm == 'no' and $task->consumed - $estimate->consumed != 0) { return print(js::confirm($this->lang->task->confirmDeleteEstimate, $this->createLink('task', 'deleteEstimate', "estimateID=$estimateID&confirm=yes"))); } + elseif($confirm == 'no' and $task->consumed - $estimate->consumed == 0) + { + return print(js::confirm($this->lang->task->confirmDeleteLastEstimate, $this->createLink('task', 'deleteEstimate', "estimateID=$estimateID&confirm=yes"))); + } else { - $estimate = $this->task->getEstimateById($estimateID); - $task = $this->task->getById($estimate->task); - $changes = $this->task->deleteEstimate($estimateID); + $changes = $this->task->deleteEstimate($estimateID); if(dao::isError()) return print(js::error(dao::getError())); $actionID = $this->loadModel('action')->create('task', $estimate->task, 'DeleteEstimate'); $this->action->logHistory($actionID, $changes); + if($task->consumed - $estimate->consumed == 0) + { + $this->loadModel('action')->create('task', $estimate->task, 'Adjusttasktowait'); + return print(js::reload('parent.parent')); + } + return print(js::reload('parent')); } } diff --git a/module/task/lang/de.php b/module/task/lang/de.php index bdd5c22349..6c5e10ff5b 100644 --- a/module/task/lang/de.php +++ b/module/task/lang/de.php @@ -221,6 +221,7 @@ $lang->task->legendMisc = 'Misc.'; $lang->task->confirmDelete = "Möchten Sie diese Aufgabe löschen?"; $lang->task->confirmDeleteEstimate = "Do you want to delete it?"; +$lang->task->confirmDeleteLastEstimate = "Do you want to delete the log? After deleting the last work log, the task status will be adjusted to Not Started."; $lang->task->copyStoryTitle = "Story kopieren"; $lang->task->afterSubmit = "Nach der Erstellung,"; $lang->task->successSaved = "Erstellt!"; diff --git a/module/task/lang/en.php b/module/task/lang/en.php index da41923356..87b948357e 100755 --- a/module/task/lang/en.php +++ b/module/task/lang/en.php @@ -221,6 +221,7 @@ $lang->task->legendMisc = 'Misc.'; $lang->task->confirmDelete = "Do you want to delete this task?"; $lang->task->confirmDeleteEstimate = "Do you want to delete it?"; +$lang->task->confirmDeleteLastEstimate = "Do you want to delete the log? After deleting the last work log, the task status will be adjusted to Not Started."; $lang->task->copyStoryTitle = "Copy Story"; $lang->task->afterSubmit = "Next "; $lang->task->successSaved = "Created!"; diff --git a/module/task/lang/fr.php b/module/task/lang/fr.php index 6630d0228c..cb3402ab05 100644 --- a/module/task/lang/fr.php +++ b/module/task/lang/fr.php @@ -221,6 +221,7 @@ $lang->task->legendMisc = 'Misc.'; $lang->task->confirmDelete = "Voulez-vous réellement supprimer cette tâche ?"; $lang->task->confirmDeleteEstimate = "Voulez-vous la supprimer ?"; +$lang->task->confirmDeleteLastEstimate = "Do you want to delete the log? After deleting the last work log, the task status will be adjusted to Not Started."; $lang->task->copyStoryTitle = 'StoryModel'; $lang->task->afterSubmit = "Suiv. "; $lang->task->successSaved = "Créée !"; diff --git a/module/task/lang/zh-cn.php b/module/task/lang/zh-cn.php index 33bd84ee8d..51f66f1741 100755 --- a/module/task/lang/zh-cn.php +++ b/module/task/lang/zh-cn.php @@ -221,6 +221,7 @@ $lang->task->legendMisc = '其他相关'; $lang->task->confirmDelete = "您确定要删除这个任务吗?"; $lang->task->confirmDeleteEstimate = "您确定要删除这个记录吗?"; +$lang->task->confirmDeleteLastEstimate = "您确定要删除该条日志吗?删除最后一条工时日志后,该任务状态将调整为未开始。"; $lang->task->copyStoryTitle = "同{$lang->SRCommon}"; $lang->task->afterSubmit = "添加之后"; $lang->task->successSaved = "成功添加,"; diff --git a/module/task/model.php b/module/task/model.php index bad07c1e28..d2de2ab5b6 100755 --- a/module/task/model.php +++ b/module/task/model.php @@ -2981,7 +2981,12 @@ class taskModel extends model $data->consumed = $consumed; $data->left = $left; $data->status = ($left == 0 && $consumed != 0) ? 'done' : $task->status; - if($consumed != 0 and $left == 0 and strpos('done,pause,cancel,closed', $task->status) === false) + if($consumed == 0 and $task->status != 'wait') + { + $data->status = 'wait'; + $data->left = $task->estimate; + } + elseif($consumed != 0 and $left == 0 and strpos('done,pause,cancel,closed', $task->status) === false) { $data->status = 'done'; $data->assignedTo = $task->openedBy; diff --git a/module/task/view/lineareffort.html.php b/module/task/view/lineareffort.html.php index 5458f17b57..0f7abd4032 100644 --- a/module/task/view/lineareffort.html.php +++ b/module/task/view/lineareffort.html.php @@ -56,8 +56,8 @@ foreach($efforts as $effort) task->canOperateEffort($task, $effort); - common::printIcon('task', 'editEstimate', "effortID=$effort->id", '', 'list', 'edit', '', 'showinonlybody', true, $canOperateEffort ? '' : 'disabled'); - common::printIcon('task', 'deleteEstimate', "effortID=$effort->id", '', 'list', 'trash', 'hiddenwin', 'showinonlybody', false, ($canOperateEffort and $effort->left > 0) ? '' : 'disabled'); + common::printIcon($this->config->edition == 'open' ? 'task' : 'effort', $this->config->edition == 'open' ? 'editEstimate' : 'edit', "effortID=$effort->id", '', 'list', 'edit', '', 'showinonlybody', true, $canOperateEffort ? '' : 'disabled'); + common::printIcon($this->config->edition == 'open' ? 'task' : 'effort', $this->config->edition == 'open' ? 'deleteEstimate' : 'delete', "effortID=$effort->id", '', 'list', 'trash', 'hiddenwin', 'showinonlybody', false, ($canOperateEffort and $effort->left > 0) ? '' : 'disabled'); ?> @@ -95,8 +95,8 @@ foreach($efforts as $effort) task->canOperateEffort($task, $effort); - common::printIcon('task', 'editEstimate', "effortID=$effort->id", '', 'list', 'edit', '', 'showinonlybody', true, $canOperateEffort ? '' : 'disabled'); - common::printIcon('task', 'deleteEstimate', "effortID=$effort->id", '', 'list', 'trash', 'hiddenwin', 'showinonlybody', false, ($canOperateEffort and $effort->left > 0) ? '' : 'disabled'); + common::printIcon($this->config->edition == 'open' ? 'task' : 'effort', $this->config->edition == 'open' ? 'editEstimate' : 'edit', "effortID=$effort->id", '', 'list', 'edit', '', 'showinonlybody', true, $canOperateEffort ? '' : 'disabled'); + common::printIcon($this->config->edition == 'open' ? 'task' : 'effort', $this->config->edition == 'open' ? 'deleteEstimate' : 'delete', "effortID=$effort->id", '', 'list', 'trash', 'hiddenwin', 'showinonlybody', false, ($canOperateEffort and $effort->left > 0) ? '' : 'disabled'); ?>