diff --git a/module/block/control.php b/module/block/control.php index 658fdb9f39..e778970060 100644 --- a/module/block/control.php +++ b/module/block/control.php @@ -204,7 +204,7 @@ class block extends control * @access public * @return void */ - public function dashboard($module) + public function dashboard($module, $type = '') { if($this->loadModel('user')->isLogon()) $this->session->set('blockModule', $module); $blocks = $this->block->getBlockList($module); @@ -213,7 +213,7 @@ class block extends control /* Init block when vist index first. */ if(empty($blocks) and !$inited and !defined('TUTORIAL')) { - if($this->block->initBlock($module)) die(js::reload()); + if($this->block->initBlock($module, $type)) die(js::reload()); } $acls = $this->app->user->rights['acls']; @@ -983,40 +983,69 @@ class block extends control } /** - * Print program statistic block. + * Print cmmi report block. * * @access public * @return void */ - public function printProgramStatisticBlock() + public function printCmmiReportBlock() { - $this->loadModel('program'); - /* Get projects. */ - $projects = $this->loadModel('project')->getList('all', 0, 0, 0, 'program'); - $sprints = $this->project->getList(); - $total = count($sprints); - foreach($projects as $project) - { - $project->sprints = 0; - foreach($this->lang->project->statusList as $key => $status) - { - $project->$key = new stdclass(); - $project->$key->count = 0; - } + $this->view->program = $this->loadModel('project')->getByID($this->session->program); + } - foreach($sprints as $sprint) - { - if($sprint->program == $project->id) - { - $project->sprints ++; - $project->{$sprint->status}->count ++; - } - } + /** + * Print cmmi gantt block. + * + * @access public + * @return void + */ + public function printCmmiGanttBlock() + { + $this->view->program = $this->loadModel('project')->getByID($this->session->program); + } - foreach($this->lang->project->statusList as $key => $status) $project->$key->percent = $total ? round($project->$key->count / $total, 2) * 100 . '%' : '0%'; - } + /** + * Print cmmi gantt block. + * + * @access public + * @return void + */ + public function printCmmiIssueBlock() + { + $this->view->program = $this->loadModel('project')->getByID($this->session->program); + } - $this->view->projects = $projects; + /** + * Print cmmi risk block. + * + * @access public + * @return void + */ + public function printCmmiRiskBlock() + { + $this->view->program = $this->loadModel('project')->getByID($this->session->program); + } + + /** + * Print cmmi estimate block. + * + * @access public + * @return void + */ + public function printCmmiEstimateBlock() + { + $this->view->program = $this->loadModel('project')->getByID($this->session->program); + } + + /** + * Print cmmi progress block. + * + * @access public + * @return void + */ + public function printCmmiprogressBlock() + { + $this->view->program = $this->loadModel('project')->getByID($this->session->program); } /** diff --git a/module/block/lang/zh-cn.php b/module/block/lang/zh-cn.php index eada6929c1..73eb0241cf 100644 --- a/module/block/lang/zh-cn.php +++ b/module/block/lang/zh-cn.php @@ -64,6 +64,35 @@ $lang->block->nbsp = ''; $lang->block->hidden = '隐藏'; $lang->block->dynamicInfo = "%s %s %s %s %s"; +$lang->block->default['cmmi']['program']['1']['title'] = '项目周报'; +$lang->block->default['cmmi']['program']['1']['block'] = 'cmmireport'; +$lang->block->default['cmmi']['program']['1']['grid'] = 8; + +$lang->block->default['cmmi']['program']['2']['title'] = '估算'; +$lang->block->default['cmmi']['program']['2']['block'] = 'cmmiestimate'; +$lang->block->default['cmmi']['program']['2']['grid'] = 4; + +$lang->block->default['cmmi']['program']['3']['title'] = '计划甘特图'; +$lang->block->default['cmmi']['program']['3']['block'] = 'cmmigantt'; +$lang->block->default['cmmi']['program']['3']['grid'] = 8; + +$lang->block->default['cmmi']['program']['4']['title'] = '到目前为止项目进展趋势图'; +$lang->block->default['cmmi']['program']['4']['block'] = 'cmmiprogress'; +$lang->block->default['cmmi']['program']['4']['grid'] = 4; + +$lang->block->default['cmmi']['program']['5']['title'] = '项目问题'; +$lang->block->default['cmmi']['program']['5']['block'] = 'cmmiissue'; +$lang->block->default['cmmi']['program']['5']['grid'] = 8; + +$lang->block->default['cmmi']['program']['6']['title'] = '最新动态'; +$lang->block->default['cmmi']['program']['6']['block'] = 'dynamic'; +$lang->block->default['cmmi']['program']['6']['grid'] = 4; +$lang->block->default['cmmi']['program']['6']['source'] = ''; + +$lang->block->default['cmmi']['program']['7']['title'] = '项目风险'; +$lang->block->default['cmmi']['program']['7']['block'] = 'cmmirisk'; +$lang->block->default['cmmi']['program']['7']['grid'] = 8; + $lang->block->default['product']['1']['title'] = $lang->productCommon . '统计'; $lang->block->default['product']['1']['block'] = 'statistic'; $lang->block->default['product']['1']['grid'] = 8; diff --git a/module/block/model.php b/module/block/model.php index f35d493da6..9c8a109623 100644 --- a/module/block/model.php +++ b/module/block/model.php @@ -218,11 +218,12 @@ class blockModel extends model * @access public * @return bool */ - public function initBlock($module) + public function initBlock($module, $type = '') { $flow = isset($this->config->global->flow) ? $this->config->global->flow : 'full'; - $blocks = $module == 'my' ? $this->lang->block->default[$flow][$module] : $this->lang->block->default[$module]; $account = $this->app->user->account; + if($module == 'program') $blocks = $this->lang->block->default[$type]['program']; + else $blocks = $module == 'my' ? $this->lang->block->default[$flow][$module] : $this->lang->block->default[$module]; /* Mark this app has init. */ $this->loadModel('setting')->setItem("$account.$module.common.blockInited", true); diff --git a/module/block/view/cmmiestimateblock.html.php b/module/block/view/cmmiestimateblock.html.php new file mode 100644 index 0000000000..e69de29bb2 diff --git a/module/block/view/cmmiganttblock.html.php b/module/block/view/cmmiganttblock.html.php new file mode 100644 index 0000000000..e69de29bb2 diff --git a/module/block/view/cmmiissueblock.html.php b/module/block/view/cmmiissueblock.html.php new file mode 100644 index 0000000000..e69de29bb2 diff --git a/module/block/view/cmmiprogressblock.html.php b/module/block/view/cmmiprogressblock.html.php new file mode 100644 index 0000000000..e69de29bb2 diff --git a/module/block/view/cmmireportblock.html.php b/module/block/view/cmmireportblock.html.php new file mode 100644 index 0000000000..26004dbdec --- /dev/null +++ b/module/block/view/cmmireportblock.html.php @@ -0,0 +1,24 @@ + + +
+
+
+
+

项目进度

+ 70% +
+
+
+
+
+
+
+
+
diff --git a/module/block/view/cmmiriskblock.html.php b/module/block/view/cmmiriskblock.html.php new file mode 100644 index 0000000000..e69de29bb2 diff --git a/module/group/lang/resource.php b/module/group/lang/resource.php index 76d3d831f3..e3db2dbdf6 100644 --- a/module/group/lang/resource.php +++ b/module/group/lang/resource.php @@ -143,8 +143,16 @@ $lang->todo->methodOrder[75] = 'batchClose'; /* Program. */ $lang->resource->program = new stdclass(); $lang->resource->program->index = 'index'; -$lang->resource->program->transfer = 'transfer'; -//$lang->resource->program->createGuide = 'createGuide'; +$lang->resource->program->browse = 'browse'; +$lang->resource->program->create = 'create'; +$lang->resource->program->createGuide = 'createGuide'; +$lang->resource->program->edit = 'edit'; +$lang->resource->program->start = 'start'; +$lang->resource->program->finish = 'finish'; +$lang->resource->program->delete = 'delete'; +$lang->resource->program->suspend = 'suspend'; +$lang->resource->program->activate = 'activate'; +$lang->resource->program->close = 'close'; $lang->resource->program->setPlanduration = 'setPlanduration'; $lang->resource->program->group = 'group'; $lang->resource->program->createGroup = 'createGroup'; @@ -155,28 +163,21 @@ $lang->resource->program->managePriv = 'managePriv'; $lang->resource->program->manageGroupMember = 'manageGroupMember'; $lang->resource->program->manageMembers = 'manageMembers'; $lang->resource->program->export = 'export'; -$lang->resource->program->create = 'create'; -$lang->resource->program->edit = 'edit'; -$lang->resource->program->start = 'start'; -$lang->resource->program->finish = 'finish'; -$lang->resource->program->delete = 'delete'; -$lang->resource->program->suspend = 'suspend'; -$lang->resource->program->activate = 'activate'; -$lang->resource->program->close = 'close'; $lang->program->methodOrder[5] = 'index'; -$lang->program->methodOrder[10] = 'transfer'; -$lang->program->methodOrder[15] = 'setPlanduration'; -$lang->program->methodOrder[20] = 'manageMembers'; -$lang->program->methodOrder[25] = 'export'; -$lang->program->methodOrder[30] = 'create'; -$lang->program->methodOrder[35] = 'edit'; -$lang->program->methodOrder[40] = 'start'; -$lang->program->methodOrder[45] = 'finish'; -$lang->program->methodOrder[50] = 'delete'; -$lang->program->methodOrder[55] = 'suspend'; -$lang->program->methodOrder[60] = 'activate'; -$lang->program->methodOrder[65] = 'close'; +$lang->program->methodOrder[10] = 'browse'; +$lang->program->methodOrder[15] = 'create'; +$lang->program->methodOrder[20] = 'createGuide'; +$lang->program->methodOrder[25] = 'edit'; +$lang->program->methodOrder[30] = 'start'; +$lang->program->methodOrder[35] = 'finish'; +$lang->program->methodOrder[40] = 'delete'; +$lang->program->methodOrder[45] = 'suspend'; +$lang->program->methodOrder[50] = 'activate'; +$lang->program->methodOrder[55] = 'close'; +$lang->program->methodOrder[60] = 'setPlanduration'; +$lang->program->methodOrder[65] = 'manageMembers'; +$lang->program->methodOrder[70] = 'export'; /* Product. */ $lang->resource->product = new stdclass(); diff --git a/module/my/js/program.js b/module/my/js/program.js deleted file mode 100644 index 0e7feff968..0000000000 --- a/module/my/js/program.js +++ /dev/null @@ -1,12 +0,0 @@ -$(function() -{ - $('#projectList .transfer').click(function() - { - var programID = $(this).attr('data-id'); - var link = createLink('program', 'ajaxGetEnterLink', "programID=" + programID); - $.post(link, function(pgmLink) - { - location.href = pgmLink; - }) - }) -}) diff --git a/module/my/view/program.html.php b/module/my/view/program.html.php index 5b6ca81b5c..a4a2e52c92 100644 --- a/module/my/view/program.html.php +++ b/module/my/view/program.html.php @@ -43,7 +43,7 @@ id;?> code;?> - createLink('program', 'index', "programID=$program->id"), $program->name, '', "class='transfer' data-id={$program->id}");?> + createLink('program', 'index', "programID=$program->id"), $program->name);?> begin;?> end;?> diff --git a/module/program/control.php b/module/program/control.php index dd123847c9..de0afec313 100644 --- a/module/program/control.php +++ b/module/program/control.php @@ -18,10 +18,9 @@ class program extends control */ public function index($programID = 0) { + $this->lang->navGroup->program = 'program'; if(!$programID) $programID = $this->session->program; $this->session->set('program', $programID); - $this->lang->navGroup->program = 'program'; - $this->view->title = $this->lang->program->common . $this->lang->colon . $this->lang->program->index; $this->view->position[] = $this->lang->program->index; @@ -684,6 +683,7 @@ class program extends control $this->view->module = $module; $this->view->method = $method; $this->view->extra = $extra; + $programs = $this->dao->select('*')->from(TABLE_PROJECT)->where('id')->in(array_keys($this->programs))->orderBy('order desc')->fetchAll(); $programPairs = array(); foreach($programs as $program) $programPairs[$program->id] = $program->name; diff --git a/module/program/js/browse.js b/module/program/js/browse.js index c9b74f4201..fa840f3578 100644 --- a/module/program/js/browse.js +++ b/module/program/js/browse.js @@ -38,14 +38,4 @@ $(function() for(i = 0; i < data.list.length; i++) list += $(data.list[i].item).attr('data-id') + ','; $.post(createLink('project', 'updateOrder'), {'projects' : list, 'orderBy' : orderBy}); }); - - $('.pgm-title .transfer').click(function() - { - var programID = $(this).attr('data-id'); - var link = createLink('program', 'ajaxGetEnterLink', "programID=" + programID); - $.post(link, function(pgmLink) - { - location.href = pgmLink; - }) - }) }) diff --git a/module/program/lang/zh-cn.php b/module/program/lang/zh-cn.php index 5a732e57ea..4104d58604 100644 --- a/module/program/lang/zh-cn.php +++ b/module/program/lang/zh-cn.php @@ -1,51 +1,51 @@ program->index = '仪表盘'; -$lang->program->browse = '项目列表'; -$lang->program->common = '项目'; -$lang->program->stage = '阶段'; -$lang->program->name = '项目名称'; -$lang->program->template = '项目模板'; -$lang->program->category = '项目类型'; -$lang->program->desc = '项目描述'; -$lang->program->code = '项目代号'; -$lang->program->copy = '复制项目'; -$lang->program->begin = '计划开始日期'; -$lang->program->end = '计划完成日期'; -$lang->program->status = '项目状态'; -$lang->program->PM = '项目负责人'; -$lang->program->create = '添加项目'; -$lang->program->edit = '编辑项目'; -$lang->program->all = '所有项目'; -$lang->program->start = '启动项目'; -$lang->program->finish = '完成项目'; -$lang->program->suspend = '挂起项目'; -$lang->program->delete = '删除项目'; -$lang->program->close = '关闭项目'; -$lang->program->activate = '激活项目'; -$lang->program->budget = '项目预算'; -$lang->program->dateRange = '起止时间'; -$lang->program->to = '至'; -$lang->program->realFinished = '实际完成日期'; -$lang->program->realStarted = '实际开始日期'; -$lang->program->bygrid = '看板'; -$lang->program->bylist = '列表'; -$lang->program->mine = '我参与的'; -$lang->program->group = '权限分组'; -$lang->program->createGroup = '创建分组'; -$lang->program->editGroup = '编辑分组'; -$lang->program->copyGroup = '复制分组'; -$lang->program->manageView = '维护视图'; -$lang->program->managePriv = '维护权限'; -$lang->program->manageMembers = '项目团队'; -$lang->program->transfer = '进入项目'; -$lang->program->setPlanduration = '设置工期'; -$lang->program->export = '导出'; -$lang->program->privway = '权限控制'; - +/* Actions. */ +$lang->program->index = '仪表盘'; +$lang->program->create = '添加项目'; +$lang->program->createGuide = '选择项目模板'; +$lang->program->edit = '编辑项目'; +$lang->program->browse = '项目列表'; +$lang->program->all = '所有项目'; +$lang->program->start = '启动项目'; +$lang->program->finish = '完成项目'; +$lang->program->suspend = '挂起项目'; +$lang->program->delete = '删除项目'; +$lang->program->close = '关闭项目'; +$lang->program->activate = '激活项目'; +$lang->program->group = '权限分组'; +$lang->program->createGroup = '创建分组'; +$lang->program->editGroup = '编辑分组'; +$lang->program->copyGroup = '复制分组'; +$lang->program->manageView = '维护视图'; +$lang->program->managePriv = '维护权限'; +$lang->program->manageMembers = '项目团队'; +$lang->program->export = '导出'; $lang->program->manageGroupMember = '维护分组用户'; + +/* Fields. */ +$lang->program->common = '项目'; +$lang->program->stage = '阶段'; +$lang->program->name = '项目名称'; +$lang->program->template = '项目模板'; +$lang->program->category = '项目类型'; +$lang->program->desc = '项目描述'; +$lang->program->code = '项目代号'; +$lang->program->copy = '复制项目'; +$lang->program->begin = '计划开始日期'; +$lang->program->end = '计划完成日期'; +$lang->program->status = '项目状态'; +$lang->program->PM = '项目负责人'; +$lang->program->budget = '项目预算'; +$lang->program->dateRange = '起止时间'; +$lang->program->to = '至'; +$lang->program->realFinished = '实际完成日期'; +$lang->program->realStarted = '实际开始日期'; +$lang->program->bygrid = '看板'; +$lang->program->bylist = '列表'; +$lang->program->mine = '我参与的'; +$lang->program->setPlanduration = '设置工期'; +$lang->program->privway = '权限控制'; $lang->program->durationEstimation = '工作量估算'; -$lang->program->noProgram = '暂时没有项目'; -$lang->program->accessDenied = '您无权访问该项目!'; $lang->program->unitList[''] = ''; $lang->program->unitList['yuan'] = '元'; @@ -70,15 +70,17 @@ $lang->program->aclList['custom'] = "自定义白名单(团队成员和白名 $lang->program->privwayList['extend'] = '继承(取项目权限与组织权限的并集)'; $lang->program->privwayList['reset'] = '重新定义(只取项目权限)'; -$lang->program->chooseProgramType = '选择项目管理方式'; -$lang->program->nextStep = '下一步'; -$lang->program->hoursUnit = '%s工时'; -$lang->program->membersUnit = '%s人'; -$lang->program->lastIteration = '近期迭代'; -$lang->program->ongoingStage = '进行中的阶段'; -$lang->program->scrum = 'Scrum'; -$lang->program->scrumTitle = '敏捷开发全流程项目管理'; -$lang->program->scrumDesc = '简介:小步迭代,快速发布
包含功能点:项目概览、迭代、计划、需求等'; -$lang->program->cmmi = '瀑布'; -$lang->program->cmmiTitle = '瀑布式项目管理'; -$lang->program->cmmiDesc = '简介:按阶段规范化管理
包含功能点:估算、计划、阶段、报告'; +$lang->program->noProgram = '暂时没有项目'; +$lang->program->accessDenied = '您无权访问该项目!'; +$lang->program->chooseProgramType = '选择项目管理方式'; +$lang->program->nextStep = '下一步'; +$lang->program->hoursUnit = '%s工时'; +$lang->program->membersUnit = '%s人'; +$lang->program->lastIteration = '近期迭代'; +$lang->program->ongoingStage = '进行中的阶段'; +$lang->program->scrum = 'Scrum'; +$lang->program->scrumTitle = '敏捷开发全流程项目管理'; +$lang->program->scrumDesc = '简介:小步迭代,快速发布
包含功能点:项目概览、迭代、计划、需求等'; +$lang->program->cmmi = '瀑布'; +$lang->program->cmmiTitle = '瀑布式项目管理'; +$lang->program->cmmiDesc = '简介:按阶段规范化管理
包含功能点:估算、计划、阶段、报告'; diff --git a/module/program/view/ajaxgetdropmenu.html.php b/module/program/view/ajaxgetdropmenu.html.php index 79763aeb00..9d45f158a9 100644 --- a/module/program/view/ajaxgetdropmenu.html.php +++ b/module/program/view/ajaxgetdropmenu.html.php @@ -23,13 +23,13 @@ foreach($programs as $program) { if($program->status != 'done' and $program->status != 'closed' and $program->PM == $this->app->user->account) { - $myProgramsHtml .= html::a($link, " " . $program->name, '', "class='text-important transfer' title='{$program->name}' data-id={$program->id} data-key='" . zget($programsPinYin, $program->name, '') . "'"); + $myProgramsHtml .= html::a($link, " " . $program->name, '', "class='text-important' title='{$program->name}' data-id={$program->id} data-key='" . zget($programsPinYin, $program->name, '') . "'"); } else if($program->status != 'done' and $program->status != 'closed' and !($program->PM == $this->app->user->account)) { - $normalProgramsHtml .= html::a($link, " " . $program->name, '', "class='transfer' title='{$program->name}' data-id={$program->id} data-key='" . zget($programsPinYin, $program->name, '') . "'"); + $normalProgramsHtml .= html::a($link, " " . $program->name, '', "title='{$program->name}' data-id={$program->id} data-key='" . zget($programsPinYin, $program->name, '') . "'"); } - else if($program->status == 'done' or $program->status == 'closed') $closedProgramsHtml .= html::a($link, " " . $program->name, '', "title='{$program->name}' class='transfer' data-id={$program->id} data-key='" . zget($programsPinYin, $program->name, '') . "'"); + else if($program->status == 'done' or $program->status == 'closed') $closedProgramsHtml .= html::a($link, " " . $program->name, '', "title='{$program->name}' data-id={$program->id} data-key='" . zget($programsPinYin, $program->name, '') . "'"); } ?>
@@ -65,18 +65,3 @@ foreach($programs as $program)
- diff --git a/module/program/view/index.html.php b/module/program/view/index.html.php index 679560fa37..3c4a8b38e1 100644 --- a/module/program/view/index.html.php +++ b/module/program/view/index.html.php @@ -1,2 +1,14 @@ + + * @package ZenTaoPMS + * @version $Id: index.html.php 5094 2013-07-10 08:46:15Z chencongzhi520@gmail.com $ + */ +?> +fetch('block', 'dashboard', "module=program&type={$program->template}");?> diff --git a/module/project/view/index.html.php b/module/project/view/index.html.php index a3bd91d012..bcb50e3a90 100644 --- a/module/project/view/index.html.php +++ b/module/project/view/index.html.php @@ -12,7 +12,7 @@
-

project->noProject;?> " . $lang->project->create, '', "class='btn btn-info' data-toggle='modal' data-type='ajax'");?>

+

project->noProject;?> " . $lang->project->create, '', "class='btn btn-info'");?>

fetch('block', 'dashboard', 'module=project');?>