* [task#126376,doing,2h] Add the tutorial of taskMange.

This commit is contained in:
xieqiyu
2024-09-04 17:31:41 +08:00
committed by 王于听
parent 47d72362d4
commit 922198443d
8 changed files with 319 additions and 5 deletions
+4
View File
@@ -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');
}
+2 -2
View File
@@ -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
);
+1 -1
View File
@@ -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;
+1
View File
@@ -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;
+198
View File
@@ -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
);
+1
View File
@@ -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;
+92
View File
@@ -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 = '保存后任务状态变为已关闭';
+20 -2
View File
@@ -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;
}