diff --git a/module/user/config.php b/module/user/config.php index d470ebcafa..7277325384 100644 --- a/module/user/config.php +++ b/module/user/config.php @@ -22,9 +22,10 @@ $config->user->resetPasswordTimeout = 3; /* User detail fields for API against JIHU GitLab. */ $config->user->detailFields = 'id,account,realname,avatar'; -$config->user->defaultFields['todo'] = array('id', 'name', 'pri', 'date', 'status', 'type', 'begin', 'end'); -$config->user->defaultFields['task'] = array('id', 'name', 'pri', 'status', 'execution', 'deadline', 'estimate', 'consumed', 'left'); -$config->user->defaultFields['story'] = array('id', 'title', 'pri', 'status', 'product', 'plan', 'openedBy', 'estimate', 'stage'); -$config->user->defaultFields['bug'] = array('id', 'title', 'severity', 'pri', 'openedBy', 'resolvedBy', 'resolution'); -$config->user->defaultFields['testtask'] = array('id', 'title', 'execution', 'build', 'begin', 'end', 'status'); -$config->user->defaultFields['testcase'] = array('id', 'title', 'pri', 'type', 'status', 'openedBy', 'lastRunner', 'lastRunDate', 'lastRunResult'); +$config->user->defaultFields['todo'] = array('id', 'name', 'pri', 'date', 'status', 'type', 'begin', 'end'); +$config->user->defaultFields['task'] = array('id', 'name', 'pri', 'status', 'execution', 'deadline', 'estimate', 'consumed', 'left'); +$config->user->defaultFields['story'] = array('id', 'title', 'pri', 'status', 'product', 'plan', 'openedBy', 'estimate', 'stage'); +$config->user->defaultFields['bug'] = array('id', 'title', 'severity', 'pri', 'openedBy', 'resolvedBy', 'resolution'); +$config->user->defaultFields['testtask'] = array('id', 'title', 'execution', 'build', 'begin', 'end', 'status'); +$config->user->defaultFields['testcase'] = array('id', 'title', 'pri', 'type', 'status', 'openedBy', 'lastRunner', 'lastRunDate', 'lastRunResult'); +$config->user->defaultFields['execution'] = array('id', 'name', 'status', 'role', 'begin', 'end', 'join', 'hours'); diff --git a/module/user/js/execution.ui.js b/module/user/js/execution.ui.js new file mode 100644 index 0000000000..737cf8577a --- /dev/null +++ b/module/user/js/execution.ui.js @@ -0,0 +1,11 @@ +window.renderCell = function(result, info) +{ + const execution = info.row.data; + if(info.col.name == 'name' && result) + { + let html = ''; + if(edition == 'max') html = "" + executionTypeList[execution.type] + ""; + if(html) result.unshift({html}); + } + return result; +}; diff --git a/module/user/js/story.ui.js b/module/user/js/story.ui.js deleted file mode 100644 index 8e859a1a74..0000000000 --- a/module/user/js/story.ui.js +++ /dev/null @@ -1,5 +0,0 @@ -window.renderCell = function(result, info) -{ - if(info.col.name == 'status' && result) return [info.row.data.statusLabel]; - return result; -}; diff --git a/module/user/js/task.ui.js b/module/user/js/task.ui.js index 9d8844e4da..c766f2930f 100644 --- a/module/user/js/task.ui.js +++ b/module/user/js/task.ui.js @@ -8,7 +8,6 @@ window.renderCell = function(result, info) if(task.parent) html += "" + childrenAB + ""; if(html) result.unshift({html}); } - if(info.col.name == 'status' && result) return [task.statusLabel]; if(info.col.name == 'deadline' && result[0]) { if(result[0] == '0000-00-00') return ['']; diff --git a/module/user/js/testcase.ui.js b/module/user/js/testcase.ui.js index bde6a304b2..e11e244ca0 100644 --- a/module/user/js/testcase.ui.js +++ b/module/user/js/testcase.ui.js @@ -1,7 +1,6 @@ window.renderCell = function(result, info) { const testcase = info.row.data; - if(info.col.name == 'status' && result) return [testcase.statusLabel]; if(info.col.name == 'lastRunDate' && result) { if(testcase.lastRunDate == '0000-00-00 00:00:00') return ['']; diff --git a/module/user/js/testtask.ui.js b/module/user/js/testtask.ui.js index 469a5af5b4..f04a804754 100644 --- a/module/user/js/testtask.ui.js +++ b/module/user/js/testtask.ui.js @@ -1,7 +1,6 @@ window.renderCell = function(result, info) { const task = info.row.data; - if(info.col.name == 'status' && result) return [task.statusLabel]; if(info.col.name == 'buildName' && result && task.build == 'trunk') return [trunkLang]; return result; }; diff --git a/module/user/ui/execution.html.php b/module/user/ui/execution.html.php new file mode 100644 index 0000000000..3ce6256c95 --- /dev/null +++ b/module/user/ui/execution.html.php @@ -0,0 +1,43 @@ + + * @package user + * @link https://www.zentao.net + */ +namespace zin; +include './featurebar.html.php'; + +jsVar('delayed', $lang->execution->delayed); +jsVar('executionTypeList', $lang->user->executionTypeList); +jsVar('edition', $config->edition); + +$cols = array(); +foreach($config->user->defaultFields['execution'] as $field) $cols[$field] = zget($config->execution->dtable->fieldList, $field, array()); +$cols['name']['nestedToggle'] = false; +$cols['name']['type'] = 'text'; +$cols['name']['link'] = array('module' => 'execution', 'method' => 'view', 'params' => 'executionID={id}'); + +$cols['id'] = array('type' => 'checkID', 'fixed' => 'left', 'title' => $lang->idAB, 'checkbox' => false); +$cols['role'] = array('type' => 'user', 'title' => $lang->team->role); +$cols['join'] = array('type' => 'date', 'title' => $lang->team->join); +$cols['hours'] = array('type' => 'number', 'title' => $lang->team->hours); + +panel +( + setClass('list'), + set::title(null), + dtable + ( + set::bordered(true), + set::cols($cols), + set::data(array_values($executions)), + set::onRenderCell(jsRaw('window.renderCell')), + set::footPager(usePager()), + ) +); + +render(); diff --git a/module/user/ui/story.html.php b/module/user/ui/story.html.php index 1464431fb1..946ec0faf7 100644 --- a/module/user/ui/story.html.php +++ b/module/user/ui/story.html.php @@ -29,11 +29,7 @@ if($storyType == 'requirement' || $this->config->vision == 'lite') unset($cols[' if($this->config->vision == 'lite') unset($cols['stage']); if($this->config->vision == 'lite') $cols['product']['title'] = $lang->story->project; -foreach($stories as $story) -{ - $story->statusLabel = $this->processStatus('story', $story); - $story->estimate .= $config->hourUnit; -} +foreach($stories as $story) $story->estimate .= $config->hourUnit; panel ( @@ -46,7 +42,6 @@ panel set::bordered(true), set::cols($cols), set::data(array_values($stories)), - set::onRenderCell(jsRaw('window.renderCell')), set::footPager(usePager()), ) ); diff --git a/module/user/ui/task.html.php b/module/user/ui/task.html.php index e58b71f560..7eda173142 100644 --- a/module/user/ui/task.html.php +++ b/module/user/ui/task.html.php @@ -33,7 +33,6 @@ $cols['name']['nestedToggle'] = false; $tasks = initTableData($tasks, $cols, $this->task); foreach($tasks as $task) { - $task->statusLabel = $this->processStatus('task', $task); $task->estimateLabel = $task->estimate . $lang->execution->workHourUnit; $task->consumedLabel = $task->consumed . $lang->execution->workHourUnit; $task->leftLabel = $task->left . $lang->execution->workHourUnit; diff --git a/module/user/ui/testcase.html.php b/module/user/ui/testcase.html.php index 3cfc919524..2b85006226 100644 --- a/module/user/ui/testcase.html.php +++ b/module/user/ui/testcase.html.php @@ -11,10 +11,7 @@ declare(strict_types=1); namespace zin; include './featurebar.html.php'; -jsVar('trunkLang', $lang->trunk); - -$todoNavs = array(); -$that = zget($lang->user->thirdPerson, $user->gender); +$that = zget($lang->user->thirdPerson, $user->gender); $testcaseNavs['case2Him'] = array('text' => sprintf($lang->user->case2Him, $that), 'url' => inlink('testcase', "userID={$user->id}&type=case2Him")); $testcaseNavs['caseByHim'] = array('text' => sprintf($lang->user->caseByHim, $that), 'url' => inlink('testcase', "userID={$user->id}&type=caseByHim")); if(isset($testcaseNavs[$type])) $testcaseNavs[$type]['active'] = true; @@ -23,19 +20,12 @@ $cols = array(); foreach($config->user->defaultFields['testcase'] as $field) $cols[$field] = $config->testcase->dtable->fieldList[$field]; $cols['id']['checkbox'] = false; $cols['title']['nestedToggle'] = false; +$cols['status']['statusMap']['changed'] = $lang->story->changed;; foreach($cases as $case) { if($type == 'case2Him') $case->id = $case->case; - if((isset($case->fromCaseVersion) && $case->fromCaseVersion > $case->version) || $case->needconfirm) - { - $case->status = 'changed'; - $case->statusLabel = $lang->story->changed; - } - else - { - $case->statusLabel = $this->processStatus('testcase', $case); - } + if((isset($case->fromCaseVersion) && $case->fromCaseVersion > $case->version) || $case->needconfirm) $case->status = 'changed'; } panel diff --git a/module/user/ui/testtask.html.php b/module/user/ui/testtask.html.php index c23049b766..a59c961208 100644 --- a/module/user/ui/testtask.html.php +++ b/module/user/ui/testtask.html.php @@ -30,8 +30,6 @@ foreach($tasks as $task) if($task->status == 'doing') $testingCount ++; if($task->status == 'blocked') $blockedCount ++; if($task->status == 'done') $doneCount ++; - - $task->statusLabel = $this->processStatus('testtask', $task); } $summary = sprintf($lang->testtask->allSummary, count($tasks), $waitCount, $testingCount, $blockedCount, $doneCount);