diff --git a/module/task/config/form.php b/module/task/config/form.php index 000709c0c4..daacedb6f5 100644 --- a/module/task/config/form.php +++ b/module/task/config/form.php @@ -200,4 +200,4 @@ $config->task->form->editEffort = array(); $config->task->form->editEffort['date'] = array('type' => 'date', 'required' => true, 'default' => ''); $config->task->form->editEffort['work'] = array('type' => 'string', 'required' => false, 'default' => ''); $config->task->form->editEffort['consumed'] = array('type' => 'float', 'required' => true, 'default' => ''); -$config->task->form->editEffort['left'] = array('type' => 'float', 'required' => true, 'default' => ''); +$config->task->form->editEffort['left'] = array('type' => 'float', 'required' => false, 'default' => ''); diff --git a/module/task/js/editeffort.ui.js b/module/task/js/editeffort.ui.js new file mode 100644 index 0000000000..61e93082ad --- /dev/null +++ b/module/task/js/editeffort.ui.js @@ -0,0 +1,14 @@ +window.clickSubmit = function() +{ + const isEmpty = !$('#editEffortForm [name=date]').val() || !$('#editEffortForm [name=consumed]').val(); + const left = $('#editEffortForm [name=left]').val(); + if(!isEmpty && !isReadonly && (left == 0 || !left)) + { + const formUrl = $('#editEffortForm form').attr('action'); + const formData = new FormData($("#editEffortForm form")[0]); + zui.Modal.confirm(finishTaskTip).then((res) => { + if(res) $.ajaxSubmit({url: formUrl, data: formData}) + }); + return false; + } +} diff --git a/module/task/ui/editeffort.html.php b/module/task/ui/editeffort.html.php index 4843a2eb76..8c2ca2a954 100644 --- a/module/task/ui/editeffort.html.php +++ b/module/task/ui/editeffort.html.php @@ -12,11 +12,15 @@ declare(strict_types=1); namespace zin; $readonly = !$effort->isLast || (!empty($task->team) && $effort->left == 0); +jsVar('isReadonly', $readonly); +jsVar('finishTaskTip', $lang->task->confirmRecord); modalHeader(set::title($lang->task->editEffort)); formPanel ( + setID('editEffortForm'), set::shadow(!isAjaxRequest('modal')), + set::ajax(array('beforeSubmit' => jsRaw("clickSubmit"))), formGroup ( set::width('1/3'),