* Finish task #57099.

This commit is contained in:
liumengyi
2022-06-15 10:06:26 +08:00
parent 9a74ea6d5d
commit 8a8666f158
3 changed files with 168 additions and 154 deletions
+20 -8
View File
@@ -1542,7 +1542,7 @@ class execution extends control
* @access public
* @return void
*/
public function edit($executionID, $action = 'edit', $extra = '')
public function edit($executionID, $action = 'edit', $extra = '', $newPlans = '', $confirm = 'no')
{
/* Load language files and get browseExecutionLink. */
$this->loadModel('product');
@@ -1561,6 +1561,19 @@ class execution extends control
include $this->app->getModulePath('', 'execution') . 'lang/' . $this->app->getClientLang() . '.php';
}
if(!empty($newPlans) and $confirm == 'yes')
{
$newPlans = explode(',', $newPlans);
$projectID = $this->dao->select('project')->from(TABLE_EXECUTION)->where('id')->eq($executionID)->fetch('project');
$this->loadModel('productplan')->linkProject($executionID, $newPlans);
$this->productplan->linkProject($projectID, $newPlans);
return $this->send(array('result' => 'success', 'locate' => inlink('view', "executionID=$executionID")));
}
elseif(!empty($newPlans))
{
return print(js::confirm($this->lang->execution->importEditPlanStory, inlink('edit', "executionID=$executionID&action=edit&extra=&newPlans=$newPlans&confirm=yes"), inlink('view', "executionID=$executionID")));
}
if(!empty($_POST))
{
$oldPlans = $this->dao->select('plan')->from(TABLE_PROJECTPRODUCT)->where('project')->eq($executionID)->andWhere('plan')->ne(0)->fetchPairs('plan');
@@ -1591,6 +1604,7 @@ class execution extends control
}
/* Link the plan stories. */
$oldPlans = explode(',', implode(',' ,$oldPlans));
$newPlans = array();
if(isset($_POST['plans']))
{
@@ -1601,19 +1615,17 @@ class execution extends control
{
foreach($planList as $planID)
{
$newPlans[$planID] = $planID;
if(!array_search($planID, $oldPlans)) $newPlans[$planID] = $planID;
}
}
}
}
$diffResult = array_diff($oldPlans, $newPlans);
$diffResult = array_merge($diffResult, array_diff($newPlans, $oldPlans));
if(!empty($newPlans) and !empty($diffResult))
$newPlans = array_filter($newPlans);
if(!empty($newPlans))
{
$projectID = $this->dao->select('project')->from(TABLE_EXECUTION)->where('id')->eq($executionID)->fetch('project');
$this->loadModel('productplan')->linkProject($executionID, $newPlans);
$this->productplan->linkProject($projectID, $newPlans);
$newPlans = implode(',', $newPlans);
return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => inlink('edit', "executionID=$executionID&action=edit&extra=&newPlans=$newPlans&confirm=no")));
}
$message = $this->executeHooks($executionID);
+74 -73
View File
@@ -205,79 +205,80 @@ $lang->execution->burnByList['estimate'] = "View by plan hours";
$lang->execution->burnByList['storyPoint'] = 'View by story point';
/* Method list. */
$lang->execution->index = "{$lang->executionCommon} Home";
$lang->execution->task = 'Task List';
$lang->execution->groupTask = 'Group View';
$lang->execution->story = 'Story List';
$lang->execution->qa = 'QA';
$lang->execution->bug = 'Bug List';
$lang->execution->testcase = 'Testcase List';
$lang->execution->dynamic = 'Dynamics';
$lang->execution->latestDynamic = 'Dynamics';
$lang->execution->build = 'Build List';
$lang->execution->testtask = 'Request';
$lang->execution->burn = 'Burndown';
$lang->execution->computeBurn = 'Update';
$lang->execution->burnData = 'Burndown Data';
$lang->execution->fixFirst = 'Edit 1st-Day Estimates';
$lang->execution->team = 'Members';
$lang->execution->doc = 'Document';
$lang->execution->doclib = 'Docoment Library';
$lang->execution->manageProducts = 'Linked ' . $lang->productCommon . 's';
$lang->execution->linkStory = 'Link Stories';
$lang->execution->linkStoryByPlan = 'Link Stories By Plan';
$lang->execution->linkPlan = 'Linked Plan';
$lang->execution->unlinkStoryTasks = 'Unlink';
$lang->execution->linkedProducts = "Linked {$lang->productCommon}s";
$lang->execution->unlinkedProducts = "Unlinked {$lang->productCommon}s";
$lang->execution->view = "Execution Detail";
$lang->execution->startAction = "Start Execution";
$lang->execution->activateAction = "Activate Execution";
$lang->execution->delayAction = "Delay Execution";
$lang->execution->suspendAction = "Suspend Execution";
$lang->execution->closeAction = "Close Execution";
$lang->execution->testtaskAction = "Execution Request";
$lang->execution->teamAction = "Execution Members";
$lang->execution->kanbanAction = "Execution Kanban";
$lang->execution->printKanbanAction = "Print Kanban";
$lang->execution->treeAction = "Execution Tree View";
$lang->execution->exportAction = "Export Execution";
$lang->execution->computeBurnAction = "Update Burndown";
$lang->execution->create = "Create {$lang->executionCommon}";
$lang->execution->createExec = "Create {$lang->execution->common}";
$lang->execution->createAction = "Create {$lang->execution->common}";
$lang->execution->copyExec = "Copy {$lang->execution->common}";
$lang->execution->copy = "Copy {$lang->executionCommon}";
$lang->execution->delete = "Delete {$lang->executionCommon}";
$lang->execution->deleteAB = "Delete Execution";
$lang->execution->browse = "{$lang->executionCommon} List";
$lang->execution->edit = "Edit {$lang->executionCommon}";
$lang->execution->editAction = "Edit Execution";
$lang->execution->batchEdit = "Edit";
$lang->execution->batchEditAction = "Batch Edit";
$lang->execution->manageMembers = 'Manage Team';
$lang->execution->unlinkMember = 'Remove Member';
$lang->execution->unlinkStory = 'Unlink Story';
$lang->execution->unlinkStoryAB = 'Unlink';
$lang->execution->batchUnlinkStory = 'Batch Unlink Stories';
$lang->execution->importTask = 'Transfer Task';
$lang->execution->importPlanStories = 'Link Stories By Plan';
$lang->execution->importBug = 'Import Bug';
$lang->execution->tree = 'Tree';
$lang->execution->treeTask = 'Show Task Only';
$lang->execution->treeStory = 'Show Story Only';
$lang->execution->treeOnlyTask = 'Show Task Only';
$lang->execution->treeOnlyStory = 'Show Story Only';
$lang->execution->storyKanban = 'Story Kanban';
$lang->execution->storySort = 'Rank Story';
$lang->execution->importPlanStory = $lang->executionCommon . ' is created!\nDo you want to import stories that have been linked to the plan?';
$lang->execution->needLinkProducts = 'The execution has not been linked with any product, and the related functions cannot be used. Please link the product first and try again.';
$lang->execution->iteration = 'Iterations';
$lang->execution->iterationInfo = '%s Iterations';
$lang->execution->viewAll = 'View All';
$lang->execution->testreport = 'Test Report';
$lang->execution->taskKanban = 'Task Kanban';
$lang->execution->RDKanban = 'Research & Development Kanban';
$lang->execution->index = "{$lang->executionCommon} Home";
$lang->execution->task = 'Task List';
$lang->execution->groupTask = 'Group View';
$lang->execution->story = 'Story List';
$lang->execution->qa = 'QA';
$lang->execution->bug = 'Bug List';
$lang->execution->testcase = 'Testcase List';
$lang->execution->dynamic = 'Dynamics';
$lang->execution->latestDynamic = 'Dynamics';
$lang->execution->build = 'Build List';
$lang->execution->testtask = 'Request';
$lang->execution->burn = 'Burndown';
$lang->execution->computeBurn = 'Update';
$lang->execution->burnData = 'Burndown Data';
$lang->execution->fixFirst = 'Edit 1st-Day Estimates';
$lang->execution->team = 'Members';
$lang->execution->doc = 'Document';
$lang->execution->doclib = 'Docoment Library';
$lang->execution->manageProducts = 'Linked ' . $lang->productCommon . 's';
$lang->execution->linkStory = 'Link Stories';
$lang->execution->linkStoryByPlan = 'Link Stories By Plan';
$lang->execution->linkPlan = 'Linked Plan';
$lang->execution->unlinkStoryTasks = 'Unlink';
$lang->execution->linkedProducts = "Linked {$lang->productCommon}s";
$lang->execution->unlinkedProducts = "Unlinked {$lang->productCommon}s";
$lang->execution->view = "Execution Detail";
$lang->execution->startAction = "Start Execution";
$lang->execution->activateAction = "Activate Execution";
$lang->execution->delayAction = "Delay Execution";
$lang->execution->suspendAction = "Suspend Execution";
$lang->execution->closeAction = "Close Execution";
$lang->execution->testtaskAction = "Execution Request";
$lang->execution->teamAction = "Execution Members";
$lang->execution->kanbanAction = "Execution Kanban";
$lang->execution->printKanbanAction = "Print Kanban";
$lang->execution->treeAction = "Execution Tree View";
$lang->execution->exportAction = "Export Execution";
$lang->execution->computeBurnAction = "Update Burndown";
$lang->execution->create = "Create {$lang->executionCommon}";
$lang->execution->createExec = "Create {$lang->execution->common}";
$lang->execution->createAction = "Create {$lang->execution->common}";
$lang->execution->copyExec = "Copy {$lang->execution->common}";
$lang->execution->copy = "Copy {$lang->executionCommon}";
$lang->execution->delete = "Delete {$lang->executionCommon}";
$lang->execution->deleteAB = "Delete Execution";
$lang->execution->browse = "{$lang->executionCommon} List";
$lang->execution->edit = "Edit {$lang->executionCommon}";
$lang->execution->editAction = "Edit Execution";
$lang->execution->batchEdit = "Edit";
$lang->execution->batchEditAction = "Batch Edit";
$lang->execution->manageMembers = 'Manage Team';
$lang->execution->unlinkMember = 'Remove Member';
$lang->execution->unlinkStory = 'Unlink Story';
$lang->execution->unlinkStoryAB = 'Unlink';
$lang->execution->batchUnlinkStory = 'Batch Unlink Stories';
$lang->execution->importTask = 'Transfer Task';
$lang->execution->importPlanStories = 'Link Stories By Plan';
$lang->execution->importBug = 'Import Bug';
$lang->execution->tree = 'Tree';
$lang->execution->treeTask = 'Show Task Only';
$lang->execution->treeStory = 'Show Story Only';
$lang->execution->treeOnlyTask = 'Show Task Only';
$lang->execution->treeOnlyStory = 'Show Story Only';
$lang->execution->storyKanban = 'Story Kanban';
$lang->execution->storySort = 'Rank Story';
$lang->execution->importPlanStory = $lang->executionCommon . ' is created!\nDo you want to import stories that have been linked to the plan?';
$lang->execution->importEditPlanStory = $lang->executionCommon . ' is edited!\nDo you want to import stories that have been linked to the plan?';
$lang->execution->needLinkProducts = 'The execution has not been linked with any product, and the related functions cannot be used. Please link the product first and try again.';
$lang->execution->iteration = 'Iterations';
$lang->execution->iterationInfo = '%s Iterations';
$lang->execution->viewAll = 'View All';
$lang->execution->testreport = 'Test Report';
$lang->execution->taskKanban = 'Task Kanban';
$lang->execution->RDKanban = 'Research & Development Kanban';
/* Group browsing. */
$lang->execution->allTasks = 'All';
+74 -73
View File
@@ -205,79 +205,80 @@ $lang->execution->burnByList['estimate'] = "按计划工时查看";
$lang->execution->burnByList['storyPoint'] = '按故事点查看';
/* 方法列表。*/
$lang->execution->index = "{$lang->execution->common}主页";
$lang->execution->task = '任务列表';
$lang->execution->groupTask = '分组浏览任务';
$lang->execution->story = "{$lang->SRCommon}列表";
$lang->execution->qa = '测试仪表盘';
$lang->execution->bug = 'Bug列表';
$lang->execution->testcase = '用例列表';
$lang->execution->dynamic = '动态';
$lang->execution->latestDynamic = '最新动态';
$lang->execution->build = '所有版本';
$lang->execution->testtask = '测试单';
$lang->execution->burn = '燃尽图';
$lang->execution->computeBurn = '更新燃尽图';
$lang->execution->burnData = '燃尽图数据';
$lang->execution->fixFirst = '修改首天工时';
$lang->execution->team = '团队成员';
$lang->execution->doc = '文档列表';
$lang->execution->doclib = '文档库列表';
$lang->execution->manageProducts = '关联' . $lang->productCommon;
$lang->execution->linkStory = "关联{$lang->SRCommon}";
$lang->execution->linkStoryByPlan = "按照计划关联";
$lang->execution->linkPlan = "关联计划";
$lang->execution->unlinkStoryTasks = "未关联{$lang->SRCommon}任务";
$lang->execution->linkedProducts = '已关联';
$lang->execution->unlinkedProducts = '未关联';
$lang->execution->view = "{$lang->execution->common}概况";
$lang->execution->startAction = "开始{$lang->execution->common}";
$lang->execution->activateAction = "激活{$lang->execution->common}";
$lang->execution->delayAction = "延期{$lang->execution->common}";
$lang->execution->suspendAction = "挂起{$lang->execution->common}";
$lang->execution->closeAction = "关闭{$lang->execution->common}";
$lang->execution->testtaskAction = "{$lang->execution->common}测试单";
$lang->execution->teamAction = "{$lang->execution->common}团队";
$lang->execution->kanbanAction = "{$lang->execution->common}看板";
$lang->execution->printKanbanAction = "打印看板";
$lang->execution->treeAction = "{$lang->execution->common}树状图";
$lang->execution->exportAction = "导出{$lang->execution->common}";
$lang->execution->computeBurnAction = "计算燃尽图";
$lang->execution->create = "添加{$lang->executionCommon}";
$lang->execution->createExec = "添加{$lang->execution->common}";
$lang->execution->createAction = "添加{$lang->execution->common}";
$lang->execution->copyExec = "复制{$lang->execution->common}";
$lang->execution->copy = "复制{$lang->executionCommon}";
$lang->execution->delete = "删除{$lang->executionCommon}";
$lang->execution->deleteAB = "删除{$lang->execution->common}";
$lang->execution->browse = "浏览{$lang->execution->common}";
$lang->execution->edit = "设置{$lang->executionCommon}";
$lang->execution->editAction = "编辑{$lang->execution->common}";
$lang->execution->batchEdit = "编辑";
$lang->execution->batchEditAction = "批量编辑";
$lang->execution->manageMembers = '团队管理';
$lang->execution->unlinkMember = '移除成员';
$lang->execution->unlinkStory = "移除{$lang->SRCommon}";
$lang->execution->unlinkStoryAB = "移除{$lang->SRCommon}";
$lang->execution->batchUnlinkStory = "批量移除{$lang->SRCommon}";
$lang->execution->importTask = '转入任务';
$lang->execution->importPlanStories = "按计划关联{$lang->SRCommon}";
$lang->execution->importBug = '导入Bug';
$lang->execution->tree = '树状图';
$lang->execution->treeTask = '只看任务';
$lang->execution->treeStory = "只看{$lang->SRCommon}";
$lang->execution->treeOnlyTask = '树状图只看任务';
$lang->execution->treeOnlyStory = "树状图只看{$lang->SRCommon}";
$lang->execution->storyKanban = "{$lang->SRCommon}看板";
$lang->execution->storySort = "{$lang->SRCommon}排序";
$lang->execution->importPlanStory = '创建' . $lang->executionCommon . '成功!\n是否导入计划关联的相关' . $lang->SRCommon . '?';
$lang->execution->needLinkProducts = '该执行还未关联任何产品,相关功能无法使用,请先关联产品后再试。';
$lang->execution->iteration = '版本迭代';
$lang->execution->iterationInfo = '迭代%s次';
$lang->execution->viewAll = '查看所有';
$lang->execution->testreport = '测试报告';
$lang->execution->taskKanban = '任务看板';
$lang->execution->RDKanban = '研发看板';
$lang->execution->index = "{$lang->execution->common}主页";
$lang->execution->task = '任务列表';
$lang->execution->groupTask = '分组浏览任务';
$lang->execution->story = "{$lang->SRCommon}列表";
$lang->execution->qa = '测试仪表盘';
$lang->execution->bug = 'Bug列表';
$lang->execution->testcase = '用例列表';
$lang->execution->dynamic = '动态';
$lang->execution->latestDynamic = '最新动态';
$lang->execution->build = '所有版本';
$lang->execution->testtask = '测试单';
$lang->execution->burn = '燃尽图';
$lang->execution->computeBurn = '更新燃尽图';
$lang->execution->burnData = '燃尽图数据';
$lang->execution->fixFirst = '修改首天工时';
$lang->execution->team = '团队成员';
$lang->execution->doc = '文档列表';
$lang->execution->doclib = '文档库列表';
$lang->execution->manageProducts = '关联' . $lang->productCommon;
$lang->execution->linkStory = "关联{$lang->SRCommon}";
$lang->execution->linkStoryByPlan = "按照计划关联";
$lang->execution->linkPlan = "关联计划";
$lang->execution->unlinkStoryTasks = "未关联{$lang->SRCommon}任务";
$lang->execution->linkedProducts = '已关联';
$lang->execution->unlinkedProducts = '未关联';
$lang->execution->view = "{$lang->execution->common}概况";
$lang->execution->startAction = "开始{$lang->execution->common}";
$lang->execution->activateAction = "激活{$lang->execution->common}";
$lang->execution->delayAction = "延期{$lang->execution->common}";
$lang->execution->suspendAction = "挂起{$lang->execution->common}";
$lang->execution->closeAction = "关闭{$lang->execution->common}";
$lang->execution->testtaskAction = "{$lang->execution->common}测试单";
$lang->execution->teamAction = "{$lang->execution->common}团队";
$lang->execution->kanbanAction = "{$lang->execution->common}看板";
$lang->execution->printKanbanAction = "打印看板";
$lang->execution->treeAction = "{$lang->execution->common}树状图";
$lang->execution->exportAction = "导出{$lang->execution->common}";
$lang->execution->computeBurnAction = "计算燃尽图";
$lang->execution->create = "添加{$lang->executionCommon}";
$lang->execution->createExec = "添加{$lang->execution->common}";
$lang->execution->createAction = "添加{$lang->execution->common}";
$lang->execution->copyExec = "复制{$lang->execution->common}";
$lang->execution->copy = "复制{$lang->executionCommon}";
$lang->execution->delete = "删除{$lang->executionCommon}";
$lang->execution->deleteAB = "删除{$lang->execution->common}";
$lang->execution->browse = "浏览{$lang->execution->common}";
$lang->execution->edit = "设置{$lang->executionCommon}";
$lang->execution->editAction = "编辑{$lang->execution->common}";
$lang->execution->batchEdit = "编辑";
$lang->execution->batchEditAction = "批量编辑";
$lang->execution->manageMembers = '团队管理';
$lang->execution->unlinkMember = '移除成员';
$lang->execution->unlinkStory = "移除{$lang->SRCommon}";
$lang->execution->unlinkStoryAB = "移除{$lang->SRCommon}";
$lang->execution->batchUnlinkStory = "批量移除{$lang->SRCommon}";
$lang->execution->importTask = '转入任务';
$lang->execution->importPlanStories = "按计划关联{$lang->SRCommon}";
$lang->execution->importBug = '导入Bug';
$lang->execution->tree = '树状图';
$lang->execution->treeTask = '只看任务';
$lang->execution->treeStory = "只看{$lang->SRCommon}";
$lang->execution->treeOnlyTask = '树状图只看任务';
$lang->execution->treeOnlyStory = "树状图只看{$lang->SRCommon}";
$lang->execution->storyKanban = "{$lang->SRCommon}看板";
$lang->execution->storySort = "{$lang->SRCommon}排序";
$lang->execution->importPlanStory = '创建' . $lang->executionCommon . '成功!\n是否导入计划关联的相关' . $lang->SRCommon . '?';
$lang->execution->importEditPlanStory = '编辑' . $lang->executionCommon . '成功!\n是否导入计划关联的相关' . $lang->SRCommon . '?';
$lang->execution->needLinkProducts = '该执行还未关联任何产品,相关功能无法使用,请先关联产品后再试。';
$lang->execution->iteration = '版本迭代';
$lang->execution->iterationInfo = '迭代%s次';
$lang->execution->viewAll = '查看所有';
$lang->execution->testreport = '测试报告';
$lang->execution->taskKanban = '任务看板';
$lang->execution->RDKanban = '研发看板';
/* 分组浏览。*/
$lang->execution->allTasks = '所有';