* [task#126376,doing,2h] Add the tutorial of taskMange.
This commit is contained in:
@@ -1331,6 +1331,8 @@ class executionModel extends model
|
||||
*/
|
||||
public function getList(int $projectID = 0, string $type = 'all',string $status = 'all', int $limit = 0, int $productID = 0, int $branch = 0, object|null $pager = null, bool $withChildren = true)
|
||||
{
|
||||
if(common::isTutorialMode()) return $this->loadModel('tutorial')->getExecutionStats($type);
|
||||
|
||||
if($status == 'involved') return $this->getInvolvedExecutionList($projectID, $status, $limit, $productID, $branch);
|
||||
|
||||
if($productID != 0)
|
||||
@@ -1823,6 +1825,8 @@ class executionModel extends model
|
||||
*/
|
||||
public function getNoMultipleID(int $projectID): int
|
||||
{
|
||||
if(common::isTutorialMode()) return $this->loadModel('tutorial')->getExecution()->id;
|
||||
|
||||
return (int)$this->dao->select('id')->from(TABLE_EXECUTION)->where('project')->eq($projectID)->andWhere('multiple')->eq(0)->andWhere('deleted')->eq(0)->fetch('id');
|
||||
}
|
||||
|
||||
|
||||
@@ -114,7 +114,7 @@ toolbar
|
||||
) : null,
|
||||
$canCreate && $canBatchCreate ? btngroup
|
||||
(
|
||||
btn(setClass('btn primary'), set::icon('plus'), set::url($createLink), $lang->task->create),
|
||||
btn(setClass('btn primary createTask-btn'), set::icon('plus'), set::url($createLink), $lang->task->create),
|
||||
dropdown
|
||||
(
|
||||
btn(setClass('btn primary dropdown-toggle'),
|
||||
@@ -123,7 +123,7 @@ toolbar
|
||||
set::placement('bottom-end')
|
||||
)
|
||||
) : null,
|
||||
$canCreate && !$canBatchCreate ? item(set($createItem + array('class' => 'btn primary', 'icon' => 'plus'))) : null,
|
||||
$canCreate && !$canBatchCreate ? item(set($createItem + array('class' => 'btn primary createTask-btn', 'icon' => 'plus'))) : null,
|
||||
$canBatchCreate && !$canCreate ? item(set($batchCreateItem + array('class' => 'btn primary', 'icon' => 'plus'))) : null
|
||||
);
|
||||
|
||||
|
||||
@@ -2164,7 +2164,7 @@ class projectModel extends model
|
||||
{
|
||||
$this->session->set('multiple', true);
|
||||
|
||||
$project = $this->projectTao->fetchProjectInfo($projectID);
|
||||
$project = common::isTutorialMode() ? $this->loadModel('tutorial')->getProject() : $this->projectTao->fetchProjectInfo($projectID);
|
||||
if(empty($project) || $project->multiple) return false;
|
||||
if(!in_array($project->type, array('project', 'sprint', 'kanban'))) return false;
|
||||
|
||||
|
||||
@@ -122,6 +122,7 @@ $config->task->actionList['close']['hint'] = $lang->task->close;
|
||||
$config->task->actionList['close']['text'] = $lang->task->close;
|
||||
$config->task->actionList['close']['url'] = array('module' => 'task', 'method' => 'close', 'params' => 'taskID={id}');
|
||||
$config->task->actionList['close']['data-toggle'] = 'modal';
|
||||
$config->task->actionList['close']['class'] = 'task-close-btn';
|
||||
|
||||
$config->task->actionList['recordWorkhour']['icon'] = 'time';
|
||||
$config->task->actionList['recordWorkhour']['hint'] = $lang->task->record;
|
||||
|
||||
@@ -0,0 +1,198 @@
|
||||
<?php
|
||||
global $lang;
|
||||
|
||||
$taskManage = new stdClass();
|
||||
$taskManage->name = 'taskManage';
|
||||
$taskManage->title = $lang->tutorial->taskManage->title;
|
||||
$taskManage->icon = 'check-sign text-special';
|
||||
$taskManage->type = 'basic';
|
||||
$taskManage->modules = 'project,execution,task';
|
||||
$taskManage->app = 'project';
|
||||
$taskManage->tasks = array();
|
||||
|
||||
$taskManage->tasks['taskManage'] = array();
|
||||
$taskManage->tasks['taskManage']['name'] = 'taskManage';
|
||||
$taskManage->tasks['taskManage']['title'] = $lang->tutorial->taskManage->title;
|
||||
$taskManage->tasks['taskManage']['startUrl'] = array('project', 'browse');
|
||||
$taskManage->tasks['taskManage']['steps'] = array();
|
||||
|
||||
$taskManage->tasks['taskManage']['steps'][] = array(
|
||||
'type' => 'openApp',
|
||||
'app' => 'project',
|
||||
'title' => $lang->tutorial->taskManage->step1->name,
|
||||
'desc' => $lang->tutorial->taskManage->step1->desc
|
||||
);
|
||||
|
||||
$taskManage->tasks['taskManage']['steps'][] = array(
|
||||
'type' => 'click',
|
||||
'target' => '#actionBar .create-project-btn',
|
||||
'page' => 'project-browse',
|
||||
'title' => $lang->tutorial->taskManage->step2->name,
|
||||
'desc' => $lang->tutorial->taskManage->step2->desc
|
||||
);
|
||||
|
||||
$taskManage->tasks['taskManage']['steps'][] = array(
|
||||
'type' => 'click',
|
||||
'target' => '#modelList div.scrum div.model-item',
|
||||
'page' => 'project-browse',
|
||||
'title' => $lang->tutorial->taskManage->step3->name,
|
||||
'desc' => $lang->tutorial->taskManage->step3->desc
|
||||
);
|
||||
|
||||
$taskManage->tasks['taskManage']['steps'][] = array(
|
||||
'type' => 'form',
|
||||
'page' => 'project-create',
|
||||
'title' => $lang->tutorial->taskManage->step4->name
|
||||
);
|
||||
|
||||
$taskManage->tasks['taskManage']['steps'][] = array(
|
||||
'type' => 'saveForm',
|
||||
'page' => 'project-create',
|
||||
'title' => $lang->tutorial->taskManage->step5->name,
|
||||
'desc' => $lang->tutorial->taskManage->step5->desc
|
||||
);
|
||||
|
||||
$taskManage->tasks['taskManage']['steps'][] = array(
|
||||
'type' => 'click',
|
||||
'target' => '#table-project-browse .dtable-body div[data-col="name"][data-row="2"] a',
|
||||
'page' => 'project-browse',
|
||||
'url' => array('project', 'browse'),
|
||||
'title' => $lang->tutorial->taskManage->step6->name,
|
||||
'desc' => $lang->tutorial->taskManage->step6->desc
|
||||
);
|
||||
|
||||
$taskManage->tasks['taskManage']['steps'][] = array(
|
||||
'type' => 'click',
|
||||
'target' => 'a.createTask-btn',
|
||||
'page' => 'execution-task',
|
||||
'title' => $lang->tutorial->taskManage->step7->name,
|
||||
'desc' => $lang->tutorial->taskManage->step7->desc
|
||||
);
|
||||
|
||||
$taskManage->tasks['taskManage']['steps'][] = array(
|
||||
'type' => 'form',
|
||||
'page' => 'task-create',
|
||||
'title' => $lang->tutorial->taskManage->step8->name
|
||||
);
|
||||
|
||||
$taskManage->tasks['taskManage']['steps'][] = array(
|
||||
'type' => 'saveForm',
|
||||
'page' => 'task-create',
|
||||
'title' => $lang->tutorial->taskManage->step9->name,
|
||||
'desc' => $lang->tutorial->taskManage->step9->desc
|
||||
);
|
||||
|
||||
$taskManage->tasks['taskManage']['steps'][] = array(
|
||||
'type' => 'click',
|
||||
'target' => '#table-execution-task div[data-row="1"] a.dtable-assign-btn',
|
||||
'page' => 'execution-task',
|
||||
'url' => array('execution', 'task', 'executionID=3'),
|
||||
'title' => $lang->tutorial->taskManage->step10->name,
|
||||
'desc' => $lang->tutorial->taskManage->step10->desc
|
||||
);
|
||||
|
||||
$taskManage->tasks['taskManage']['steps'][] = array(
|
||||
'type' => 'form',
|
||||
'page' => 'execution-task',
|
||||
'title' => $lang->tutorial->taskManage->step11->name,
|
||||
);
|
||||
|
||||
$taskManage->tasks['taskManage']['steps'][] = array(
|
||||
'type' => 'saveForm',
|
||||
'page' => 'form button[type="submit"]',
|
||||
'page' => 'execution-task',
|
||||
'title' => $lang->tutorial->taskManage->step12->name,
|
||||
'desc' => $lang->tutorial->taskManage->step12->desc
|
||||
);
|
||||
|
||||
$taskManage->tasks['taskManage']['steps'][] = array(
|
||||
'type' => 'click',
|
||||
'target' => '#table-execution-task div[data-row="1"] a.task-start-btn',
|
||||
'page' => 'execution-task',
|
||||
'url' => array('execution', 'task', 'executionID=3'),
|
||||
'title' => $lang->tutorial->taskManage->step13->name,
|
||||
'desc' => $lang->tutorial->taskManage->step13->desc
|
||||
);
|
||||
|
||||
$taskManage->tasks['taskManage']['steps'][] = array(
|
||||
'type' => 'form',
|
||||
'page' => 'execution-task',
|
||||
'title' => $lang->tutorial->taskManage->step14->name,
|
||||
);
|
||||
|
||||
$taskManage->tasks['taskManage']['steps'][] = array(
|
||||
'type' => 'saveForm',
|
||||
'page' => 'form button[type="submit"]',
|
||||
'page' => 'execution-task',
|
||||
'title' => $lang->tutorial->taskManage->step15->name,
|
||||
'desc' => $lang->tutorial->taskManage->step15->desc
|
||||
);
|
||||
|
||||
$taskManage->tasks['taskManage']['steps'][] = array(
|
||||
'type' => 'click',
|
||||
'target' => '#table-execution-task div[data-row="1"] a.task-record-btn',
|
||||
'page' => 'execution-task',
|
||||
'url' => array('execution', 'task', 'executionID=3'),
|
||||
'title' => $lang->tutorial->taskManage->step16->name,
|
||||
'desc' => $lang->tutorial->taskManage->step16->desc
|
||||
);
|
||||
|
||||
$taskManage->tasks['taskManage']['steps'][] = array(
|
||||
'type' => 'form',
|
||||
'page' => 'execution-task',
|
||||
'title' => $lang->tutorial->taskManage->step17->name,
|
||||
);
|
||||
|
||||
$taskManage->tasks['taskManage']['steps'][] = array(
|
||||
'type' => 'saveForm',
|
||||
'page' => 'form button[type="submit"]',
|
||||
'page' => 'execution-task',
|
||||
'title' => $lang->tutorial->taskManage->step18->name,
|
||||
'desc' => $lang->tutorial->taskManage->step18->desc
|
||||
);
|
||||
|
||||
$taskManage->tasks['taskManage']['steps'][] = array(
|
||||
'type' => 'click',
|
||||
'target' => '#table-execution-task div[data-row="1"] a.task-finish-btn',
|
||||
'page' => 'execution-task',
|
||||
'url' => array('execution', 'task', 'executionID=3'),
|
||||
'title' => $lang->tutorial->taskManage->step19->name,
|
||||
'desc' => $lang->tutorial->taskManage->step19->desc
|
||||
);
|
||||
|
||||
$taskManage->tasks['taskManage']['steps'][] = array(
|
||||
'type' => 'form',
|
||||
'page' => 'execution-task',
|
||||
'title' => $lang->tutorial->taskManage->step20->name,
|
||||
);
|
||||
|
||||
$taskManage->tasks['taskManage']['steps'][] = array(
|
||||
'type' => 'saveForm',
|
||||
'target' => 'form button[type="submit"]',
|
||||
'page' => 'execution-task',
|
||||
'title' => $lang->tutorial->taskManage->step21->name,
|
||||
'desc' => $lang->tutorial->taskManage->step21->desc
|
||||
);
|
||||
|
||||
$taskManage->tasks['taskManage']['steps'][] = array(
|
||||
'type' => 'click',
|
||||
'target' => '#table-execution-task div[data-row="2"] a.task-close-btn',
|
||||
'page' => 'execution-task',
|
||||
'url' => array('execution', 'task', 'executionID=3'),
|
||||
'title' => $lang->tutorial->taskManage->step22->name,
|
||||
'desc' => $lang->tutorial->taskManage->step22->desc
|
||||
);
|
||||
|
||||
$taskManage->tasks['taskManage']['steps'][] = array(
|
||||
'type' => 'form',
|
||||
'page' => 'execution-task',
|
||||
'title' => $lang->tutorial->taskManage->step23->name,
|
||||
);
|
||||
|
||||
$taskManage->tasks['taskManage']['steps'][] = array(
|
||||
'type' => 'saveForm',
|
||||
'target' => 'form button[type="submit"]',
|
||||
'page' => 'execution-task',
|
||||
'title' => $lang->tutorial->taskManage->step24->name,
|
||||
'desc' => $lang->tutorial->taskManage->step24->desc
|
||||
);
|
||||
@@ -37,6 +37,7 @@ $config->tutorial->guides[$manageAccount->name] = $manageAccount;
|
||||
$config->tutorial->guides[$scrumProjectManage->basic->name] = $scrumProjectManage->basic;
|
||||
$config->tutorial->guides[$waterfallProjectManage->basic->name] = $waterfallProjectManage->basic;
|
||||
$config->tutorial->guides[$kanbanProjectManage->basic->name] = $kanbanProjectManage->basic;
|
||||
$config->tutorial->guides[$taskManage->name] = $taskManage;
|
||||
|
||||
/* Advance tutorial. */
|
||||
$config->tutorial->guides[$scrumProjectManage->advance->name] = $scrumProjectManage->advance;
|
||||
|
||||
@@ -796,3 +796,95 @@ $lang->tutorial->kanbanProjectManage->manageBuild->step4->desc = '保存后在
|
||||
$lang->tutorial->kanbanProjectManage->manageBuild->step5 = new stdClass();
|
||||
$lang->tutorial->kanbanProjectManage->manageBuild->step5->name = '点击累积流图';
|
||||
$lang->tutorial->kanbanProjectManage->manageBuild->step5->desc = '可以在这里查看累积流图进行看板跟踪';
|
||||
|
||||
$lang->tutorial->taskManage = new stdClass();
|
||||
$lang->tutorial->taskManage->title = '任务管理教程';
|
||||
|
||||
$lang->tutorial->taskManage->step1 = new stdClass();
|
||||
$lang->tutorial->taskManage->step1->name = '点击项目';
|
||||
$lang->tutorial->taskManage->step1->desc = '点击进入项目,对项目及其任务进行管理';
|
||||
|
||||
$lang->tutorial->taskManage->step2 = new stdClass();
|
||||
$lang->tutorial->taskManage->step2->name = '点击创建项目';
|
||||
$lang->tutorial->taskManage->step2->desc = '点击创建一个无迭代的项目管理任务';
|
||||
|
||||
$lang->tutorial->taskManage->step3 = new stdClass();
|
||||
$lang->tutorial->taskManage->step3->name = '点击Scrum项目';
|
||||
$lang->tutorial->taskManage->step3->desc = '点击创建一个无迭代的项目';
|
||||
|
||||
$lang->tutorial->taskManage->step4 = new stdClass();
|
||||
$lang->tutorial->taskManage->step4->name = '填写表单';
|
||||
|
||||
$lang->tutorial->taskManage->step5 = new stdClass();
|
||||
$lang->tutorial->taskManage->step5->name = '保存表单';
|
||||
$lang->tutorial->taskManage->step5->desc = '保存后在项目列表查看';
|
||||
|
||||
$lang->tutorial->taskManage->step6 = new stdClass();
|
||||
$lang->tutorial->taskManage->step6->name = '点击项目名称';
|
||||
$lang->tutorial->taskManage->step6->desc = '点击项目名称,进入项目';
|
||||
|
||||
$lang->tutorial->taskManage->step7 = new stdClass();
|
||||
$lang->tutorial->taskManage->step7->name = '点击新建任务';
|
||||
$lang->tutorial->taskManage->step7->desc = '点击创建项目的任务';
|
||||
|
||||
$lang->tutorial->taskManage->step8 = new stdClass();
|
||||
$lang->tutorial->taskManage->step8->name = '填写表单';
|
||||
|
||||
$lang->tutorial->taskManage->step9 = new stdClass();
|
||||
$lang->tutorial->taskManage->step9->name = '保存表单';
|
||||
$lang->tutorial->taskManage->step9->desc = '保存后可以在任务列表中查看任务';
|
||||
|
||||
$lang->tutorial->taskManage->step10 = new stdClass();
|
||||
$lang->tutorial->taskManage->step10->name = '点击指派给';
|
||||
$lang->tutorial->taskManage->step10->desc = '点击领取、分配任务到人';
|
||||
|
||||
$lang->tutorial->taskManage->step11 = new stdClass();
|
||||
$lang->tutorial->taskManage->step11->name = '填写表单';
|
||||
|
||||
$lang->tutorial->taskManage->step12 = new stdClass();
|
||||
$lang->tutorial->taskManage->step12->name = '保存表单';
|
||||
$lang->tutorial->taskManage->step12->desc = '保存后在任务列表中指派给字段会显示被指派的用户';
|
||||
|
||||
$lang->tutorial->taskManage->step13 = new stdClass();
|
||||
$lang->tutorial->taskManage->step13->name = '点击开始任务';
|
||||
$lang->tutorial->taskManage->step13->desc = '您可以在这里开始任务,并记录消耗和剩余工时';
|
||||
|
||||
$lang->tutorial->taskManage->step14 = new stdClass();
|
||||
$lang->tutorial->taskManage->step14->name = '填写表单';
|
||||
|
||||
$lang->tutorial->taskManage->step15 = new stdClass();
|
||||
$lang->tutorial->taskManage->step15->name = '保存表单';
|
||||
$lang->tutorial->taskManage->step15->desc = '保存后任务状态变为进行中';
|
||||
|
||||
$lang->tutorial->taskManage->step16 = new stdClass();
|
||||
$lang->tutorial->taskManage->step16->name = '点击记录工时';
|
||||
$lang->tutorial->taskManage->step16->desc = '您可以在这里记录消耗和剩余工时,当剩余工时为0后,任务会自动完成';
|
||||
|
||||
$lang->tutorial->taskManage->step17 = new stdClass();
|
||||
$lang->tutorial->taskManage->step17->name = '填写表单';
|
||||
|
||||
$lang->tutorial->taskManage->step18 = new stdClass();
|
||||
$lang->tutorial->taskManage->step18->name = '保存表单';
|
||||
$lang->tutorial->taskManage->step18->desc = '保存后返回任务列表';
|
||||
|
||||
$lang->tutorial->taskManage->step19 = new stdClass();
|
||||
$lang->tutorial->taskManage->step19->name = '点击完成任务';
|
||||
$lang->tutorial->taskManage->step19->desc = '您可以在这里完成任务';
|
||||
|
||||
$lang->tutorial->taskManage->step20 = new stdClass();
|
||||
$lang->tutorial->taskManage->step20->name = '填写表单';
|
||||
|
||||
$lang->tutorial->taskManage->step21 = new stdClass();
|
||||
$lang->tutorial->taskManage->step21->name = '保存表单';
|
||||
$lang->tutorial->taskManage->step21->desc = '保存后任务状态变为已完成';
|
||||
|
||||
$lang->tutorial->taskManage->step22 = new stdClass();
|
||||
$lang->tutorial->taskManage->step22->name = '点击关闭任务';
|
||||
$lang->tutorial->taskManage->step22->desc = '确认任务完成后点击关闭任务';
|
||||
|
||||
$lang->tutorial->taskManage->step23 = new stdClass();
|
||||
$lang->tutorial->taskManage->step23->name = '填写表单';
|
||||
|
||||
$lang->tutorial->taskManage->step24 = new stdClass();
|
||||
$lang->tutorial->taskManage->step24->name = '保存表单';
|
||||
$lang->tutorial->taskManage->step24->desc = '保存后任务状态变为已关闭';
|
||||
|
||||
@@ -192,6 +192,12 @@ class tutorialModel extends model
|
||||
$project->name = 'Kanban Project';
|
||||
$project->model = 'kanban';
|
||||
}
|
||||
if($guide && strpos($guide, 'taskManage') !== false)
|
||||
{
|
||||
$project->name = 'No multiple Project';
|
||||
$project->model = 'scrum';
|
||||
$project->multiple = '0';
|
||||
}
|
||||
|
||||
return $project;
|
||||
}
|
||||
@@ -453,6 +459,12 @@ class tutorialModel extends model
|
||||
$execution->name = 'Test Kanban';
|
||||
$execution->type = 'kanban';
|
||||
}
|
||||
if($guide && strpos($guide, 'taskManage') !== false)
|
||||
{
|
||||
$execution->name = 'No multiple execution';
|
||||
$execution->type = 'spring';
|
||||
$execution->multiple = 0;
|
||||
}
|
||||
|
||||
return $execution;
|
||||
}
|
||||
@@ -648,10 +660,16 @@ class tutorialModel extends model
|
||||
*/
|
||||
public function getTasks(): array
|
||||
{
|
||||
$task = $this->getTask();
|
||||
$waitTask = $this->getTask();
|
||||
|
||||
$doneTask = $this->getTask();
|
||||
$doneTask->id = 2;
|
||||
$doneTask->status = 'done';
|
||||
$doneTask->finishedBy = 'test';
|
||||
|
||||
$tasks = array();
|
||||
$tasks[$task->id] = $task;
|
||||
$tasks[$waitTask->id] = $waitTask;
|
||||
$tasks[$doneTask->id] = $doneTask;
|
||||
return $tasks;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user