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);