diff --git a/module/task/control.php b/module/task/control.php index 943641bc5a..f5298d3508 100644 --- a/module/task/control.php +++ b/module/task/control.php @@ -1455,7 +1455,11 @@ class task extends control } /* Skip parent task when batch close task. */ - if($task->parent == '-1') continue; + if(empty($parentTaskIdList) and ($task->parent == '-1')) + { + $parentTasks[$taskID] = $taskID; + continue; + } /* Skip closed task when batch close task. */ if($task->status == 'closed') continue; @@ -1474,6 +1478,13 @@ class task extends control $cancelURL = $this->server->HTTP_REFERER; return print(js::confirm(sprintf($this->lang->task->error->skipClose, $skipTasks), $confirmURL, $cancelURL, 'self', 'parent')); } + + if(isset($parentTasks) and empty($parentTaskIdList)) + { + $parentTasks = join(',', $parentTasks); + return print(js::alert(sprintf($this->lang->task->error->closeParent, $parentTasks)) . js::reload('parent')); + } + if(!dao::isError()) $this->loadModel('score')->create('ajax', 'batchOther'); } diff --git a/module/task/lang/en.php b/module/task/lang/en.php index b6eacee3be..1c6c97db04 100644 --- a/module/task/lang/en.php +++ b/module/task/lang/en.php @@ -237,6 +237,7 @@ $lang->task->error->left = 'Please enter "Hours Left"'; $lang->task->error->work = '"Comment" must be < %d characters.'; $lang->task->error->skipClose = 'Task: %s is not “Finished” or “Cancelled”. Do you want to close it?'; $lang->task->error->consumed = 'Task: %s hour must be < 0. Ignore changes to this task.'; +$lang->task->error->closeParent = 'Task: %s is the Parent Task, which is automatically closed after all subtasks under the Parent Task are closed and cannot be closed manually.'; $lang->task->error->assignedTo = 'Multi-user task in the current status cannot be assigned to a member who is not in the task team.'; $lang->task->error->consumedEmpty = '"Current Cost" should not be 0.'; $lang->task->error->deadlineSmall = '"Deadline" must be greater than "StartDate".'; diff --git a/module/task/lang/zh-cn.php b/module/task/lang/zh-cn.php index f1a9a910b1..d94b5b1690 100644 --- a/module/task/lang/zh-cn.php +++ b/module/task/lang/zh-cn.php @@ -236,6 +236,7 @@ $lang->task->error->left = '请填写"剩余"'; $lang->task->error->work = '"备注"必须小于%d个字符'; $lang->task->error->teamMember = '团队成员必须不少于2人'; $lang->task->error->skipClose = '任务:%s 不是“已完成”或“已取消”状态,确定要关闭吗?'; +$lang->task->error->closeParent = '任务:%s 是父任务,父任务在其产生的所有子任务关闭后会自动关闭,无法手动关闭。'; $lang->task->error->consumed = '任务:%s工时不能小于0,忽略该任务工时的改动'; $lang->task->error->assignedTo = '当前状态的多人任务不能指派给任务团队外的成员。'; $lang->task->error->consumedEmpty = '"本次消耗"不能为0';