diff --git a/module/task/config/dtable.php b/module/task/config/dtable.php index 94438c2cff..073cba33be 100644 --- a/module/task/config/dtable.php +++ b/module/task/config/dtable.php @@ -175,7 +175,7 @@ $config->task->effortTable->fieldList['consumed']['checkbox'] = false; $config->task->effortTable->fieldList['consumed']['width'] = '80'; $config->task->effortTable->fieldList['left']['title'] = $lang->task->left; -$config->task->effortTable->fieldList['left']['name'] = 'consumed'; +$config->task->effortTable->fieldList['left']['name'] = 'left'; $config->task->effortTable->fieldList['left']['checkbox'] = false; $config->task->effortTable->fieldList['left']['width'] = '80'; diff --git a/module/task/config/form.php b/module/task/config/form.php index 42f3704bf1..7187853ea9 100644 --- a/module/task/config/form.php +++ b/module/task/config/form.php @@ -187,7 +187,7 @@ $config->task->form->recordWorkhour = array(); $config->task->form->recordWorkhour['date'] = array('type' => 'date', 'required' => true, 'default' => array()); $config->task->form->recordWorkhour['work'] = array('type' => 'string', 'required' => false, 'default' => array(), 'base' => true); $config->task->form->recordWorkhour['consumed'] = array('type' => 'float', 'required' => true, 'default' => array()); -$config->task->form->recordWorkhour['left'] = array('type' => 'float', 'required' => true, 'default' => array()); +$config->task->form->recordWorkhour['left'] = array('type' => 'float', 'required' => false, 'default' => array()); $config->task->form->editEffort = array(); $config->task->form->editEffort['date'] = array('type' => 'date', 'required' => true, 'default' => ''); diff --git a/module/task/js/recordworkhour.ui.js b/module/task/js/recordworkhour.ui.js new file mode 100644 index 0000000000..ac7e1717a1 --- /dev/null +++ b/module/task/js/recordworkhour.ui.js @@ -0,0 +1,21 @@ +$(".form-actions .btn[type='submit']").on('click', function(e, hasConfirmed) +{ + if(hasConfirmed) return true; + + var $this = $(this); + $("input[name^='left']").each(function() + { + if($(this).val() !== '' && !$(this).prop('readonly')) left = $(this).val(); + }); + + if(typeof(left) != 'undefined' && left == '0') + { + e.preventDefault(); + zui.Modal.confirm(confirmRecord).then( + confirmed => + { + if(confirmed) $this.trigger('click', true); + } + ); + } +}); diff --git a/module/task/model.php b/module/task/model.php index 73a0474f3c..02b318a5df 100755 --- a/module/task/model.php +++ b/module/task/model.php @@ -1074,7 +1074,7 @@ class taskModel extends model $this->addTaskEffort($record); $effortID = $this->dao->lastInsertID(); - $isFinishTask = (empty($currentTeam) && !in_array($task->status, $this->config->task->unfinishedStatus)) || (!empty($currentTeam) && $currentTeam->status != 'done'); + $isFinishTask = (empty($currentTeam) && in_array($task->status, $this->config->task->unfinishedStatus)) || (!empty($currentTeam) && $currentTeam->status != 'done'); /* Change the workhour and status of tasks through effort. */ list($newTask, $actionID) = $this->taskTao->buildTaskForEffort($record, $task, (string)$lastDate, $isFinishTask); if($lastDate <= $record->date) $lastDate = $record->date; diff --git a/module/task/ui/recordworkhour.html.php b/module/task/ui/recordworkhour.html.php index 5aee56808c..e801d9a348 100644 --- a/module/task/ui/recordworkhour.html.php +++ b/module/task/ui/recordworkhour.html.php @@ -10,6 +10,8 @@ declare(strict_types=1); */ namespace zin; +jsVar('confirmRecord', $lang->task->confirmRecord); + entityLabel ( setClass('my-3 gap-x-3'),