diff --git a/module/common/lang/zh-cn.php b/module/common/lang/zh-cn.php index 868916e8db..ff6eb329bb 100644 --- a/module/common/lang/zh-cn.php +++ b/module/common/lang/zh-cn.php @@ -121,7 +121,6 @@ $lang->common->common = '公有模块'; $lang->mainNav = new stdclass(); $lang->mainNav->my = ' 地盘|my|index|'; $lang->mainNav->program = ' 项目|program|index|'; -$lang->mainNav->doclib = ' 文档|doc|index|'; $lang->mainNav->reporting = ' 报表|report|index|'; $lang->mainNav->attend = ' 办公|attend|personal|'; $lang->mainNav->system = ' 组织|custom|estimate|'; @@ -136,6 +135,7 @@ $lang->menu = new stdclass(); //$lang->menu->program = '主页|program|index'; $lang->menu->product = $lang->productCommon . '|product|index|locate=no'; $lang->menu->project = '迭代|project|index|locate=no'; +$lang->menu->doc = '文档|doc|index|'; $lang->menu->qa = '测试|qa|index'; $lang->program = new stdclass(); @@ -469,7 +469,6 @@ $lang->job->menu = $lang->ci->menu; /* 文档视图菜单设置。*/ $lang->doc = new stdclass(); $lang->doc->menu = new stdclass(); -//$lang->doc->menu->createLib = array('link' => ' 添加文件夹|doc|createLib', 'float' => 'right'); $lang->svn = new stdclass(); $lang->git = new stdclass(); @@ -582,7 +581,6 @@ $lang->menugroup->testtask = 'qa'; $lang->menugroup->testsuite = 'qa'; $lang->menugroup->caselib = 'qa'; $lang->menugroup->testreport = 'qa'; -$lang->menugroup->doclib = 'doc'; $lang->menugroup->report = 'reporting'; $lang->menugroup->people = 'admin'; $lang->menugroup->dept = 'company'; @@ -620,6 +618,7 @@ $lang->navGroup->project = 'program'; $lang->navGroup->task = 'program'; $lang->navGroup->qa = 'program'; $lang->navGroup->bug = 'program'; +$lang->navGroup->doc = 'program'; $lang->navGroup->testcase = 'program'; $lang->navGroup->testtask = 'program'; $lang->navGroup->testreport = 'program'; @@ -642,7 +641,6 @@ $lang->navGroup->auditplan = 'program'; $lang->navGroup->cm = 'program'; $lang->navGroup->nc = 'program'; -$lang->navGroup->doc = 'doclib'; $lang->navGroup->report = 'reporting'; $lang->navGroup->stage = 'system'; @@ -1109,9 +1107,10 @@ if(isset($config->global->flow) and $config->global->flow == 'onlyTest') $lang->menu->cmmi = new stdclass(); $lang->menu->cmmi->workestimation = '估算|workestimation|index|program={PROGRAM}'; $lang->menu->cmmi->programplan = array('link' => '计划|programplan|browse|program={PROGRAM}', 'subModule' => 'programplan'); -$lang->menu->cmmi->project = array('link' => $lang->projectCommon . '|project|task|projectID={PROJECT}', 'subModule' => ',project,task,doc,'); +$lang->menu->cmmi->project = array('link' => $lang->projectCommon . '|project|task|projectID={PROJECT}', 'subModule' => ',project,task,'); $lang->menu->cmmi->review = array('link' => '评审|review|browse|program={PROGRAM}', 'subModule' => ',reviewissue,'); $lang->menu->cmmi->weekly = array('link' => '报告|weekly|index|program={PROGRAM}', 'subModule' => ',milestone,'); +$lang->menu->cmmi->doc = array('link' => '文档|doc|index|program={PROGRAM}'); $lang->menu->cmmi->product = array('link' => '需求|product|browse|product={PRODUCT}&branch=&browseType=unclosed&queryID=0&storyType=requirement', 'subModule' => ',story,'); $lang->menu->cmmi->design = '设计|design|browse|product={PRODUCT}'; $lang->menu->cmmi->ci = '集成|repo|browse|'; diff --git a/module/common/model.php b/module/common/model.php index 14eaa1dd29..11f6c63fdb 100644 --- a/module/common/model.php +++ b/module/common/model.php @@ -2078,36 +2078,6 @@ EOD; return $response; } - public static function processMenus($menus, $group) - { - global $app, $lang; - $processedMenus = array(); - $moduleName = $app->rawModule; - if(isset($lang->menugroup->$moduleName)) $moduleName = $lang->menugroup->$moduleName; - foreach($menus as $name => $setting) - { - $vars = ''; - $link = is_array($setting) ? $setting['link'] : $setting; - $link = explode('|', $link); - list($title, $module, $method) = $link; - if(isset($link[3])) $vars = $link[3]; - - $object = new stdclass(); - $object->name = $name; - $object->title = $title; - $object->module = $module; - $object->method = $method; - $object->subModule = isset($setting['subModule']) ? $setting['subModule'] : ''; - $object->alias = isset($setting['alias']) ? $setting['alias'] : ''; - $object->link = $vars ? helper::createLink($module, $method, $vars) : helper::createLink($module, $method); - $object->subMenu = isset($lang->$moduleName->subMenu->$name) ? self::processMenus($lang->$moduleName->subMenu->$name, $group) : array(); - - $processedMenus[$name] = $object; - } - - return $processedMenus; - } - public static function processMenuVars($menus) { global $app, $lang; @@ -2136,11 +2106,10 @@ EOD; public static function getProgramMainMenu($moduleName) { global $app, $lang; - $dao = new dao(); - $program = $dao->select('*')->from(TABLE_PROJECT)->where('id')->eq($app->session->program)->fetch(); - if(!$program->template) return; - if($program->template == 'scrum') return $lang->menu; - if($program->template == 'cmmi') + $template = $app->session->programTemplate; + if(!$template) return; + if($template == 'scrum') return $lang->menu; + if($template == 'cmmi') { unset($lang->menuOrder); $lang->release->menu = new stdclass(); @@ -2154,11 +2123,9 @@ EOD; public static function getProgramModuleMenu($moduleName) { global $app, $lang; - $dao = new dao(); - $program = $dao->select('*')->from(TABLE_PROJECT)->where('id')->eq($app->session->program)->fetch(); - if(!$program->template) return; - if($program->template == 'scrum'); //return self::processMenuVars($lang->moduleMenu->scrum->$moduleName); - if($program->template == 'cmmi') + $template = $app->session->programTemplate; + if(!$template) return; + if($template == 'cmmi') { $lang->$moduleName->menu = self::processMenuVars($lang->$moduleName->menu); } diff --git a/module/program/control.php b/module/program/control.php index 23b28cc606..14549287d0 100644 --- a/module/program/control.php +++ b/module/program/control.php @@ -7,6 +7,26 @@ class program extends control $this->loadModel('project'); } + public function transfer($programID = 0) + { + $this->session->set('program', $programID); + $program = $this->project->getByID($programID); + $programProjects = $this->project->getPairsByProgram($programID); + $programProject = key($programProjects); + $this->session->set('programTemplate', $program->template); + + if($program->template == 'cmmi') + { + $link = $this->createLink('programplan', 'browse', 'programID=' . $programID); + } + if($program->template == 'scrum') + { + $link = $programProject ? $this->createLink('project', 'task', 'projectID=' . $programProject) : $this->createLink('project', 'create', '', '', '', $programID); + } + + die(js::locate($link, 'parent')); + } + /** * Common actions. * @@ -29,14 +49,14 @@ class program extends control if(common::hasPriv('program', 'create')) $this->lang->pageActions = html::a($this->createLink('program', 'createguide'), " " . $this->lang->program->create, '', "class='btn btn-primary' data-toggle='modal' data-type='ajax'"); - $programType = $this->cookie->programType; + $programType = $this->cookie->programType ? $this->cookie->programType : 'bylist'; $this->app->loadClass('pager', $static = true); $pager = new pager($recTotal, $recPerPage, $pageID); if($programType === 'bygrid') { - $projectList = $this->project->getProjectStats($status == 'byproduct' ? 'all' : $status, 0, 0, 30, $orderBy, $pager); + $projectList = $this->project->getProjectStats($status == 'byproduct' ? 'all' : $status, 0, 0, 30, $orderBy, $pager, 'program'); foreach($projectList as $projectID => $project) { $project->teamCount = count($this->project->getTeamMembers($project->id)); @@ -63,7 +83,7 @@ class program extends control $this->display(); } - public function create($type = 'scrum', $copyProgramID = '') + public function create($template = 'scrum', $copyProgramID = '') { $this->commonAction(); @@ -97,8 +117,8 @@ class program extends control $this->view->position[] = $this->lang->program->create; $this->view->groups = $this->loadModel('group')->getPairs(); $this->view->pmUsers = $this->loadModel('user')->getPairs('noclosed|nodeleted|pmfirst'); - $this->view->programs = array('' => '') + $this->program->getPairsByType($type); - $this->view->type = $type; + $this->view->programs = array('' => '') + $this->program->getPairsByTemplate($template); + $this->view->template = $template; $this->view->name = $name; $this->view->code = $code; $this->view->team = $team; @@ -356,7 +376,6 @@ class program extends control $this->display(); } - /* public function processErrors($errors) { foreach($errors as $field => $error) @@ -366,5 +385,4 @@ class program extends control return $errors; } - */ } diff --git a/module/program/js/create.js b/module/program/js/create.js index e79af3d3b6..425ec369fd 100644 --- a/module/program/js/create.js +++ b/module/program/js/create.js @@ -5,5 +5,5 @@ $(function() function setCopyProject(programID) { - location.href = createLink('program', 'create', 'type=' + type + '©ProgramID=' + programID); + location.href = createLink('program', 'create', 'template=' + template + '©ProgramID=' + programID); } diff --git a/module/program/lang/en.php b/module/program/lang/en.php index c166a15cfc..ff21430fb4 100644 --- a/module/program/lang/en.php +++ b/module/program/lang/en.php @@ -36,8 +36,8 @@ $lang->program->unitList[''] = ''; $lang->program->unitList['yuan'] = '元'; $lang->program->unitList['dollar'] = 'Dollars'; -$lang->program->typeList['scrum'] = "Scrum"; -$lang->program->typeList['cmmi'] = "CMMI"; +$lang->program->templateList['scrum'] = "Scrum"; +$lang->program->templateList['cmmi'] = "CMMI"; $lang->program->categoryList['single'] = "Single product"; $lang->program->categoryList['multiple'] = "Multiple products"; diff --git a/module/program/lang/zh-cn.php b/module/program/lang/zh-cn.php index 5969c5e980..49c6ba2349 100644 --- a/module/program/lang/zh-cn.php +++ b/module/program/lang/zh-cn.php @@ -3,10 +3,11 @@ $lang->program->index = '项目主页'; $lang->program->common = '项目'; $lang->program->stage = '阶段'; $lang->program->name = '项目名称'; -$lang->program->type = '管理方式'; +$lang->program->template = '项目模板'; $lang->program->category = '项目类型'; $lang->program->desc = '项目描述'; $lang->program->code = '项目代号'; +$lang->program->copy = '复制项目'; $lang->program->begin = '计划开始日期'; $lang->program->end = '计划完成日期'; $lang->program->status = '项目状态'; @@ -36,8 +37,8 @@ $lang->program->unitList[''] = ''; $lang->program->unitList['yuan'] = '元'; $lang->program->unitList['dollar'] = 'Dollars'; -$lang->program->typeList['scrum'] = "Scrum"; -$lang->program->typeList['cmmi'] = "瀑布"; +$lang->program->templateList['scrum'] = "Scrum"; +$lang->program->templateList['cmmi'] = "瀑布"; $lang->program->categoryList['single'] = "单产品项目"; $lang->program->categoryList['multiple'] = "多产品项目"; diff --git a/module/program/model.php b/module/program/model.php index e2efcfa5a9..6f05ac9eb6 100644 --- a/module/program/model.php +++ b/module/program/model.php @@ -10,19 +10,20 @@ class programModel extends model ->beginIF(!$this->app->user->admin)->andWhere('id')->in($this->app->user->view->projects)->fi() ->beginIF($status != 'all')->andWhere('status')->eq($status)->fi() ->beginIF($this->cookie->mine) - ->andWhere('openedBy')->eq($this->app->user->account) + ->andWhere('openedBy', true)->eq($this->app->user->account) ->orWhere('PM')->eq($this->app->user->account) + ->markRight(1) ->fi() ->orderBy($orderBy) ->page($pager) ->fetchAll('id'); } - public function getPairsByType($type) + public function getPairsByTemplate($template) { return $this->dao->select('id, name')->from(TABLE_PROJECT) ->where('iscat')->eq(0) - ->andWhere('type')->eq($type) + ->andWhere('template')->eq($template) ->andWhere('program')->eq(0) ->andWhere('deleted')->eq(0) ->beginIF(!$this->app->user->admin)->andWhere('id')->in($this->app->user->view->projects)->fi() @@ -62,38 +63,38 @@ class programModel extends model $this->dao->update(TABLE_PROJECT)->set('`order`')->eq($programID * 5)->where('id')->eq($programID)->exec(); $this->file->updateObjectID($this->post->uid, $programID, 'project'); - /* - $product = new stdclass(); - $product->name = $project->name; - $product->project = $projectID; - $product->status = 'normal'; - $product->createdBy = $this->app->user->account; - $product->createdDate = helper::now(); + if($project->template == 'cmmi') + { + $product = new stdclass(); + $product->name = $project->name; + $product->project = $programID; + $product->status = 'normal'; + $product->createdBy = $this->app->user->account; + $product->createdDate = helper::now(); - $this->dao->insert(TABLE_PRODUCT)->data($product)->exec(); + $this->dao->insert(TABLE_PRODUCT)->data($product)->exec(); - $productID = $this->dao->lastInsertId(); - $this->dao->update(TABLE_PRODUCT)->set('`order`')->eq($productID * 5)->where('id')->eq($productID)->exec(); - */ + $productID = $this->dao->lastInsertId(); + $this->dao->update(TABLE_PRODUCT)->set('`order`')->eq($productID * 5)->where('id')->eq($productID)->exec(); - /* Create doc lib. - $this->app->loadLang('doc'); - $lib = new stdclass(); - $lib->product = $productID; - $lib->name = $this->lang->doclib->main['product']; - $lib->type = 'product'; - $lib->main = '1'; - $lib->acl = 'default'; - $this->dao->insert(TABLE_DOCLIB)->data($lib)->exec(); + /* Create doc lib. */ + $this->app->loadLang('doc'); + $lib = new stdclass(); + $lib->product = $productID; + $lib->name = $this->lang->doclib->main['product']; + $lib->type = 'product'; + $lib->main = '1'; + $lib->acl = 'default'; + $this->dao->insert(TABLE_DOCLIB)->data($lib)->exec(); - $docLibID = $this->dao->lastInsertId(); - $this->loadModel('doc')->syncDocModule($docLibID); + $docLibID = $this->dao->lastInsertId(); + $this->loadModel('doc')->syncDocModule($docLibID); - $data = new stdclass(); - $data->project = $projectID; - $data->product = $productID; - $this->dao->insert(TABLE_PROJECTPRODUCT)->data($data)->exec(); - */ + $data = new stdclass(); + $data->project = $programID; + $data->product = $productID; + $this->dao->insert(TABLE_PROJECTPRODUCT)->data($data)->exec(); + } return $programID; } diff --git a/module/program/view/browsebygrid.html.php b/module/program/view/browsebygrid.html.php index 6a1bdf595c..b45aae6a57 100644 --- a/module/program/view/browsebygrid.html.php +++ b/module/program/view/browsebygrid.html.php @@ -2,10 +2,10 @@
program->ongoingStage; ?>
+