diff --git a/module/task/js/editestimate.js b/module/task/js/editestimate.js index ddaf03ed54..d9cdb02abe 100644 --- a/module/task/js/editestimate.js +++ b/module/task/js/editestimate.js @@ -6,7 +6,8 @@ */ function confirmLeft() { - if($('#left').val() === '0') return confirm(confirmRecord); + $left = $('#left'); + if(!$left.prop('readonly') && $left.val() === '0') return confirm(confirmRecord); } $(function() diff --git a/module/task/model.php b/module/task/model.php index 754948399f..9ba7331151 100755 --- a/module/task/model.php +++ b/module/task/model.php @@ -826,11 +826,14 @@ class taskModel extends model $finisedUsers = $this->getFinishedUsers($oldTask->id, $members); if(count($finisedUsers) != count($team)) { - $currentTask->status = 'doing'; - $currentTask->finishedBy = ''; - $currentTask->finishedDate = ''; + if(strpos('cancel,pause', $oldTask->status) === false or ($oldTask->status == 'closed' and $oldTask->reason == 'done')) + { + $currentTask->status = 'doing'; + $currentTask->finishedBy = ''; + $currentTask->finishedDate = ''; + } } - else + elseif(strpos('wait,doing,pause', $oldTask->status) !== false) { $currentTask->status = 'done'; $currentTask->assignedTo = $oldTask->openedBy; @@ -1825,7 +1828,7 @@ class taskModel extends model $lastDate = $estimate->date; } - if($newTask->left == 0 and strpos('done,pause,cancel,closed', $task->status) === false) + if($newTask->left == 0 and strpos('done,cancel,closed', $task->status) === false) { $newTask->status = 'done'; $newTask->assignedTo = $task->openedBy; @@ -2840,11 +2843,12 @@ class taskModel extends model $data = new stdClass(); $data->consumed = $consumed; $data->left = $left; - $data->status = $left == 0 ? 'done' : $task->status; + $data->status = $task->status; $data->lastEditedBy = $this->app->user->account; $data->lastEditedDate = $now; - if(empty($left)) + if(empty($left) and strpos('wait,doing,pause', $task->status) !== false) { + $data->status = 'done'; $data->finishedBy = $this->app->user->account; $data->finishedDate = $now; $data->assignedTo = $task->openedBy; diff --git a/module/task/view/recordestimate.html.php b/module/task/view/recordestimate.html.php index 4ea52c43a4..05360b372b 100644 --- a/module/task/view/recordestimate.html.php +++ b/module/task/view/recordestimate.html.php @@ -61,7 +61,7 @@ task->canOperateEffort($task, $estimate); common::printIcon('task', 'editEstimate', "estimateID=$estimate->id", '', 'list', 'pencil', '', 'showinonlybody', true, $canOperateEffort ? '' : 'disabled'); - common::printIcon('task', 'deleteEstimate', "estimateID=$estimate->id", '', 'list', 'close', 'hiddenwin', 'showinonlybody', false, ($canOperateEffort and ($task->mode != 'multi' or ($task->mode == 'linear' and $estimate->left > 0))) ? '' : 'disabled'); + common::printIcon('task', 'deleteEstimate', "estimateID=$estimate->id", '', 'list', 'close', 'hiddenwin', 'showinonlybody', false, ($canOperateEffort and ($task->mode != 'linear' or ($task->mode == 'linear' and $estimate->left > 0))) ? '' : 'disabled'); ?>