From 58425400f4d06a2727771a87f17eab0412b128c0 Mon Sep 17 00:00:00 2001 From: tianshujie98 Date: Wed, 23 Dec 2020 10:01:38 +0800 Subject: [PATCH 01/12] * Adjust code style. --- module/my/view/story.html.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/module/my/view/story.html.php b/module/my/view/story.html.php index 305eb6cdf5..256451290e 100644 --- a/module/my/view/story.html.php +++ b/module/my/view/story.html.php @@ -130,7 +130,8 @@ pri;?>' title='story->priList, $child->pri, $child->pri);?>'>story->priList, $child->pri, $child->pri);?> - lang->story->children .'">' . $this->lang->story->childrenAB . ' ' . html::a($storyLink, $child->title, null, "style='color: $child->color'");?> + lang->story->childrenAB : 'SR';?> + lang->story->children .'">' . $childrenAB . ' ' . html::a($storyLink, $child->title, null, "style='color: $child->color'");?> productTitle;?> From f4db6376b29c0024f5db96fc41aaece15f46114f Mon Sep 17 00:00:00 2001 From: Yagami <976204163@qq.com> Date: Wed, 23 Dec 2020 10:28:28 +0800 Subject: [PATCH 02/12] * Finish task #8812. --- module/bug/model.php | 2 + module/common/lang/zh-cn.php | 2 +- module/group/lang/resource.php | 36 ++-- module/issue/model.php | 2 + module/my/lang/de.php | 2 + module/my/lang/en.php | 2 + module/my/lang/fr.php | 2 + module/my/lang/vi.php | 2 + module/my/lang/zh-cn.php | 2 + module/my/view/bug.html.php | 7 +- module/my/view/issue.html.php | 2 +- module/my/view/requirement.html.php | 254 ++++++++++++++++++++++++++++ module/my/view/risk.html.php | 2 +- module/my/view/story.html.php | 4 +- module/my/view/task.html.php | 4 + module/my/view/testcase.html.php | 4 +- module/my/view/testtask.html.php | 4 +- module/program/model.php | 11 ++ module/project/model.php | 18 +- module/risk/model.php | 2 + module/story/model.php | 2 + module/task/model.php | 2 + 22 files changed, 325 insertions(+), 43 deletions(-) create mode 100644 module/my/view/requirement.html.php diff --git a/module/bug/model.php b/module/bug/model.php index 3359a64ac4..3ad8b68178 100644 --- a/module/bug/model.php +++ b/module/bug/model.php @@ -1385,6 +1385,8 @@ class bugModel extends model ->beginIF($projectID)->andWhere('PRJ')->eq($projectID)->fi() ->beginIF($type != 'closedBy' and $this->app->moduleName == 'block')->andWhere('status')->ne('closed')->fi() ->beginIF($type != 'all')->andWhere("`$type`")->eq($account)->fi() + ->beginIF($this->app->rawMethod == 'contribute')->andWhere("status")->in('resolved,closed')->fi() + ->beginIF($this->app->rawMethod == 'work')->andWhere("status")->eq('active')->fi() ->orderBy($orderBy) ->beginIF($limit > 0)->limit($limit)->fi() ->page($pager) diff --git a/module/common/lang/zh-cn.php b/module/common/lang/zh-cn.php index 41c021abe5..60552de35b 100755 --- a/module/common/lang/zh-cn.php +++ b/module/common/lang/zh-cn.php @@ -285,7 +285,7 @@ $lang->my->contributeMenu->execution = '执行|my|contribute|mode=execution&type $lang->my->contributeMenu->task = '任务|my|contribute|mode=task'; $lang->my->contributeMenu->story = '需求|my|contribute|mode=story'; $lang->my->contributeMenu->bug = 'Bug|my|contribute|mode=bug'; -$lang->my->contributeMenu->testtask = '用例|my|contribute|mode=testtask&type=wait'; +$lang->my->contributeMenu->testtask = '用例|my|contribute|mode=testtask&type=done'; $lang->my->contributeMenu->issue = '问题|my|contribute|mode=issue'; $lang->my->contributeMenu->risk = '风险|my|contribute|mode=risk'; diff --git a/module/group/lang/resource.php b/module/group/lang/resource.php index dfe0967401..7abd8c18ef 100644 --- a/module/group/lang/resource.php +++ b/module/group/lang/resource.php @@ -87,14 +87,9 @@ $lang->resource->my = new stdclass(); $lang->resource->my->index = 'index'; $lang->resource->my->todo = 'todo'; $lang->resource->my->calendar = 'calendar'; -$lang->resource->my->task = 'task'; -$lang->resource->my->bug = 'bug'; -$lang->resource->my->testTask = 'testTask'; -$lang->resource->my->testCase = 'testCase'; -$lang->resource->my->story = 'story'; -$lang->resource->my->requirement = 'requirement'; +$lang->resource->my->work = 'work'; +$lang->resource->my->contribute = 'contribute'; $lang->resource->my->project = 'project'; -$lang->resource->my->execution = 'execution'; $lang->resource->my->profile = 'profile'; $lang->resource->my->dynamic = 'dynamic'; $lang->resource->my->editProfile = 'editProfile'; @@ -106,22 +101,17 @@ $lang->resource->my->unbind = 'unbind'; $lang->my->methodOrder[0] = 'index'; $lang->my->methodOrder[5] = 'todo'; -$lang->my->methodOrder[10] = 'task'; -$lang->my->methodOrder[15] = 'bug'; -$lang->my->methodOrder[20] = 'testTask'; -$lang->my->methodOrder[25] = 'testCase'; -$lang->my->methodOrder[30] = 'story'; -$lang->my->methodOrder[35] = 'requirement'; -$lang->my->methodOrder[40] = 'project'; -$lang->my->methodOrder[45] = 'execution'; -$lang->my->methodOrder[50] = 'profile'; -$lang->my->methodOrder[55] = 'dynamic'; -$lang->my->methodOrder[60] = 'editProfile'; -$lang->my->methodOrder[65] = 'changePassword'; -$lang->my->methodOrder[75] = 'manageContacts'; -$lang->my->methodOrder[80] = 'deleteContacts'; -$lang->my->methodOrder[85] = 'score'; -$lang->my->methodOrder[90] = 'unbind'; +$lang->my->methodOrder[10] = 'work'; +$lang->my->methodOrder[15] = 'contribute'; +$lang->my->methodOrder[20] = 'project'; +$lang->my->methodOrder[25] = 'profile'; +$lang->my->methodOrder[30] = 'dynamic'; +$lang->my->methodOrder[35] = 'editProfile'; +$lang->my->methodOrder[40] = 'changePassword'; +$lang->my->methodOrder[45] = 'manageContacts'; +$lang->my->methodOrder[50] = 'deleteContacts'; +$lang->my->methodOrder[55] = 'score'; +$lang->my->methodOrder[60] = 'unbind'; /* Todo. */ $lang->resource->todo = new stdclass(); diff --git a/module/issue/model.php b/module/issue/model.php index f3fbd55894..ca8432723c 100644 --- a/module/issue/model.php +++ b/module/issue/model.php @@ -160,6 +160,8 @@ class issueModel extends model $issueList = $this->dao->select('*')->from(TABLE_ISSUE) ->where('deleted')->eq('0') ->andWhere($type)->eq($this->app->user->account)->fi() + ->beginIF($this->app->rawMethod == 'contribute')->andWhere("status")->in('resolved,canceled,closed')->fi() + ->beginIF($this->app->rawMethod == 'work')->andWhere("status")->notin('resolved,canceled,closed')->fi() ->orderBy($orderBy) ->page($pager) ->fetchAll(); diff --git a/module/my/lang/de.php b/module/my/lang/de.php index 7f8cca0895..9e84880355 100644 --- a/module/my/lang/de.php +++ b/module/my/lang/de.php @@ -5,6 +5,8 @@ $lang->my->common = 'Dashboard'; $lang->my->index = 'Home'; $lang->my->todo = 'Meine ToDos'; $lang->my->calendar = 'Kalender'; +$lang->my->work = 'Work'; +$lang->my->contribute = 'Contribute'; $lang->my->task = 'Aufgaben'; $lang->my->bug = 'Bugs'; $lang->my->testTask = 'Builds'; diff --git a/module/my/lang/en.php b/module/my/lang/en.php index cc71b127d8..51a1bb20e0 100644 --- a/module/my/lang/en.php +++ b/module/my/lang/en.php @@ -5,6 +5,8 @@ $lang->my->common = 'Dashboard'; $lang->my->index = 'Home'; $lang->my->todo = 'My Todos'; $lang->my->calendar = 'Schedule'; +$lang->my->work = 'Work'; +$lang->my->contribute = 'Contribute'; $lang->my->task = 'My Tasks'; $lang->my->bug = 'My Bugs'; $lang->my->testTask = 'My Builds'; diff --git a/module/my/lang/fr.php b/module/my/lang/fr.php index b17dff2a45..c498380df7 100644 --- a/module/my/lang/fr.php +++ b/module/my/lang/fr.php @@ -5,6 +5,8 @@ $lang->my->common = 'Tableau de Bord'; $lang->my->index = 'Accueil'; $lang->my->todo = 'Mon Agenda'; $lang->my->calendar = 'Calendrier'; +$lang->my->work = 'Work'; +$lang->my->contribute = 'Contribute'; $lang->my->task = 'Mes Tâches'; $lang->my->bug = 'Mes Bugs'; $lang->my->testTask = 'Mes Builds'; diff --git a/module/my/lang/vi.php b/module/my/lang/vi.php index 5e110b331b..5b0b817502 100644 --- a/module/my/lang/vi.php +++ b/module/my/lang/vi.php @@ -5,6 +5,8 @@ $lang->my->common = ''; $lang->my->index = 'Trang chủ'; $lang->my->todo = 'Việc của bạn'; $lang->my->calendar = 'Lịch trình'; +$lang->my->work = 'Work'; +$lang->my->contribute = 'Contribute'; $lang->my->task = 'Nhiệm vụ'; $lang->my->bug = 'Bugs của bạn'; $lang->my->testTask = 'Bản dựng của bạn'; diff --git a/module/my/lang/zh-cn.php b/module/my/lang/zh-cn.php index b7e25cfa32..11c6cc7234 100644 --- a/module/my/lang/zh-cn.php +++ b/module/my/lang/zh-cn.php @@ -5,6 +5,8 @@ $lang->my->common = '我的地盘'; $lang->my->index = '首页'; $lang->my->todo = '我的待办'; $lang->my->calendar = '日程'; +$lang->my->work = '待处理'; +$lang->my->contribute = '贡献'; $lang->my->task = '我的任务'; $lang->my->bug = '我的Bug'; $lang->my->testTask = '我的版本'; diff --git a/module/my/view/bug.html.php b/module/my/view/bug.html.php index 994137c238..500941b405 100644 --- a/module/my/view/bug.html.php +++ b/module/my/view/bug.html.php @@ -18,8 +18,11 @@ $recTotalLabel = " {$pager->recTotal}"; echo html::a(inlink($app->rawMethod, "mode=$mode&type=assignedTo"), "{$lang->bug->assignedTo}" . ($type == 'assignedTo' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedTo' ? ' btn-active-text' : '') . "'"); echo html::a(inlink($app->rawMethod, "mode=$mode&type=openedBy"), "{$lang->bug->openedByMe}" . ($type == 'openedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'openedBy' ? ' btn-active-text' : '') . "'"); - echo html::a(inlink($app->rawMethod, "mode=$mode&type=resolvedBy"), "{$lang->bug->resolvedByMe}" . ($type == 'resolvedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'resolvedBy' ? ' btn-active-text' : '') . "'"); - echo html::a(inlink($app->rawMethod, "mode=$mode&type=closedBy"), "{$lang->bug->closedByMe}" . ($type == 'closedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' ? ' btn-active-text' : '') . "'"); + if($app->rawMethod == 'contribute') + { + echo html::a(inlink($app->rawMethod, "mode=$mode&type=resolvedBy"), "{$lang->bug->resolvedByMe}" . ($type == 'resolvedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'resolvedBy' ? ' btn-active-text' : '') . "'"); + echo html::a(inlink($app->rawMethod, "mode=$mode&type=closedBy"), "{$lang->bug->closedByMe}" . ($type == 'closedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' ? ' btn-active-text' : '') . "'"); + } ?> diff --git a/module/my/view/issue.html.php b/module/my/view/issue.html.php index 5597e01a67..64716fb0be 100644 --- a/module/my/view/issue.html.php +++ b/module/my/view/issue.html.php @@ -18,7 +18,7 @@ $recTotalLabel = " {$pager->recTotal}"; echo html::a(inlink($app->rawMethod, "mode=$mode&type=assignedTo"), "{$lang->my->taskMenu->assignedToMe}" . ($type == 'assignedTo' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedTo' ? ' btn-active-text' : '') . "'"); echo html::a(inlink($app->rawMethod, "mode=$mode&type=createdBy"), "{$lang->my->taskMenu->openedByMe}" . ($type == 'createdBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'createdBy' ? ' btn-active-text' : '') . "'"); - echo html::a(inlink($app->rawMethod, "mode=$mode&type=closedBy"), "{$lang->my->taskMenu->closedByMe}" . ($type == 'closedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' ? ' btn-active-text' : '') . "'"); + if($app->rawMethod == 'contribute') echo html::a(inlink($app->rawMethod, "mode=$mode&type=closedBy"), "{$lang->my->taskMenu->closedByMe}" . ($type == 'closedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' ? ' btn-active-text' : '') . "'"); ?> diff --git a/module/my/view/requirement.html.php b/module/my/view/requirement.html.php new file mode 100644 index 0000000000..d64a9bc053 --- /dev/null +++ b/module/my/view/requirement.html.php @@ -0,0 +1,254 @@ + + * @package my + * @version $Id + * @link http://www.zentao.net + */ +?> + + + +
+ +
+

story->noStory;?>

+
+ +
+ + + + + + + + + + + + + + + + + + + createLink('story', 'view', "id=$story->id"); + $canBeChanged = common::canBeChanged('story', $story); + ?> + + + + + + + + + + + + children)):?> + + children as $key => $child):?> + createLink('story', 'view', "id=$child->id");?> + + children)) ? ' table-child-bottom' : '';?> + + + + + + + + + + + + + + + + +
+ +
+ +
+ + idAB);?> +
priAB);?> story->product);?> my->name);?> openedByAB);?> story->estimateAB);?> statusAB);?> story->stageAB);?>actions;?>
+ +
+ /> + +
+ + id);?> +
pri;?>' title='story->priList, $story->pri, $story->pri);?>'>story->priList, $story->pri, $story->pri);?>productTitle;?> + title, null, "style='color: $story->color'");?> + children)) echo '';;?> + openedBy);?>estimate;?> processStatus('story', $story);?>story->stageList, $story->stage);?> + id}"; + common::printIcon('story', 'change', $vars, $story, 'list', 'fork'); + common::printIcon('story', 'review', $vars, $story, 'list', 'glasses'); + common::printIcon('story', 'close', $vars, $story, 'list', '', '', 'iframe', true); + common::printIcon('story', 'edit', $vars, $story, 'list'); + common::printIcon('story', 'createCase', "productID=$story->product&branch=$story->branch&module=0&from=¶m=0&$vars", $story, 'list', 'sitemap'); + } + ?> +
+ +
+ + +
+ + id);?> +
pri;?>' title='story->priList, $child->pri, $child->pri);?>'>story->priList, $child->pri, $child->pri);?>productTitle;?> + lang->story->children .'">' . $this->lang->story->childrenAB . ' ' . html::a($storyLink, $child->title, null, "style='color: $child->color'");?> + openedBy);?>estimate;?> processStatus('story', $child);?>story->stageList, $child->stage);?> + id}"; + common::printIcon('story', 'change', $vars, $child, 'list', 'fork'); + common::printIcon('story', 'review', $vars, $child, 'list', 'glasses'); + common::printIcon('story', 'close', $vars, $child, 'list', '', '', 'iframe', true); + common::printIcon('story', 'edit', $vars, $child, 'list'); + common::printIcon('story', 'createCase', "productID=$child->product&branch=$child->branch&module=0&from=¶m=0&$vars", $child, 'list', 'sitemap'); + } + ?> +
+
+ diff --git a/module/my/view/risk.html.php b/module/my/view/risk.html.php index a8ebad1552..03592925ea 100644 --- a/module/my/view/risk.html.php +++ b/module/my/view/risk.html.php @@ -18,7 +18,7 @@ $recTotalLabel = " {$pager->recTotal}"; echo html::a(inlink($app->rawMethod, "mode=$mode&type=assignedTo"), "{$lang->my->taskMenu->assignedToMe}" . ($type == 'assignedTo' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedTo' ? ' btn-active-text' : '') . "'"); echo html::a(inlink($app->rawMethod, "mode=$mode&type=createdBy"), "{$lang->my->taskMenu->openedByMe}" . ($type == 'createdBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'createdBy' ? ' btn-active-text' : '') . "'"); - echo html::a(inlink($app->rawMethod, "mode=$mode&type=closedBy"), "{$lang->my->taskMenu->closedByMe}" . ($type == 'closedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' ? ' btn-active-text' : '') . "'"); + if($app->rawMethod == 'contribute') echo html::a(inlink($app->rawMethod, "mode=$mode&type=closedBy"), "{$lang->my->taskMenu->closedByMe}" . ($type == 'closedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' ? ' btn-active-text' : '') . "'"); ?>
diff --git a/module/my/view/story.html.php b/module/my/view/story.html.php index 256451290e..98bc8a58cd 100644 --- a/module/my/view/story.html.php +++ b/module/my/view/story.html.php @@ -20,13 +20,13 @@ echo html::a(inlink($app->rawMethod, "mode=requirement&type=assignedTo"), "{$lang->my->storyMenu->assignedToMe}" . ($type == 'assignedTo' & $mode == 'requirement' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedTo' & $mode == 'requirement' ? ' btn-active-text' : '') . "'"); echo html::a(inlink($app->rawMethod, "mode=requirement&type=openedBy"), "{$lang->my->storyMenu->openedByMe}" . ($type == 'openedBy' & $mode == 'requirement' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'openedBy' & $mode == 'requirement' ? ' btn-active-text' : '') . "'"); echo html::a(inlink($app->rawMethod, "mode=requirement&type=reviewedBy"), "{$lang->my->storyMenu->reviewedByMe}" . ($type == 'reviewedBy' & $mode == 'requirement' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'reviewedBy' & $mode == 'requirement' ? ' btn-active-text' : '') . "'"); - echo html::a(inlink($app->rawMethod, "mode=requirement&type=closedBy"), "{$lang->my->storyMenu->closedByMe}" . ($type == 'closedBy' & $mode == 'requirement' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' & $mode == 'requirement' ? ' btn-active-text' : '') . "'"); + if($app->rawMethod == 'contribute') echo html::a(inlink($app->rawMethod, "mode=requirement&type=closedBy"), "{$lang->my->storyMenu->closedByMe}" . ($type == 'closedBy' & $mode == 'requirement' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' & $mode == 'requirement' ? ' btn-active-text' : '') . "'"); echo " | "; echo "{$lang->my->story}"; echo html::a(inlink($app->rawMethod, "mode=story&type=assignedTo"), "{$lang->my->storyMenu->assignedToMe}" . ($type == 'assignedTo' & $mode == 'story' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedTo' & $mode == 'story' ? ' btn-active-text' : '') . "'"); echo html::a(inlink($app->rawMethod, "mode=story&type=openedBy"), "{$lang->my->storyMenu->openedByMe}" . ($type == 'openedBy' & $mode == 'story' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'openedBy' & $mode == 'story' ? ' btn-active-text' : '') . "'"); echo html::a(inlink($app->rawMethod, "mode=story&type=reviewedBy"), "{$lang->my->storyMenu->reviewedByMe}" . ($type == 'reviewedBy' & $mode == 'story' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'reviewedBy' & $mode == 'story' ? ' btn-active-text' : '') . "'"); - echo html::a(inlink($app->rawMethod, "mode=story&type=closedBy"), "{$lang->my->storyMenu->closedByMe}" . ($type == 'closedBy' & $mode == 'story' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' & $mode == 'story' ? ' btn-active-text' : '') . "'"); + if($app->rawMethod == 'contribute') echo html::a(inlink($app->rawMethod, "mode=story&type=closedBy"), "{$lang->my->storyMenu->closedByMe}" . ($type == 'closedBy' & $mode == 'story' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' & $mode == 'story' ? ' btn-active-text' : '') . "'"); ?> diff --git a/module/my/view/task.html.php b/module/my/view/task.html.php index d6491430f7..53c9ed84e4 100644 --- a/module/my/view/task.html.php +++ b/module/my/view/task.html.php @@ -18,10 +18,14 @@ $recTotalLabel = " {$pager->recTotal}"; echo html::a(inlink($app->rawMethod, "mode=$mode&type=assignedTo"), "{$lang->my->taskMenu->assignedToMe}" . ($type == 'assignedTo' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedTo' ? ' btn-active-text' : '') . "'"); echo html::a(inlink($app->rawMethod, "mode=$mode&type=openedBy"), "{$lang->my->taskMenu->openedByMe}" . ($type == 'openedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'openedBy' ? ' btn-active-text' : '') . "'"); + ?> + rawMethod == 'contribute'):?> + rawMethod, "mode=$mode&type=finishedBy"), "{$lang->my->taskMenu->finishedByMe}" . ($type == 'finishedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'finishedBy' ? ' btn-active-text' : '') . "'"); echo html::a(inlink($app->rawMethod, "mode=$mode&type=closedBy"), "{$lang->my->taskMenu->closedByMe}" . ($type == 'closedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' ? ' btn-active-text' : '') . "'"); echo html::a(inlink($app->rawMethod, "mode=$mode&type=canceledBy"), "{$lang->my->taskMenu->canceledByMe}" . ($type == 'canceledBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'canceledBy' ? ' btn-active-text' : '') . "'"); ?> +
diff --git a/module/my/view/testcase.html.php b/module/my/view/testcase.html.php index b23f00445a..c29818b943 100644 --- a/module/my/view/testcase.html.php +++ b/module/my/view/testcase.html.php @@ -21,8 +21,8 @@ {$pager->recTotal}"; echo "{$lang->testtask->common}: "; - echo html::a(inlink($app->rawMethod, "mode=testtask&type=wait"), "{$lang->testtask->wait}", '', "class='btn btn-link'"); - echo html::a(inlink($app->rawMethod, "mode=testtask&type=done"), "{$lang->testtask->done}", '', "class='btn btn-link'"); + if($app->rawMethod == 'work') echo html::a(inlink($app->rawMethod, "mode=testtask&type=wait"), "{$lang->testtask->wait}", '', "class='btn btn-link'"); + if($app->rawMethod == 'contribute') echo html::a(inlink($app->rawMethod, "mode=testtask&type=done"), "{$lang->testtask->done}", '', "class='btn btn-link'"); echo ""; echo "{$lang->testcase->common}: "; echo html::a(inlink($app->rawMethod, "mode=$mode&type=assigntome"), "{$lang->testcase->assignToMe}" . ($type == 'assigntome' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assigntome' ? ' btn-active-text' : '') . "'"); diff --git a/module/my/view/testtask.html.php b/module/my/view/testtask.html.php index bd468cad43..df96280270 100644 --- a/module/my/view/testtask.html.php +++ b/module/my/view/testtask.html.php @@ -18,8 +18,8 @@ {$pager->recTotal}"; echo "{$lang->testtask->common}: "; - echo html::a(inlink($app->rawMethod, "mode=$mode&type=wait"), "{$lang->testtask->wait}" . ($type == 'wait' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'wait' ? ' btn-active-text' : '') . "'"); - echo html::a(inlink($app->rawMethod, "mode=$mode&type=done"), "{$lang->testtask->done}" . ($type == 'done' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'done' ? ' btn-active-text' : '') . "'"); + if($app->rawMethod == 'work') echo html::a(inlink($app->rawMethod, "mode=$mode&type=wait"), "{$lang->testtask->wait}" . ($type == 'wait' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'wait' ? ' btn-active-text' : '') . "'"); + if($app->rawMethod == 'contribute') echo html::a(inlink($app->rawMethod, "mode=$mode&type=done"), "{$lang->testtask->done}" . ($type == 'done' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'done' ? ' btn-active-text' : '') . "'"); echo ""; echo "{$lang->testcase->common}: "; echo html::a(inlink($app->rawMethod, "mode=testcase&type=assigntome"), "{$lang->testcase->assignToMe}", '', "class='btn btn-link'"); diff --git a/module/program/model.php b/module/program/model.php index 19f2a2fb83..9bf76846b4 100644 --- a/module/program/model.php +++ b/module/program/model.php @@ -1293,6 +1293,17 @@ class programModel extends model { $projectID = $this->dao->lastInsertId(); + /* Add the creator to team. */ + $this->app->loadLang('user'); + $member = new stdclass(); + $member->root = $projectID; + $member->account = $this->app->user->account; + $member->role = $this->lang->user->roleList[$this->app->user->role]; + $member->join = helper::today(); + $member->type = 'project'; + $member->hours = $this->config->project->defaultWorkhours; + $this->dao->insert(TABLE_TEAM)->data($member)->exec(); + $whitelist = explode(',', $project->whitelist); $this->loadModel('personnel')->updateWhitelist($whitelist, 'project', $projectID); if($project->acl != 'open') $this->loadModel('user')->updateUserView($projectID, 'project'); diff --git a/module/project/model.php b/module/project/model.php index 526f383c85..add815d489 100644 --- a/module/project/model.php +++ b/module/project/model.php @@ -399,7 +399,7 @@ class projectModel extends model $member->hours = $this->config->project->defaultWorkhours; $this->dao->insert(TABLE_TEAM)->data($member)->exec(); - $this->addExecutionMembers($this->session->PRJ, array($member)); + $this->addProjectMembers($this->session->PRJ, array($member)); } /* Create doc lib. */ @@ -2377,7 +2377,7 @@ class projectModel extends model /* Add iteration or phase team members to the project team. */ if($projectType == 'stage' || $projectType == 'sprint') { - $this->addExecutionMembers($project->project, $projectMember); + $this->addProjectMembers($project->project, $projectMember); if($project->acl != 'open') $this->updateUserView($projectID, 'sprint', $changedAccounts); } } @@ -2390,10 +2390,10 @@ class projectModel extends model * @access public * @return void */ - public function addExecutionMembers($executionID = 0, $members = array()) + public function addProjectMembers($projectID = 0, $members = array()) { - $executionType = 'project'; - $oldJoin = $this->dao->select('`account`, `join`')->from(TABLE_TEAM)->where('root')->eq($executionID)->andWhere('type')->eq($executionType)->fetchPairs(); + $projectType = 'project'; + $oldJoin = $this->dao->select('`account`, `join`')->from(TABLE_TEAM)->where('root')->eq($projectID)->andWhere('type')->eq($projectType)->fetchPairs(); $accounts = array(); foreach($members as $account => $member) @@ -2401,8 +2401,8 @@ class projectModel extends model if(isset($oldJoin[$member->account])) continue; $accounts[] = $member->account; - $member->root = $executionID; - $member->type = $executionType; + $member->root = $projectID; + $member->type = $projectType; $this->dao->insert(TABLE_TEAM)->data($member)->exec(); } @@ -2412,8 +2412,8 @@ class projectModel extends model $changedAccounts = array_merge($changedAccounts, array_diff($oldAccounts, $accounts)); $changedAccounts = array_unique($changedAccounts); - $this->loadModel('user')->updateUserView($executionID, $executionType, $changedAccounts); - $linkedProducts = $this->loadModel('product')->getProductPairsByProject($executionID); + $this->loadModel('user')->updateUserView($projectID, $projectType, $changedAccounts); + $linkedProducts = $this->loadModel('product')->getProductPairsByProject($projectID); if(!empty($linkedProducts)) $this->user->updateUserView(array_keys($linkedProducts), 'product', $changedAccounts); } diff --git a/module/risk/model.php b/module/risk/model.php index 69acb455ae..6cc04c8c14 100644 --- a/module/risk/model.php +++ b/module/risk/model.php @@ -246,6 +246,8 @@ class riskModel extends model $riskList = $this->dao->select('*')->from(TABLE_RISK) ->where('deleted')->eq('0') ->andWhere($type)->eq($this->app->user->account)->fi() + ->beginIF($this->app->rawMethod == 'contribute')->andWhere("status")->in('closed,canceled')->fi() + ->beginIF($this->app->rawMethod == 'work')->andWhere("status")->in('active,hangup')->fi() ->orderBy($orderBy) ->page($pager) ->fetchAll(); diff --git a/module/story/model.php b/module/story/model.php index 2947240f56..bc73341964 100644 --- a/module/story/model.php +++ b/module/story/model.php @@ -2503,6 +2503,8 @@ class storyModel extends model ->beginIF($type == 'reviewedBy')->andWhere("CONCAT(',', reviewedBy, ',')")->like("%,$account,%")->fi() ->beginIF($type == 'closedBy')->andWhere('closedBy')->eq($account)->fi() ->fi() + ->beginIF($this->app->rawMethod == 'contribute')->andWhere("t1.status")->eq('closed')->fi() + ->beginIF($this->app->rawMethod == 'work')->andWhere("t1.status")->in('draft,active,changed')->fi() ->orderBy($orderBy) ->page($pager) ->fetchAll('id'); diff --git a/module/task/model.php b/module/task/model.php index 14765651c6..22cb3c9b69 100644 --- a/module/task/model.php +++ b/module/task/model.php @@ -2072,6 +2072,8 @@ class taskModel extends model ->orWhere('t1.finishedList')->like("%,{$account},%") ->markRight(1) ->fi() + ->beginIF($this->app->rawMethod == 'contribute')->andWhere("t1.status")->in('closed,done,cancel')->fi() + ->beginIF($this->app->rawMethod == 'work')->andWhere("t1.status")->in('wait,doing,pause')->fi() ->beginIF($type != 'all' and $type != 'finishedBy')->andWhere("t1.`$type`")->eq($account)->fi() ->orderBy($orderBy) ->beginIF($limit > 0)->limit($limit)->fi() From 1aa43436a1c634910473ebe1bedff9c44f5c5018 Mon Sep 17 00:00:00 2001 From: tianshujie98 Date: Wed, 23 Dec 2020 10:38:54 +0800 Subject: [PATCH 03/12] * Adjust code style. --- module/my/view/story.html.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/module/my/view/story.html.php b/module/my/view/story.html.php index 256451290e..386d388211 100644 --- a/module/my/view/story.html.php +++ b/module/my/view/story.html.php @@ -17,16 +17,16 @@ {$pager->recTotal}"; echo "{$lang->my->requirement}"; - echo html::a(inlink($app->rawMethod, "mode=requirement&type=assignedTo"), "{$lang->my->storyMenu->assignedToMe}" . ($type == 'assignedTo' & $mode == 'requirement' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedTo' & $mode == 'requirement' ? ' btn-active-text' : '') . "'"); - echo html::a(inlink($app->rawMethod, "mode=requirement&type=openedBy"), "{$lang->my->storyMenu->openedByMe}" . ($type == 'openedBy' & $mode == 'requirement' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'openedBy' & $mode == 'requirement' ? ' btn-active-text' : '') . "'"); - echo html::a(inlink($app->rawMethod, "mode=requirement&type=reviewedBy"), "{$lang->my->storyMenu->reviewedByMe}" . ($type == 'reviewedBy' & $mode == 'requirement' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'reviewedBy' & $mode == 'requirement' ? ' btn-active-text' : '') . "'"); - echo html::a(inlink($app->rawMethod, "mode=requirement&type=closedBy"), "{$lang->my->storyMenu->closedByMe}" . ($type == 'closedBy' & $mode == 'requirement' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' & $mode == 'requirement' ? ' btn-active-text' : '') . "'"); + echo html::a(inlink($app->rawMethod, "mode=requirement&type=assignedTo"), "{$lang->my->storyMenu->assignedToMe}" . ($type == 'assignedTo' && $mode == 'requirement' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedTo'&& $mode == 'requirement' ? ' btn-active-text' : '') . "'"); + echo html::a(inlink($app->rawMethod, "mode=requirement&type=openedBy"), "{$lang->my->storyMenu->openedByMe}" . ($type == 'openedBy' && $mode == 'requirement' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'openedBy' && $mode == 'requirement' ? ' btn-active-text' : '') . "'"); + echo html::a(inlink($app->rawMethod, "mode=requirement&type=reviewedBy"), "{$lang->my->storyMenu->reviewedByMe}" . ($type == 'reviewedBy' && $mode == 'requirement' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'reviewedBy'&& $mode == 'requirement' ? ' btn-active-text' : '') . "'"); + echo html::a(inlink($app->rawMethod, "mode=requirement&type=closedBy"), "{$lang->my->storyMenu->closedByMe}" . ($type == 'closedBy' && $mode == 'requirement' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' && $mode == 'requirement' ? ' btn-active-text' : '') . "'"); echo " | "; echo "{$lang->my->story}"; - echo html::a(inlink($app->rawMethod, "mode=story&type=assignedTo"), "{$lang->my->storyMenu->assignedToMe}" . ($type == 'assignedTo' & $mode == 'story' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedTo' & $mode == 'story' ? ' btn-active-text' : '') . "'"); - echo html::a(inlink($app->rawMethod, "mode=story&type=openedBy"), "{$lang->my->storyMenu->openedByMe}" . ($type == 'openedBy' & $mode == 'story' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'openedBy' & $mode == 'story' ? ' btn-active-text' : '') . "'"); - echo html::a(inlink($app->rawMethod, "mode=story&type=reviewedBy"), "{$lang->my->storyMenu->reviewedByMe}" . ($type == 'reviewedBy' & $mode == 'story' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'reviewedBy' & $mode == 'story' ? ' btn-active-text' : '') . "'"); - echo html::a(inlink($app->rawMethod, "mode=story&type=closedBy"), "{$lang->my->storyMenu->closedByMe}" . ($type == 'closedBy' & $mode == 'story' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' & $mode == 'story' ? ' btn-active-text' : '') . "'"); + echo html::a(inlink($app->rawMethod, "mode=story&type=assignedTo"), "{$lang->my->storyMenu->assignedToMe}" . ($type == 'assignedTo' && $mode == 'story' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedTo' && $mode == 'story' ? ' btn-active-text' : '') . "'"); + echo html::a(inlink($app->rawMethod, "mode=story&type=openedBy"), "{$lang->my->storyMenu->openedByMe}" . ($type == 'openedBy' && $mode == 'story' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'openedBy' && $mode == 'story' ? ' btn-active-text' : '') . "'"); + echo html::a(inlink($app->rawMethod, "mode=story&type=reviewedBy"), "{$lang->my->storyMenu->reviewedByMe}" . ($type == 'reviewedBy' && $mode == 'story' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'reviewedBy' && $mode == 'story' ? ' btn-active-text' : '') . "'"); + echo html::a(inlink($app->rawMethod, "mode=story&type=closedBy"), "{$lang->my->storyMenu->closedByMe}" . ($type == 'closedBy' && $mode == 'story' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' && $mode == 'story' ? ' btn-active-text' : '') . "'"); ?>
From dab9e280eb7a47272601379f850c78062d6318e2 Mon Sep 17 00:00:00 2001 From: Yagami <976204163@qq.com> Date: Wed, 23 Dec 2020 10:53:53 +0800 Subject: [PATCH 04/12] * Code for task #8812. --- module/my/control.php | 52 ++---- module/my/view/requirement.html.php | 254 ---------------------------- module/my/view/story.html.php | 26 +-- 3 files changed, 24 insertions(+), 308 deletions(-) delete mode 100644 module/my/view/requirement.html.php diff --git a/module/my/control.php b/module/my/control.php index b68717889f..18644a027e 100644 --- a/module/my/control.php +++ b/module/my/control.php @@ -118,7 +118,14 @@ class my extends control $moduleIndex = array_search('my', $this->lang->noMenuModule); if($moduleIndex !== false) unset($this->lang->noMenuModule[$moduleIndex]); - echo $this->fetch('my', $mode, "type=$type&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pageID=$pageID"); + if($mode == 'story' or $mode == 'requirement') + { + echo $this->fetch('my', 'story', "type=$type&storyType=$mode&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pageID=$pageID"); + } + else + { + echo $this->fetch('my', $mode, "type=$type&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pageID=$pageID"); + } } /** @@ -180,46 +187,6 @@ class my extends control $this->display(); } - /** - * My requirement. - - * @param string $type - * @param int $recTotal - * @param int $recPerPage - * @param int $pageID - * @access public - * @return void - */ - public function requirement($type = 'assignedTo', $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1) - { - /* Save session. */ - if($this->app->viewType != 'json') $this->session->set('storyList', $this->app->getURI(true)); - - /* Load pager. */ - $this->app->loadClass('pager', $static = true); - if($this->app->getViewType() == 'mhtml') $recPerPage = 10; - $pager = pager::init($recTotal, $recPerPage, $pageID); - - /* Append id for secend sort. */ - $sort = $this->loadModel('common')->appendOrder($orderBy); - - /* Assign. */ - $this->view->title = $this->lang->my->common . $this->lang->colon . $this->lang->my->story; - $this->view->position[] = $this->lang->my->story; - $this->view->stories = $this->loadModel('story')->getUserStories($this->app->user->account, $type, $sort, $pager, 'requirement'); - $this->view->users = $this->user->getPairs('noletter'); - $this->view->type = $type; - $this->view->projects = $this->loadModel('program')->getPRJPairs(); - $this->view->recTotal = $recTotal; - $this->view->recPerPage = $recPerPage; - $this->view->pageID = $pageID; - $this->view->orderBy = $orderBy; - $this->view->pager = $pager; - $this->view->mode = 'story'; - - $this->display(); - } - /** * My stories @@ -257,7 +224,8 @@ class my extends control $this->view->pageID = $pageID; $this->view->orderBy = $orderBy; $this->view->pager = $pager; - $this->view->mode = $storyType; + $this->view->storyType = $storyType; + $this->view->mode = 'story'; $this->display(); } diff --git a/module/my/view/requirement.html.php b/module/my/view/requirement.html.php deleted file mode 100644 index d64a9bc053..0000000000 --- a/module/my/view/requirement.html.php +++ /dev/null @@ -1,254 +0,0 @@ - - * @package my - * @version $Id - * @link http://www.zentao.net - */ -?> - - - -
- -
-

story->noStory;?>

-
- -
- - - - - - - - - - - - - - - - - - - createLink('story', 'view', "id=$story->id"); - $canBeChanged = common::canBeChanged('story', $story); - ?> - - - - - - - - - - - - children)):?> - - children as $key => $child):?> - createLink('story', 'view', "id=$child->id");?> - - children)) ? ' table-child-bottom' : '';?> - - - - - - - - - - - - - - - - -
- -
- -
- - idAB);?> -
priAB);?> story->product);?> my->name);?> openedByAB);?> story->estimateAB);?> statusAB);?> story->stageAB);?>actions;?>
- -
- /> - -
- - id);?> -
pri;?>' title='story->priList, $story->pri, $story->pri);?>'>story->priList, $story->pri, $story->pri);?>productTitle;?> - title, null, "style='color: $story->color'");?> - children)) echo '';;?> - openedBy);?>estimate;?> processStatus('story', $story);?>story->stageList, $story->stage);?> - id}"; - common::printIcon('story', 'change', $vars, $story, 'list', 'fork'); - common::printIcon('story', 'review', $vars, $story, 'list', 'glasses'); - common::printIcon('story', 'close', $vars, $story, 'list', '', '', 'iframe', true); - common::printIcon('story', 'edit', $vars, $story, 'list'); - common::printIcon('story', 'createCase', "productID=$story->product&branch=$story->branch&module=0&from=¶m=0&$vars", $story, 'list', 'sitemap'); - } - ?> -
- -
- - -
- - id);?> -
pri;?>' title='story->priList, $child->pri, $child->pri);?>'>story->priList, $child->pri, $child->pri);?>productTitle;?> - lang->story->children .'">' . $this->lang->story->childrenAB . ' ' . html::a($storyLink, $child->title, null, "style='color: $child->color'");?> - openedBy);?>estimate;?> processStatus('story', $child);?>story->stageList, $child->stage);?> - id}"; - common::printIcon('story', 'change', $vars, $child, 'list', 'fork'); - common::printIcon('story', 'review', $vars, $child, 'list', 'glasses'); - common::printIcon('story', 'close', $vars, $child, 'list', '', '', 'iframe', true); - common::printIcon('story', 'edit', $vars, $child, 'list'); - common::printIcon('story', 'createCase', "productID=$child->product&branch=$child->branch&module=0&from=¶m=0&$vars", $child, 'list', 'sitemap'); - } - ?> -
-
- diff --git a/module/my/view/story.html.php b/module/my/view/story.html.php index f9183ccb90..4952765fa4 100644 --- a/module/my/view/story.html.php +++ b/module/my/view/story.html.php @@ -15,18 +15,20 @@ @@ -59,7 +61,7 @@ priAB);?> my->name);?> story->product);?> - + story->plan);?> openedByAB);?> @@ -91,7 +93,7 @@ children)) echo '';;?> productTitle;?> - + planTitle;?> openedBy);?> @@ -130,11 +132,11 @@ pri;?>' title='story->priList, $child->pri, $child->pri);?>'>story->priList, $child->pri, $child->pri);?> - lang->story->childrenAB : 'SR';?> + lang->story->childrenAB : 'SR';?> lang->story->children .'">' . $childrenAB . ' ' . html::a($storyLink, $child->title, null, "style='color: $child->color'");?> productTitle;?> - + planTitle;?> openedBy);?> From 3eb898ea02fe5930eed006fcee6256ce89e6254c Mon Sep 17 00:00:00 2001 From: tianshujie98 Date: Wed, 23 Dec 2020 11:04:08 +0800 Subject: [PATCH 05/12] * Finish task #8798. --- module/my/control.php | 9 ++++++++- module/my/lang/de.php | 2 -- module/my/lang/en.php | 2 -- module/my/lang/fr.php | 2 -- module/my/lang/vi.php | 2 -- module/my/lang/zh-cn.php | 2 -- module/my/view/story.html.php | 6 +++--- 7 files changed, 11 insertions(+), 14 deletions(-) diff --git a/module/my/control.php b/module/my/control.php index b68717889f..2037dcd998 100644 --- a/module/my/control.php +++ b/module/my/control.php @@ -118,7 +118,14 @@ class my extends control $moduleIndex = array_search('my', $this->lang->noMenuModule); if($moduleIndex !== false) unset($this->lang->noMenuModule[$moduleIndex]); - echo $this->fetch('my', $mode, "type=$type&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pageID=$pageID"); + if($mode == 'story' or $mode == 'requirement') + { + echo $this->fetch('my', 'story', "type=$type&storyType=$mode&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pageID=$pageID"); + } + else + { + echo $this->fetch('my', $mode, "type=$type&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pageID=$pageID"); + } } /** diff --git a/module/my/lang/de.php b/module/my/lang/de.php index 9e84880355..7e480481ce 100644 --- a/module/my/lang/de.php +++ b/module/my/lang/de.php @@ -28,8 +28,6 @@ $lang->my->limited = 'Eingeschränkte Möglichkeiten (Bearbeiten nur eige $lang->my->score = 'Meine Wertung'; $lang->my->scoreRule = 'Wertungs regeln'; $lang->my->noTodo = 'Keine toDos. '; -$lang->my->requirement = 'User requirements'; -$lang->my->story = 'Software requirements'; $lang->my->myExecutions = 'My Stage/Sprint/Iteration'; $lang->my->name = 'Name'; diff --git a/module/my/lang/en.php b/module/my/lang/en.php index 51a1bb20e0..b84a7d9f98 100644 --- a/module/my/lang/en.php +++ b/module/my/lang/en.php @@ -28,8 +28,6 @@ $lang->my->limited = 'Limited Actions (Users can only edit what involves $lang->my->score = 'My Points'; $lang->my->scoreRule = 'Point Rules'; $lang->my->noTodo = 'No todos yet. '; -$lang->my->requirement = 'User requirements'; -$lang->my->story = 'Software requirements'; $lang->my->myExecutions = "My Stage/Sprint/Iteration"; $lang->my->name = 'Name'; diff --git a/module/my/lang/fr.php b/module/my/lang/fr.php index c498380df7..8c439ced7c 100644 --- a/module/my/lang/fr.php +++ b/module/my/lang/fr.php @@ -28,8 +28,6 @@ $lang->my->limited = 'Actions Limitées (Les utilisateurs peuvent seuleme $lang->my->score = 'Mes Points'; $lang->my->scoreRule = 'Règles Point'; $lang->my->noTodo = "Je n'ai rien à faire pour l'instant."; -$lang->my->requirement = 'User requirements'; -$lang->my->story = 'Software requirements'; $lang->my->myExecutions = 'My Stage/Sprint/Iteration'; $lang->my->name = 'Name'; diff --git a/module/my/lang/vi.php b/module/my/lang/vi.php index 5b0b817502..abbbce0400 100644 --- a/module/my/lang/vi.php +++ b/module/my/lang/vi.php @@ -28,8 +28,6 @@ $lang->my->limited = 'Hành động bị giới hạn (Người dùng ch $lang->my->score = 'Điểm của bạn'; $lang->my->scoreRule = 'Quy định điểm'; $lang->my->noTodo = 'Chưa có việc nào.'; -$lang->my->requirement = 'User requirements'; -$lang->my->story = 'Software requirements'; $lang->my->myExecutions = "My Stage/Sprint/Iteration"; $lang->my->name = 'Name'; diff --git a/module/my/lang/zh-cn.php b/module/my/lang/zh-cn.php index 11c6cc7234..6998606f61 100644 --- a/module/my/lang/zh-cn.php +++ b/module/my/lang/zh-cn.php @@ -30,8 +30,6 @@ $lang->my->limited = '受限操作(只能编辑与自己相关的内容)' $lang->my->score = '我的积分'; $lang->my->scoreRule = '积分规则'; $lang->my->noTodo = '暂时没有待办。'; -$lang->my->requirement = '用户需求'; -$lang->my->story = '软件需求'; $lang->my->myExecutions = "我参与的阶段/冲刺/迭代"; $lang->my->name = '名称'; diff --git a/module/my/view/story.html.php b/module/my/view/story.html.php index f9183ccb90..2fb93ed28a 100644 --- a/module/my/view/story.html.php +++ b/module/my/view/story.html.php @@ -16,13 +16,13 @@
{$pager->recTotal}"; - echo "{$lang->my->requirement}"; + echo "{$lang->productURCommon}"; echo html::a(inlink($app->rawMethod, "mode=requirement&type=assignedTo"), "{$lang->my->storyMenu->assignedToMe}" . ($type == 'assignedTo' && $mode == 'requirement' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedTo' && $mode == 'requirement' ? ' btn-active-text' : '') . "'"); echo html::a(inlink($app->rawMethod, "mode=requirement&type=openedBy"), "{$lang->my->storyMenu->openedByMe}" . ($type == 'openedBy' && $mode == 'requirement' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'openedBy' && $mode == 'requirement' ? ' btn-active-text' : '') . "'"); echo html::a(inlink($app->rawMethod, "mode=requirement&type=reviewedBy"), "{$lang->my->storyMenu->reviewedByMe}" . ($type == 'reviewedBy' && $mode == 'requirement' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'reviewedBy' && $mode == 'requirement' ? ' btn-active-text' : '') . "'"); if($app->rawMethod == 'contribute') echo html::a(inlink($app->rawMethod, "mode=requirement&type=closedBy"), "{$lang->my->storyMenu->closedByMe}" . ($type == 'closedBy' & $mode == 'requirement' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' & $mode == 'requirement' ? ' btn-active-text' : '') . "'"); echo " | "; - echo "{$lang->my->story}"; + echo "{$lang->productSRCommon}"; echo html::a(inlink($app->rawMethod, "mode=story&type=assignedTo"), "{$lang->my->storyMenu->assignedToMe}" . ($type == 'assignedTo' && $mode == 'story' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedTo' && $mode == 'story' ? ' btn-active-text' : '') . "'"); echo html::a(inlink($app->rawMethod, "mode=story&type=openedBy"), "{$lang->my->storyMenu->openedByMe}" . ($type == 'openedBy' && $mode == 'story' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'openedBy' && $mode == 'story' ? ' btn-active-text' : '') . "'"); echo html::a(inlink($app->rawMethod, "mode=story&type=reviewedBy"), "{$lang->my->storyMenu->reviewedByMe}" . ($type == 'reviewedBy' && $mode == 'story' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'reviewedBy' && $mode == 'story' ? ' btn-active-text' : '') . "'"); @@ -33,7 +33,7 @@
-

story->noStory;?>

+

story->noStory : $lang->story->noRequirement;?>

From fb93bb126743dd118a26e1a43c804da22bb4b9d8 Mon Sep 17 00:00:00 2001 From: qiyu-xie Date: Wed, 23 Dec 2020 11:15:16 +0800 Subject: [PATCH 06/12] * Finish task#8748. --- db/update20.0.alpha.sql | 2 +- db/zentao.sql | 2 +- module/program/lang/de.php | 6 ++-- module/program/lang/en.php | 6 ++-- module/program/lang/fr.php | 6 ++-- module/program/lang/vi.php | 6 ++-- module/program/lang/zh-cn.php | 6 ++-- module/program/lang/zh-tw.php | 6 ++-- module/program/model.php | 2 ++ module/program/view/pgmbrowsebylist.html.php | 2 +- module/program/view/pgmcreate.html.php | 2 +- module/program/view/pgmedit.html.php | 2 +- module/program/view/prjcreate.html.php | 2 +- module/upgrade/model.php | 31 ++++++++++++++++++++ 14 files changed, 57 insertions(+), 24 deletions(-) diff --git a/db/update20.0.alpha.sql b/db/update20.0.alpha.sql index 0cb26e6052..3992047afa 100644 --- a/db/update20.0.alpha.sql +++ b/db/update20.0.alpha.sql @@ -6,7 +6,7 @@ ALTER TABLE `zt_project` CHANGE `acl` `acl` char(30) NOT NULL DEFAULT 'open'; ALTER TABLE `zt_project` ADD `product` varchar(20) NOT NULL DEFAULT 'single' AFTER `type`; ALTER TABLE `zt_project` ADD `lifetime` char(30) NOT NULL AFTER `product`; ALTER TABLE `zt_project` ADD `budget` varchar(30) NOT NULL DEFAULT '0' AFTER `lifetime`; -ALTER TABLE `zt_project` ADD `budgetUnit` char(30) NOT NULL DEFAULT 'yuan' AFTER `budget`; +ALTER TABLE `zt_project` ADD `budgetUnit` char(30) NOT NULL DEFAULT 'wanyuan' AFTER `budget`; ALTER TABLE `zt_project` ADD `percent` float unsigned NOT NULL DEFAULT '0' AFTER `budgetUnit`; ALTER TABLE `zt_project` ADD `path` varchar(255) NOT NULL AFTER `parent`; ALTER TABLE `zt_project` ADD `grade` tinyint unsigned NOT NULL AFTER `path`; diff --git a/db/zentao.sql b/db/zentao.sql index f581997eb2..0e58c1be7f 100644 --- a/db/zentao.sql +++ b/db/zentao.sql @@ -709,7 +709,7 @@ CREATE TABLE IF NOT EXISTS `zt_project` ( `product` char(30) NOT NULL DEFAULT 'single', `lifetime` char(30) NOT NULL, `budget` varchar(30) NOT NULL DEFAULT '0', - `budgetUnit` char(30) NOT NULL DEFAULT 'yuan', + `budgetUnit` char(30) NOT NULL DEFAULT 'wanyuan', `attribute` varchar(30) NOT NULL DEFAULT '', `percent` float unsigned NOT NULL DEFAULT '0', `milestone` enum('0','1') NOT NULL DEFAULT '0', diff --git a/module/program/lang/de.php b/module/program/lang/de.php index 34768e659f..2ddd19d571 100644 --- a/module/program/lang/de.php +++ b/module/program/lang/de.php @@ -93,9 +93,9 @@ $lang->program->future = 'TBD'; $lang->program->productNotEmpty = 'Please link products or create products.'; $lang->program->existProductName = 'Product name already exists.'; -$lang->program->unitList[''] = ''; -$lang->program->unitList['yuan'] = 'Wanyuan'; -$lang->program->unitList['dollar'] = 'Dollars'; +$lang->program->unitList[''] = ''; +$lang->program->unitList['wanyuan'] = 'Wanyuan'; +$lang->program->unitList['dollar'] = 'Dollars'; $lang->program->modelList['scrum'] = "Scrum"; $lang->program->modelList['waterfall'] = "CMMI"; diff --git a/module/program/lang/en.php b/module/program/lang/en.php index 2039fb5070..1388f4ee52 100644 --- a/module/program/lang/en.php +++ b/module/program/lang/en.php @@ -93,9 +93,9 @@ $lang->program->future = 'TBD'; $lang->program->productNotEmpty = 'Please link products or create products.'; $lang->program->existProductName = 'Product name already exists.'; -$lang->program->unitList[''] = ''; -$lang->program->unitList['yuan'] = 'Wanyuan'; -$lang->program->unitList['dollar'] = 'Dollars'; +$lang->program->unitList[''] = ''; +$lang->program->unitList['wanyuan'] = 'Wanyuan'; +$lang->program->unitList['dollar'] = 'Dollars'; $lang->program->modelList['scrum'] = "Scrum"; $lang->program->modelList['waterfall'] = "CMMI"; diff --git a/module/program/lang/fr.php b/module/program/lang/fr.php index 34768e659f..2ddd19d571 100644 --- a/module/program/lang/fr.php +++ b/module/program/lang/fr.php @@ -93,9 +93,9 @@ $lang->program->future = 'TBD'; $lang->program->productNotEmpty = 'Please link products or create products.'; $lang->program->existProductName = 'Product name already exists.'; -$lang->program->unitList[''] = ''; -$lang->program->unitList['yuan'] = 'Wanyuan'; -$lang->program->unitList['dollar'] = 'Dollars'; +$lang->program->unitList[''] = ''; +$lang->program->unitList['wanyuan'] = 'Wanyuan'; +$lang->program->unitList['dollar'] = 'Dollars'; $lang->program->modelList['scrum'] = "Scrum"; $lang->program->modelList['waterfall'] = "CMMI"; diff --git a/module/program/lang/vi.php b/module/program/lang/vi.php index 34768e659f..2ddd19d571 100644 --- a/module/program/lang/vi.php +++ b/module/program/lang/vi.php @@ -93,9 +93,9 @@ $lang->program->future = 'TBD'; $lang->program->productNotEmpty = 'Please link products or create products.'; $lang->program->existProductName = 'Product name already exists.'; -$lang->program->unitList[''] = ''; -$lang->program->unitList['yuan'] = 'Wanyuan'; -$lang->program->unitList['dollar'] = 'Dollars'; +$lang->program->unitList[''] = ''; +$lang->program->unitList['wanyuan'] = 'Wanyuan'; +$lang->program->unitList['dollar'] = 'Dollars'; $lang->program->modelList['scrum'] = "Scrum"; $lang->program->modelList['waterfall'] = "CMMI"; diff --git a/module/program/lang/zh-cn.php b/module/program/lang/zh-cn.php index b4ab3d108d..f1ae0aa10c 100644 --- a/module/program/lang/zh-cn.php +++ b/module/program/lang/zh-cn.php @@ -93,9 +93,9 @@ $lang->program->future = '待定'; $lang->program->productNotEmpty = '请关联产品或创建产品。'; $lang->program->existProductName = '产品名称已存在。'; -$lang->program->unitList[''] = ''; -$lang->program->unitList['yuan'] = '万元'; -$lang->program->unitList['dollar'] = 'Dollars'; +$lang->program->unitList[''] = ''; +$lang->program->unitList['wanyuan'] = '万元'; +$lang->program->unitList['dollar'] = 'Dollars'; $lang->program->modelList['scrum'] = "Scrum"; $lang->program->modelList['waterfall'] = "瀑布"; diff --git a/module/program/lang/zh-tw.php b/module/program/lang/zh-tw.php index 9ebd3c15f8..78b06ec4b6 100644 --- a/module/program/lang/zh-tw.php +++ b/module/program/lang/zh-tw.php @@ -95,9 +95,9 @@ $lang->program->future = '待定'; $lang->program->productNotEmpty = '請關聯產品或創建產品。'; $lang->program->existProductName = '產品名稱已存在。'; -$lang->program->unitList[''] = ''; -$lang->program->unitList['yuan'] = '萬元'; -$lang->program->unitList['dollar'] = 'Dollars'; +$lang->program->unitList[''] = ''; +$lang->program->unitList['wanyuan'] = '萬元'; +$lang->program->unitList['dollar'] = 'Dollars'; $lang->program->modelList['scrum'] = "Scrum"; $lang->program->modelList['waterfall'] = "瀑布"; diff --git a/module/program/model.php b/module/program/model.php index 9bf76846b4..e414dfed81 100644 --- a/module/program/model.php +++ b/module/program/model.php @@ -122,6 +122,7 @@ class programModel extends model ->setDefault('openedDate', helper::now()) ->setIF($this->post->acl == 'open', 'whitelist', '') ->setIF($this->post->delta == 999, 'end', LONG_TIME) + ->setIF($this->post->budget != 0, 'budget', number_format($this->post->budget, 2)) ->add('type', 'program') ->join('whitelist', ',') ->cleanFloat('budget') @@ -223,6 +224,7 @@ class programModel extends model ->setIF($this->post->acl == 'open', 'whitelist', '') ->setIF($this->post->delta == 999, 'end', LONG_TIME) ->setIF($this->post->future, 'budget', 0) + ->setIF($this->post->budget != 0, 'budget', number_format($this->post->budget, 2)) ->join('whitelist', ',') ->stripTags($this->config->program->editor->pgmedit['id'], $this->config->allowedTags) ->remove('uid,delta,future') diff --git a/module/program/view/pgmbrowsebylist.html.php b/module/program/view/pgmbrowsebylist.html.php index 4de8609f2b..c53dfef7ad 100644 --- a/module/program/view/pgmbrowsebylist.html.php +++ b/module/program/view/pgmbrowsebylist.html.php @@ -52,7 +52,7 @@ PM);?> - budget ? $program->budget . ' ' . zget($lang->program->unitList, $program->budgetUnit) : '';?> + budget != 0 ? $program->budget . ' ' . zget($lang->program->unitList, $program->budgetUnit) : '';?> project->statusList, $program->status, '');?> begin;?> end == LONG_TIME ? $lang->program->PRJLongTime : $program->end;?> diff --git a/module/program/view/pgmcreate.html.php b/module/program/view/pgmcreate.html.php index 7b30080c0e..2b64f8f2dd 100644 --- a/module/program/view/pgmcreate.html.php +++ b/module/program/view/pgmcreate.html.php @@ -63,7 +63,7 @@
- program->unitList, empty($parentProgram->budgetUnit) ? 'yuan' : $parentProgram->budgetUnit, "class='form-control'");?> + program->unitList, empty($parentProgram->budgetUnit) ? 'wanyuan' : $parentProgram->budgetUnit, "class='form-control'");?>
diff --git a/module/program/view/pgmedit.html.php b/module/program/view/pgmedit.html.php index e9b7c6089a..2e541980ff 100644 --- a/module/program/view/pgmedit.html.php +++ b/module/program/view/pgmedit.html.php @@ -40,7 +40,7 @@ program->PGMBudget;?>
- budget ? $program->budget : '', "class='form-control'" . (strpos($requiredFields, 'budget') !== false ? ' required' : '') . ($program->budget == 0 ? 'disabled' : ''));?> + budget != 0 ? $program->budget : '', "class='form-control'" . (strpos($requiredFields, 'budget') !== false ? ' required' : '') . ($program->budget == 0 ? 'disabled' : ''));?> program->unitList, $program->budgetUnit, "class='form-control'");?>
diff --git a/module/program/view/prjcreate.html.php b/module/program/view/prjcreate.html.php index 3c13e5d05c..7c5b4a4f5a 100644 --- a/module/program/view/prjcreate.html.php +++ b/module/program/view/prjcreate.html.php @@ -103,7 +103,7 @@
- program->unitList, empty($parentProgram->budgetUnit) ? 'yuan' : $parentProgram->budgetUnit, "class='form-control'");?> + program->unitList, empty($parentProgram->budgetUnit) ? 'wanyuan' : $parentProgram->budgetUnit, "class='form-control'");?>
diff --git a/module/upgrade/model.php b/module/upgrade/model.php index 2666881bcb..95028c6ca6 100644 --- a/module/upgrade/model.php +++ b/module/upgrade/model.php @@ -655,6 +655,10 @@ class upgradeModel extends model $this->processBuildTable(); $this->processSprintConcept(); $this->appendExec('20_0_beta1'); + case '20_0_beta3': + $this->saveLogs('Execute 20_0_beta3'); + $this->adjustBudget(); + $this->appendExec('20_0_beta3'); } $this->deletePatch(); @@ -4405,4 +4409,31 @@ class upgradeModel extends model return true; } + + /** + * Adjust budget units and values. + * + * @access public + * @return void + */ + public function adjustBudget() + { + $budgets = $this->dao->select('id,budget,budgetUnit')->from(TABLE_PROJECT) + ->where('type')->in('project,program') + ->fetchAll('id'); + + foreach($budgets as $id => $budget) + { + $data = array(); + if($budget->budgetUnit == 'yuan') + { + $data['budget'] = number_format($budget->budget / 10000, 2); + $data['budgetUnit'] = 'wanyuan'; + } + + if($data) $this->dao->update(TABLE_PROJECT)->data($data)->where('id')->eq($id)->exec(); + } + + return true; + } } From 6c49ed72faca3e75d882541631d7c3c882b59834 Mon Sep 17 00:00:00 2001 From: tianshujie98 Date: Wed, 23 Dec 2020 11:24:48 +0800 Subject: [PATCH 07/12] * Adjust code style. --- module/my/control.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/module/my/control.php b/module/my/control.php index 18644a027e..87121555e0 100644 --- a/module/my/control.php +++ b/module/my/control.php @@ -224,8 +224,7 @@ class my extends control $this->view->pageID = $pageID; $this->view->orderBy = $orderBy; $this->view->pager = $pager; - $this->view->storyType = $storyType; - $this->view->mode = 'story'; + $this->view->mode = $storyType; $this->display(); } From 40b5697be9933a8b54fcd37ec231173c3404a232 Mon Sep 17 00:00:00 2001 From: qiyu-xie Date: Wed, 23 Dec 2020 11:30:32 +0800 Subject: [PATCH 08/12] * Delete PGMCode and PO language item. --- module/program/lang/de.php | 2 -- module/program/lang/en.php | 2 -- module/program/lang/fr.php | 2 -- module/program/lang/vi.php | 2 -- module/program/lang/zh-cn.php | 2 -- module/program/lang/zh-tw.php | 2 -- 6 files changed, 12 deletions(-) diff --git a/module/program/lang/de.php b/module/program/lang/de.php index 2ddd19d571..92c6a6da98 100644 --- a/module/program/lang/de.php +++ b/module/program/lang/de.php @@ -54,7 +54,6 @@ $lang->program->begin = 'Begin'; $lang->program->end = 'End'; $lang->program->PRJStatus = 'Status'; $lang->program->PRJPM = 'Manager'; -$lang->program->PO = 'Product Owner'; $lang->program->PRJBudget = 'Budget'; $lang->program->PRJTemplate = 'Template'; $lang->program->PRJEstimate = 'Estimates'; @@ -208,7 +207,6 @@ $lang->program->PGMName = 'Name'; $lang->program->PGMTemplate = 'Template'; $lang->program->PGMCategory = 'Type'; $lang->program->PGMDesc = 'Description'; -$lang->program->PGMCode = 'Code'; $lang->program->PGMCopy = 'Copy Program'; $lang->program->PGMStatus = 'Status'; $lang->program->PGMPM = 'Program manager'; diff --git a/module/program/lang/en.php b/module/program/lang/en.php index 1388f4ee52..8667293a72 100644 --- a/module/program/lang/en.php +++ b/module/program/lang/en.php @@ -54,7 +54,6 @@ $lang->program->begin = 'Begin'; $lang->program->end = 'End'; $lang->program->PRJStatus = 'Status'; $lang->program->PRJPM = 'Manager'; -$lang->program->PO = 'Product Owner'; $lang->program->PRJBudget = 'Budget'; $lang->program->PRJTemplate = 'Template'; $lang->program->PRJEstimate = 'Estimates'; @@ -208,7 +207,6 @@ $lang->program->PGMName = 'Name'; $lang->program->PGMTemplate = 'Template'; $lang->program->PGMCategory = 'Type'; $lang->program->PGMDesc = 'Description'; -$lang->program->PGMCode = 'Code'; $lang->program->PGMCopy = 'Copy Program'; $lang->program->PGMStatus = 'Status'; $lang->program->PGMPM = 'Program manager'; diff --git a/module/program/lang/fr.php b/module/program/lang/fr.php index 2ddd19d571..92c6a6da98 100644 --- a/module/program/lang/fr.php +++ b/module/program/lang/fr.php @@ -54,7 +54,6 @@ $lang->program->begin = 'Begin'; $lang->program->end = 'End'; $lang->program->PRJStatus = 'Status'; $lang->program->PRJPM = 'Manager'; -$lang->program->PO = 'Product Owner'; $lang->program->PRJBudget = 'Budget'; $lang->program->PRJTemplate = 'Template'; $lang->program->PRJEstimate = 'Estimates'; @@ -208,7 +207,6 @@ $lang->program->PGMName = 'Name'; $lang->program->PGMTemplate = 'Template'; $lang->program->PGMCategory = 'Type'; $lang->program->PGMDesc = 'Description'; -$lang->program->PGMCode = 'Code'; $lang->program->PGMCopy = 'Copy Program'; $lang->program->PGMStatus = 'Status'; $lang->program->PGMPM = 'Program manager'; diff --git a/module/program/lang/vi.php b/module/program/lang/vi.php index 2ddd19d571..92c6a6da98 100644 --- a/module/program/lang/vi.php +++ b/module/program/lang/vi.php @@ -54,7 +54,6 @@ $lang->program->begin = 'Begin'; $lang->program->end = 'End'; $lang->program->PRJStatus = 'Status'; $lang->program->PRJPM = 'Manager'; -$lang->program->PO = 'Product Owner'; $lang->program->PRJBudget = 'Budget'; $lang->program->PRJTemplate = 'Template'; $lang->program->PRJEstimate = 'Estimates'; @@ -208,7 +207,6 @@ $lang->program->PGMName = 'Name'; $lang->program->PGMTemplate = 'Template'; $lang->program->PGMCategory = 'Type'; $lang->program->PGMDesc = 'Description'; -$lang->program->PGMCode = 'Code'; $lang->program->PGMCopy = 'Copy Program'; $lang->program->PGMStatus = 'Status'; $lang->program->PGMPM = 'Program manager'; diff --git a/module/program/lang/zh-cn.php b/module/program/lang/zh-cn.php index f1ae0aa10c..6a67317cb7 100644 --- a/module/program/lang/zh-cn.php +++ b/module/program/lang/zh-cn.php @@ -54,7 +54,6 @@ $lang->program->begin = '计划开始'; $lang->program->end = '计划完成'; $lang->program->PRJStatus = '项目状态'; $lang->program->PRJPM = '项目负责人'; -$lang->program->PO = '产品负责人'; $lang->program->PRJBudget = '项目预算'; $lang->program->PRJTemplate = '项目模板'; $lang->program->PRJEstimate = '预计'; @@ -208,7 +207,6 @@ $lang->program->PGMName = '项目集名称'; $lang->program->PGMTemplate = '项目集模板'; $lang->program->PGMCategory = '项目集类型'; $lang->program->PGMDesc = '项目集描述'; -$lang->program->PGMCode = '项目集代号'; $lang->program->PGMCopy = '复制项目集'; $lang->program->PGMStatus = '状态'; $lang->program->PGMPM = '项目集负责人'; diff --git a/module/program/lang/zh-tw.php b/module/program/lang/zh-tw.php index 78b06ec4b6..57bcab6d58 100644 --- a/module/program/lang/zh-tw.php +++ b/module/program/lang/zh-tw.php @@ -56,7 +56,6 @@ $lang->program->begin = '計劃開始'; $lang->program->end = '計劃完成'; $lang->program->PRJStatus = '項目狀態'; $lang->program->PRJPM = '項目負責人'; -$lang->program->PO = '產品負責人'; $lang->program->PRJBudget = '項目預算'; $lang->program->PRJTemplate = '項目模板'; $lang->program->PRJEstimate = '預計'; @@ -211,7 +210,6 @@ $lang->program->PGMName = '項目集名稱'; $lang->program->PGMTemplate = '項目集模板'; $lang->program->PGMCategory = '項目集類型'; $lang->program->PGMDesc = '項目集描述'; -$lang->program->PGMCode = '項目集代號'; $lang->program->PGMCopy = '複製項目集'; $lang->program->PGMStatus = '狀態'; $lang->program->PGMPM = '項目集負責人'; From de59aeebbb14565a04d6f63f7b5b670ce43350ec Mon Sep 17 00:00:00 2001 From: tianshujie98 Date: Wed, 23 Dec 2020 11:36:23 +0800 Subject: [PATCH 09/12] * Fix bug. --- module/my/js/common.js | 1 + 1 file changed, 1 insertion(+) diff --git a/module/my/js/common.js b/module/my/js/common.js index 2a14f2d50c..a2c2d30ed3 100644 --- a/module/my/js/common.js +++ b/module/my/js/common.js @@ -3,6 +3,7 @@ $(function() if(typeof(mode) != 'undefined') { if(mode == 'testcase') mode = 'testtask'; + if(mode == 'requirement') mode = 'story'; $('#subNavbar li[data-id=' + mode + ']').addClass('active'); } var scp = $('[data-id="changePassword"] a'); From a431691425fce4c615b5def5499b683fcba79634 Mon Sep 17 00:00:00 2001 From: holan20180123 <56391770@qq.com> Date: Wed, 23 Dec 2020 13:43:25 +0800 Subject: [PATCH 10/12] * Remove build field from release of product. --- module/program/view/pgmproduct.html.php | 2 -- module/release/config.php | 2 +- module/release/control.php | 11 +---------- module/release/model.php | 3 --- module/release/view/create.html.php | 4 ---- module/release/view/edit.html.php | 4 ---- 6 files changed, 2 insertions(+), 24 deletions(-) diff --git a/module/program/view/pgmproduct.html.php b/module/program/view/pgmproduct.html.php index c64fc2a70d..e54e69a9c0 100644 --- a/module/program/view/pgmproduct.html.php +++ b/module/program/view/pgmproduct.html.php @@ -40,7 +40,6 @@ idAB);?> product->name);?> - product->program;?> product->activeStories;?> product->changedStories;?> product->draftStories;?> @@ -65,7 +64,6 @@ createLink('product', 'browse', 'product=' . $product->id), $product->name);?> - name;?> stories['active'];?> stories['changed'];?> stories['draft'];?> diff --git a/module/release/config.php b/module/release/config.php index 464702d309..7e52377cd7 100644 --- a/module/release/config.php +++ b/module/release/config.php @@ -3,7 +3,7 @@ $config->release = new stdclass(); $config->release->create = new stdclass(); $config->release->edit = new stdclass(); $config->release->create->requiredFields = 'name,date'; -$config->release->edit->requiredFields = 'name,date,build'; +$config->release->edit->requiredFields = 'name,date'; $config->release->editor = new stdclass(); $config->release->editor->create = array('id' => 'desc', 'tools' => 'simpleTools'); diff --git a/module/release/control.php b/module/release/control.php index e712c01d03..25907dc273 100644 --- a/module/release/control.php +++ b/module/release/control.php @@ -77,15 +77,9 @@ class release extends control $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => inlink('view', "releaseID=$releaseID"))); } - $builds = $this->loadModel('build')->getProductBuildPairs($productID, $branch, 'notrunk|withbranch', false); - $releaseBuilds = $this->release->getReleaseBuilds($productID, $branch); - foreach($releaseBuilds as $build) unset($builds[$build]); - unset($builds['trunk']); - $this->commonAction($productID, $branch); $this->view->title = $this->view->product->name . $this->lang->colon . $this->lang->release->create; $this->view->position[] = $this->lang->release->create; - $this->view->builds = $builds; $this->view->productID = $productID; $this->view->lastRelease = $this->release->getLast($productID, $branch); $this->display(); @@ -119,16 +113,13 @@ class release extends control $this->loadModel('bug'); $this->loadModel('build'); - /* Get release and build. */ + /* Get release. */ $release = $this->release->getById((int)$releaseID); $this->commonAction($release->product, $release->branch); - $build = $this->build->getById($release->build); $this->view->title = $this->view->product->name . $this->lang->colon . $this->lang->release->edit; $this->view->position[] = $this->lang->release->edit; $this->view->release = $release; - $this->view->build = $build; - $this->view->builds = $this->loadModel('build')->getProductBuildPairs($release->product, $release->branch, 'notrunk|withbranch', false); $this->display(); } diff --git a/module/release/model.php b/module/release/model.php index df1549f5d5..71f3cf75ce 100644 --- a/module/release/model.php +++ b/module/release/model.php @@ -114,9 +114,6 @@ class releaseModel extends model $branch = (int)$branch; $buildID = 0; - /* Check build if build is required. */ - if(strpos($this->config->release->create->requiredFields, 'build') !== false and $this->post->build == false) return dao::$errors[] = sprintf($this->lang->error->notempty, $this->lang->release->build); - /* Check date must be not more than today. */ if($this->post->date > date('Y-m-d')) return dao::$errors[] = $this->lang->release->errorDate; diff --git a/module/release/view/create.html.php b/module/release/view/create.html.php index 8fddb38e36..6a8266e630 100644 --- a/module/release/view/create.html.php +++ b/module/release/view/create.html.php @@ -31,10 +31,6 @@ release->last . ': ' . $lastRelease->name . ')';?> - - release->build;?> - - release->date;?> diff --git a/module/release/view/edit.html.php b/module/release/view/edit.html.php index bf94003bc4..8bc5a95af1 100644 --- a/module/release/view/edit.html.php +++ b/module/release/view/edit.html.php @@ -35,10 +35,6 @@
- - release->build;?> - build, "class='form-control chosen' required"); ?> - release->date;?> date, "class='form-control form-date' required");?> From 5038567a2c9d64ced1c71bf9fd5a39de0078e147 Mon Sep 17 00:00:00 2001 From: holan20180123 <56391770@qq.com> Date: Wed, 23 Dec 2020 13:53:16 +0800 Subject: [PATCH 11/12] * Finish task #8749. --- module/program/view/pgmproduct.html.php | 1 + 1 file changed, 1 insertion(+) diff --git a/module/program/view/pgmproduct.html.php b/module/program/view/pgmproduct.html.php index e54e69a9c0..657e178cfd 100644 --- a/module/program/view/pgmproduct.html.php +++ b/module/program/view/pgmproduct.html.php @@ -15,6 +15,7 @@
product->featureBar['all'] as $key => $label):?> + {$pager->recTotal}";?> id&browseType=$key&orderBy=$orderBy"), "{$label}", '', "class='btn btn-link $active'");?>
From 3f968dac819bc9e5de09a3726b9a4cbdea6e59ad Mon Sep 17 00:00:00 2001 From: tianshujie98 Date: Wed, 23 Dec 2020 13:53:26 +0800 Subject: [PATCH 12/12] * Fix bug. --- module/my/view/story.html.php | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/module/my/view/story.html.php b/module/my/view/story.html.php index 2fb93ed28a..83f0c5588d 100644 --- a/module/my/view/story.html.php +++ b/module/my/view/story.html.php @@ -17,16 +17,16 @@ {$pager->recTotal}"; echo "{$lang->productURCommon}"; - echo html::a(inlink($app->rawMethod, "mode=requirement&type=assignedTo"), "{$lang->my->storyMenu->assignedToMe}" . ($type == 'assignedTo' && $mode == 'requirement' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedTo' && $mode == 'requirement' ? ' btn-active-text' : '') . "'"); - echo html::a(inlink($app->rawMethod, "mode=requirement&type=openedBy"), "{$lang->my->storyMenu->openedByMe}" . ($type == 'openedBy' && $mode == 'requirement' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'openedBy' && $mode == 'requirement' ? ' btn-active-text' : '') . "'"); - echo html::a(inlink($app->rawMethod, "mode=requirement&type=reviewedBy"), "{$lang->my->storyMenu->reviewedByMe}" . ($type == 'reviewedBy' && $mode == 'requirement' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'reviewedBy' && $mode == 'requirement' ? ' btn-active-text' : '') . "'"); - if($app->rawMethod == 'contribute') echo html::a(inlink($app->rawMethod, "mode=requirement&type=closedBy"), "{$lang->my->storyMenu->closedByMe}" . ($type == 'closedBy' & $mode == 'requirement' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' & $mode == 'requirement' ? ' btn-active-text' : '') . "'"); + echo html::a(inlink($app->rawMethod, "mode=requirement&type=assignedTo&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pagerID=$pageID"), "{$lang->my->storyMenu->assignedToMe}" . ($type == 'assignedTo' && $mode == 'requirement' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedTo' && $mode == 'requirement' ? ' btn-active-text' : '') . "'"); + echo html::a(inlink($app->rawMethod, "mode=requirement&type=openedBy&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pagerID=$pageID"), "{$lang->my->storyMenu->openedByMe}" . ($type == 'openedBy' && $mode == 'requirement' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'openedBy' && $mode == 'requirement' ? ' btn-active-text' : '') . "'"); + echo html::a(inlink($app->rawMethod, "mode=requirement&type=reviewedBy&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pagerID=$pageID"), "{$lang->my->storyMenu->reviewedByMe}" . ($type == 'reviewedBy' && $mode == 'requirement' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'reviewedBy' && $mode == 'requirement' ? ' btn-active-text' : '') . "'"); + if($app->rawMethod == 'contribute') echo html::a(inlink($app->rawMethod, "mode=requirement&type=closedBy&&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pagerID=$pageID"), "{$lang->my->storyMenu->closedByMe}" . ($type == 'closedBy' && $mode == 'requirement' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' && $mode == 'requirement' ? ' btn-active-text' : '') . "'"); echo " | "; echo "{$lang->productSRCommon}"; - echo html::a(inlink($app->rawMethod, "mode=story&type=assignedTo"), "{$lang->my->storyMenu->assignedToMe}" . ($type == 'assignedTo' && $mode == 'story' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedTo' && $mode == 'story' ? ' btn-active-text' : '') . "'"); - echo html::a(inlink($app->rawMethod, "mode=story&type=openedBy"), "{$lang->my->storyMenu->openedByMe}" . ($type == 'openedBy' && $mode == 'story' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'openedBy' && $mode == 'story' ? ' btn-active-text' : '') . "'"); - echo html::a(inlink($app->rawMethod, "mode=story&type=reviewedBy"), "{$lang->my->storyMenu->reviewedByMe}" . ($type == 'reviewedBy' && $mode == 'story' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'reviewedBy' && $mode == 'story' ? ' btn-active-text' : '') . "'"); - if($app->rawMethod == 'contribute') echo html::a(inlink($app->rawMethod, "mode=story&type=closedBy"), "{$lang->my->storyMenu->closedByMe}" . ($type == 'closedBy' & $mode == 'story' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' & $mode == 'story' ? ' btn-active-text' : '') . "'"); + echo html::a(inlink($app->rawMethod, "mode=story&type=assignedTo&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pagerID=$pageID"), "{$lang->my->storyMenu->assignedToMe}" . ($type == 'assignedTo' && $mode == 'story' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedTo' && $mode == 'story' ? ' btn-active-text' : '') . "'"); + echo html::a(inlink($app->rawMethod, "mode=story&type=openedBy&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pagerID=$pageID"), "{$lang->my->storyMenu->openedByMe}" . ($type == 'openedBy' && $mode == 'story' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'openedBy' && $mode == 'story' ? ' btn-active-text' : '') . "'"); + echo html::a(inlink($app->rawMethod, "mode=story&type=reviewedBy&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pagerID=$pageID"), "{$lang->my->storyMenu->reviewedByMe}" . ($type == 'reviewedBy' && $mode == 'story' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'reviewedBy' && $mode == 'story' ? ' btn-active-text' : '') . "'"); + if($app->rawMethod == 'contribute') echo html::a(inlink($app->rawMethod, "mode=story&type=closedBy&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pagerID=$pageID"), "{$lang->my->storyMenu->closedByMe}" . ($type == 'closedBy' && $mode == 'story' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' && $mode == 'story' ? ' btn-active-text' : '') . "'"); ?>
@@ -56,7 +56,7 @@ idAB);?> - priAB);?> + priAB);?> my->name);?> story->product);?>