From da3e57db0f2c41a01b0441fd6fcb82a35f9507d1 Mon Sep 17 00:00:00 2001 From: liugang Date: Thu, 24 Nov 2022 13:23:37 +0800 Subject: [PATCH] * Display all reports by report-preview function. --- module/common/lang/menu.php | 14 +- module/group/lang/resource.php | 14 +- module/report/control.php | 19 +- module/report/js/bugcreate.js | 5 +- module/report/js/productsummary.js | 5 +- module/report/js/projectdeviation.js | 6 +- module/report/js/workload.js | 3 +- module/report/lang/de.php | 5 +- module/report/lang/en.php | 7 +- module/report/lang/fr.php | 5 +- module/report/lang/vi.php | 5 +- module/report/lang/zh-cn.php | 7 +- module/report/lang/zh-tw.php | 7 +- module/report/view/bugassign.html.php | 108 +++---- module/report/view/bugcreate.html.php | 157 +++++----- module/report/view/preview.html.php | 46 +++ module/report/view/productsummary.html.php | 211 ++++++------- module/report/view/projectdeviation.html.php | 311 +++++++++---------- module/report/view/workload.html.php | 227 +++++++------- module/report/zen.php | 139 +++++++++ 20 files changed, 746 insertions(+), 555 deletions(-) create mode 100644 module/report/view/preview.html.php create mode 100644 module/report/zen.php diff --git a/module/common/lang/menu.php b/module/common/lang/menu.php index 024e685400..fee1b2ab22 100644 --- a/module/common/lang/menu.php +++ b/module/common/lang/menu.php @@ -42,7 +42,7 @@ $lang->mainNav->qa = "{$lang->navIcons['qa']} {$lang->qa->common}|qa|inde $lang->mainNav->devops = "{$lang->navIcons['devops']} DevOps|repo|browse|"; $lang->mainNav->kanban = "{$lang->navIcons['kanban']} {$lang->kanban->common}|kanban|space|"; $lang->mainNav->doc = "{$lang->navIcons['doc']} {$lang->doc->common}|doc|index|"; -$lang->mainNav->report = "{$lang->navIcons['report']} {$lang->report->common}|report|productSummary|"; +$lang->mainNav->report = "{$lang->navIcons['report']} {$lang->report->common}|report|preview|"; $lang->mainNav->system = "{$lang->navIcons['system']} {$lang->system->common}|my|team|"; $lang->mainNav->admin = "{$lang->navIcons['admin']} {$lang->admin->common}|admin|index|"; @@ -537,17 +537,17 @@ $lang->doc->menu->api['subMenu']->struct = array('link' => "{$lang->doc->apiStru /* Report menu.*/ $lang->report->menu = new stdclass(); $lang->report->menu->annual = array('link' => "{$lang->report->annual}|report|annualData|year=&dept=&userID=" . (isset($_SESSION['user']) ? zget($_SESSION['user'], 'id', 0) : 0), 'target' => '_blank'); -$lang->report->menu->pivotTable = array('link' => "{$lang->report->pivotTable}|report|productsummary", 'alias' => 'projectdeviation,bugcreate,workload,bugassign'); +$lang->report->menu->pivotTable = array('link' => "{$lang->report->pivotTable}|report|preview"); /* Report menu order. */ $lang->report->menuOrder[5] = 'annual'; $lang->report->menuOrder[10] = 'pivotTable'; -$lang->report->menu->pivotTable['subMenu'] = new stdclass(); -$lang->report->menu->pivotTable['subMenu']->product = array('link' => "{$lang->product->common}|report|productsummary"); -$lang->report->menu->pivotTable['subMenu']->project = array('link' => "{$lang->project->common}|report|projectdeviation"); -$lang->report->menu->pivotTable['subMenu']->test = array('link' => "{$lang->qa->common}|report|bugcreate", 'alias' => 'bugassign'); -$lang->report->menu->pivotTable['subMenu']->staff = array('link' => "{$lang->system->common}|report|workload"); +$lang->report->menu->pivotTable['subMenu'] = new stdclass(); +$lang->report->menu->pivotTable['subMenu']->product = array('link' => "{$lang->product->common}|report|preview|dimension=&group=product"); +$lang->report->menu->pivotTable['subMenu']->project = array('link' => "{$lang->project->common}|report|preview|dimension=&group=project"); +$lang->report->menu->pivotTable['subMenu']->test = array('link' => "{$lang->qa->common}|report|preview|dimension=&group=test"); +$lang->report->menu->pivotTable['subMenu']->staff = array('link' => "{$lang->system->common}|report|preview|dimension=&group=staff"); $lang->report->menu->pivotTable['menuOrder'][5] = 'product'; $lang->report->menu->pivotTable['menuOrder'][10] = 'project'; diff --git a/module/group/lang/resource.php b/module/group/lang/resource.php index f2d23d70cb..ce305f4305 100644 --- a/module/group/lang/resource.php +++ b/module/group/lang/resource.php @@ -1685,6 +1685,7 @@ $lang->tree->methodOrder[30] = 'delete'; /* Report. */ $lang->resource->report = new stdclass(); $lang->resource->report->index = 'index'; +$lang->resource->report->preview = 'preview'; $lang->resource->report->projectDeviation = 'projectDeviation'; $lang->resource->report->productSummary = 'productSummary'; $lang->resource->report->bugCreate = 'bugCreate'; @@ -1694,11 +1695,14 @@ $lang->resource->report->annualData = 'annual'; $lang->resource->report->allAnnualData = 'viewEveryoneAnnual'; $lang->report->methodOrder[0] = 'index'; -$lang->report->methodOrder[5] = 'projectDeviation'; -$lang->report->methodOrder[10] = 'productSummary'; -$lang->report->methodOrder[15] = 'bugCreate'; -$lang->report->methodOrder[20] = 'workload'; -$lang->report->methodOrder[25] = 'annual'; +$lang->report->methodOrder[5] = 'preview'; +$lang->report->methodOrder[10] = 'projectDeviation'; +$lang->report->methodOrder[15] = 'productSummary'; +$lang->report->methodOrder[20] = 'bugCreate'; +$lang->report->methodOrder[25] = 'bugAssign'; +$lang->report->methodOrder[30] = 'workload'; +$lang->report->methodOrder[35] = 'annual'; +$lang->report->methodOrder[40] = 'allAnnualData'; /* Search. */ $lang->resource->search = new stdclass(); diff --git a/module/report/control.php b/module/report/control.php index f70e296278..7c4dec24c9 100644 --- a/module/report/control.php +++ b/module/report/control.php @@ -44,7 +44,24 @@ class report extends control */ public function index() { - $this->locate(inlink('productSummary')); + $this->locate(inlink('preview')); + } + + /** + * Preview a report. + * + * @param int $dimension + * @param string $group + * @param string $module + * @param string $method + * @param string $params + * @access public + * @return void + */ + public function preview($dimension = 0, $group = '', $module = 'report', $method = '', $params = '') + { + $this->prepare4Preview($dimension, $group, $module, $method, $params); + $this->display(); } /** diff --git a/module/report/js/bugcreate.js b/module/report/js/bugcreate.js index 979317b94b..7d7b2ae166 100644 --- a/module/report/js/bugcreate.js +++ b/module/report/js/bugcreate.js @@ -17,6 +17,7 @@ function changeParams(obj) for(i=0 ; i < endarray.length ; i++) end = end + endarray[i]; } - link = createLink('report', 'bugcreate', 'begin=' + begin + '&end=' + end + '&product=' + product + '&execution=' + execution); - location.href=link; + var params = window.btoa('begin=' + begin + '&end=' + end + '&product=' + product + '&execution=' + execution); + var link = createLink('report', 'preview', 'dimension=' + dimension + '&group=' + group + '&module=report&method=bugcreate¶ms=' + params); + location.href = link; } diff --git a/module/report/js/productsummary.js b/module/report/js/productsummary.js index 26199a6d7f..9bebb7d6af 100644 --- a/module/report/js/productsummary.js +++ b/module/report/js/productsummary.js @@ -6,5 +6,8 @@ $('#conditions input:checkbox').change(function() if($(this).prop('checked')) conditions += $(this).val() + ','; }) conditions = conditions.substring(0, conditions.length - 1); - location.href = createLink('report', 'productSummary', 'conditions=' + conditions); + + var params = window.btoa('conditions=' + conditions); + var link = createLink('report', 'preview', 'dimension=' + dimension + '&group=' + group + '&module=report&method=productSummary¶ms=' + params); + location.href = link; }) diff --git a/module/report/js/projectdeviation.js b/module/report/js/projectdeviation.js index a1d18cc556..6dec508783 100644 --- a/module/report/js/projectdeviation.js +++ b/module/report/js/projectdeviation.js @@ -29,6 +29,8 @@ function changeDate(begin, end) end = end + endarray[i]; } } - link = createLink('report', 'projectdeviation', 'begin=' + begin + '&end=' + end); - location.href=link; + + var params = window.btoa('begin=' + begin + '&end=' + end); + var link = createLink('report', 'preview', 'dimension=' + dimension + '&group=' + group + '&module=report&method=projectdeviation¶ms=' + params); + location.href =l ink; } diff --git a/module/report/js/workload.js b/module/report/js/workload.js index aa06a0916a..935666749c 100644 --- a/module/report/js/workload.js +++ b/module/report/js/workload.js @@ -22,7 +22,8 @@ function changeParams(obj) for(i = 0 ; i < endarray.length ; i++) end = end + endarray[i]; } - var link = createLink('report', 'workload', 'begin=' + begin + '&end=' + end + '&days=' + days + '&workday=' + workday + '&dept=' + dept + '&assign=' + assign); + var params = window.btoa('begin=' + begin + '&end=' + end + '&days=' + days + '&workday=' + workday + '&dept=' + dept + '&assign=' + assign); + var link = createLink('report', 'preview', 'dimension=' + dimension + '&group=' + group + '&module=report&method=workload¶ms=' + params); location.href=link; } diff --git a/module/report/lang/de.php b/module/report/lang/de.php index 09eb08da58..fae97e801a 100644 --- a/module/report/lang/de.php +++ b/module/report/lang/de.php @@ -11,6 +11,7 @@ */ $lang->report->index = 'Home'; $lang->report->list = 'Liste'; +$lang->report->preview = 'View Pivot Table'; $lang->report->item = 'Eintrag'; $lang->report->value = 'Wert'; $lang->report->percent = '%'; @@ -53,13 +54,13 @@ $lang->report->dept = 'Abteilung'; $lang->report->deviationChart = 'Projektabweichungskurve'; $lang->reportList = new stdclass(); -$lang->reportList->project = new stdclass(); $lang->reportList->product = new stdclass(); +$lang->reportList->project = new stdclass(); $lang->reportList->test = new stdclass(); $lang->reportList->staff = new stdclass(); -$lang->reportList->project->lists[10] = "{$lang->execution->common} Abweichnung|report|projectdeviation"; $lang->reportList->product->lists[10] = $lang->productCommon . ' Zusammenfassung|report|productsummary'; +$lang->reportList->project->lists[10] = "{$lang->execution->common} Abweichnung|report|projectdeviation"; $lang->reportList->test->lists[10] = 'Bugs gemeldet|report|bugcreate'; $lang->reportList->test->lists[13] = 'Bugs zugeordnet|report|bugassign'; $lang->reportList->staff->lists[10] = 'Team Arbeitslast|report|workload'; diff --git a/module/report/lang/en.php b/module/report/lang/en.php index b43e6e8acd..5301a08fec 100644 --- a/module/report/lang/en.php +++ b/module/report/lang/en.php @@ -10,7 +10,8 @@ * @link http://www.zentao.net */ $lang->report->index = 'Report Home'; -$lang->report->list = 'Report'; +$lang->report->list = 'Pivot Table'; +$lang->report->preview = 'View Pivot Table'; $lang->report->item = 'Item'; $lang->report->value = 'Value'; $lang->report->percent = '%'; @@ -53,13 +54,13 @@ $lang->report->dept = 'Department'; $lang->report->deviationChart = 'Project Deviation Chart'; $lang->reportList = new stdclass(); -$lang->reportList->project = new stdclass(); $lang->reportList->product = new stdclass(); +$lang->reportList->project = new stdclass(); $lang->reportList->test = new stdclass(); $lang->reportList->staff = new stdclass(); -$lang->reportList->project->lists[10] = "{$lang->execution->common} Deviation|report|projectdeviation"; $lang->reportList->product->lists[10] = $lang->productCommon . ' Summary|report|productsummary'; +$lang->reportList->project->lists[10] = "{$lang->execution->common} Deviation|report|projectdeviation"; $lang->reportList->test->lists[10] = 'Bug Reported Summary|report|bugcreate'; $lang->reportList->test->lists[13] = 'Bug Assigned Summary|report|bugassign'; $lang->reportList->staff->lists[10] = 'Team Workload Summary|report|workload'; diff --git a/module/report/lang/fr.php b/module/report/lang/fr.php index 7f17bc57ed..fad1298774 100644 --- a/module/report/lang/fr.php +++ b/module/report/lang/fr.php @@ -11,6 +11,7 @@ */ $lang->report->index = 'Accueil Rapports'; $lang->report->list = 'Rapports'; +$lang->report->preview = 'View Pivot Table'; $lang->report->item = 'Item'; $lang->report->value = 'Valeur'; $lang->report->percent = '%'; @@ -53,13 +54,13 @@ $lang->report->dept = 'Compartiment'; $lang->report->deviationChart = 'Courbe de déviation du projet'; $lang->reportList = new stdclass(); -$lang->reportList->project = new stdclass(); $lang->reportList->product = new stdclass(); +$lang->reportList->project = new stdclass(); $lang->reportList->test = new stdclass(); $lang->reportList->staff = new stdclass(); -$lang->reportList->project->lists[10] = "Dérv {$lang->execution->common}|report|projectdeviation"; $lang->reportList->product->lists[10] = 'Résumé ' . $lang->productCommon . '|report|productsummary'; +$lang->reportList->project->lists[10] = "Dérv {$lang->execution->common}|report|projectdeviation"; $lang->reportList->test->lists[10] = 'Résumé remontée Bugs|report|bugcreate'; $lang->reportList->test->lists[13] = 'Résumé affectation Bugs|report|bugassign'; $lang->reportList->staff->lists[10] = 'Résumé charge travail|report|workload'; diff --git a/module/report/lang/vi.php b/module/report/lang/vi.php index bc696f0f5a..4158c53030 100644 --- a/module/report/lang/vi.php +++ b/module/report/lang/vi.php @@ -11,6 +11,7 @@ */ $lang->report->index = 'Trang báo cáo'; $lang->report->list = 'Báo cáo'; +$lang->report->preview = 'View Pivot Table'; $lang->report->item = 'Hạng mục'; $lang->report->value = 'Giá trị'; $lang->report->percent = '%'; @@ -51,13 +52,13 @@ $lang->report->dept = 'Phòng/Ban'; $lang->report->deviationChart = 'Biểu đồ chênh lệcthực hiệnh'; $lang->reportList = new stdclass(); -$lang->reportList->project = new stdclass(); $lang->reportList->product = new stdclass(); +$lang->reportList->project = new stdclass(); $lang->reportList->test = new stdclass(); $lang->reportList->staff = new stdclass(); -$lang->reportList->project->lists[10] = 'Chênh lệchthực hiện|reportprojectdeviation'; $lang->reportList->product->lists[10] = 'Tóm tắt '.$lang->productCommon . '|report|productsummary'; +$lang->reportList->project->lists[10] = 'Chênh lệchthực hiện|reportprojectdeviation'; $lang->reportList->test->lists[10] = 'Báo cáo Bug|report|bugcreate'; $lang->reportList->test->lists[13] = 'Bàn giao Bug|report|bugassign'; $lang->reportList->staff->lists[10] = 'Lượng công việc đội nhóm|report|workload'; diff --git a/module/report/lang/zh-cn.php b/module/report/lang/zh-cn.php index 3ed99b8ad6..216383e1bc 100644 --- a/module/report/lang/zh-cn.php +++ b/module/report/lang/zh-cn.php @@ -10,7 +10,8 @@ * @link http://www.zentao.net */ $lang->report->index = '统计首页'; -$lang->report->list = '统计报表'; +$lang->report->list = '透视表'; +$lang->report->preview = '查看透视表'; $lang->report->item = '条目'; $lang->report->value = '值'; $lang->report->percent = '百分比'; @@ -53,13 +54,13 @@ $lang->report->dept = '部门'; $lang->report->deviationChart = "{$lang->execution->common}偏差曲线"; $lang->reportList = new stdclass(); -$lang->reportList->project = new stdclass(); $lang->reportList->product = new stdclass(); +$lang->reportList->project = new stdclass(); $lang->reportList->test = new stdclass(); $lang->reportList->staff = new stdclass(); -$lang->reportList->project->lists[10] = "{$lang->execution->common}偏差报表|report|projectdeviation"; $lang->reportList->product->lists[10] = $lang->productCommon . '汇总表|report|productsummary'; +$lang->reportList->project->lists[10] = "{$lang->execution->common}偏差报表|report|projectdeviation"; $lang->reportList->test->lists[10] = 'Bug创建表|report|bugcreate'; $lang->reportList->test->lists[13] = 'Bug指派表|report|bugassign'; $lang->reportList->staff->lists[10] = '员工负载表|report|workload'; diff --git a/module/report/lang/zh-tw.php b/module/report/lang/zh-tw.php index ec56a9cfb9..8b27f99f6e 100644 --- a/module/report/lang/zh-tw.php +++ b/module/report/lang/zh-tw.php @@ -10,7 +10,8 @@ * @link http://www.zentao.net */ $lang->report->index = '統計首頁'; -$lang->report->list = '統計報表'; +$lang->report->list = '透视表'; +$lang->report->preview = '查看透视表'; $lang->report->item = '條目'; $lang->report->value = '值'; $lang->report->percent = '百分比'; @@ -51,13 +52,13 @@ $lang->report->dept = '部門'; $lang->report->deviationChart = "{$lang->execution->common}偏差曲綫"; $lang->reportList = new stdclass(); -$lang->reportList->project = new stdclass(); $lang->reportList->product = new stdclass(); +$lang->reportList->project = new stdclass(); $lang->reportList->test = new stdclass(); $lang->reportList->staff = new stdclass(); -$lang->reportList->project->lists[10] = "{$lang->execution->common}偏差報表|report|projectdeviation"; $lang->reportList->product->lists[10] = $lang->productCommon . '彙總表|report|productsummary'; +$lang->reportList->project->lists[10] = "{$lang->execution->common}偏差報表|report|projectdeviation"; $lang->reportList->test->lists[10] = 'Bug創建表|report|bugcreate'; $lang->reportList->test->lists[13] = 'Bug指派表|report|bugassign'; $lang->reportList->staff->lists[10] = '員工負載表|report|workload'; diff --git a/module/report/view/bugassign.html.php b/module/report/view/bugassign.html.php index b44b1acd12..cf4b0b9e6b 100644 --- a/module/report/view/bugassign.html.php +++ b/module/report/view/bugassign.html.php @@ -1,64 +1,56 @@ - config->edition != 'open'):?> -
- -
- -
-
-

error->noData;?>

-
-
- -
-
-
-
- -
-
- - - - - - - - - - - $assign):?> - - - - - $count):?> - ';?> - - - - - - '; $id ++;?> - - - - -
report->user;?>report->product;?>report->bugTotal;?>report->total;?>
- createLink('product', 'view', "product={$count['productID']}") : $this->createLink('project', 'view', "projectID={$count['projectID']}");?> - - - -
-
-
-
- + +
+
+

error->noData;?>

- + +
+
+
+
+ +
+
+ + + + + + + + + + + $assign):?> + + + + + $count):?> + ';?> + + + + + + '; $id ++;?> + + + + +
report->user;?>report->product;?>report->bugTotal;?>report->total;?>
+ createLink('product', 'view', "product={$count['productID']}") : $this->createLink('project', 'view', "projectID={$count['projectID']}");?> + + + +
+
+
+
+ + diff --git a/module/report/view/bugcreate.html.php b/module/report/view/bugcreate.html.php index f3dd5bb8ae..c330149633 100644 --- a/module/report/view/bugcreate.html.php +++ b/module/report/view/bugcreate.html.php @@ -1,85 +1,80 @@ - - + - +#mainContent > .side-col.col-lg{width: 235px} +.hide-sidebar #sidebar{width: 0 !important} -
- -
-
-
-
-
- report->bugOpenedDate;?> -
- report->to;?> -
-
-
-
-
- report->product;?> - -
-
-
-
- execution->common;?> - -
-
-
-
- -
-
-

error->noData;?>

-
-
- -
-
-
-
- -
-
- - - - - - bug->resolutionList as $resolutionType => $resolution):?> - - - - - - - - - $bug):?> - - - - - bug->resolutionList as $resolutionType => $resolution):?> - - - - - - - - -
bug->openedBy;?>bug->unResolved;?>report->validRate;?>report->total;?>
-
-
-
- + + +
+
+

error->noData;?>

- + + +
+
+
+
+ report->bugOpenedDate;?> +
+ report->to;?> +
+
+
+
+
+ report->product;?> + +
+
+
+
+ execution->common;?> + +
+
+
+
+
+
+
+
+ +
+
+ + + + + + bug->resolutionList as $resolutionType => $resolution):?> + + + + + + + + + $bug):?> + + + + + bug->resolutionList as $resolutionType => $resolution):?> + + + + + + + + +
bug->openedBy;?>bug->unResolved;?>report->validRate;?>report->total;?>
+
+
+
+ + diff --git a/module/report/view/preview.html.php b/module/report/view/preview.html.php new file mode 100644 index 0000000000..a8f6fdeb99 --- /dev/null +++ b/module/report/view/preview.html.php @@ -0,0 +1,46 @@ + + +config->edition != 'open'):?> + + + + + +
+ +
+ +
+

error->noData;?>

+
+ + fetch($module, $method, $params);?> + +
+
+ diff --git a/module/report/view/productsummary.html.php b/module/report/view/productsummary.html.php index 52e182bf8f..13ad80079b 100644 --- a/module/report/view/productsummary.html.php +++ b/module/report/view/productsummary.html.php @@ -1,114 +1,109 @@ - + +#conditions .col-xs { width: 126px; } config->edition != 'open'):?> - - +#mainContent > .side-col.col-lg{width: 235px} +.hide-sidebar #sidebar{width: 0 !important} -
- -
- -
-
-

error->noData;?>

-
-
- -
-
-
-
-
-
-
-
- /> - -
-
- /> - -
-
-
-
- -
-
- - - - - - - - - - - - - - - - - - - - - plans) ? count($product->plans) : 1;?> - - - plans)):?> - - plans as $plan):?> - - "?> - parent) and $plan->parent > 0 and isset($product->plans[$plan->parent])) ? ' child' : '';?> - - - - status['draft']) ? $plan->status['draft'] : 0; - $reviewingCount = isset($plan->status['reviewing']) ? $plan->status['reviewing'] : 0; - $activeCount = isset($plan->status['active']) ? $plan->status['active'] : 0; - $changedCount = isset($plan->status['changing']) ? $plan->status['changing'] : 0; - $closedCount = isset($plan->status['closed']) ? $plan->status['closed'] : 0; - ?> - - - - - - - "?> - - - - - - - - - - - - - - - - - - - -
product->name;?>report->PO;?>productplan->common;?>productplan->begin;?>productplan->end;?>story->statusList['draft'];?>story->statusList['reviewing'];?>story->statusList['active'];?>story->statusList['changing'];?>story->statusList['closed'];?>report->total;?>
" . html::a($this->createLink('product', 'view', "product=$product->id"), $product->name) . "

";?>
" . zget($users, $product->PO) . '

';?>
title;?>begin == '2030-01-01' ? $lang->productplan->future : $plan->begin;?>end == '2030-01-01' ? $lang->productplan->future : $plan->end;?>000000
-
-
-
- + + +
+
+

error->noData;?>

- + +
+
+
+
+
+
+
+
+ /> + +
+
+ /> + +
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + plans) ? count($product->plans) : 1;?> + + + plans)):?> + + plans as $plan):?> + + "?> + parent) and $plan->parent > 0 and isset($product->plans[$plan->parent])) ? ' child' : '';?> + + + + status['draft']) ? $plan->status['draft'] : 0; + $reviewingCount = isset($plan->status['reviewing']) ? $plan->status['reviewing'] : 0; + $activeCount = isset($plan->status['active']) ? $plan->status['active'] : 0; + $changedCount = isset($plan->status['changing']) ? $plan->status['changing'] : 0; + $closedCount = isset($plan->status['closed']) ? $plan->status['closed'] : 0; + ?> + + + + + + + "?> + + + + + + + + + + + + + + + + + + + +
product->name;?>report->PO;?>productplan->common;?>productplan->begin;?>productplan->end;?>story->statusList['draft'];?>story->statusList['reviewing'];?>story->statusList['active'];?>story->statusList['changing'];?>story->statusList['closed'];?>report->total;?>
" . html::a($this->createLink('product', 'view', "product=$product->id"), $product->name) . "

";?>
" . zget($users, $product->PO) . '

';?>
title;?>begin == '2030-01-01' ? $lang->productplan->future : $plan->begin;?>end == '2030-01-01' ? $lang->productplan->future : $plan->end;?>000000
+
+
+
+ + diff --git a/module/report/view/projectdeviation.html.php b/module/report/view/projectdeviation.html.php index 87e7acfb7c..78df99f523 100644 --- a/module/report/view/projectdeviation.html.php +++ b/module/report/view/projectdeviation.html.php @@ -1,165 +1,160 @@ - - - + - +#mainContent > .side-col.col-lg{width: 235px} +.hide-sidebar #sidebar{width: 0 !important} - array(), 'data' => array());?> -
- -
-
-
-
-
- report->execution . $lang->report->begin;?> -
-
-
-
-
- report->execution . $lang->report->end;?> -
-
-
-
-
- -
-
-

error->noData;?>

-
-
- -
-
-
-
- - - -
- -
-
- - - - - - - - - - - - - - $execution):?> - - - - - - - consumed - $execution->estimate, 2);?> - - - - - -
report->id;?>report->project;?>report->execution;?>report->estimate;?>report->consumed;?>report->deviation;?>report->deviationRate;?>
- name ? $execution->projectName : html::a($this->createLink('project', 'index', "projectID=$execution->projectID"), $execution->projectName);?> - - multiple):?> - name ? html::a($this->createLink('execution', 'view', "executionID=$id"), $execution->name) : '';?> - - null;?> - - estimate, 2);?>consumed, 2);?> - 0) - { - echo '↑' . $deviation; - } - else if($deviation < 0) - { - echo '↓' . abs($deviation); - } - else - { - echo '0'; - } - ?> - - estimate ? round($deviation / $execution->estimate * 100, 2) : 'n/a'; - if($num >= 50) - { - echo '' . $num . '%'; - } - elseif($num >= 30) - { - echo '' . $num . '%'; - } - elseif($num >= 10) - { - echo '' . $num . '%'; - } - elseif($num > 0) - { - echo '' . abs($num) . '%'; - } - elseif($num <= -20) - { - echo '' . abs($num) . '%'; - } - elseif($num < 0) - { - echo '' . abs($num) . '%'; - } - elseif($num == 'n/a') - { - echo '' . $num . ''; - } - else - { - echo '' . abs($num) . '%'; - } - - $chartData['labels'][] = $execution->name; - $chartData['data'][] = $deviation; - ?> -
-
-
-
- - -
- 30) - { - $chartData['labels'] = array_slice($chartData['labels'], 0, 30); - $chartData['data'] = array_slice($chartData['data'], 0, 30); - } - ?> -
-
-
report->deviationChart?>
-
-
- -
-
-
- + + +
+
+

error->noData;?>

+ + + + array(), 'data' => array());?> +
+
+
+
+ report->execution . $lang->report->begin;?> +
+
+
+
+
+ report->execution . $lang->report->end;?> +
+
+
+
+
+
+
+
+
+ + + +
+ +
+
+ + + + + + + + + + + + + + $execution):?> + + + + + + + consumed - $execution->estimate, 2);?> + + + + + +
report->id;?>report->project;?>report->execution;?>report->estimate;?>report->consumed;?>report->deviation;?>report->deviationRate;?>
+ name ? $execution->projectName : html::a($this->createLink('project', 'index', "projectID=$execution->projectID"), $execution->projectName);?> + + multiple):?> + name ? html::a($this->createLink('execution', 'view', "executionID=$id"), $execution->name) : '';?> + + null;?> + + estimate, 2);?>consumed, 2);?> + 0) + { + echo '↑' . $deviation; + } + else if($deviation < 0) + { + echo '↓' . abs($deviation); + } + else + { + echo '0'; + } + ?> + + estimate ? round($deviation / $execution->estimate * 100, 2) : 'n/a'; + if($num >= 50) + { + echo '' . $num . '%'; + } + elseif($num >= 30) + { + echo '' . $num . '%'; + } + elseif($num >= 10) + { + echo '' . $num . '%'; + } + elseif($num > 0) + { + echo '' . abs($num) . '%'; + } + elseif($num <= -20) + { + echo '' . abs($num) . '%'; + } + elseif($num < 0) + { + echo '' . abs($num) . '%'; + } + elseif($num == 'n/a') + { + echo '' . $num . ''; + } + else + { + echo '' . abs($num) . '%'; + } + + $chartData['labels'][] = $execution->name; + $chartData['data'][] = $deviation; + ?> +
+
+
+
+ +
+ 30) + { + $chartData['labels'] = array_slice($chartData['labels'], 0, 30); + $chartData['data'] = array_slice($chartData['data'], 0, 30); + } + ?> +
+
+
report->deviationChart?>
+
+
+ +
+
+
+ - + diff --git a/module/report/view/workload.html.php b/module/report/view/workload.html.php index 7574e45f7d..f8529330bf 100644 --- a/module/report/view/workload.html.php +++ b/module/report/view/workload.html.php @@ -1,127 +1,122 @@ - - + - +#mainContent > .side-col.col-lg{width: 210px} +.hide-sidebar #sidebar{width: 0 !important} + + execution->weekend);?> -
- -
-
-
-
-
-
- report->dept;?> - -
-
-
-
- report->beginAndEnd;?> -
- report->to;?> -
-
-
-
-
- report->diffDays;?> - -
-
-
-
-
-
- report->workday;?> - -
-
-
- report->assign, $assign, "class='form-control' onchange='changeParams(this)'");?> -
-
- report->query, '', 'btn btn-primary btn-block');?> -
-
-
+
+ +
+
+
+ report->dept;?> +
- -
- -
-
-

error->noData;?>

-
- -
-
-
-
- -
- +
+
+ report->beginAndEnd;?> +
+ report->to;?> +
-
- - - - - - - - - - - - - - - $load):?> - - - - $info) foreach($info['execution'] as $executionName => $executionInfo) $userCount ++;?> - - $info):?> - - $executionInfo) $projectCount ++ ;?> - $executionInfo):?> - ";?> - - - - - - - - - - - - - - - - ";?> - - - - - - - -
report->user;?>report->project ;?> - report->execution;?>report->task;?>report->remain;?>report->taskTotal;?>report->manhourTotal;?>report->workloadAB;?>
createLink('project', 'view', "projectID={$info['projectID']}"), $projectName);?>createLink('execution', 'view', "executionID={$executionInfo['executionID']}"), $executionName);?>null;?>
+
+
+
+ report->diffDays;?> + +
+
+
+
+
+
+ report->workday;?> + +
+
+
+ report->assign, $assign, "class='form-control' onchange='changeParams(this)'");?> +
+
+ report->query, '', 'btn btn-primary btn-block');?> +
- + +
+ +
+
+

error->noData;?>

- + +
+
+
+
+ +
+ +
+
+ + + + + + + + + + + + + + + $load):?> + + + + $info) foreach($info['execution'] as $executionName => $executionInfo) $userCount ++;?> + + $info):?> + + $executionInfo) $projectCount ++ ;?> + $executionInfo):?> + ";?> + + + + + + + + + + + + + + + + ";?> + + + + + + + +
report->user;?>report->project ;?> + report->execution;?>report->task;?>report->remain;?>report->taskTotal;?>report->manhourTotal;?>report->workloadAB;?>
createLink('project', 'view', "projectID={$info['projectID']}"), $projectName);?>createLink('execution', 'view', "executionID={$executionInfo['executionID']}"), $executionName);?>null;?>
+
+
+
+ + diff --git a/module/report/zen.php b/module/report/zen.php new file mode 100644 index 0000000000..df91d9e8a4 --- /dev/null +++ b/module/report/zen.php @@ -0,0 +1,139 @@ +getDefaultDimension(); + if(!$group) $group = $this->getDefaultGroup($dimension); + if(!$module || !$method) list($module, $method, $params) = $this->getDefaultMethod($dimension, $group); + + if(!empty($module) && !empty($method) && !common::hasPriv($module, $method)) common::deny('report', $method); + + $this->view->sidebar = $this->getSidebar($dimension, $group, $module, $method, $params); + $this->view->dimension = $dimension; + $this->view->group = $group; + $this->view->module = $module; + $this->view->method = $method; + $this->view->params = $params; + + if(empty($this->view->title)) $this->view->title = $this->lang->report->list; + } + + /** + * Get default dimension of report. + * + * @access public + * @return int + */ + public function getDefaultDimension() + { + return 1; + } + + /** + * Get default group of a dimension. + * + * @param int $dimension + * @access public + * @return string + */ + public function getDefaultGroup($dimension) + { + foreach($this->lang->reportList as $group => $list) + { + if(empty($list->lists)) continue; + + foreach($list->lists as $item) + { + $items = explode('|', $item); + if(count($items) < 3) continue; + + list($label, $module, $method) = $items; + + if(common::hasPriv($module, $method)) return $group; + } + } + + return ''; + } + + /** + * Get default module name and method name and params of report in a group. + * + * @param int $dimension + * @param string $group + * @access public + * @return array + */ + public function getDefaultMethod($dimension, $group) + { + if(empty($this->lang->reportList->$group->lists)) return array('', '', ''); + + foreach($this->lang->reportList->$group->lists as $item) + { + $items = explode('|', $item . '|'); + if(count($items) < 4) continue; + + list($label, $module, $method, $params) = $items; + + if(common::hasPriv($module, $method)) return array($module, $method, $params); + } + + return array('', '', ''); + } + + /** + * Get sidebar of report. + * + * @param int $dimension + * @param string $group + * @param string $module + * @param string $method + * @param string $params + * @access public + * @return string + */ + public function getSidebar($dimension, $group, $module, $method, $params) + { + if(empty($this->lang->reportList->$group->lists)) return ''; + + $sidebar = ''; + $module = strtolower($module); + $method = strtolower($method); + + ksort($this->lang->reportList->$group->lists); + foreach($this->lang->reportList->$group->lists as $item) + { + $items = explode('|', $item . '|'); + if(count($items) < 4) continue; + + list($label, $moduleName, $methodName, $params) = $items; + + $class = ''; + if($module == strtolower($moduleName) && $method == strtolower($methodName)) + { + $class = 'selected'; + + $this->view->title = $label; + } + + $params = helper::safe64Encode($params); + if(common::hasPriv($moduleName, $methodName)) $sidebar .= html::a(helper::createLink('report', 'preview', "dimension=$dimension&group=$group&module=$moduleName&method=$methodName¶ms=$params"), ' ' . $label, '', "class='$class' title='$label'"); + } + + return $sidebar; + } +}