@@ -137,12 +138,14 @@
+ division ? '' : 'disabled';?> type != 'normal' and isset($branchGroups[$product->id]));?> id] as $branchID => $branch):?>
- id, "class='form-control chosen' onchange='loadBranches(this)' data-last='" . $product->id . "'");?> + id, "class='form-control chosen' $class onchange='loadBranches(this)' data-last='" . $product->id . "'");?> + id);?> id], $branchID, "class='form-control chosen' onchange=\"loadPlans('#products{$i}', this.value)\"");?>
@@ -150,12 +153,14 @@ + division):?>
+
diff --git a/module/programplan/control.php b/module/programplan/control.php index efb2988be9..e0414d396e 100644 --- a/module/programplan/control.php +++ b/module/programplan/control.php @@ -110,6 +110,7 @@ class programplan extends control $this->view->title = $this->lang->programplan->browse; $this->view->position[] = $this->lang->programplan->browse; $this->view->projectID = $projectID; + $this->view->project = $this->project->getByID($projectID); $this->view->productID = $this->productID; $this->view->productList = $this->loadModel('product')->getProductPairsByProject($projectID); $this->view->type = $type; diff --git a/module/programplan/view/gantt.html.php b/module/programplan/view/gantt.html.php index e68b128d0e..f766ce1705 100644 --- a/module/programplan/view/gantt.html.php +++ b/module/programplan/view/gantt.html.php @@ -80,6 +80,7 @@ form {display: block; margin-top: 0em; margin-block-end: 1em;} app->getModuleName() == 'programplan'):?>
+ division) or !empty($project->hasProduct)):?> product->allProduct;?> + + programplan->gantt;?> +
diff --git a/module/project/control.php b/module/project/control.php index 64c64facf5..656ab48760 100644 --- a/module/project/control.php +++ b/module/project/control.php @@ -1035,10 +1035,19 @@ class project extends control $this->view->title = $this->lang->execution->allExecutions; $this->view->position[] = $this->lang->execution->allExecutions; - $executionStats = $this->execution->getStatData($projectID, $status, $productID, 0, $this->cookie->showTask, '', $orderBy, $pager); - $showToggleIcon = false; + $executionStats = $this->execution->getStatData($projectID, $status, $productID, 0, $this->cookie->showTask, '', $orderBy, $pager); + $showToggleIcon = false; + $productNameList = $this->dao->select('t1.id,GROUP_CONCAT(t3.`name`) as productName')->from(TABLE_EXECUTION)->alias('t1') + ->leftjoin(TABLE_PROJECTPRODUCT)->alias('t2')->on('t1.id=t2.project') + ->leftjoin(TABLE_PRODUCT)->alias('t3')->on('t2.product=t3.id') + ->where('t1.project')->eq($projectID) + ->andWhere('t1.type')->eq('stage') + ->groupBy('t1.id') + ->fetchPairs(); + foreach($executionStats as $execution) { + $execution->productName = isset($productNameList[$execution->id]) ? $productNameList[$execution->id] : ''; if(!empty($execution->tasks) or !empty($execution->children)) { $showToggleIcon = true; diff --git a/module/project/css/execution.css b/module/project/css/execution.css index 71939a8e6b..4c3cddba23 100644 --- a/module/project/css/execution.css +++ b/module/project/css/execution.css @@ -13,6 +13,7 @@ th.table-nest-title .check-all {position: absolute; left: 15px; top: 7px;} #executionTableList > tr:not(.has-nest-child) .project-type-label {margin-left: 22px;} .table-statistic {padding-left: 10px;} td.flex {display: flex; flex-flow: row nowrap; justify-content: flex-start; align-items: center; margin-bottom: 0px;} +th.c-name {width: 80px;} td.c-name > .project-type-label {flex: 0 0 36px; padding-right: 2px;} .c-name > a, .table-children .text-left > a, .c-name > span.text-ellipsis { padding-left: 5px; text-overflow: clip;} span.table-nest-icon.table-nest-toggle {min-width: 22px; max-width: 22px;} diff --git a/module/project/view/execution.html.php b/module/project/view/execution.html.php index d349c0629b..af18757430 100644 --- a/module/project/view/execution.html.php +++ b/module/project/view/execution.html.php @@ -14,6 +14,7 @@ execution->checkedExecutions);?>