diff --git a/module/group/lang/resource.php b/module/group/lang/resource.php index eabe5a8522..1cc81b04e5 100644 --- a/module/group/lang/resource.php +++ b/module/group/lang/resource.php @@ -113,6 +113,7 @@ $lang->resource->todo->batchEdit = 'batchEdit'; $lang->resource->todo->view = 'view'; $lang->resource->todo->delete = 'delete'; $lang->resource->todo->export = 'export'; +$lang->resource->todo->start = 'start'; $lang->resource->todo->finish = 'finish'; $lang->resource->todo->batchFinish = 'batchFinish'; $lang->resource->todo->import2Today = 'import2Today'; @@ -129,13 +130,14 @@ $lang->todo->methodOrder[25] = 'batchEdit'; $lang->todo->methodOrder[30] = 'view'; $lang->todo->methodOrder[35] = 'delete'; $lang->todo->methodOrder[40] = 'export'; -$lang->todo->methodOrder[45] = 'finish'; -$lang->todo->methodOrder[50] = 'batchFinish'; -$lang->todo->methodOrder[55] = 'import2Today'; -$lang->todo->methodOrder[60] = 'assignTo'; -$lang->todo->methodOrder[65] = 'activate'; -$lang->todo->methodOrder[70] = 'close'; -$lang->todo->methodOrder[75] = 'batchClose'; +$lang->todo->methodOrder[45] = 'start'; +$lang->todo->methodOrder[50] = 'finish'; +$lang->todo->methodOrder[55] = 'batchFinish'; +$lang->todo->methodOrder[60] = 'import2Today'; +$lang->todo->methodOrder[65] = 'assignTo'; +$lang->todo->methodOrder[70] = 'activate'; +$lang->todo->methodOrder[75] = 'close'; +$lang->todo->methodOrder[80] = 'batchClose'; /* Product. */ $lang->resource->product = new stdclass(); diff --git a/module/my/view/todo.html.php b/module/my/view/todo.html.php index a8f91eeb9f..cb0a43d53b 100644 --- a/module/my/view/todo.html.php +++ b/module/my/view/todo.html.php @@ -72,7 +72,7 @@ todo->beginAB);?> todo->endAB);?> todo->status);?> - actions;?> + actions;?> @@ -96,6 +96,7 @@ todo->statusList[$todo->status];?> id", $todo, 'list', 'play', 'hiddenwin'); if($todo->status == 'done' or $todo->status == 'closed') { common::printIcon('todo', 'activate', "id=$todo->id", $todo, 'list', 'magic', 'hiddenwin'); diff --git a/module/todo/control.php b/module/todo/control.php index 65e4d24188..25d3c38b28 100644 --- a/module/todo/control.php +++ b/module/todo/control.php @@ -245,6 +245,28 @@ class todo extends control } } + /** + * Start a todo. + * + * @param int $todoID + * @access public + * @return void + */ + public function start($todoID) + { + $todo = $this->todo->getById($todoID); + if($todo->status == 'wait') $this->todo->start($todoID); + if(in_array($todo->type, array('bug', 'task', 'story'))) + { + $confirmNote = 'confirm' . ucfirst($todo->type); + $confirmURL = $this->createLink($todo->type, 'view', "id=$todo->idvalue"); + $cancelURL = $this->server->HTTP_REFERER; + die(js::confirm(sprintf($this->lang->todo->$confirmNote, $todo->idvalue), $confirmURL, $cancelURL, 'parent', 'parent')); + } + if(isonlybody())die(js::reload('parent.parent')); + die(js::reload('parent')); + } + /** * Activated todo. * diff --git a/module/todo/lang/de.php b/module/todo/lang/de.php index e834bb951f..c97a2ac56a 100644 --- a/module/todo/lang/de.php +++ b/module/todo/lang/de.php @@ -16,6 +16,7 @@ $lang->todo->createCycle = "Wiederkehrenden Todo hinzufügen"; $lang->todo->assignTo = "Zuordnen"; $lang->todo->assignedDate = "Assigned Date"; $lang->todo->assignAction = "Assign Todo"; +$lang->todo->start = "Start Todo"; $lang->todo->activate = "Aktivieren"; $lang->todo->batchCreate = "Mehrere hinzufügen"; $lang->todo->edit = "Bearbeiten"; diff --git a/module/todo/lang/en.php b/module/todo/lang/en.php index e945ae689b..adc01e2158 100644 --- a/module/todo/lang/en.php +++ b/module/todo/lang/en.php @@ -16,6 +16,7 @@ $lang->todo->createCycle = "Add Recurred Todo"; $lang->todo->assignTo = "Assigned To"; $lang->todo->assignedDate = "Assigned Date"; $lang->todo->assignAction = "Assign Todo"; +$lang->todo->start = "Start Todo"; $lang->todo->activate = "Activate Todo"; $lang->todo->batchCreate = "Batch Add "; $lang->todo->edit = "Edit Todo"; diff --git a/module/todo/lang/fr.php b/module/todo/lang/fr.php index b976e2902a..508c2a2d61 100644 --- a/module/todo/lang/fr.php +++ b/module/todo/lang/fr.php @@ -16,6 +16,7 @@ $lang->todo->createCycle = "Ajout Tâche récurrente"; $lang->todo->assignTo = "Affecter à"; $lang->todo->assignedDate = "Date Affectation"; $lang->todo->assignAction = "Affacter Action"; +$lang->todo->start = "Start Todo"; $lang->todo->activate = "Activer Entrée"; $lang->todo->batchCreate = "Ajout par lot "; $lang->todo->edit = "Editer Agenda"; diff --git a/module/todo/lang/vi.php b/module/todo/lang/vi.php index 411a3a98c1..5d2fee1dd3 100644 --- a/module/todo/lang/vi.php +++ b/module/todo/lang/vi.php @@ -16,6 +16,7 @@ $lang->todo->createCycle = "Thêm việc lặp lại"; $lang->todo->assignTo = "Giao cho"; $lang->todo->assignedDate = "Ngày giao"; $lang->todo->assignAction = "Giao việc"; +$lang->todo->start = "Start Todo"; $lang->todo->activate = "Kích hoạt việc"; $lang->todo->batchCreate = "Thêm hàng loạt"; $lang->todo->edit = "Sửa việc"; diff --git a/module/todo/lang/zh-cn.php b/module/todo/lang/zh-cn.php index 2e001387de..e6eacec57e 100644 --- a/module/todo/lang/zh-cn.php +++ b/module/todo/lang/zh-cn.php @@ -16,6 +16,7 @@ $lang->todo->createCycle = "创建周期待办"; $lang->todo->assignTo = "指派给"; $lang->todo->assignedDate = "指派日期"; $lang->todo->assignAction = "指派待办"; +$lang->todo->start = "开始待办"; $lang->todo->activate = "激活待办"; $lang->todo->batchCreate = "批量添加"; $lang->todo->edit = "编辑待办"; diff --git a/module/todo/model.php b/module/todo/model.php index 9aba516abf..06d0e39032 100644 --- a/module/todo/model.php +++ b/module/todo/model.php @@ -288,6 +288,20 @@ class todoModel extends model return $allChanges; } + /** + * Start one todo. + * + * @param string $todoID + * @access public + * @return void + */ + public function start($todoID) + { + $this->dao->update(TABLE_TODO)->set('status')->eq('doing')->where('id')->eq((int)$todoID)->exec(); + $this->loadModel('action')->create('todo', $todoID, 'started'); + } + + /** * Change the status of a todo. * @@ -478,6 +492,12 @@ class todoModel extends model return $todo->status != 'done'; } + if($action == 'start') + { + if(!empty($todo->cycle)) return false; + return $todo->status == 'wait'; + } + return true; } diff --git a/module/todo/view/view.html.php b/module/todo/view/view.html.php index 4685a6e576..a8de327a32 100644 --- a/module/todo/view/view.html.php +++ b/module/todo/view/view.html.php @@ -41,6 +41,7 @@
status == 'wait') common::printLink('todo', 'start', "todoID=$todo->id", "", 'hiddenwin', "title='{$lang->todo->start}' class='btn showinonlybody'"); if($todo->status == 'done' || $todo->status == 'closed') common::printLink('todo', 'activate', "todoID=$todo->id", "", 'hiddenwin', "title='{$lang->todo->activate}' class='btn showinonlybody'"); if($todo->status == 'done') common::printLink('todo', 'close', "todoID=$todo->id", "", 'hiddenwin', "title='{$lang->todo->close}' class='btn showinonlybody'"); common::printLink('todo', 'edit', "todoID=$todo->id", "", '', "title='{$lang->todo->edit}' class='btn showinonlybody'");