From ff2ec7570d76a77894aeeae63c09490ed697db4f Mon Sep 17 00:00:00 2001 From: wangyidong Date: Tue, 13 Jun 2023 16:18:41 +0800 Subject: [PATCH] * Rewrite user testtask page. --- module/user/config.php | 9 ++--- module/user/js/testtask.ui.js | 7 ++++ module/user/ui/testtask.html.php | 56 ++++++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+), 4 deletions(-) create mode 100644 module/user/js/testtask.ui.js create mode 100644 module/user/ui/testtask.html.php diff --git a/module/user/config.php b/module/user/config.php index 10b71372a8..19fad22343 100644 --- a/module/user/config.php +++ b/module/user/config.php @@ -22,7 +22,8 @@ $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['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'); diff --git a/module/user/js/testtask.ui.js b/module/user/js/testtask.ui.js new file mode 100644 index 0000000000..469a5af5b4 --- /dev/null +++ b/module/user/js/testtask.ui.js @@ -0,0 +1,7 @@ +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/testtask.html.php b/module/user/ui/testtask.html.php new file mode 100644 index 0000000000..bd0deab900 --- /dev/null +++ b/module/user/ui/testtask.html.php @@ -0,0 +1,56 @@ + + * @package user + * @link https://www.zentao.net + */ +namespace zin; +include './featurebar.html.php'; + +jsVar('trunkLang', $lang->trunk); + +$todoNavs = array(); +$that = zget($lang->user->thirdPerson, $user->gender); +$testtaskNavs['assignedTo'] = array('text' => sprintf($lang->user->testTask2Him, $that), 'url' => inlink('testtask', "userID={$user->id}"), 'active' => true); + +$cols = array(); +foreach($config->user->defaultFields['testtask'] as $field) $cols[$field] = $config->testtask->dtable->fieldList[$field]; +$cols['id']['checkbox'] = false; + +$waitCount = 0; +$testingCount = 0; +$blockedCount = 0; +$doneCount = 0; +foreach($tasks as $task) +{ + if($task->status == 'wait') $waitCount ++; + 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); + +panel +( + setClass('list'), + set::title(null), + set::headingActions(array(nav(set::items($testtaskNavs)))), + dtable + ( + set::userMap($users), + set::bordered(true), + set::cols($cols), + set::data(array_values($tasks)), + set::footPager(usePager()), + set::onRenderCell(jsRaw('window.renderCell')), + set::footer(array(array('html' => $summary, 'className' => "text-dark"), 'flex', 'pager')), + ) +); + +render();