diff --git a/module/bug/config.php b/module/bug/config.php index 5ac6e7d586..a2dc0c6292 100644 --- a/module/bug/config.php +++ b/module/bug/config.php @@ -24,7 +24,7 @@ $config->bug->list->allFields = 'id, module, execution, story, task, lastEditedBy, lastEditedDate'; -$config->bug->list->defaultFields = 'id,severity,pri,title,openedBy,assignedTo,resolvedBy,resolution'; +$config->bug->list->defaultFields = 'id,title,severity,pri,openedBy,assignedTo,resolvedBy,resolution'; $config->bug->exportFields = 'id, product, branch, module, project, execution, story, task, title, keywords, severity, pri, type, os, browser, @@ -159,7 +159,7 @@ $config->bug->search['params']['deadline'] = array('operator' => '=', $config->bug->search['params']['activatedDate'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date'); $config->bug->datatable = new stdclass(); -$config->bug->datatable->defaultField = array('id', 'severity', 'pri', 'confirmed', 'title', 'status', 'openedBy', 'openedDate', 'assignedTo', 'resolution', 'actions'); +$config->bug->datatable->defaultField = array('id', 'title', 'severity', 'pri', 'status', 'openedBy', 'openedDate', 'confirmed', 'assignedTo', 'resolution', 'actions'); $config->bug->datatable->fieldList['id']['title'] = 'idAB'; $config->bug->datatable->fieldList['id']['fixed'] = 'left'; @@ -174,6 +174,12 @@ $config->bug->datatable->fieldList['module']['control'] = 'select'; $config->bug->datatable->fieldList['module']['title'] = 'module'; $config->bug->datatable->fieldList['module']['dataSource'] = array('module' => 'tree', 'method' => 'getOptionMenu', 'params' => '$productID&bug'); +$config->bug->datatable->fieldList['title']['title'] = 'title'; +$config->bug->datatable->fieldList['title']['fixed'] = 'left'; +$config->bug->datatable->fieldList['title']['width'] = 'auto'; +$config->bug->datatable->fieldList['title']['required'] = 'yes'; +$config->bug->datatable->fieldList['title']['minWidth'] = '200'; + $config->bug->datatable->fieldList['severity']['title'] = 'severityAB'; $config->bug->datatable->fieldList['severity']['fixed'] = 'left'; $config->bug->datatable->fieldList['severity']['width'] = '50'; @@ -186,16 +192,10 @@ $config->bug->datatable->fieldList['pri']['width'] = '50'; $config->bug->datatable->fieldList['pri']['required'] = 'no'; $config->bug->datatable->fieldList['pri']['name'] = $lang->bug->pri; -$config->bug->datatable->fieldList['confirmed']['title'] = 'confirmedAB'; -$config->bug->datatable->fieldList['confirmed']['fixed'] = 'left'; -$config->bug->datatable->fieldList['confirmed']['width'] = '100'; -$config->bug->datatable->fieldList['confirmed']['required'] = 'no'; - -$config->bug->datatable->fieldList['title']['title'] = 'title'; -$config->bug->datatable->fieldList['title']['fixed'] = 'left'; -$config->bug->datatable->fieldList['title']['width'] = 'auto'; -$config->bug->datatable->fieldList['title']['required'] = 'yes'; -$config->bug->datatable->fieldList['title']['minWidth'] = '200'; +$config->bug->datatable->fieldList['status']['title'] = 'statusAB'; +$config->bug->datatable->fieldList['status']['fixed'] = 'left'; +$config->bug->datatable->fieldList['status']['width'] = '80'; +$config->bug->datatable->fieldList['status']['required'] = 'no'; $config->bug->datatable->fieldList['branch']['title'] = 'branch'; $config->bug->datatable->fieldList['branch']['fixed'] = 'left'; @@ -230,10 +230,66 @@ $config->bug->datatable->fieldList['plan']['fixed'] = 'no'; $config->bug->datatable->fieldList['plan']['width'] = '120'; $config->bug->datatable->fieldList['plan']['required'] = 'no'; -$config->bug->datatable->fieldList['status']['title'] = 'statusAB'; -$config->bug->datatable->fieldList['status']['fixed'] = 'no'; -$config->bug->datatable->fieldList['status']['width'] = '80'; -$config->bug->datatable->fieldList['status']['required'] = 'no'; +$config->bug->datatable->fieldList['openedBy']['title'] = 'openedByAB'; +$config->bug->datatable->fieldList['openedBy']['fixed'] = 'no'; +$config->bug->datatable->fieldList['openedBy']['width'] = '80'; +$config->bug->datatable->fieldList['openedBy']['required'] = 'no'; + +$config->bug->datatable->fieldList['openedDate']['title'] = 'openedDateAB'; +$config->bug->datatable->fieldList['openedDate']['fixed'] = 'no'; +$config->bug->datatable->fieldList['openedDate']['width'] = '90'; +$config->bug->datatable->fieldList['openedDate']['required'] = 'no'; + +$config->bug->datatable->fieldList['openedBuild']['title'] = 'openedBuild'; +$config->bug->datatable->fieldList['openedBuild']['fixed'] = 'no'; +$config->bug->datatable->fieldList['openedBuild']['width'] = '120'; +$config->bug->datatable->fieldList['openedBuild']['required'] = 'no'; +$config->bug->datatable->fieldList['openedBuild']['control'] = 'multiple'; +$config->bug->datatable->fieldList['openedBuild']['dataSource'] = array('module' => 'build', 'method' =>'getBuildPairs', 'params' => '$productID&$branch&noempty,noterminate,nodone,withbranch'); + +$config->bug->datatable->fieldList['confirmed']['title'] = 'confirmedAB'; +$config->bug->datatable->fieldList['confirmed']['fixed'] = 'no'; +$config->bug->datatable->fieldList['confirmed']['width'] = '100'; +$config->bug->datatable->fieldList['confirmed']['required'] = 'no'; + +$config->bug->datatable->fieldList['assignedTo']['title'] = 'assignedToAB'; +$config->bug->datatable->fieldList['assignedTo']['fixed'] = 'no'; +$config->bug->datatable->fieldList['assignedTo']['width'] = '120'; +$config->bug->datatable->fieldList['assignedTo']['required'] = 'no'; +$config->bug->datatable->fieldList['assignedTo']['dataSource'] = array('module' => 'user', 'method' =>'getPairs', 'params' => 'noclosed|noletter'); + +$config->bug->datatable->fieldList['assignedDate']['title'] = 'assignedDate'; +$config->bug->datatable->fieldList['assignedDate']['fixed'] = 'no'; +$config->bug->datatable->fieldList['assignedDate']['width'] = '90'; +$config->bug->datatable->fieldList['assignedDate']['required'] = 'no'; + +$config->bug->datatable->fieldList['deadline']['title'] = 'deadline'; +$config->bug->datatable->fieldList['deadline']['fixed'] = 'no'; +$config->bug->datatable->fieldList['deadline']['width'] = '90'; +$config->bug->datatable->fieldList['deadline']['required'] = 'no'; +$config->bug->datatable->fieldList['deadline']['control'] = 'date'; + +$config->bug->datatable->fieldList['resolvedBy']['title'] = 'resolvedBy'; +$config->bug->datatable->fieldList['resolvedBy']['fixed'] = 'no'; +$config->bug->datatable->fieldList['resolvedBy']['width'] = '100'; +$config->bug->datatable->fieldList['resolvedBy']['required'] = 'no'; + +$config->bug->datatable->fieldList['resolution']['title'] = 'resolutionAB'; +$config->bug->datatable->fieldList['resolution']['fixed'] = 'no'; +$config->bug->datatable->fieldList['resolution']['width'] = '110'; +$config->bug->datatable->fieldList['resolution']['required'] = 'no'; + +$config->bug->datatable->fieldList['resolvedDate']['title'] = 'resolvedDateAB'; +$config->bug->datatable->fieldList['resolvedDate']['fixed'] = 'no'; +$config->bug->datatable->fieldList['resolvedDate']['width'] = '120'; +$config->bug->datatable->fieldList['resolvedDate']['required'] = 'no'; + +$config->bug->datatable->fieldList['resolvedBuild']['title'] = 'resolvedBuild'; +$config->bug->datatable->fieldList['resolvedBuild']['fixed'] = 'no'; +$config->bug->datatable->fieldList['resolvedBuild']['width'] = '120'; +$config->bug->datatable->fieldList['resolvedBuild']['required'] = 'no'; +$config->bug->datatable->fieldList['resolvedBuild']['control'] = 'select'; +$config->bug->datatable->fieldList['resolvedBuild']['dataSource'] = array('module' => 'bug', 'method' =>'getRelatedObjects', 'params' => 'resolvedBuild&id,name'); $config->bug->datatable->fieldList['activatedCount']['title'] = 'activatedCountAB'; $config->bug->datatable->fieldList['activatedCount']['fixed'] = 'no'; @@ -283,62 +339,6 @@ $config->bug->datatable->fieldList['mailto']['fixed'] = 'no'; $config->bug->datatable->fieldList['mailto']['width'] = '100'; $config->bug->datatable->fieldList['mailto']['required'] = 'no'; -$config->bug->datatable->fieldList['openedBy']['title'] = 'openedByAB'; -$config->bug->datatable->fieldList['openedBy']['fixed'] = 'no'; -$config->bug->datatable->fieldList['openedBy']['width'] = '80'; -$config->bug->datatable->fieldList['openedBy']['required'] = 'no'; - -$config->bug->datatable->fieldList['openedDate']['title'] = 'openedDateAB'; -$config->bug->datatable->fieldList['openedDate']['fixed'] = 'no'; -$config->bug->datatable->fieldList['openedDate']['width'] = '90'; -$config->bug->datatable->fieldList['openedDate']['required'] = 'no'; - -$config->bug->datatable->fieldList['openedBuild']['title'] = 'openedBuild'; -$config->bug->datatable->fieldList['openedBuild']['fixed'] = 'no'; -$config->bug->datatable->fieldList['openedBuild']['width'] = '120'; -$config->bug->datatable->fieldList['openedBuild']['required'] = 'no'; -$config->bug->datatable->fieldList['openedBuild']['control'] = 'multiple'; -$config->bug->datatable->fieldList['openedBuild']['dataSource'] = array('module' => 'build', 'method' =>'getBuildPairs', 'params' => '$productID&$branch&noempty,noterminate,nodone,withbranch'); - -$config->bug->datatable->fieldList['assignedTo']['title'] = 'assignedToAB'; -$config->bug->datatable->fieldList['assignedTo']['fixed'] = 'no'; -$config->bug->datatable->fieldList['assignedTo']['width'] = '120'; -$config->bug->datatable->fieldList['assignedTo']['required'] = 'no'; -$config->bug->datatable->fieldList['assignedTo']['dataSource'] = array('module' => 'user', 'method' =>'getPairs', 'params' => 'noclosed|noletter'); - -$config->bug->datatable->fieldList['assignedDate']['title'] = 'assignedDate'; -$config->bug->datatable->fieldList['assignedDate']['fixed'] = 'no'; -$config->bug->datatable->fieldList['assignedDate']['width'] = '90'; -$config->bug->datatable->fieldList['assignedDate']['required'] = 'no'; - -$config->bug->datatable->fieldList['deadline']['title'] = 'deadline'; -$config->bug->datatable->fieldList['deadline']['fixed'] = 'no'; -$config->bug->datatable->fieldList['deadline']['width'] = '90'; -$config->bug->datatable->fieldList['deadline']['required'] = 'no'; -$config->bug->datatable->fieldList['deadline']['control'] = 'date'; - -$config->bug->datatable->fieldList['resolvedBy']['title'] = 'resolvedByAB'; -$config->bug->datatable->fieldList['resolvedBy']['fixed'] = 'no'; -$config->bug->datatable->fieldList['resolvedBy']['width'] = '100'; -$config->bug->datatable->fieldList['resolvedBy']['required'] = 'no'; - -$config->bug->datatable->fieldList['resolution']['title'] = 'resolutionAB'; -$config->bug->datatable->fieldList['resolution']['fixed'] = 'no'; -$config->bug->datatable->fieldList['resolution']['width'] = '110'; -$config->bug->datatable->fieldList['resolution']['required'] = 'no'; - -$config->bug->datatable->fieldList['resolvedDate']['title'] = 'resolvedDateAB'; -$config->bug->datatable->fieldList['resolvedDate']['fixed'] = 'no'; -$config->bug->datatable->fieldList['resolvedDate']['width'] = '120'; -$config->bug->datatable->fieldList['resolvedDate']['required'] = 'no'; - -$config->bug->datatable->fieldList['resolvedBuild']['title'] = 'resolvedBuild'; -$config->bug->datatable->fieldList['resolvedBuild']['fixed'] = 'no'; -$config->bug->datatable->fieldList['resolvedBuild']['width'] = '120'; -$config->bug->datatable->fieldList['resolvedBuild']['required'] = 'no'; -$config->bug->datatable->fieldList['resolvedBuild']['control'] = 'select'; -$config->bug->datatable->fieldList['resolvedBuild']['dataSource'] = array('module' => 'bug', 'method' =>'getRelatedObjects', 'params' => 'resolvedBuild&id,name'); - $config->bug->datatable->fieldList['closedBy']['title'] = 'closedBy'; $config->bug->datatable->fieldList['closedBy']['fixed'] = 'no'; $config->bug->datatable->fieldList['closedBy']['width'] = '80'; diff --git a/module/common/lang/zh-cn.php b/module/common/lang/zh-cn.php index a27488d59e..f601c2df79 100644 --- a/module/common/lang/zh-cn.php +++ b/module/common/lang/zh-cn.php @@ -146,7 +146,7 @@ $lang->workingHour = '工时'; $lang->idAB = 'ID'; $lang->priAB = 'P'; $lang->statusAB = '状态'; -$lang->openedByAB = '创建'; +$lang->openedByAB = '创建者'; $lang->assignedToAB = '指派'; $lang->typeAB = '类型'; $lang->nameAB = '名称'; diff --git a/module/common/lang/zh-tw.php b/module/common/lang/zh-tw.php index efb472f9ac..5330154fde 100644 --- a/module/common/lang/zh-tw.php +++ b/module/common/lang/zh-tw.php @@ -136,7 +136,7 @@ $lang->workingHour = '工時'; $lang->idAB = 'ID'; $lang->priAB = 'P'; $lang->statusAB = '狀態'; -$lang->openedByAB = '創建'; +$lang->openedByAB = '創建者'; $lang->assignedToAB = '指派'; $lang->typeAB = '類型'; $lang->nameAB = '名稱'; diff --git a/module/execution/config.php b/module/execution/config.php index 82dda40697..f14bd946b5 100644 --- a/module/execution/config.php +++ b/module/execution/config.php @@ -177,11 +177,11 @@ $config->execution->gantt->linkType['begin']['end'] = 3; $config->execution->datatable = new stdclass(); if($config->systemMode == 'new') { - $config->execution->datatable->defaultField = array('id', 'name', 'project', 'PM', 'status', 'progress', 'begin', 'end', 'estimate', 'consumed', 'left', 'burn'); + $config->execution->datatable->defaultField = array('id', 'name', 'project', 'status', 'PM', 'begin', 'end', 'estimate', 'consumed', 'left', 'progress', 'burn'); } else { - $config->execution->datatable->defaultField = array('id', 'name', 'PM', 'status', 'progress', 'begin', 'end', 'estimate', 'consumed', 'left', 'burn'); + $config->execution->datatable->defaultField = array('id', 'name', 'status', 'PM', 'begin', 'end', 'estimate', 'consumed', 'left', 'progress', 'burn'); } $config->execution->datatable->fieldList['id']['title'] = 'idAB'; diff --git a/module/execution/css/all.css b/module/execution/css/all.css index 55c356cf58..1c672bb874 100644 --- a/module/execution/css/all.css +++ b/module/execution/css/all.css @@ -38,3 +38,7 @@ canvas {height: 28px;} #datatable-executionList .table-child-bottom.table-child-top > .c-name.flex {border-bottom: 2px solid #cbd0db !important;} #datatable-executionList .parent.has-child.c-name.flex {border-bottom: 1px solid #cbd0db !important;} #datatable-executionList tr:last-child .c-name.flex {margin-top: 1px !important;} + +.table thead .c-estimate.text-right, +.table thead .c-consumed.text-right, +.table thead .c-left.text-right {padding-right: 8px;} diff --git a/module/execution/js/task.js b/module/execution/js/task.js index d66daf4a2f..ec899288f9 100644 --- a/module/execution/js/task.js +++ b/module/execution/js/task.js @@ -13,7 +13,7 @@ $(function() adjustTableFooter(); $('body').on('click', '#toggleFold', adjustTableFooter); - $('body').on('click', '.icon.icon-angle-double-right', adjustTableFooter); + $('body').on('click', '.icon.icon-angle-right', adjustTableFooter); /* The display of the adjusting sidebarHeader is synchronized with the sidebar. */ $(".sidebar-toggle").click(function() diff --git a/module/execution/lang/de.php b/module/execution/lang/de.php index 12ce2c0a86..7dd60f3ce2 100644 --- a/module/execution/lang/de.php +++ b/module/execution/lang/de.php @@ -419,7 +419,7 @@ $lang->execution->storyDragError = "The {$lang->SRCommon} is not ac $lang->execution->countTip = ' (%s member)'; $lang->execution->pleaseInput = "Enter"; $lang->execution->week = 'week'; -$lang->execution->checkedExecutions = 'Seleted %s executions.'; +$lang->execution->checkedExecutions = "Seleted %s {$lang->executionCommon}."; /* Statistics. */ $lang->execution->charts = new stdclass(); diff --git a/module/execution/lang/en.php b/module/execution/lang/en.php index 9f155eb2aa..8befda23c8 100644 --- a/module/execution/lang/en.php +++ b/module/execution/lang/en.php @@ -342,8 +342,8 @@ $lang->execution->stats = 'Available: %s(h). Est $lang->execution->taskSummary = "Total tasks on this page:%s. Waiting: %s. Doing: %s.     Estimates: %s(h). Cost: %s(h). Left: %s(h)."; $lang->execution->pageSummary = "Total tasks: %total%. Waiting: %wait%. Doing: %doing%. Estimates: %estimate%(h). Cost: %consumed%(h). Left: %left%(h)."; $lang->execution->checkedSummary = "Selected: %total%. Waiting: %wait%. Doing: %doing%. Estimates: %estimate%(h). Cost: %consumed%(h). Left: %left%(h)."; -$lang->execution->executionSummary = "Total executions: %s."; -$lang->execution->pageExecSummary = "Total executions: %total%. Waiting: %wait%. Doing: %doing%."; +$lang->execution->executionSummary = "Total {$lang->executionCommon}: %s."; +$lang->execution->pageExecSummary = "Total {$lang->executionCommon}: %total%. Waiting: %wait%. Doing: %doing%."; $lang->execution->checkedExecSummary = "Selected: %total%. Waiting: %wait%. Doing: %doing%."; $lang->execution->memberHoursAB = "%s has %s hours."; $lang->execution->memberHours = '
%s Available Hours
%s
'; @@ -419,7 +419,7 @@ $lang->execution->storyDragError = "The {$lang->SRCommon} is not ac $lang->execution->countTip = ' (%s member)'; $lang->execution->pleaseInput = "Enter"; $lang->execution->week = 'week'; -$lang->execution->checkedExecutions = 'Seleted %s executions.'; +$lang->execution->checkedExecutions = "Seleted %s {$lang->executionCommon}."; /* Statistics. */ $lang->execution->charts = new stdclass(); diff --git a/module/execution/lang/zh-cn.php b/module/execution/lang/zh-cn.php index e2b6c7b3c3..12a9d17a87 100644 --- a/module/execution/lang/zh-cn.php +++ b/module/execution/lang/zh-cn.php @@ -419,7 +419,7 @@ $lang->execution->storyDragError = "该{$lang->SRCommon}不是激 $lang->execution->countTip = '(%s人)'; $lang->execution->pleaseInput = "请输入"; $lang->execution->week = '周'; -$lang->execution->checkedExecutions = "共选中%s个{$lang->execution->common}。"; +$lang->execution->checkedExecutions = "共选中%s个{$lang->executionCommon}。"; /* 统计。*/ $lang->execution->charts = new stdclass(); diff --git a/module/execution/model.php b/module/execution/model.php index af839456cd..09574ea842 100644 --- a/module/execution/model.php +++ b/module/execution/model.php @@ -4603,7 +4603,7 @@ class executionModel extends model $burns = join(',', $execution->burns); echo ""; - echo "id class='table-nest-icon icon table-nest-toggle'>"; + echo "id class='table-nest-icon icon table-nest-toggle'>"; if($this->config->systemMode == 'new') { $spanClass = $execution->type == 'stage' ? 'label-warning' : 'label-info'; @@ -4636,9 +4636,9 @@ class executionModel extends model echo '' . html::ring($execution->hours->progress) . ''; 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 "" . $execution->hours->totalEstimate . $this->lang->execution->workHourUnit . ''; + echo "" . $execution->hours->totalConsumed . $this->lang->execution->workHourUnit . ''; + echo "" . $execution->hours->totalLeft . $this->lang->execution->workHourUnit . ''; echo ""; echo ''; common::printIcon('execution', 'start', "executionID={$execution->id}", $execution, 'list', '', '', 'iframe', true); @@ -4898,7 +4898,7 @@ class executionModel extends model if(isset($execution->delay)) echo "{$this->lang->execution->delayed} "; if(!empty($execution->children)) { - echo ""; + echo ""; } break; case 'code': diff --git a/module/execution/view/all.html.php b/module/execution/view/all.html.php index b072f3a78e..0e1283510f 100644 --- a/module/execution/view/all.html.php +++ b/module/execution/view/all.html.php @@ -16,13 +16,17 @@ $datatableId = $this->moduleName . ucfirst($this->methodName); $useDatatable = (isset($config->datatable->$datatableId->mode) and $config->datatable->$datatableId->mode == 'datatable'); ?> - - - -execution->checkedExecSummary);?> -execution->pageExecSummary);?> -execution->executionSummary);?> -execution->checkedExecutions);?> +executionCommon, $lang->execution->common, $lang->execution->checkedExecSummary)); +js::set('pageSummary', str_replace($lang->executionCommon, $lang->execution->common, $lang->execution->pageExecSummary)); +js::set('executionSummary', str_replace($lang->executionCommon, $lang->execution->common, $lang->execution->executionSummary)); +js::set('checkedExecutions', str_replace($lang->executionCommon, $lang->execution->common, $lang->execution->checkedExecutions)); +?> execution->treeLevel['all']); diff --git a/module/misc/control.php b/module/misc/control.php index 145eaf6616..b7fb0fe17b 100644 --- a/module/misc/control.php +++ b/module/misc/control.php @@ -256,6 +256,11 @@ class misc extends control $condition = "owner={$account}&module={$objectType}§ion=task&key=unfoldTasks"; $settingPath = $account . ".{$objectType}.task.unfoldTasks"; } + elseif($objectType == 'productplan') + { + $condition = "owner={$account}&module={$objectType}§ion=browse&key=unfoldPlans"; + $settingPath = $account . ".{$objectType}.browse.unfoldPlans"; + } else { $condition = "owner={$account}&module=product§ion=browse&key=unfoldStories"; diff --git a/module/my/css/execution.css b/module/my/css/execution.css index 0c3f52f231..1e329cc330 100644 --- a/module/my/css/execution.css +++ b/module/my/css/execution.css @@ -1,2 +1,3 @@ .c-hours, .c-progress {width: 80px !important;} .c-status, .c-date {padding-right: 8px !important; text-align: center;} +.align-right {text-align: right; padding-right: 8px !important;} diff --git a/module/my/css/task.css b/module/my/css/task.css index 331f201281..742b4ff517 100644 --- a/module/my/css/task.css +++ b/module/my/css/task.css @@ -6,7 +6,7 @@ .table td.has-child > .task-toggle:hover {color: #006af1; cursor: pointer;} .table td.has-child > .task-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 > .task-toggle > .icon:before {text-align: left;} -.table td.has-child > .task-toggle.collapsed {top: 2px;} +.table td.has-child > .task-toggle.collapsed {top: 0;} .table td.has-child > .task-toggle.collapsed > .icon {-ms-transform: rotate(90deg); -moz-transform: rotate(90deg); -o-transform: rotate(90deg); -webkit-transform: rotate(90deg); transform: rotate(90deg);} .table td.c-hours {padding-right: 12px;} .main-table tbody > tr.table-children > td:first-child::before {width: 3px;} diff --git a/module/my/js/task.js b/module/my/js/task.js index 1a81c7de00..1a619e9755 100644 --- a/module/my/js/task.js +++ b/module/my/js/task.js @@ -10,7 +10,7 @@ $(function() e.stopPropagation(); e.preventDefault(); }); - + toggleFold('#myTaskForm', [], 0, 'my'); $('#taskTable td.has-child .task-toggle').each(function() { var $td = $(this).closest('td'); diff --git a/module/my/view/execution.html.php b/module/my/view/execution.html.php index f9c967d68b..97b632c463 100644 --- a/module/my/view/execution.html.php +++ b/module/my/view/execution.html.php @@ -34,16 +34,13 @@ idAB;?> my->name;?> - systemMode == 'new'):?> - my->projects;?> - - execution->begin;?> - execution->end;?> statusAB;?> team->roleAB;?> - team->join;?> - my->hours;?> execution->myTask;?> + execution->begin;?> + execution->end;?> + team->join;?> + my->hours;?> execution->progress;?> @@ -62,13 +59,6 @@ name, '', "title='$execution->name'");?> - systemMode == 'new'):?> - - projectName) ? html::a($this->createLink('project', 'index', "id=$execution->project", '', '', $execution->project), $execution->projectName, '', "title='$execution->projectName'") : '';?> - - - begin;?> - end;?> delay)):?> execution->delayed;?> @@ -78,9 +68,11 @@ role;?> - join;?> - hours;?> assignedToMeTasks;?> + begin;?> + end;?> + join;?> + hours;?>
progress;?>
diff --git a/module/my/view/story.html.php b/module/my/view/story.html.php index beb617f38f..b831fc3545 100644 --- a/module/my/view/story.html.php +++ b/module/my/view/story.html.php @@ -96,7 +96,7 @@ title, null, "style='color: $story->color' data-group='product'") : $story->title;?> - children)) echo '';;?> + children)) echo '';;?> pri;?>' title='story->priList, $story->pri, $story->pri);?>'>story->priList, $story->pri, $story->pri);?> processStatus('story', $story);?> diff --git a/module/my/view/task.html.php b/module/my/view/task.html.php index cf93e51b67..d5dc31bba4 100644 --- a/module/my/view/task.html.php +++ b/module/my/view/task.html.php @@ -119,7 +119,12 @@ echo html::a($this->createLink('task', 'view', "taskID=$task->id", '', $onlybody, $task->project), $task->name, null, "class='$class' data-width='80%' style='color: $task->color'"); } ?> - children)) echo '';?> + children)) echo '';?> + + pri;?>' title='task->priList, $task->pri);?>'>task->priList, $task->pri);?> + + storyStatus) and $task->storyStatus == 'active' and $task->latestStoryVersion > $task->storyVersion and !in_array($task->status, array('cancel', 'closed')));?> + {$this->lang->my->storyChanged}") : print(" " . $this->processStatus('task', $task) . "");?> pri;?>' title='task->priList, $task->pri);?>'>task->priList, $task->pri);?> diff --git a/module/my/view/testtask.html.php b/module/my/view/testtask.html.php index 9df1becf44..41ea4b2004 100644 --- a/module/my/view/testtask.html.php +++ b/module/my/view/testtask.html.php @@ -35,11 +35,11 @@ idAB);?> testtask->name);?> - testtask->execution);?> testtask->build);?> + testtask->execution);?> + statusAB);?> testtask->begin);?> testtask->end);?> - statusAB);?> actions;?> @@ -48,11 +48,11 @@ id);?> createLink('testtask', 'view', "taskID=$task->id"), $task->name);?> - executionName;?> trunk : $task->buildName;?>'>build == 'trunk' ? print($lang->trunk) : print(html::a($this->createLink('build', 'view', "buildID=$task->build"), $task->buildName));?> + executionName;?> + '>processStatus('testtask', $task);?> begin?> end?> - '>processStatus('testtask', $task);?> id", $task, 'list', 'sitemap', '', '', '', "data-app='qa'"); diff --git a/module/personnel/view/accessible.html.php b/module/personnel/view/accessible.html.php index ba5ef9ae03..1dfe1b58aa 100644 --- a/module/personnel/view/accessible.html.php +++ b/module/personnel/view/accessible.html.php @@ -37,10 +37,10 @@ js::set('deptID', $deptID); idAB;?> - personnel->department;?> personnel->realName;?> - personnel->userName;?> + personnel->department;?> personnel->job;?> + personnel->userName;?> personnel->genders;?> @@ -48,10 +48,10 @@ js::set('deptID', $deptID); id;?> - dept);?> realname;?> - account;?> + dept);?> user->roleList, $personnel->role, '');?> + account;?> user->genderList, $personnel->gender, '');?> diff --git a/module/product/css/all.css b/module/product/css/all.css index c059f823c0..75d47f016c 100644 --- a/module/product/css/all.css +++ b/module/product/css/all.css @@ -35,7 +35,7 @@ #programTree ul > li.has-list:after {width: 14px;} #programTree ul > li.item-meas a.selected {color: #0c64eb;} .side-col {padding-right: 20px; width: 18%;} -#sidebar>.cell {width: 100%;} +#sidebar > .cell {width: 100%;} th.c-name {width: 400px;} th.c-PO {width: 100px;} @@ -44,15 +44,18 @@ th.c-bug {width: 150px;} th.c-plan {width: 45px;} th.c-release {width: 50px;} th.c-actions {width: 50px;} +.c-name {border-left: none !important;} +.icon-cards-view {color: #888fa1;} [lang='en'] .en-wrap-text {white-space: normal; height: 24px; line-height: 1; font-size: 12px;} -#productListForm thead>tr>th, -#productListForm tbody>tr>td {text-align: center; text-overflow: unset!important} -#productListForm thead>tr>th {padding: 0; line-height: 24px;} -#productListForm thead>tr:first-child>th {border-left: 1px solid #ddd;} -#productListForm thead>tr>th.c-checkbox {border-left: none; padding-left: 15px; width: 45px;} -#productListForm tbody>tr>td {padding: 2px 4px;} -#productListForm tbody>tr>td:first-child {text-align: left; padding-left: 15px;} +#productListForm thead > tr > th, +#productListForm tbody > tr > td {text-align: center; text-overflow: unset!important} +#productListForm thead > tr > th {padding: 0; line-height: 24px;} +#productListForm thead > tr:first-child > th {border-left: 1px solid #ddd;} +#productListForm thead > tr > th.c-checkbox {border-left: none; padding-left: 15px; width: 30px;} +#productListForm tbody > tr > td {padding: 2px 4px;} +#productListForm tbody > tr > td:first-child {text-align: left; padding-left: 15px;} +#productListForm tbody > tr > td.table-nest-title {padding-left: 16px;} #productListForm th.table-nest-title .nest-has-checkbox {margin-top: 7px; margin-left: 35px;} #productListForm th.table-nest-title .nest-none-checkbox {margin-top: 8px; margin-left: 5px;} #productListForm th.table-nest-title .header {margin-left: 5px;} @@ -61,11 +64,12 @@ th.c-actions {width: 50px;} #productListForm th.table-nest-title .table-nest-toggle {top: 14px; left: auto; right: 10px; opacity: .6;} #productListForm th.table-nest-title .table-nest-toggle::before {position: absolute; top: 0 !important; right: 0; bottom: 0; left: 0;} #productListForm th.table-nest-title .table-nest-toggle:hover {opacity: 1;} -#productListForm .table.has-sort-head thead>tr>th>a:after, -#productListForm .table.has-sort-head thead>tr>th>a:before {top: -3px;} +#productListForm .table.has-sort-head thead > tr > th > a:after, +#productListForm .table.has-sort-head thead > tr > th > a:before {top: -3px;} #productListForm .icon-product:before {content: '\e98f'; width: 22px; height: 22px; background: none; color: rgb(166, 170, 184); top: 0; line-height: 22px; margin-right: 2px; font-size: 14px;} #productTableList td.table-nest-title > span.icon.table-nest-toggle {vertical-align: middle;} -#productList > thead th.table-nest-title.c-name {position: relative; padding-left: 4px !important;} +#productTableList > tr[data-nest-parent] {background: #f8f8f8;} +#productList > thead th.table-nest-title.c-name {position: relative; padding-left: 16px !important;} @media screen and (max-width: 1460px) { @@ -81,7 +85,7 @@ th.c-actions {width: 50px;} @media screen and (max-width: 1250px) { - #productListForm thead>tr>th {font-size: 12px;} + #productListForm thead > tr > th {font-size: 12px;} th.c-requirement {width: 265px;} th.c-story {width: 265px;} [lang^='zh-'] th.c-requirement {width: 220px;} diff --git a/module/product/view/all.html.php b/module/product/view/all.html.php index 6a8079332a..42afe2436c 100644 --- a/module/product/view/all.html.php +++ b/module/product/view/all.html.php @@ -104,6 +104,7 @@ +   diff --git a/module/productplan/config.php b/module/productplan/config.php index 9e7250f7e0..4dddb53677 100644 --- a/module/productplan/config.php +++ b/module/productplan/config.php @@ -19,6 +19,7 @@ $config->productplan->future = '2030-01-01'; global $app, $lang; $app->loadLang('productplan'); $config->productplan->search['module'] = 'productplan'; +$config->productplan->browse = new stdclass(); $config->productplan->search['fields']['id'] = $lang->productplan->id; $config->productplan->search['fields']['title'] = $lang->productplan->title; diff --git a/module/productplan/css/browse.css b/module/productplan/css/browse.css index cb52c6ac17..db957be9a4 100644 --- a/module/productplan/css/browse.css +++ b/module/productplan/css/browse.css @@ -10,7 +10,7 @@ td.c-branch {overflow: hidden; text-align: left !important; text-overflow: ellip .table td.has-child > .plan-name > .task-toggle:hover {color: #006af1; cursor: pointer;} .table td.has-child > .plan-name > .task-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 > .plan-name > .task-toggle > .icon:before {text-align: left;} -.table td.has-child > .plan-name > .task-toggle.collapsed {top: 2px;} +.table td.has-child > .plan-name > .task-toggle.collapsed {top: 0;} .table td.has-child > .plan-name > .task-toggle.collapsed > .icon {-ms-transform: rotate(90deg); -moz-transform: rotate(90deg); -o-transform: rotate(90deg); -webkit-transform: rotate(90deg); transform: rotate(90deg);} .main-table tbody > tr.table-children > td:first-child::before {width: 3px;} @-moz-document url-prefix() {.main-table tbody > tr.table-children > td:first-child::before {width: 4px;};} @@ -35,6 +35,7 @@ td.c-branch {overflow: hidden; text-align: left !important; text-overflow: ellip .panel-actions {position: relative; padding: 0 0; padding-top: 1px;} .icon-list {padding-left: 7px;} .icon-kanban {padding-left: 7px; font-size: 16px;} +#productplanList thead th.c-title {width: 100%;} #productplanList .c-actions {width: 265px;} #productplanList .c-actions .btn+.btn {margin-left: -1px;} #productplanList .c-actions .btn {display: block; float: left;} diff --git a/module/productplan/js/browse.js b/module/productplan/js/browse.js index 2d45757f4d..de52e86d10 100644 --- a/module/productplan/js/browse.js +++ b/module/productplan/js/browse.js @@ -11,6 +11,7 @@ $(document).on('click', '.task-toggle', function(e) $(function() { + toggleFold('#productplanForm', unfoldPlans, productID, 'productplan'); $('#productplanList tbody tr').each(function() { var $content = $(this).find('td.content'); diff --git a/module/productplan/view/browsebylist.html.php b/module/productplan/view/browsebylist.html.php index 69ab8790ab..425f8bf0a4 100644 --- a/module/productplan/view/browsebylist.html.php +++ b/module/productplan/view/browsebylist.html.php @@ -9,6 +9,14 @@ * @link https://www.zentao.net */ ?> +productplan->browse->unfoldPlans) ? json_decode($config->productplan->browse->unfoldPlans, true) : array();?> + + +