diff --git a/api/v1/entries/productissue.php b/api/v1/entries/projectissue.php similarity index 87% rename from api/v1/entries/productissue.php rename to api/v1/entries/projectissue.php index f41d099905..b3f30d5154 100644 --- a/api/v1/entries/productissue.php +++ b/api/v1/entries/projectissue.php @@ -1,16 +1,18 @@ setParam('timeFormat', 'utc'); + $idParams = explode('-', $issueID); if(count($idParams) < 2) $this->sendError(400, 'The id of issue is wrong.'); @@ -32,7 +34,7 @@ class productIssueEntry extends entry $issue->assignedTo = $story->assignedTo; $issue->openedDate = $story->openedDate; $issue->openedBy = $story->openedBy; - $issue->lastEditedDate = $story->lastEditedDate; + $issue->lastEditedDate = $story->lastEditedDate < '1970-01-01 01:01:01' ? $story->openedDate : $story->lastEditedDate; $issue->status = $storyStatus[$story->status]; $issue->url = $this->createLink('story', 'view', "storyID=$id"); @@ -51,7 +53,7 @@ class productIssueEntry extends entry $issue->assignedTo = $bug->assignedTo; $issue->openedDate = $bug->openedDate; $issue->openedBy = $bug->openedBy; - $issue->lastEditedDate = $bug->lastEditedDate; + $issue->lastEditedDate = $bug->lastEditedDate < '1970-01-01 01:01:01' ? $bug->openedDate : $bug->lastEditedDate; $issue->status = $bugStatus[$bug->status]; $issue->url = $this->createLink('bug', 'view', "bugID=$id"); $issue->desc = $bug->steps; @@ -69,7 +71,7 @@ class productIssueEntry extends entry $issue->assignedTo = $task->assignedTo; $issue->openedDate = $task->openedDate; $issue->openedBy = $task->openedBy; - $issue->lastEditedDate = $task->lastEditedDate; + $issue->lastEditedDate = $task->lastEditedDate < '1970-01-01 01:01:01' ? $task->openedDate : $task->lastEditedDate; $issue->status = $taskStatus[$task->status]; $issue->url = $this->createLink('task', 'view', "taskID=$id"); $issue->desc = $task->desc; diff --git a/api/v1/entries/productissues.php b/api/v1/entries/projectissues.php similarity index 78% rename from api/v1/entries/productissues.php rename to api/v1/entries/projectissues.php index df3254cb6b..5ceb24cb2e 100644 --- a/api/v1/entries/productissues.php +++ b/api/v1/entries/projectissues.php @@ -4,13 +4,15 @@ * 版本V1 * 目前适用于Gitlab * - * The product issues entry point of zentaopms + * The project issues entry point of zentaopms * Version 1 */ -class productIssuesEntry extends entry +class projectIssuesEntry extends entry { public function get($productID) { + $this->setParam('timeFormat', 'utc'); + $taskFields = 'id,status'; $taskStatus = array('' => ''); $taskStatus['wait'] = 'wait'; @@ -24,12 +26,18 @@ class productIssuesEntry extends entry $storyStatus = array('' => ''); $storyStatus['wait'] = 'draft'; $storyStatus['active'] = 'active,changed'; + $storyStatus['done'] = ''; + $storyStatus['pause'] = ''; + $storyStatus['cancel'] = ''; $storyStatus['closed'] = 'closed'; $bugFields = 'id,status'; $bugStatus = array('' => ''); + $bugStatus['wait'] = ''; $bugStatus['active'] = 'active'; $bugStatus['done'] = 'resolved'; + $bugStatus['pause'] = ''; + $bugStatus['cancel'] = ''; $bugStatus['closed'] = 'closed'; $productID = (int)$productID; @@ -50,10 +58,16 @@ class productIssuesEntry extends entry $taskFields .= ',name as title'; $storyFields .= ',title'; $bugFields .= ',title'; + case 'lastEditedDate': + $taskFields .= ",if(lastEditedDate < '1970-01-01 01-01-01', openedDate, lastEditedDate) as lastEditedDate"; + $storyFields .= ",if(lastEditedDate < '1970-01-01 01-01-01', openedDate, lastEditedDate) as lastEditedDate"; + $bugFields .= ",if(lastEditedDate < '1970-01-01 01-01-01', openedDate, lastEditedDate) as lastEditedDate"; default: $taskFields .= ',openedDate'; $storyFields .= ',openedDate'; $bugFields .= ',openedDate'; + + $order = 'openedDate'; } $issues = array(); @@ -136,8 +150,9 @@ class productIssuesEntry extends entry $r->assignedTo = $task->assignedTo; $r->openedDate = $task->openedDate; $r->openedBy = $task->openedBy; - $r->lastEditedDate = $task->lastEditedDate; + $r->lastEditedDate = $task->lastEditedDate < '1970-01-01 01:01:01' ? $task->openedDate : $task->lastEditedDate; $r->status = $task->status; + $r->url = $this->createLink('task', 'view', "taskID=$task->id"); } else if($issue['type'] == 'story') { @@ -150,8 +165,9 @@ class productIssuesEntry extends entry $r->assignedTo = $story->assignedTo; $r->openedDate = $story->openedDate; $r->openedBy = $story->openedBy; - $r->lastEditedDate = $story->lastEditedDate; + $r->lastEditedDate = $story->lastEditedDate < '1970-01-01 01:01:01' ? $story->openedDate : $story->lastEditedDate; $r->status = $story->status; + $r->url = $this->createLink('story', 'view', "storyID=$story->id"); } else if($issue['type'] == 'bug') { @@ -164,9 +180,11 @@ class productIssuesEntry extends entry $r->assignedTo = $bug->assignedTo; $r->openedDate = $bug->openedDate; $r->openedBy = $bug->openedBy; - $r->lastEditedDate = $bug->lastEditedDate; + $r->lastEditedDate = $bug->lastEditedDate < '1970-01-01 01:01:01' ? $bug->openedDate : $bug->lastEditedDate; $r->status = $bug->status; + $r->url = $this->createLink('bug', 'view', "bugID=$bug->id"); } + $result[] = $this->format($r, 'openedDate:time,lastEditedDate:time'); } @@ -190,4 +208,24 @@ class productIssuesEntry extends entry return ''; } + + /** + * Create url of issue. + * + * @param string $module + * @param string $method + * @param string $vars + * @access private + * @return string + */ + private function createLink($module, $method, $vars) + { + $link = helper::createLink($module, $method, $vars, 'html'); + if($this->config->requestType == 'GET') + { + $pos = strpos($link, '.php'); + $link = '/index' . substr($link, $pos); + } + return common::getSysURL() . $link; + } } diff --git a/config/routes.php b/config/routes.php index bf01be4eaf..d200dcd689 100644 --- a/config/routes.php +++ b/config/routes.php @@ -38,7 +38,7 @@ $routes['/user'] = 'user'; $routes['/programs'] = 'programs'; $routes['/programs/:id'] = 'program'; -$routes['/issues/:issueID'] = 'productIssue'; -$routes['/products/:productID/issues'] = 'productIssues'; +$routes['/issues/:issueID'] = 'projectIssue'; +$routes['/projects/:projectID/issues'] = 'projectIssues'; $config->routes = $routes; diff --git a/framework/api/entry.class.php b/framework/api/entry.class.php index 2ad612b32a..bee5d7b349 100644 --- a/framework/api/entry.class.php +++ b/framework/api/entry.class.php @@ -86,6 +86,20 @@ class baseEntry return $defaultValue; } + /** + * 设置请求参数 + * Set request param. + * + * @param string $key + * @param mixed $value + * @access public + * @return mixed + */ + public function setParam($key, $value) + { + $_GET[$key] = $value; + } + /** * 解析请求数据 * Parse body of request data. diff --git a/module/backup/view/index.html.php b/module/backup/view/index.html.php index 6d7bef3fd7..5572e7c853 100644 --- a/module/backup/view/index.html.php +++ b/module/backup/view/index.html.php @@ -36,7 +36,7 @@ backup->history?>
- " . $lang->backup->setting, '', "data-width='500' class='iframe btn btn-primary'");?> + " . $lang->backup->setting, '', "data-width='500' class='iframe btn btn-primary'");?> " . $lang->backup->backup, 'hiddenwin', "class='btn btn-primary backup'");?>
diff --git a/module/block/view/productstatisticblock.html.php b/module/block/view/productstatisticblock.html.php index 40f7d58547..0445263b63 100644 --- a/module/block/view/productstatisticblock.html.php +++ b/module/block/view/productstatisticblock.html.php @@ -157,7 +157,7 @@ $(function()
- id}", "" . $lang->productplan->create, '', "class='btn btn-info'");?> + id}", " " . $lang->productplan->create, '', "class='btn btn-info'");?>
@@ -190,7 +190,7 @@ $(function()
- id}", "" . $lang->release->create, '', "class='btn btn-info'");?> + id}", " " . $lang->release->create, '', "class='btn btn-info'");?>
diff --git a/module/bug/view/browse.html.php b/module/bug/view/browse.html.php index 2eb9bc2557..2356adcc4c 100644 --- a/module/bug/view/browse.html.php +++ b/module/bug/view/browse.html.php @@ -181,7 +181,7 @@ $currentBrowseType = isset($lang->bug->mySelects[$browseType]) && in_array($brow
  • > createLink('bug', 'batchCreate', "productID=$productID&branch=$branch&executionID=0&moduleID=$moduleID"); - echo "
  • " . html::a($batchLink, "" . $lang->bug->batchCreate) . "
  • "; + echo "
  • " . html::a($batchLink, " " . $lang->bug->batchCreate) . "
  • "; ?> diff --git a/module/bug/view/report.html.php b/module/bug/view/report.html.php index 10db781752..118c64ed1a 100644 --- a/module/bug/view/report.html.php +++ b/module/bug/view/report.html.php @@ -13,7 +13,7 @@
    - id", " " . $lang->bug->export, '', "class='btn btn-link export'");?> + id", " " . $lang->bug->export, '', "class='btn btn-link export'");?> id", " " . $lang->bug->create, '', "class='btn btn-primary'");?>
    diff --git a/module/execution/view/kanban.html.php b/module/execution/view/kanban.html.php index 49307adf4f..5db8444efb 100644 --- a/module/execution/view/kanban.html.php +++ b/module/execution/view/kanban.html.php @@ -41,7 +41,7 @@ $checkObject->execution = $executionID; $misc = common::hasPriv('task', 'create', $checkObject) ? "class='btn btn-primary iframe' data-width='1200px'" : "class='btn btn-primary disabled'"; $link = common::hasPriv('task', 'create', $checkObject) ? $this->createLink('task', 'create', "execution=$executionID" . (isset($moduleID) ? "&storyID=&moduleID=$moduleID" : ''), '', true) : '#'; - echo html::a($link, "" . $lang->task->create, '', $misc); + echo html::a($link, " " . $lang->task->create, '', $misc); ?> diff --git a/module/execution/view/task.html.php b/module/execution/view/task.html.php index 8443f62667..25942972aa 100644 --- a/module/execution/view/task.html.php +++ b/module/execution/view/task.html.php @@ -171,7 +171,7 @@ body {margin-bottom: 25px;}
  • > createLink('task', 'batchCreate', "execution=$executionID" . (isset($moduleID) ? "&storyID=&moduleID=$moduleID" : '')); - echo "
  • " . html::a($batchLink, "" . $lang->task->batchCreate) . "
  • "; + echo "
  • " . html::a($batchLink, " " . $lang->task->batchCreate) . "
  • "; ?> diff --git a/module/execution/view/taskheader.html.php b/module/execution/view/taskheader.html.php index 1c298bd1cd..c613a8bf5b 100644 --- a/module/execution/view/taskheader.html.php +++ b/module/execution/view/taskheader.html.php @@ -84,7 +84,7 @@
    -
    - execution = $executionID; $misc = common::hasPriv('task', 'create', $checkObject) ? "class='btn btn-primary'" : "class='btn btn-primary disabled'"; $link = common::hasPriv('task', 'create', $checkObject) ? $this->createLink('task', 'create', "execution=$executionID" . (isset($moduleID) ? "&storyID=&moduleID=$moduleID" : '')) : '#'; - echo html::a($link, "" . $lang->task->create, '', $misc); + echo html::a($link, " " . $lang->task->create, '', $misc); $misc = common::hasPriv('task', 'batchCreate', $checkObject) ? '' : "disabled"; $link = common::hasPriv('task', 'batchCreate', $checkObject) ? $this->createLink('task', 'batchCreate', "execution=$executionID" . (isset($moduleID) ? "&storyID=&moduleID=$moduleID" : '')) : '#'; diff --git a/module/execution/view/tree.html.php b/module/execution/view/tree.html.php index e6a668cab2..95226cf5c1 100644 --- a/module/execution/view/tree.html.php +++ b/module/execution/view/tree.html.php @@ -57,7 +57,7 @@ $checkObject->execution = $executionID; $misc = common::hasPriv('task', 'create', $checkObject) ? "class='btn btn-primary'" : "class='btn btn-primary disabled'"; $link = common::hasPriv('task', 'create', $checkObject) ? $this->createLink('task', 'create', "execution=$executionID" . (isset($moduleID) ? "&storyID=&moduleID=$moduleID" : '')) : '#'; - echo html::a($link, "" . $lang->task->create, '', $misc); + echo html::a($link, " " . $lang->task->create, '', $misc); ?>
    diff --git a/module/index/css/index.css b/module/index/css/index.css index 1751aafe4c..a80e9627e8 100644 --- a/module/index/css/index.css +++ b/module/index/css/index.css @@ -77,8 +77,9 @@ body.menu-hide {padding-left: 0;} #searchbox .dropdown-menu.show-quick-go > li {padding: 0 5px;} #searchbox .dropdown-menu {min-width: 150px;} -#globalSearchInput {width: 150px; height: 28px; padding-left: 10px; border-right: 0px;} +#globalSearchInput {height: 28px; padding-left: 10px; border-right: 0px;} #globalSearchButton {height: 28px;} +#globalSearchButton > i {position: relative; top: -2px} #globalBarLogo {width: 100%; float: right;} #globalBarLogo a:first-child {margin-right: 10px;} diff --git a/module/my/view/doc.html.php b/module/my/view/doc.html.php index 596bde78c9..7dc567d712 100644 --- a/module/my/view/doc.html.php +++ b/module/my/view/doc.html.php @@ -29,7 +29,7 @@

    -
    + diff --git a/module/my/view/project.html.php b/module/my/view/project.html.php index 56eadc4e81..2c1b458d4a 100644 --- a/module/my/view/project.html.php +++ b/module/my/view/project.html.php @@ -29,7 +29,7 @@

    - +
    diff --git a/module/my/view/team.html.php b/module/my/view/team.html.php index c7efd388cd..0ce1e389fa 100644 --- a/module/my/view/team.html.php +++ b/module/my/view/team.html.php @@ -16,7 +16,7 @@ include '../../common/view/header.html.php';
    - +
    diff --git a/module/personnel/view/whitelist.html.php b/module/personnel/view/whitelist.html.php index 6291704cda..dd4c75a106 100644 --- a/module/personnel/view/whitelist.html.php +++ b/module/personnel/view/whitelist.html.php @@ -20,7 +20,7 @@
    - " . $lang->personnel->addWhitelist, '', "class='btn btn-primary' $openApp");?> + " . $lang->personnel->addWhitelist, '', "class='btn btn-primary' $openApp");?>
    diff --git a/module/product/view/all.html.php b/module/product/view/all.html.php index 47ec434873..19e5d44450 100644 --- a/module/product/view/all.html.php +++ b/module/product/view/all.html.php @@ -20,7 +20,7 @@
     " . $lang->product->line, '', 'class="btn btn-link iframe"', '', true);?> - ' . $lang->product->create, '', 'class="btn btn-primary"');?> + ' . $lang->product->create, '', 'class="btn btn-primary"');?>
    diff --git a/module/program/control.php b/module/program/control.php index 9daaaf03d7..c9de21ca0f 100644 --- a/module/program/control.php +++ b/module/program/control.php @@ -28,7 +28,7 @@ class program extends control */ public function browse($status = 'all', $orderBy = 'order_asc') { - if(common::hasPriv('program', 'create')) $this->lang->pageActions = html::a($this->createLink('program', 'create'), "" . $this->lang->program->create, '', "class='btn btn-primary'"); + if(common::hasPriv('program', 'create')) $this->lang->pageActions = html::a($this->createLink('program', 'create'), " " . $this->lang->program->create, '', "class='btn btn-secondary'"); $this->session->set('programList', $this->app->getURI(true), 'program'); $this->session->set('projectList', $this->app->getURI(true), 'project'); diff --git a/module/program/view/browse.html.php b/module/program/view/browse.html.php index 3059e465f2..19899e96cb 100644 --- a/module/program/view/browse.html.php +++ b/module/program/view/browse.html.php @@ -27,9 +27,9 @@
    config->maxVersion)):?> - ' . $lang->project->create, '', 'class="btn btn-secondary" data-toggle="modal" data-target="#guideDialog"');?> + ' . $lang->project->create, '', 'class="btn btn-primary" data-toggle="modal" data-target="#guideDialog"');?> config->systemMode == 'new'):?> - ' . $lang->project->create, '', 'class="btn btn-secondary"');?> + ' . $lang->project->create, '', 'class="btn btn-primary"');?> pageActions)) echo $lang->pageActions;?>
    diff --git a/module/program/view/browsebylist.html.php b/module/program/view/browsebylist.html.php index bea3df1a5d..d38038ed9e 100644 --- a/module/program/view/browsebylist.html.php +++ b/module/program/view/browsebylist.html.php @@ -13,7 +13,7 @@ - + diff --git a/module/program/view/product.html.php b/module/program/view/product.html.php index 8e726647fe..8984018b8d 100644 --- a/module/program/view/product.html.php +++ b/module/program/view/product.html.php @@ -21,7 +21,7 @@
    - id", '' . $lang->product->create, '', 'class="btn btn-primary"');?> + id", ' ' . $lang->product->create, '', 'class="btn btn-primary"');?>
    diff --git a/module/program/view/project.html.php b/module/program/view/project.html.php index 6abb22e1a5..3b82bc8ecb 100644 --- a/module/program/view/project.html.php +++ b/module/program/view/project.html.php @@ -31,9 +31,9 @@ js::set('browseType', $browseType);
    config->maxVersion)):?> - ' . $lang->project->create, '', 'class="btn btn-primary" data-toggle="modal" data-target="#guideDialog"');?> + ' . $lang->project->create, '', 'class="btn btn-primary" data-toggle="modal" data-target="#guideDialog"');?> config->systemMode == 'new'):?> - ' . $lang->project->create, '', 'class="btn btn-primary"');?> + ' . $lang->project->create, '', 'class="btn btn-primary"');?>
    @@ -44,9 +44,9 @@ js::set('browseType', $browseType);

    project->empty;?> config->maxVersion)):?> - ' . $lang->project->create, '', 'class="btn btn-info btn-wide " data-toggle="modal" data-target="#guideDialog"');?> + ' . $lang->project->create, '', 'class="btn btn-info btn-wide " data-toggle="modal" data-target="#guideDialog"');?> config->systemMode == 'new'):?> - ' . $lang->project->create, '', 'class="btn btn-info btn-wide"');?> + ' . $lang->project->create, '', 'class="btn btn-info btn-wide"');?>

    diff --git a/module/program/view/stakeholder.html.php b/module/program/view/stakeholder.html.php index 291e500763..05f4574d08 100644 --- a/module/program/view/stakeholder.html.php +++ b/module/program/view/stakeholder.html.php @@ -17,7 +17,7 @@ createLink('program', 'stakeholder', "programID=$programID"), '' . $lang->program->stakeholder . '', '', 'class="btn btn-link btn-active-text"');?>
    - " . $lang->program->createStakeholder, '', "class='btn btn-primary'");?> + " . $lang->program->createStakeholder, '', "class='btn btn-primary'");?>
    diff --git a/module/project/css/browse.css b/module/project/css/browse.css index 981f7ce037..8145535dce 100644 --- a/module/project/css/browse.css +++ b/module/project/css/browse.css @@ -9,49 +9,5 @@ td.c-actions {overflow: visible;} #programID_chosen div.chosen-drop.chosen-auto-max-width.in {width: 150px !important;} #switchButton {background: #fff !important;} .panel-actions {position: relative; padding: 0 0;} -.icon-cards-view {padding-left: 7px;} - -#cards {margin: 0 0;} -#cards > .col {width: 25%;} -#cards .panel {margin: 10px 0; border: 1px solid #DCDCDC; border-radius: 4px; box-shadow: none; cursor: pointer; height: 170px;} -#cards .pager .btn {padding-top: 4px;} -#cards .panel:hover {border-color: #006AF1; box-shadow: 0 0 10px 0 rgba(0,0,100,.25);} -#cards .panel .projectStatus .label{float: right;} -#cards .panel-heading {padding: 12px 24px 10px 16px;} -#cards .panel-body {padding: 0 16px 16px;} -#cards .project-type-label {padding: 1px 0px;} -#cards .icon {font-size: 8px;} -#cards .project-name {font-size: 14px; display: inline-block; max-width: 70%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: middle;} -#cards .project-infos {font-size: 12px;} -#cards .project-infos > span {display: inline-block; line-height: 12px; border: 1px solid #E4E9F7;} -#cards .project-infos > span > .icon {font-size: 12px; display: inline-block; position: relative; top: -1px} -#cards .project-infos > span + span {margin-left: 15px;} -#cards .project-infos > .budget {max-width: 75px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;} -#cards .project-detail {position: absolute; top: 75px; left: 16px; right: 16px; font-size: 12px;} -#cards .project-footer {position: absolute; bottom: 5px;} -#cards .pager {margin: 0; float: right;} -#cards .pager .btn {border: none} -#cards .panel .label-wait {background: #EFEFEF !important; color: #838A9D;} -#cards .panel .label-doing {background: #E9F2FB !important; color: #2B80FF;} -#cards .panel .label-suspended {background: #AAA !important; color: #FFF;} -#cards .panel .label-closed {background: #D4F7F9 !important; color: #00A78E;} -#cards .panel .label-delay {background: #F85A40 !important; color: #FFF;} -#cards .project-infos .text-red {color: #F85A40 !important;} -#cards .project-detail .progress-pie {width: 24px; position: absolute; top: 5px;} -#cards .project-detail .col-xs-4 {width: 70px;} -#cards .project-members {float: left;} -#cards .project-members .avatar {display: inline-block; width: 25px; height: 25px; line-height: 25px;} -#cards .project-members .avatar:not(:first-child) {margin-left: -15px;} -#cards .project-members .avatar:first-child {z-index: 500;} -#cards .project-members .avatar:nth-child(2) {z-index: 400;} -#cards .project-members .avatar:nth-child(3) {z-index: 300;} -#cards .project-members .avatar:nth-child(4) {z-index: 200;} -#cards .project-members .avatar:nth-child(5) {z-index: 100;} -#cards .project-members .moreMembers{display: inline-block; margin-left: 6px; position: absolute; bottom: 8px;} -#cards .project-actions {float: right;} -#cards .project-actions .menu-actions {padding-right: 20px;} -#cards .project-actions ul {min-width: 35px; padding: 5px 6px;} -#cards .project-actions .dropdown-hover:hover>.dropdown-menu ul, -#cards .project-actions .open>.dropdown-menu ul {display: flex;} -#cards .menu-actions .btn.btn-action {margin-bottom: -3px !important; margin-right: 5px;} -#cards .icon-ellipsis-v {font-size: 13px;} +.icon-cards-view {padding-left: 7px; font-size: 16px;} +.icon-list {padding-left: 7px;} diff --git a/module/project/lang/de.php b/module/project/lang/de.php index 3723cf3dc9..4a847945ea 100644 --- a/module/project/lang/de.php +++ b/module/project/lang/de.php @@ -50,6 +50,7 @@ $lang->project->linkedProducts = "Linked {$lang->productCommon}s"; $lang->project->unlinkedProducts = "Unlinked {$lang->productCommon}s"; $lang->project->testreport = 'Testreport'; $lang->project->selectProgram = 'Program filtering'; +$lang->project->teamMember = 'Team Member'; /* Fields. */ $lang->project->common = 'Program'; @@ -85,6 +86,7 @@ $lang->project->setPlanduration = 'Set Duration'; $lang->project->auth = 'Access Control'; $lang->project->durationEstimation = 'Estimated Workload'; $lang->project->teamCount = 'Man'; +$lang->project->teamSumCount = '%s people in total'; $lang->project->leftStories = 'Left Stories'; $lang->project->leftTasks = 'Left Tasks'; $lang->project->leftBugs = 'Left Bugs'; diff --git a/module/project/lang/en.php b/module/project/lang/en.php index 29468d5f99..4a28ef060d 100644 --- a/module/project/lang/en.php +++ b/module/project/lang/en.php @@ -52,6 +52,7 @@ $lang->project->unlinkedProducts = "Unlinked {$lang->productCommon}s"; $lang->project->testreport = 'Test Report'; $lang->project->testreport = 'Testreport'; $lang->project->selectProgram = 'Program filtering'; +$lang->project->teamMember = 'Team Member'; /* Fields. */ $lang->project->common = 'Project'; @@ -107,6 +108,7 @@ $lang->project->svTitle = 'Schedule Variance'; $lang->project->acTitle = 'Actual Cost'; $lang->project->cvTitle = 'Cost Variance'; $lang->project->teamCount = 'Team'; +$lang->project->teamSumCount = '%s people in total'; $lang->project->longTime = 'Long-Term Program'; $lang->project->future = 'TBD'; $lang->project->moreProject = 'More Project'; diff --git a/module/project/lang/fr.php b/module/project/lang/fr.php index bab6ee3c41..93cdeed8f5 100644 --- a/module/project/lang/fr.php +++ b/module/project/lang/fr.php @@ -50,6 +50,7 @@ $lang->project->linkedProducts = "Linked {$lang->productCommon}s"; $lang->project->unlinkedProducts = "Unlinked {$lang->productCommon}s"; $lang->project->testreport = 'Testreport'; $lang->project->selectProgram = 'Program filtering'; +$lang->project->teamMember = 'Team Member'; /* Fields. */ $lang->project->common = 'Project'; @@ -85,6 +86,7 @@ $lang->project->setPlanduration = 'Set Duration'; $lang->project->auth = 'Access Control'; $lang->project->durationEstimation = 'Estimated Workload'; $lang->project->teamCount = 'Man'; +$lang->project->teamSumCount = '%s people in total'; $lang->project->leftStories = 'Left Stories'; $lang->project->leftTasks = 'Left Tasks'; $lang->project->leftBugs = 'Left Bugs'; diff --git a/module/project/lang/vi.php b/module/project/lang/vi.php index 30ced99b99..57050f31f5 100644 --- a/module/project/lang/vi.php +++ b/module/project/lang/vi.php @@ -50,6 +50,7 @@ $lang->project->linkedProducts = "Linked {$lang->productCommon}s"; $lang->project->unlinkedProducts = "Unlinked {$lang->productCommon}s"; $lang->project->testreport = 'Testreport'; $lang->project->selectProgram = 'Program filtering'; +$lang->project->teamMember = 'Team Member'; /* Fields. */ $lang->project->common = 'Project'; @@ -85,6 +86,7 @@ $lang->project->setPlanduration = 'Set Duration'; $lang->project->auth = 'Access Control'; $lang->project->durationEstimation = 'Estimated Workload'; $lang->project->teamCount = 'Man'; +$lang->project->teamSumCount = '%s people in total'; $lang->project->leftStories = 'Left Stories'; $lang->project->leftTasks = 'Left Tasks'; $lang->project->leftBugs = 'Left Bugs'; diff --git a/module/project/lang/zh-cn.php b/module/project/lang/zh-cn.php index 28679aa889..a624285a6c 100644 --- a/module/project/lang/zh-cn.php +++ b/module/project/lang/zh-cn.php @@ -51,6 +51,7 @@ $lang->project->linkedProducts = '已关联'; $lang->project->unlinkedProducts = '未关联'; $lang->project->testreport = '测试报告'; $lang->project->selectProgram = '项目集筛选'; +$lang->project->teamMember = '团队成员'; /* Fields. */ $lang->project->common = '项目'; @@ -106,6 +107,7 @@ $lang->project->svTitle = '进度偏差'; $lang->project->acTitle = '实际花费'; $lang->project->cvTitle = '成本偏差'; $lang->project->teamCount = '人数'; +$lang->project->teamSumCount = '共%s人'; $lang->project->longTime = '长期'; $lang->project->future = '待定'; $lang->project->moreProject = '更多项目'; diff --git a/module/project/view/browsebycard.html.php b/module/project/view/browsebycard.html.php index 5e2576196d..b02fd19dad 100644 --- a/module/project/view/browsebycard.html.php +++ b/module/project/view/browsebycard.html.php @@ -10,6 +10,48 @@ * @link https://www.zentao.net */ ?> + @@ -42,11 +84,11 @@

    project->empty;?> config->maxVersion)):?> - ' . $lang->project->create, '', 'class="btn btn-info" data-toggle="modal" data-target="#guideDialog"');?> + ' . $lang->project->create, '', 'class="btn btn-info" data-toggle="modal" data-target="#guideDialog"');?> config->systemMode == 'new'):?> - ' . $lang->project->create, '', 'class="btn btn-info"');?> + ' . $lang->project->create, '', 'class="btn btn-info"');?> - ' . $lang->execution->create, '', 'class="btn btn-info"');?> + ' . $lang->execution->create, '', 'class="btn btn-info"');?>

    @@ -79,52 +121,55 @@
    -
    +
    +
    project->progress;?>
    hours->progress;?>
    project->leftTasks;?> - leftTasks;?> + leftTasks;?>
    project->leftHours;?> - hours->totalLeft) ? '—' : $project->hours->totalLeft . $lang->execution->workHourUnit;?> + hours->totalLeft) ? '—' : $project->hours->totalLeft . $lang->execution->workHourUnit;?>
    - id", " " . $lang->bug->export, '', "class='btn btn-link export'");?> + id", " " . $lang->bug->export, '', "class='btn btn-link export'");?> id", " " . $lang->bug->create, '', "class='btn btn-primary'");?>
    diff --git a/module/repo/view/blame.html.php b/module/repo/view/blame.html.php index dd129dc110..2a6a578079 100644 --- a/module/repo/view/blame.html.php +++ b/module/repo/view/blame.html.php @@ -20,11 +20,11 @@ css::import($jsRoot . 'misc/highlight/styles/github.css'); $backURI = $this->session->repoView ? $this->session->repoView : $this->session->repoList; if($backURI) { - echo html::a($backURI, "" . $lang->goback, '', "class='btn btn-link' data-app='{$app->openApp}'"); + echo html::a($backURI, " " . $lang->goback, '', "class='btn btn-link' data-app='{$app->openApp}'"); } else { - echo html::backButton("" . $lang->goback, '', 'btn btn-link'); + echo html::backButton(" " . $lang->goback, '', 'btn btn-link'); } ?>
    diff --git a/module/repo/view/diff.html.php b/module/repo/view/diff.html.php index 0eb648aa81..83b1545476 100644 --- a/module/repo/view/diff.html.php +++ b/module/repo/view/diff.html.php @@ -18,11 +18,11 @@ $backURI = $this->session->repoView ? $this->session->repoView : $this->session->repoList; if($backURI) { - echo html::a($backURI, "" . $lang->goback, '', "class='btn btn-link' data-app='{$app->openApp}'"); + echo html::a($backURI, " " . $lang->goback, '', "class='btn btn-link' data-app='{$app->openApp}'"); } else { - echo html::backButton("" . $lang->goback, '', "btn btn-link"); + echo html::backButton(" " . $lang->goback, '', "btn btn-link"); } ?>
    diff --git a/module/repo/view/log.html.php b/module/repo/view/log.html.php index 4e780f9653..a1e63fd377 100644 --- a/module/repo/view/log.html.php +++ b/module/repo/view/log.html.php @@ -13,7 +13,7 @@
    project->budget);?> project->begin);?> project->end);?>project->progress;?>project->progress;?> actions;?>
    - + @@ -27,8 +27,8 @@ table td{overflow: hidden;white-space: nowrap;text-overflow: ellipsis;} - - + + @@ -40,7 +40,7 @@ table td{overflow: hidden;white-space: nowrap;text-overflow: ellipsis;} - +
    issue->id;?> issue->type;?>issue->owner;?> issue->desc;?>
    id;?>desc;?>
    noData;?>
    diff --git a/module/story/view/report.html.php b/module/story/view/report.html.php index a3758a2b75..90183db74c 100644 --- a/module/story/view/report.html.php +++ b/module/story/view/report.html.php @@ -14,7 +14,7 @@
    - " . $lang->testreport->create, '', "class='btn btn-primary'");?> + " . $lang->testreport->create, '', "class='btn btn-primary'");?>
    diff --git a/module/testreport/view/edit.html.php b/module/testreport/view/edit.html.php index d235b2721f..73d0c9bf75 100644 --- a/module/testreport/view/edit.html.php +++ b/module/testreport/view/edit.html.php @@ -18,7 +18,7 @@

    testreport->edit;?>

    -
    ' . $lang->goback, '', 'btn btn-link');?>
    +
    ' . $lang->goback, '', 'btn btn-link');?>
    diff --git a/module/testreport/view/view.html.php b/module/testreport/view/view.html.php index adbfcdaf47..f5f58f1a6e 100644 --- a/module/testreport/view/view.html.php +++ b/module/testreport/view/view.html.php @@ -17,7 +17,7 @@
    session->reportList ? $app->session->reportList : $browseLink;?> - " . $lang->goback, '', "class='btn btn-primary'");?> + " . $lang->goback, '', "class='btn btn-primary'");?>
    diff --git a/module/tree/view/browse.html.php b/module/tree/view/browse.html.php index d66e5dbd8e..6a17896fb8 100644 --- a/module/tree/view/browse.html.php +++ b/module/tree/view/browse.html.php @@ -27,7 +27,7 @@ li.tree-item-story > .tree-actions .tree-action[data-type=delete] {display: none