diff --git a/module/dev/model.php b/module/dev/model.php
index 207f1e893a..42a52c5914 100644
--- a/module/dev/model.php
+++ b/module/dev/model.php
@@ -69,7 +69,7 @@ class devModel extends model
$type = substr($rawField->type, 0, $firstPOS > 0 ? $firstPOS : strlen($rawField->type));
$type = str_replace(array('big', 'small', 'medium', 'tiny'), '', $type);
$field = array();
- $field['name'] = isset($this->lang->$module->{$rawField->field}) ? sprintf($this->lang->$module->{$rawField->field}, $this->lang->dev->tableList[$module]) : '';
+ $field['name'] = (isset($this->lang->$module->{$rawField->field}) and is_string($this->lang->$module->{$rawField->field})) ? sprintf($this->lang->$module->{$rawField->field}, $this->lang->dev->tableList[$module]) : '';
if((empty($field['name']) or !is_string($field['name'])) and $aliasModule) $field['name'] = isset($this->lang->$aliasModule->{$rawField->field}) ? $this->lang->$aliasModule->{$rawField->field} : '';
if($subLang) $field['name'] = isset($this->lang->$aliasModule->$subLang->{$rawField->field}) ? $this->lang->$aliasModule->$subLang->{$rawField->field} : $field['name'];
if(!is_string($field['name'])) $field['name'] = '';
diff --git a/module/execution/model.php b/module/execution/model.php
index ee546cacb1..53d34b207f 100644
--- a/module/execution/model.php
+++ b/module/execution/model.php
@@ -109,7 +109,8 @@ class executionModel extends model
unset($this->lang->execution->menu->build);
}
- if($this->config->edition == 'open' and in_array($execution->attribute, array('request', 'design', 'review')))
+ $stageFilter = array('request', 'design', 'review');
+ if($this->config->edition == 'open' and in_array($execution->attribute, $stageFilter))
{
unset($this->lang->execution->menu->qa);
unset($this->lang->execution->menu->build);
@@ -4638,14 +4639,14 @@ class executionModel extends model
}
}
}
- echo '
' . zget($users, $execution->PM) . ' | ';
echo "" . zget($this->lang->project->statusList, $execution->status) . ' | ';
- echo '' . html::ring($execution->hours->progress) . ' | ';
+ echo '' . zget($users, $execution->PM) . ' | ';
echo helper::isZeroDate($execution->begin) ? ' | ' : '' . $execution->begin . ' | ';
echo helper::isZeroDate($execution->end) ? ' | ' : '' . $execution->end . ' | ';
echo "" . $execution->hours->totalEstimate . $this->lang->execution->workHourUnit . ' | ';
echo "" . $execution->hours->totalConsumed . $this->lang->execution->workHourUnit . ' | ';
echo "" . $execution->hours->totalLeft . $this->lang->execution->workHourUnit . ' | ';
+ echo '' . html::ring($execution->hours->progress) . ' | ';
echo " | ";
echo '';
common::printIcon('execution', 'start', "executionID={$execution->id}", $execution, 'list', '', '', 'iframe', true);
diff --git a/module/kanban/view/importticket.html.php b/module/kanban/view/importticket.html.php
index bee56d2888..be9bbb8870 100644
--- a/module/kanban/view/importticket.html.php
+++ b/module/kanban/view/importticket.html.php
@@ -41,6 +41,7 @@
| ticket->title;?> |
ticket->priAB;?> |
+ ticket->status;?> |
ticket->type;?> |
ticket->createdDate;?> |
ticket->assignedTo;?> |
@@ -64,6 +65,7 @@
title;?> |
lang ->ticket->priList, $ticket->pri, $ticket->pri); ?> |
+ lang->ticket->statusList, $ticket->status, $ticket->status);?> |
lang->ticket->typeList, $ticket->type, $ticket->type);?> |
openedDate;?> |
assignedTo;?> |
diff --git a/module/my/css/requirement.css b/module/my/css/requirement.css
index c21f9cb03d..86ed41a8c0 100644
--- a/module/my/css/requirement.css
+++ b/module/my/css/requirement.css
@@ -2,7 +2,7 @@
.table tbody > tr.table-children.table-child-top {border-top: 2px solid #cbd0db;}
.table tbody > tr.table-children.table-child-bottom {border-bottom: 2px solid #cbd0db;}
.table td.has-child > a:not(.story-toggle) {max-width: 90%; max-width: calc(100% - 30px); display: inline-block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}
-.table td.has-child > .story-toggle {color: #838a9d; position: relative; top: 1px;}
+.table td.has-child > .story-toggle {color: #838a9d; position: relative; top: 1px; left: 2px;}
.table td.has-child > .story-toggle:hover {color: #006af1; cursor: pointer;}
.table td.has-child > .story-toggle > .icon {font-size: 16px; display: inline-block; transition: transform .2s; -ms-transform: rotate(-90deg); -moz-transform: rotate(-90deg); -o-transform: rotate(-90deg); -webkit-transform: rotate(-90deg); transform: rotate(-90deg);}
.table td.has-child > .story-toggle > .icon:before {text-align: left;}
diff --git a/module/my/css/story.css b/module/my/css/story.css
index be4c747589..50d561ac67 100644
--- a/module/my/css/story.css
+++ b/module/my/css/story.css
@@ -2,7 +2,7 @@
.table tbody > tr.table-children.table-child-top {border-top: 2px solid #cbd0db;}
.table tbody > tr.table-children.table-child-bottom {border-bottom: 2px solid #cbd0db;}
.table td.has-child > a:not(.story-toggle) {max-width: 90%; max-width: calc(100% - 30px); display: inline-block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}
-.table td.has-child > .story-toggle {color: #838a9d; position: relative; top: 1px;}
+.table td.has-child > .story-toggle {color: #838a9d; position: relative; top: 1px; left: 2px;}
.table td.has-child > .story-toggle:hover {color: #006af1; cursor: pointer;}
.table td.has-child > .story-toggle > .icon {font-size: 16px; display: inline-block; transition: transform .2s; -ms-transform: rotate(-90deg); -moz-transform: rotate(-90deg); -o-transform: rotate(-90deg); -webkit-transform: rotate(-90deg); transform: rotate(-90deg);}
.table td.has-child > .story-toggle > .icon:before {text-align: left;}
diff --git a/module/product/css/browse.css b/module/product/css/browse.css
index dd98a82845..16cd40473a 100644
--- a/module/product/css/browse.css
+++ b/module/product/css/browse.css
@@ -21,7 +21,7 @@ a.removeModule:hover {color: red;}
.table tbody > tr.table-children.table-child-top {border-top: 2px solid #cbd0db;}
.table tbody > tr.table-children.table-child-bottom {border-bottom: 2px solid #cbd0db;}
.table td.has-child > a:not(.story-toggle) {max-width: 90%; max-width: calc(100% - 50px); display: inline-block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}
-.table td.has-child > .story-toggle {color: #838a9d; position: relative; top: 1px;}
+.table td.has-child > .story-toggle {color: #838a9d; position: relative; top: 1px; left: 2px;}
.table td.has-child > .story-toggle:hover {color: #006af1; cursor: pointer;}
.table td.has-child > .story-toggle > .icon {font-size: 16px; display: inline-block; transition: transform .2s; -ms-transform: rotate(-90deg); -moz-transform: rotate(-90deg); -o-transform: rotate(-90deg); -webkit-transform: rotate(-90deg); transform: rotate(-90deg);}
.table td.has-child > .story-toggle > .icon:before {text-align: left;}
@@ -41,4 +41,3 @@ a.removeModule:hover {color: red;}
#productStoryForm tbody tr td .label {max-width: 100px; text-overflow: unset;}
.c-span {margin-left: 19px;}
.btn-toolbar #query span.text{overflow: hidden; width: 52px; vertical-align: middle; margin-right: 1px;}
-#productStoryForm table thead th.c-title {min-width: 50px;}
diff --git a/module/product/js/browse.js b/module/product/js/browse.js
index e953e365e8..e4e9e68bb2 100644
--- a/module/product/js/browse.js
+++ b/module/product/js/browse.js
@@ -11,7 +11,7 @@ $(function()
var $title = $('#storyList thead th.c-title');
var headerWidth = $('#storyList thead th.c-title a').innerWidth();
var buttonWidth = $('#storyList thead th.c-title button').innerWidth();
- if($title.width() < headerWidth + buttonWidth) $title.width(headerWidth + buttonWidth + 20);
+ if($title.width() < headerWidth + buttonWidth + 2) $title.width(headerWidth + buttonWidth + 30);
});
$('#storyList td.has-child .story-toggle').each(function()
diff --git a/module/project/view/execution.html.php b/module/project/view/execution.html.php
index 24183757e2..0c47eaabf2 100644
--- a/module/project/view/execution.html.php
+++ b/module/project/view/execution.html.php
@@ -79,14 +79,14 @@
- execution->owner;?> |
project->status;?> |
- project->progress;?> |
+ execution->owner;?> |
programplan->begin;?> |
programplan->end;?> |
task->estimateAB;?> |
task->consumedAB;?> |
task->leftAB;?> |
+ project->progress;?> |
execution->burn;?> |
actions;?> |
diff --git a/module/stage/model.php b/module/stage/model.php
index a967e38b48..86c3fb0b88 100644
--- a/module/stage/model.php
+++ b/module/stage/model.php
@@ -123,13 +123,13 @@ class stageModel extends model
*/
public function getStages($orderBy = 'id_desc', $projectID = 0)
{
- $stages = $this->dao->select('t1.id,name,type,percent,openedBy as createdBy,begin as createdDate,lastEditedBy as editedBy,end as editedDate,deleted')
- ->from(TABLE_EXECUTION)->alias('t1')
- ->where('t1.type')->in('sprint,stage,kanban')
- ->andWhere('t1.deleted')->eq('0')
- ->andWhere('t1.vision')->eq($this->config->vision)
- ->beginIF(!$this->app->user->admin)->andWhere('t1.id')->in($this->app->user->view->sprints)->fi()
- ->beginIF($projectID)->andWhere('t1.project')->eq($projectID)->fi()
+ $stages = $this->dao->select('id,name,type,percent,openedBy as createdBy,begin as createdDate,lastEditedBy as editedBy,end as editedDate,deleted')
+ ->from(TABLE_EXECUTION)
+ ->where('type')->in('sprint,stage,kanban')
+ ->andWhere('deleted')->eq('0')
+ ->andWhere('vision')->eq($this->config->vision)
+ ->beginIF(!$this->app->user->admin)->andWhere('id')->in($this->app->user->view->sprints)->fi()
+ ->beginIF($projectID)->andWhere('project')->eq($projectID)->fi()
->orderBy($orderBy)
->fetchAll('id');
$stages = !empty($stages) ? $stages : $this->dao->select('*')->from(TABLE_STAGE)->where('deleted')->eq(0)->orderBy($orderBy)->fetchAll('id');
diff --git a/module/task/model.php b/module/task/model.php
index 3367fd100a..391b13cf33 100755
--- a/module/task/model.php
+++ b/module/task/model.php
@@ -4059,14 +4059,14 @@ class taskModel extends model
}
}
$list .= '';
- $list .= '' . zget($users, $task->assignedTo, '') . ' | ';
$list .= "" . $this->processStatus('task', $task) . ' | ';
- $list .= ' | ';
+ $list .= '' . zget($users, $task->assignedTo, '') . ' | ';
$list .= helper::isZeroDate($task->estStarted) ? ' | ' : '' . $task->estStarted . ' | ';
$list .= helper::isZeroDate($task->deadline) ? ' | ' : '' . $task->deadline . ' | ';
- $list .= '' . $task->estimate . $this->lang->execution->workHourUnit . ' | ';
- $list .= '' . $task->consumed . $this->lang->execution->workHourUnit . ' | ';
- $list .= '' . $task->left . $this->lang->execution->workHourUnit . ' | ';
+ $list .= '' . $task->estimate . $this->lang->execution->workHourUnit . ' | ';
+ $list .= '' . $task->consumed . $this->lang->execution->workHourUnit . ' | ';
+ $list .= '' . $task->left . $this->lang->execution->workHourUnit . ' | ';
+ $list .= ' | ';
$list .= ' | ';
$list .= '';
$list .= $this->buildOperateMenu($task, 'browse');
diff --git a/module/tree/model.php b/module/tree/model.php
index 574008eff8..f320a40290 100644
--- a/module/tree/model.php
+++ b/module/tree/model.php
@@ -84,7 +84,11 @@ class treeModel extends model
/* If feedback module is merge add story module.*/
$syncConfig = json_decode($this->config->global->syncProduct, true);
$syncConfig = isset($syncConfig[$type]) ? $syncConfig[$type] : array();
- if(($type == 'feedback' or $type == 'ticket') and strpos($param, 'noproduct') === false and isset($syncConfig[$rootID])) $type = 'story,' . $type;
+ if(($type == 'feedback' or $type == 'ticket') and strpos($param, 'noproduct') === false and isset($syncConfig[$rootID]))
+ {
+ $grade = $syncConfig[$rootID];
+ $type = 'story,' . $type;
+ }
if($this->isMergeModule($rootID, $type))
{
return $this->dao->select('*')->from(TABLE_MODULE)
@@ -107,7 +111,7 @@ class treeModel extends model
->where('1=1')
->beginIF($type != 'feedback' or !empty($rootID))->andwhere('root')->eq((int)$rootID)->fi()
->andWhere('type')->in($type)
- ->beginIF($grade)->andWhere('grade')->lt($grade)->fi()
+ ->beginIF($grade)->andWhere('grade')->le($grade)->fi()
->beginIF($startModulePath)->andWhere('path')->like($startModulePath)->fi()
->beginIF($branch !== 'all' and $branch !== '' and $branch !== false)
->andWhere('(branch')->eq(0)
|