diff --git a/module/block/control.php b/module/block/control.php index 4929316c2c..5e73475605 100644 --- a/module/block/control.php +++ b/module/block/control.php @@ -242,7 +242,8 @@ class block extends control $block->actionLink = ''; if($block->block == 'overview' && common::hasPriv('product', 'create')) { - $block->actionLink = html::a($this->createLink('product', 'create'), " " . $this->lang->product->create, '', "class='btn'"); + if($module == 'product' && common::hasPriv('product', 'create')) $block->actionLink = html::a($this->createLink('product', 'create'), " " . $this->lang->product->create, '', "class='btn'"); + if($module == 'project' && common::hasPriv('project', 'create')) $block->actionLink = html::a($this->createLink('project', 'create'), " " . $this->lang->project->create, '', "class='btn btn-sm'"); } if($this->block->isLongBlock($block)) @@ -835,7 +836,20 @@ class block extends control * @access public * @return void */ - public function printOverviewBlock() + public function printOverviewBlock($module = 'product') + { + $func = 'print' . ucfirst($module) . 'OverviewBlock'; + $this->view->module = $module; + $this->$func(); + } + + /** + * Print product overview block. + * + * @access public + * @return void + */ + public function printProductOverviewBlock() { $normal = 0; $closed = 0; @@ -854,6 +868,39 @@ class block extends control $this->view->closed = $closed; } + /** + * Print project overview block. + * + * @access public + * @return void + */ + public function printProjectOverviewBlock() + { + $projects = $this->loadModel('project')->getList(); + + $total = 0; + foreach($projects as $project) + { + if(!$this->project->checkPriv($project)) continue; + + if(!isset($overview[$project->status])) $overview[$project->status] = 0; + $overview[$project->status]++; + $total++; + } + + + $overviewPercent = array(); + foreach($this->lang->project->statusList as $statusKey => $statusName) + { + if(!isset($overview[$statusKey])) $overview[$statusKey] = 0; + $overviewPercent[$statusKey] = round($overview[$statusKey] / $total, 2) * 100 . '%'; + } + + $this->view->total = $total; + $this->view->overview = $overview; + $this->view->overviewPercent = $overviewPercent; + } + /** * Print project block. * diff --git a/module/block/lang/en.php b/module/block/lang/en.php index dd17671e6d..b7c7c1defe 100644 --- a/module/block/lang/en.php +++ b/module/block/lang/en.php @@ -83,21 +83,33 @@ $lang->block->default['product']['4']['params']['num'] = 15; $lang->block->default['product']['4']['params']['orderBy'] = 'id_desc'; $lang->block->default['product']['4']['params']['type'] = 'assignedTo'; -$lang->block->default['project']['1']['title'] = 'Active ' . $lang->projectCommon . 's'; -$lang->block->default['project']['1']['block'] = 'list'; +$lang->block->default['project']['1']['title'] = $lang->projectCommon . 'statistic'; +$lang->block->default['project']['1']['block'] = 'statistic'; $lang->block->default['project']['1']['grid'] = 8; -$lang->block->default['project']['1']['params']['num'] = 15; $lang->block->default['project']['1']['params']['orderBy'] = 'id_desc'; -$lang->block->default['project']['1']['params']['type'] = 'undone'; +$lang->block->default['project']['1']['params']['type'] = 'noclosed'; +$lang->block->default['project']['1']['params']['num'] = 5; -$lang->block->default['project']['2']['title'] = 'My Tasks'; -$lang->block->default['project']['2']['block'] = 'task'; +$lang->block->default['project']['2']['title'] = $lang->projectCommon . 'overview'; +$lang->block->default['project']['2']['block'] = 'overview'; $lang->block->default['project']['2']['grid'] = 4; -$lang->block->default['project']['2']['params']['num'] = 15; -$lang->block->default['project']['2']['params']['orderBy'] = 'id_desc'; -$lang->block->default['project']['2']['params']['type'] = 'assignedTo'; +$lang->block->default['project']['3']['title'] = 'Active ' . $lang->projectCommon . 's'; +$lang->block->default['project']['3']['block'] = 'list'; +$lang->block->default['project']['3']['grid'] = 8; + +$lang->block->default['project']['3']['params']['num'] = 15; +$lang->block->default['project']['3']['params']['orderBy'] = 'id_desc'; +$lang->block->default['project']['3']['params']['type'] = 'undone'; + +$lang->block->default['project']['4']['title'] = 'My Tasks'; +$lang->block->default['project']['4']['block'] = 'task'; +$lang->block->default['project']['4']['grid'] = 4; + +$lang->block->default['project']['4']['params']['num'] = 15; +$lang->block->default['project']['4']['params']['orderBy'] = 'id_desc'; +$lang->block->default['project']['4']['params']['type'] = 'assignedTo'; $lang->block->default['qa']['1']['title'] = 'My Bugs'; $lang->block->default['qa']['1']['block'] = 'bug'; @@ -232,6 +244,8 @@ $lang->block->modules['product']->availableBlocks->plan = 'Plans'; $lang->block->modules['product']->availableBlocks->release = 'Releases'; $lang->block->modules['project'] = new stdclass(); $lang->block->modules['project']->availableBlocks = new stdclass(); +$lang->block->modules['project']->availableBlocks->statistic = $lang->projectCommon . 'statistic'; +$lang->block->modules['project']->availableBlocks->overview = $lang->projectCommon . 'overview'; $lang->block->modules['project']->availableBlocks->list = $lang->projectCommon . 'List'; $lang->block->modules['project']->availableBlocks->task = 'Tasks'; $lang->block->modules['project']->availableBlocks->build = 'Builds'; diff --git a/module/block/lang/zh-cn.php b/module/block/lang/zh-cn.php index f34a5ab188..51dadb7892 100644 --- a/module/block/lang/zh-cn.php +++ b/module/block/lang/zh-cn.php @@ -83,21 +83,33 @@ $lang->block->default['product']['4']['params']['num'] = 15; $lang->block->default['product']['4']['params']['orderBy'] = 'id_desc'; $lang->block->default['product']['4']['params']['type'] = 'assignedTo'; -$lang->block->default['project']['1']['title'] = '进行中的' . $lang->projectCommon; -$lang->block->default['project']['1']['block'] = 'list'; +$lang->block->default['project']['1']['title'] = $lang->projectCommon . '统计'; +$lang->block->default['project']['1']['block'] = 'statistic'; $lang->block->default['project']['1']['grid'] = 8; -$lang->block->default['project']['1']['params']['num'] = 15; $lang->block->default['project']['1']['params']['orderBy'] = 'id_desc'; -$lang->block->default['project']['1']['params']['type'] = 'undone'; +$lang->block->default['project']['1']['params']['type'] = 'noclosed'; +$lang->block->default['project']['1']['params']['num'] = 5; -$lang->block->default['project']['2']['title'] = '指派给我的任务'; -$lang->block->default['project']['2']['block'] = 'task'; +$lang->block->default['project']['2']['title'] = $lang->projectCommon . '总览'; +$lang->block->default['project']['2']['block'] = 'overview'; $lang->block->default['project']['2']['grid'] = 4; -$lang->block->default['project']['2']['params']['num'] = 15; -$lang->block->default['project']['2']['params']['orderBy'] = 'id_desc'; -$lang->block->default['project']['2']['params']['type'] = 'assignedTo'; +$lang->block->default['project']['3']['title'] = '进行中的' . $lang->projectCommon; +$lang->block->default['project']['3']['block'] = 'list'; +$lang->block->default['project']['3']['grid'] = 8; + +$lang->block->default['project']['3']['params']['num'] = 15; +$lang->block->default['project']['3']['params']['orderBy'] = 'id_desc'; +$lang->block->default['project']['3']['params']['type'] = 'undone'; + +$lang->block->default['project']['4']['title'] = '指派给我的任务'; +$lang->block->default['project']['4']['block'] = 'task'; +$lang->block->default['project']['4']['grid'] = 4; + +$lang->block->default['project']['4']['params']['num'] = 15; +$lang->block->default['project']['4']['params']['orderBy'] = 'id_desc'; +$lang->block->default['project']['4']['params']['type'] = 'assignedTo'; $lang->block->default['qa']['1']['title'] = '指派给我的Bug'; $lang->block->default['qa']['1']['block'] = 'bug'; @@ -232,9 +244,11 @@ $lang->block->modules['product']->availableBlocks->plan = '计划列表'; $lang->block->modules['product']->availableBlocks->release = '发布列表'; $lang->block->modules['project'] = new stdclass(); $lang->block->modules['project']->availableBlocks = new stdclass(); -$lang->block->modules['project']->availableBlocks->list = $lang->projectCommon . '列表'; -$lang->block->modules['project']->availableBlocks->task = '任务列表'; -$lang->block->modules['project']->availableBlocks->build = '版本列表'; +$lang->block->modules['project']->availableBlocks->statistic = $lang->projectCommon . '统计'; +$lang->block->modules['project']->availableBlocks->overview = $lang->projectCommon . '总览'; +$lang->block->modules['project']->availableBlocks->list = $lang->projectCommon . '列表'; +$lang->block->modules['project']->availableBlocks->task = '任务列表'; +$lang->block->modules['project']->availableBlocks->build = '版本列表'; $lang->block->modules['qa'] = new stdclass(); $lang->block->modules['qa']->availableBlocks = new stdclass(); $lang->block->modules['qa']->availableBlocks->bug = 'Bug列表'; diff --git a/module/block/view/overviewblock.html.php b/module/block/view/overviewblock.html.php index dc4cecd5ad..b6a9326c5e 100644 --- a/module/block/view/overviewblock.html.php +++ b/module/block/view/overviewblock.html.php @@ -5,34 +5,9 @@ * @copyright Copyright 2009-2018 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com) * @license ZPL (http://zpl.pub/page/zplv12.html) * @author Gang Liu - * @package block + * @package block * @version $Id$ * @link http://www.zentao.net */ ?> - -
-
-
- -
- product->all;?> - -
-
-
-
-
    -
  • product->statusList['normal'];?>  
  • -
  • product->statusList['closed'];?>  
  • -
-
-
+ diff --git a/module/block/view/productoverviewblock.html.php b/module/block/view/productoverviewblock.html.php new file mode 100644 index 0000000000..dc4cecd5ad --- /dev/null +++ b/module/block/view/productoverviewblock.html.php @@ -0,0 +1,38 @@ + + * @package block + * @version $Id$ + * @link http://www.zentao.net + */ +?> + +
+
+
+ +
+ product->all;?> + +
+
+
+
+
    +
  • product->statusList['normal'];?>  
  • +
  • product->statusList['closed'];?>  
  • +
+
+
diff --git a/module/block/view/projectoverviewblock.html.php b/module/block/view/projectoverviewblock.html.php new file mode 100644 index 0000000000..e3d9d88751 --- /dev/null +++ b/module/block/view/projectoverviewblock.html.php @@ -0,0 +1,38 @@ + + * @package block + * @version $Id$ + * @link http://www.zentao.net + */ +?> +
+
+
+
project->allProject;?>
+
+ project->viewAll;?> +
+
+
+
    + project->statusList as $statusKey => $statusName):?> +
  • + + + +
  • + +
+
+
+ + diff --git a/module/block/view/taskblock.html.php b/module/block/view/taskblock.html.php index 38104dd9ec..5348ca0c6a 100644 --- a/module/block/view/taskblock.html.php +++ b/module/block/view/taskblock.html.php @@ -14,7 +14,7 @@ '> - + @@ -36,7 +36,7 @@ - +
idAB?>idAB;?> priAB?> task->name;?> name?> estimate?>deadline, 0, 4) > 0) echo $task->deadline;?>deadline, 0, 4) > 0) echo $task->deadline;?> diff --git a/module/project/lang/en.php b/module/project/lang/en.php index 8b72c65986..21017b2007 100644 --- a/module/project/lang/en.php +++ b/module/project/lang/en.php @@ -146,6 +146,7 @@ $lang->project->storySort = 'Sort Story'; $lang->project->importPlanStory = 'Create ' . $lang->projectCommon . ' success!\nImport the stories with the plan?'; $lang->project->iteration = 'Iteration'; $lang->project->iterationInfo = 'Iteration %s times'; +$lang->project->viewAll = 'View All'; /* 分组浏览。*/ $lang->project->allTasks = 'All'; diff --git a/module/project/lang/zh-cn.php b/module/project/lang/zh-cn.php index f139611ddb..9e84e05f4a 100644 --- a/module/project/lang/zh-cn.php +++ b/module/project/lang/zh-cn.php @@ -147,6 +147,7 @@ $lang->project->storySort = '需求排序'; $lang->project->importPlanStory = '创建' . $lang->projectCommon . '成功!\n是否导入计划关联的相关需求?'; $lang->project->iteration = '版本迭代'; $lang->project->iterationInfo = '迭代%s次'; +$lang->project->viewAll = '查看所有'; /* 分组浏览。*/ $lang->project->allTasks = '所有';