diff --git a/module/task/control.php b/module/task/control.php index 6c3a79a3f4..05a91e51a1 100644 --- a/module/task/control.php +++ b/module/task/control.php @@ -92,14 +92,58 @@ class task extends control // $this->display(); //} + /* 公共的操作。*/ + public function commonAction($taskID) + { + $this->view->task = $this->task->getById($taskID); + $this->view->project = $this->project->getById($this->view->task->project); + $this->view->members = $this->project->getTeamMemberPairs($this->view->project->id); + $this->view->users = $this->view->members; + $this->view->actions = $this->loadModel('action')->getList('task', $taskID); + + /* 设置菜单。*/ + $this->project->setMenu($this->project->getPairs(), $this->view->project->id); + $this->view->position[] = html::a($this->createLink('project', 'browse', "project={$this->view->task->project}"), $this->view->project->name); + + } + /* 编辑任务。*/ public function edit($taskID) { - $task = $this->task->getById($taskID); - $project = $this->project->getById($task->project); + /* 执行公共的操作。*/ + $this->commonAction($taskID); - /* 设置菜单。*/ - $this->project->setMenu($this->project->getPairs(), $project->id); + if(!empty($_POST)) + { + $this->loadModel('action'); + $changes = $this->task->update($taskID); + if(dao::isError()) die(js::error(dao::getError())); + $files = $this->loadModel('file')->saveUpload('task', $taskID); + + if($this->post->comment != '' or !empty($changes) or !empty($files)) + { + $action = !empty($changes) ? 'Edited' : 'Commented'; + $fileAction = ''; + if(!empty($files)) $fileAction = $this->lang->addFiles . join(',', $files) . "\n" ; + $actionID = $this->action->create('task', $taskID, $action, $fileAction . $this->post->comment); + $this->action->logHistory($actionID, $changes); + } + die(js::locate($this->createLink('task', 'view', "taskID=$taskID"), 'parent')); + } + + /* 赋值。*/ + $this->view->header->title = $this->lang->task->edit; + $this->view->position[] = $this->lang->task->edit; + $this->view->stories = $this->story->getProjectStoryPairs($this->view->project->id); + + $this->display(); + } + + /* 记录工时。*/ + public function logEfforts($taskID) + { + /* 执行公共的操作。*/ + $this->commonAction($taskID); if(!empty($_POST)) { @@ -121,19 +165,13 @@ class task extends control /* 导航信息。*/ - $this->view->header->title = $this->lang->task->edit; - $this->view->position[] = html::a($this->createLink('project', 'browse', "project=$task->project"), $project->name); - $this->view->position[] = $this->lang->task->edit; + $this->view->header->title = $this->lang->task->logEfforts; + $this->view->position[] = $this->lang->task->logEfforts; - $this->view->task = $task; - $this->view->project = $project; - $this->view->stories = $this->story->getProjectStoryPairs($project->id); - $this->view->members = $this->project->getTeamMemberPairs($project->id); - $this->view->users = $this->view->members; - $this->view->actions = $this->loadModel('action')->getList('task', $taskID); $this->display(); } + /* 查看任务。*/ public function view($taskID) { diff --git a/module/task/lang/zh-cn.php b/module/task/lang/zh-cn.php index 5d344ed994..640aa68d06 100644 --- a/module/task/lang/zh-cn.php +++ b/module/task/lang/zh-cn.php @@ -27,6 +27,10 @@ $lang->task->import = "导入之前未完任务"; $lang->task->edit = "更新任务"; $lang->task->delete = "删除任务"; $lang->task->view = "查看任务"; +$lang->task->logEfforts= "记录工时"; +$lang->task->close = "关闭任务"; +$lang->task->cancel = "取消任务"; +$lang->task->activate = "激活任务"; $lang->task->common = '任务'; $lang->task->id = '编号'; @@ -49,7 +53,6 @@ $lang->task->statusList['wait'] = '未开始'; $lang->task->statusList['doing'] = '进行中'; $lang->task->statusList['done'] = '已完成'; $lang->task->statusList['cancel'] = '已取消'; -$lang->task->statusList['delayed'] = '延期'; $lang->task->typeList[''] = ''; $lang->task->typeList['design'] = '设计'; @@ -71,6 +74,11 @@ $lang->task->afterChoices['toTastList'] = '返回任务列表'; $lang->task->afterChoices['toStoryList'] = '返回需求列表'; $lang->task->buttonEdit = '编辑'; +$lang->task->buttonClose = '关闭'; +$lang->task->buttonCancel = '取消'; +$lang->task->buttonActivate = '激活'; +$lang->task->buttonLogEfforts = '记录工时'; +$lang->task->buttonDelete = '删除'; $lang->task->buttonBackToList = '返回'; $lang->task->legendBasic = '基本信息'; diff --git a/module/task/model.php b/module/task/model.php index a7b515d158..9278acb812 100644 --- a/module/task/model.php +++ b/module/task/model.php @@ -69,6 +69,8 @@ class taskModel extends model ->setDefault('story, estimate, left, consumed', 0) ->setIF($this->post->story != false and $this->post->story != $oldTask->story, 'storyVersion', $this->loadModel('story')->getVersion($this->post->story)) ->setIF($this->post->status == 'done', 'left', 0) + ->setIF($this->post->left == 0, 'status', 'done') + ->setIF($this->post->consumed > 0 and $this->post->left > 0 and $this->post->status == 'wait', 'status', 'doing') ->setDefault('statusCustom', strpos(self::CUSTOM_STATUS_ORDER, $this->post->status) + 1) ->remove('comment,fiels,labels') ->get(); @@ -78,6 +80,7 @@ class taskModel extends model ->checkIF($task->estimate != false, 'estimate', 'float') ->checkIF($task->left != false, 'left', 'float') ->checkIF($task->consumed != false, 'consumed', 'float') + ->checkIF($task->status == 'done', 'consumed', 'notempty') ->where('id')->eq((int)$taskID)->exec(); if($this->post->story != false) $this->loadModel('story')->setStage($this->post->story); if(!dao::isError()) return common::createChanges($oldTask, $task); diff --git a/module/task/view/edit.html.php b/module/task/view/edit.html.php index 6fcdce0c10..3952ce6373 100644 --- a/module/task/view/edit.html.php +++ b/module/task/view/edit.html.php @@ -46,7 +46,7 @@ fetch('file', 'buildform');?> -
+