From b1688e006718a24cbf585d86acf6e5d42770dfdf Mon Sep 17 00:00:00 2001 From: "wenjie@cnezsoft.com" Date: Sat, 16 Apr 2011 05:49:26 +0000 Subject: [PATCH] + the page of tasks report --- module/task/control.php | 39 ++++++++++++++++++++ module/task/css/report.css | 1 + module/task/js/report.js | 20 ++++++++++ module/task/lang/en.php | 19 ++++++++++ module/task/lang/zh-cn.php | 19 ++++++++++ module/task/view/report.html.php | 63 ++++++++++++++++++++++++++++++++ 6 files changed, 161 insertions(+) create mode 100644 module/task/css/report.css create mode 100644 module/task/js/report.js create mode 100644 module/task/view/report.html.php diff --git a/module/task/control.php b/module/task/control.php index 4298d4ae7a..7e5f0b503f 100644 --- a/module/task/control.php +++ b/module/task/control.php @@ -484,4 +484,43 @@ class task extends control $tasks = $this->task->getProjectTaskPairs((int)$projectID); die(html::select('task', $tasks, $taskID)); } + + /** + * The report page. + * + * @param int $projectID + * @param string $browseType + * @access public + * @return void + */ + public function report($projectID, $browseType) + { + + $this->loadModel('report'); + $this->view->charts = array(); + $this->view->renderJS = ''; + + if(!empty($_POST)) + { + foreach($this->post->charts as $chart) + { + $chartFunc = 'getDataOf' . $chart; + $chartData = $this->task->$chartFunc(); + $chartOption = $this->lang->task->report->$chart; + $this->task->mergeChartOption($chart); + + $chartXML = $this->report->createSingleXML($chartData, $chartOption->graph); + $this->view->charts[$chart] = $this->report->createJSChart($chartOption->swf, $chartXML, $chartOption->width, $chartOption->height); + $this->view->datas[$chart] = $this->report->computePercent($chartData); + } + $this->view->renderJS = $this->report->renderJsCharts(count($this->view->charts)); + } + $this->project->setMenu($this->project->getPairs(), $projectID); + $this->projects = $this->project->getPairs(); + $this->view->header->title = $this->projects[$projectID] . $this->lang->colon . $this->lang->task->report->common; + $this->view->projectID = $projectID; + $this->view->browseType = $browseType; + $this->view->checkedCharts = $this->post->charts ? join(',', $this->post->charts) : ''; + $this->display(); + } } diff --git a/module/task/css/report.css b/module/task/css/report.css new file mode 100644 index 0000000000..9c3849153e --- /dev/null +++ b/module/task/css/report.css @@ -0,0 +1 @@ +.side span {display:block} diff --git a/module/task/js/report.js b/module/task/js/report.js new file mode 100644 index 0000000000..c8c6103f9a --- /dev/null +++ b/module/task/js/report.js @@ -0,0 +1,20 @@ +/* Select All. */ +function checkAll() +{ + var checkOBJ = $('input'); + for(var i = 0; i < checkOBJ.length; i++) + { + checkOBJ.get(i).checked = true; + } +} + +/* Check reverse. */ +function checkReverse() +{ + var checkOBJ = $('input'); + for(var i = 0; i < checkOBJ.length; i++) + { + checkOBJ.get(i).checked = !checkOBJ.get(i).checked; + } + return; +} diff --git a/module/task/lang/en.php b/module/task/lang/en.php index a30eba7b4f..5ee90f59a2 100644 --- a/module/task/lang/en.php +++ b/module/task/lang/en.php @@ -111,3 +111,22 @@ $lang->task->copyStoryTitle = "Same as story"; $lang->task->afterSubmit = "After created"; $lang->task->successSaved = "Success saved"; $lang->task->delayWarning = " Postponed %s days "; + +/* Report. */ +$lang->task->report->common = 'Report'; +$lang->task->report->select = 'Select'; +$lang->task->report->create = 'Create'; +$lang->task->report->selectAll = 'All'; +$lang->task->report->selectReverse = 'Reverse'; + +$lang->task->report->charts['tasksPerProject'] = 'Project tasks'; +$lang->task->report->charts['tasksPerAssignedTo'] = 'Assigned To'; +$lang->task->report->charts['tasksPerType'] = 'Type'; +$lang->task->report->charts['tasksPerPrimary'] = 'Primary'; +$lang->task->report->charts['tasksPerDeadline'] = 'Deadline'; +$lang->task->report->charts['tasksPerEstimate'] = 'Estimate time'; +$lang->task->report->charts['tasksPerLeft'] = 'Left time'; +$lang->task->report->charts['tasksPerConsumed'] = 'Consumed time'; +$lang->task->report->charts['tasksPerFinishedBy'] = 'Finished By'; +$lang->task->report->charts['tasksPerClosedReason'] = 'Closed reason'; +$lang->task->report->charts['finishedTasksPerDay'] = 'Finished tasks per day'; diff --git a/module/task/lang/zh-cn.php b/module/task/lang/zh-cn.php index 78f4c7432f..198ee51bbd 100644 --- a/module/task/lang/zh-cn.php +++ b/module/task/lang/zh-cn.php @@ -111,3 +111,22 @@ $lang->task->copyStoryTitle = "同需求"; $lang->task->afterSubmit = "添加之后"; $lang->task->successSaved = "成功添加,"; $lang->task->delayWarning = " 延期%s天 "; + +/* 统计报表。*/ +$lang->task->report->common = '统计报表'; +$lang->task->report->select = '请选择报表类型'; +$lang->task->report->create = '生成报表'; +$lang->task->report->selectAll = '全选'; +$lang->task->report->selectReverse = '反选'; + +$lang->task->report->charts['tasksPerProject'] = '项目任务数统计'; +$lang->task->report->charts['tasksPerAssignedTo'] = '指派给统计'; +$lang->task->report->charts['tasksPerType'] = '任务类型统计'; +$lang->task->report->charts['tasksPerPrimary'] = '优先级统计'; +$lang->task->report->charts['tasksPerDeadline'] = '截止日期统计'; +$lang->task->report->charts['tasksPerEstimate'] = '预计时间统计'; +$lang->task->report->charts['tasksPerLeft'] = '剩余时间统计'; +$lang->task->report->charts['tasksPerConsumed'] = '消耗时间统计'; +$lang->task->report->charts['tasksPerFinishedBy'] = '由有谁完成统计'; +$lang->task->report->charts['tasksPerClosedReason'] = '关闭原因统计'; +$lang->task->report->charts['finishedTasksPerDay'] = '每天完成统计'; diff --git a/module/task/view/report.html.php b/module/task/view/report.html.php new file mode 100644 index 0000000000..088b1fc033 --- /dev/null +++ b/module/task/view/report.html.php @@ -0,0 +1,63 @@ + + * @package project + * @version $Id: report.html.php 1594 2011-04-10 11:00:00Z wj $ + * @link http://www.zentao.net + */ +?> + +
+
report->common;?>
+
goback); ?>
+
+ + + + + + + +
+
task->report->select;?>
+
+
+ task->report->charts, $checkedCharts)?> + + +

+ task->report->create);?> +
+
+
+ + + $chartContent):?> + + + + + +
task->report->common;?>
+ + + + + + + $data):?> + + + + + + +
report->item;?>report->value;?>report->percent;?>
name;?>value;?>percent * 100) . '%';?>
+
+
+ +