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 @@
@@ -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'");
|