diff --git a/module/action/config.php b/module/action/config.php index 09bd45b25c..b594863b30 100755 --- a/module/action/config.php +++ b/module/action/config.php @@ -70,7 +70,7 @@ $config->action->preferredTypeNum = 10; $config->action->preferredType = new stdclass(); $config->action->preferredType->new = array('user', 'story', 'task', 'bug', 'case', 'doc', 'program', 'product', 'project', 'execution'); -$config->action->preferredType->classic = array('user', 'story', 'task', 'bug', 'case', 'doc', 'product', 'execution', 'productplan', 'build'); +$config->action->preferredType->lite = array('user', 'story', 'task', 'bug', 'case', 'doc', 'product', 'project', 'execution'); global $app, $lang; $app->loadLang('action'); diff --git a/module/action/control.php b/module/action/control.php index 4613347f2f..7d3a53abcd 100755 --- a/module/action/control.php +++ b/module/action/control.php @@ -103,7 +103,8 @@ class action extends control $preferredType = array(); $moreType = array(); - $preferredTypeConfig = $this->config->systemMode == 'new' ? $this->config->action->preferredType->new : $this->config->action->preferredType->classic; + $preferredTypeConfig = $this->config->action->preferredType->new; + if($this->config->systemMode == 'lite') $preferredTypeConfig = $this->config->action->preferredType->lite; foreach($objectTypeList as $objectType) { if(!isset($this->config->objectTables[$objectType])) continue; diff --git a/module/block/lang/zh-cn.php b/module/block/lang/zh-cn.php index 4b564ba80f..2e5712c535 100644 --- a/module/block/lang/zh-cn.php +++ b/module/block/lang/zh-cn.php @@ -566,7 +566,6 @@ $lang->block->flowchart = array(); $lang->block->flowchart['admin'] = array('管理员', '维护公司', '添加用户', '维护权限'); if($config->systemMode == 'new') $lang->block->flowchart['program'] = array('项目集负责人', '创建项目集', '关联产品', "创建项目", "制定预算和规划", '添加干系人'); $lang->block->flowchart['product'] = array($lang->productCommon . '经理', '创建' . $lang->productCommon, '维护模块', "维护计划", "维护需求", '创建发布'); -$lang->block->flowchart['project'] = array('项目经理', '创建' . $lang->executionCommon, '维护团队', "关联需求", '分解任务', '跟踪进度'); $lang->block->flowchart['project'] = array('项目经理', '创建项目、' . $lang->executionCommon, '维护团队', "关联需求", '分解任务', '跟踪进度'); $lang->block->flowchart['dev'] = array('研发人员', '领取任务和Bug', '设计实现方案', '更新状态', '完成任务和Bug', '提交代码'); $lang->block->flowchart['tester'] = array('测试人员', '撰写用例', '执行用例', '提交Bug', '验证Bug', '关闭Bug'); diff --git a/module/common/lang/menu.php b/module/common/lang/menu.php index 932706646a..afcfa4d37c 100644 --- a/module/common/lang/menu.php +++ b/module/common/lang/menu.php @@ -32,34 +32,37 @@ if(defined('TUTORIAL')) } /* Main Navigation. */ -$lang->mainNav = new stdclass(); -$lang->mainNav->my = "{$lang->navIcons['my']} {$lang->my->shortCommon}|my|index|"; -$lang->mainNav->product = "{$lang->navIcons['product']} {$lang->product->common}|$productModule|$productMethod|"; -$lang->mainNav->project = "{$lang->navIcons['project']} {$lang->project->common}|$projectModule|$projectMethod|"; -$lang->mainNav->qa = "{$lang->navIcons['qa']} {$lang->qa->common}|qa|index|"; -$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->system = "{$lang->navIcons['system']} {$lang->system->common}|my|team|"; -$lang->mainNav->admin = "{$lang->navIcons['admin']} {$lang->admin->common}|admin|index|"; -if($config->systemMode == 'new') $lang->mainNav->program = "{$lang->navIcons['program']} {$lang->program->common}|$programModule|$programMethod|"; -if(!isset($config->projectMode) || $config->projectMode != 'noExecution') $lang->mainNav->execution = "{$lang->navIcons['execution']} {$lang->execution->common}|$executionModule|$executionMethod|"; +$lang->mainNav = new stdclass(); +$lang->mainNav->my = "{$lang->navIcons['my']} {$lang->my->shortCommon}|my|index|"; +$lang->mainNav->program = "{$lang->navIcons['program']} {$lang->program->common}|$programModule|$programMethod|"; +$lang->mainNav->product = "{$lang->navIcons['product']} {$lang->product->common}|$productModule|$productMethod|"; +$lang->mainNav->project = "{$lang->navIcons['project']} {$lang->project->common}|$projectModule|$projectMethod|"; +$lang->mainNav->execution = "{$lang->navIcons['execution']} {$lang->execution->common}|$executionModule|$executionMethod|"; +$lang->mainNav->qa = "{$lang->navIcons['qa']} {$lang->qa->common}|qa|index|"; +$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->system = "{$lang->navIcons['system']} {$lang->system->common}|my|team|"; +$lang->mainNav->admin = "{$lang->navIcons['admin']} {$lang->admin->common}|admin|index|"; $lang->dividerMenu = ',kanban,oa,admin,'; -$lang->mainNav->menuOrder[5] = 'my'; +$lang->mainNav->menuOrder[5] = 'my'; +$lang->mainNav->menuOrder[10] = 'program'; $lang->mainNav->menuOrder[15] = 'product'; $lang->mainNav->menuOrder[20] = 'project'; -$lang->mainNav->menuOrder[23] = 'qa'; -$lang->mainNav->menuOrder[25] = 'devops'; -$lang->mainNav->menuOrder[30] = 'kanban'; -$lang->mainNav->menuOrder[35] = 'doc'; -$lang->mainNav->menuOrder[40] = 'report'; -$lang->mainNav->menuOrder[45] = 'system'; -$lang->mainNav->menuOrder[65] = 'admin'; -if($config->systemMode == 'new') $lang->mainNav->menuOrder[10] = 'program'; -if(!isset($config->projectMode) || $config->projectMode != 'noExecution') $lang->mainNav->menuOrder[21] = 'execution'; +$lang->mainNav->menuOrder[25] = 'execution'; +$lang->mainNav->menuOrder[30] = 'qa'; +$lang->mainNav->menuOrder[35] = 'devops'; +$lang->mainNav->menuOrder[40] = 'kanban'; +$lang->mainNav->menuOrder[45] = 'doc'; +$lang->mainNav->menuOrder[50] = 'report'; +$lang->mainNav->menuOrder[55] = 'system'; +$lang->mainNav->menuOrder[60] = 'admin'; + +if($config->systemMode == 'lean') unset($lang->mainNav->program, $lang->mainNav->menuOrder[10]); +if(isset($config->projectMode) and $config->projectMode == 'noExecution') unset($lang->mainNav->execution, $lang->mainNav->menuOrder[25]); /* My menu. */ $lang->my->menu = new stdclass(); @@ -67,11 +70,11 @@ $lang->my->menu->index = array('link' => "$lang->dashboard|my|index"); $lang->my->menu->calendar = array('link' => "$lang->calendar|my|calendar|", 'subModule' => 'todo', 'alias' => 'todo'); $lang->my->menu->work = array('link' => "{$lang->my->work}|my|work|mode=task", 'subModule' => 'task'); $lang->my->menu->project = array('link' => "{$lang->project->common}|my|project|"); +$lang->my->menu->execution = array('link' => "{$lang->execution->common}|my|execution|type=undone"); $lang->my->menu->contribute = array('link' => "$lang->contribute|my|contribute|mode=task"); $lang->my->menu->dynamic = array('link' => "$lang->dynamic|my|dynamic|"); +$lang->my->menu->score = array('link' => "{$lang->score->shortCommon}|my|score|", 'subModule' => 'score'); $lang->my->menu->contacts = array('link' => "$lang->contact|my|managecontacts|"); -if($config->systemScore) $lang->my->menu->score = array('link' => "{$lang->score->shortCommon}|my|score|", 'subModule' => 'score'); -if(!isset($config->projectMode) || $config->projectMode != 'noExecution') $lang->my->menu->execution = array('link' => "{$lang->execution->common}|my|execution|type=undone"); /* My menu order. */ $lang->my->menuOrder[5] = 'index'; @@ -85,13 +88,16 @@ $lang->my->menuOrder[40] = 'dynamic'; $lang->my->menuOrder[45] = 'score'; $lang->my->menuOrder[50] = 'contacts'; -$lang->my->menu->work['subMenu'] = new stdclass(); -$lang->my->menu->work['subMenu']->task = array('link' => "{$lang->task->common}|my|work|mode=task", 'subModule' => 'task'); -$lang->my->menu->work['subMenu']->story = "$lang->SRCommon|my|work|mode=story"; -$lang->my->menu->work['subMenu']->bug = "{$lang->bug->common}|my|work|mode=bug"; -$lang->my->menu->work['subMenu']->testcase = array('link' => "{$lang->testcase->common}|my|work|mode=testcase&type=assigntome", 'subModule' => 'testtask'); -$lang->my->menu->work['subMenu']->testtask = "{$lang->testtask->common}|my|work|mode=testtask&type=wait"; -if($config->URAndSR) $lang->my->menu->work['subMenu']->requirement = "$lang->URCommon|my|work|mode=requirement"; +if(!$config->systemScore) unset($lang->my->menu->score, $lang->my->menuOrder[45]); +if(isset($config->projectMode) and $config->projectMode == 'noExecution') unset($lang->my->menu->execution, $lang->my->menuOrder[30]); + +$lang->my->menu->work['subMenu'] = new stdclass(); +$lang->my->menu->work['subMenu']->task = array('link' => "{$lang->task->common}|my|work|mode=task", 'subModule' => 'task'); +$lang->my->menu->work['subMenu']->requirement = "$lang->URCommon|my|work|mode=requirement"; +$lang->my->menu->work['subMenu']->story = "$lang->SRCommon|my|work|mode=story"; +$lang->my->menu->work['subMenu']->bug = "{$lang->bug->common}|my|work|mode=bug"; +$lang->my->menu->work['subMenu']->testcase = array('link' => "{$lang->testcase->common}|my|work|mode=testcase&type=assigntome", 'subModule' => 'testtask'); +$lang->my->menu->work['subMenu']->testtask = "{$lang->testtask->common}|my|work|mode=testtask&type=wait"; $lang->my->menu->work['menuOrder'][5] = 'task'; $lang->my->menu->work['menuOrder'][10] = 'requirement'; @@ -99,15 +105,16 @@ $lang->my->menu->work['menuOrder'][15] = 'story'; $lang->my->menu->work['menuOrder'][20] = 'bug'; $lang->my->menu->work['menuOrder'][25] = 'testcase'; $lang->my->menu->work['menuOrder'][30] = 'testtask'; +if(!$config->URAndSR) unset($lang->my->menu->work['subMenu']->requirement, $lang->my->menu->work['menuOrder'][10]); -$lang->my->menu->contribute['subMenu'] = new stdclass(); -$lang->my->menu->contribute['subMenu']->task = "{$lang->task->common}|my|contribute|mode=task"; -$lang->my->menu->contribute['subMenu']->story = "$lang->SRCommon|my|contribute|mode=story"; -$lang->my->menu->contribute['subMenu']->bug = "{$lang->bug->common}|my|contribute|mode=bug"; -$lang->my->menu->contribute['subMenu']->testcase = "{$lang->testcase->shortCommon}|my|contribute|mode=testcase&type=openedbyme"; -$lang->my->menu->contribute['subMenu']->testtask = "{$lang->testtask->common}|my|contribute|mode=testtask&type=done"; -$lang->my->menu->contribute['subMenu']->doc = "{$lang->doc->common}|my|contribute|mode=doc&type=openedbyme"; -if($config->URAndSR) $lang->my->menu->contribute['subMenu']->requirement = "$lang->URCommon|my|contribute|mode=requirement"; +$lang->my->menu->contribute['subMenu'] = new stdclass(); +$lang->my->menu->contribute['subMenu']->task = "{$lang->task->common}|my|contribute|mode=task"; +$lang->my->menu->contribute['subMenu']->requirement = "$lang->URCommon|my|contribute|mode=requirement"; +$lang->my->menu->contribute['subMenu']->story = "$lang->SRCommon|my|contribute|mode=story"; +$lang->my->menu->contribute['subMenu']->bug = "{$lang->bug->common}|my|contribute|mode=bug"; +$lang->my->menu->contribute['subMenu']->testcase = "{$lang->testcase->shortCommon}|my|contribute|mode=testcase&type=openedbyme"; +$lang->my->menu->contribute['subMenu']->testtask = "{$lang->testtask->common}|my|contribute|mode=testtask&type=done"; +$lang->my->menu->contribute['subMenu']->doc = "{$lang->doc->common}|my|contribute|mode=doc&type=openedbyme"; $lang->my->menu->contribute['menuOrder'][5] = 'task'; $lang->my->menu->contribute['menuOrder'][10] = 'requirement'; @@ -117,6 +124,8 @@ $lang->my->menu->contribute['menuOrder'][25] = 'testcase'; $lang->my->menu->contribute['menuOrder'][30] = 'testtask'; $lang->my->menu->contribute['menuOrder'][35] = 'doc'; +if(!$config->URAndSR) unset($lang->my->menu->contribute['subMenu']->requirement, $lang->my->menu->contribute['menuOrder'][10]); + $lang->my->dividerMenu = ',work,dynamic,'; /* Program menu. */ @@ -147,18 +156,18 @@ $lang->product->homeMenu->home = array('link' => "{$lang->dashboard}|product|i $lang->product->homeMenu->list = array('link' => $lang->product->list . '|product|all|', 'alias' => 'create,batchedit,manageline'); $lang->product->homeMenu->kanban = array('link' => "{$lang->product->kanban}|product|kanban|"); -$lang->product->menu = new stdclass(); -$lang->product->menu->dashboard = array('link' => "{$lang->dashboard}|product|dashboard|productID=%s"); -$lang->product->menu->story = array('link' => "$lang->SRCommon|product|browse|productID=%s", 'alias' => 'batchedit', 'subModule' => 'story'); -$lang->product->menu->plan = array('link' => "{$lang->productplan->shortCommon}|productplan|browse|productID=%s", 'subModule' => 'productplan,bug'); -$lang->product->menu->project = array('link' => "{$lang->project->common}|product|project|status=all&productID=%s"); -$lang->product->menu->release = array('link' => "{$lang->release->common}|release|browse|productID=%s", 'subModule' => 'release'); -$lang->product->menu->roadmap = array('link' => "{$lang->roadmap}|product|roadmap|productID=%s"); -$lang->product->menu->track = array('link' => "{$lang->track}|product|track|productID=%s"); -$lang->product->menu->doc = array('link' => "{$lang->doc->common}|doc|tableContents|type=product&objectID=%s", 'subModule' => 'doc'); -$lang->product->menu->dynamic = array('link' => "{$lang->dynamic}|product|dynamic|productID=%s"); -$lang->product->menu->settings = array('link' => "{$lang->settings}|product|view|productID=%s", 'subModule' => 'tree,branch', 'alias' => 'edit,whitelist,addwhitelist'); -if($config->URAndSR) $lang->product->menu->requirement = array('link' => "$lang->URCommon|product|browse|productID=%s&branch=&browseType=unclosed¶m=0&storyType=requirement", 'alias' => 'batchedit', 'subModule' => 'story'); +$lang->product->menu = new stdclass(); +$lang->product->menu->dashboard = array('link' => "{$lang->dashboard}|product|dashboard|productID=%s"); +$lang->product->menu->story = array('link' => "$lang->SRCommon|product|browse|productID=%s", 'alias' => 'batchedit', 'subModule' => 'story'); +$lang->product->menu->plan = array('link' => "{$lang->productplan->shortCommon}|productplan|browse|productID=%s", 'subModule' => 'productplan,bug'); +$lang->product->menu->project = array('link' => "{$lang->project->common}|product|project|status=all&productID=%s"); +$lang->product->menu->release = array('link' => "{$lang->release->common}|release|browse|productID=%s", 'subModule' => 'release'); +$lang->product->menu->roadmap = array('link' => "{$lang->roadmap}|product|roadmap|productID=%s"); +$lang->product->menu->requirement = array('link' => "$lang->URCommon|product|browse|productID=%s&branch=&browseType=unclosed¶m=0&storyType=requirement", 'alias' => 'batchedit', 'subModule' => 'story'); +$lang->product->menu->track = array('link' => "{$lang->track}|product|track|productID=%s"); +$lang->product->menu->doc = array('link' => "{$lang->doc->common}|doc|tableContents|type=product&objectID=%s", 'subModule' => 'doc'); +$lang->product->menu->dynamic = array('link' => "{$lang->dynamic}|product|dynamic|productID=%s"); +$lang->product->menu->settings = array('link' => "{$lang->settings}|product|view|productID=%s", 'subModule' => 'tree,branch', 'alias' => 'edit,whitelist,addwhitelist'); /* Product menu order. */ $lang->product->menuOrder[5] = 'dashboard'; @@ -175,6 +184,8 @@ $lang->product->menuOrder[55] = 'settings'; $lang->product->menuOrder[60] = 'create'; $lang->product->menuOrder[65] = 'all'; +if(!$config->URAndSR) unset($lang->product->menu->requirement, $lang->product->menuOrder[35]); + $lang->product->menu->doc['subMenu'] = new stdclass(); $lang->product->menu->settings['subMenu'] = new stdclass(); @@ -186,9 +197,9 @@ $lang->product->menu->settings['subMenu']->whitelist = array('link' => "{$lang-> $lang->product->dividerMenu = $config->URAndSR ? ',story,requirement,settings,' : ',story,track,settings,'; /* Project menu. */ -$lang->project->homeMenu = new stdclass(); -$lang->project->homeMenu->browse = array('link' => ($config->systemMode == 'new' ? $lang->project->list : $lang->executionCommon) . '|project|browse|', 'alias' => 'batchedit,create'); -if($config->systemMode == 'new') $lang->project->homeMenu->kanban = array('link' => "{$lang->project->kanban}|project|kanban|"); +$lang->project->homeMenu = new stdclass(); +$lang->project->homeMenu->browse = array('link' => "{$lang->project->list}|project|browse|", 'alias' => 'batchedit,create'); +$lang->project->homeMenu->kanban = array('link' => "{$lang->project->kanban}|project|kanban|"); /* Scrum menu. */ $lang->scrum->menu = new stdclass(); @@ -312,6 +323,7 @@ $lang->execution->menu->task = array('link' => "{$lang->task->common}|executio $lang->execution->menu->kanban = array('link' => "$lang->executionKanban|execution|taskkanban|executionID=%s"); $lang->execution->menu->burn = array('link' => "$lang->burn|execution|burn|executionID=%s"); $lang->execution->menu->view = array('link' => "$lang->view|execution|grouptask|executionID=%s", 'alias' => 'grouptask,tree,taskeffort,gantt,calendar,relation,maintainrelation'); + if($config->edition != 'open') $lang->execution->menu->view = array('link' => "$lang->view|execution|gantt|executionID=%s", 'alias' => 'grouptask,tree,taskeffort,gantt,calendar,relation,maintainrelation'); $lang->execution->menu->story = array('link' => "$lang->SRCommon|execution|story|executionID=%s", 'subModule' => 'story', 'alias' => 'batchcreate,linkstory,storykanban,batchtotask'); @@ -433,8 +445,8 @@ $lang->doc->menu->collect = array('link' => "{$lang->doc->favorite}|doc|browse $lang->doc->menu->product = array('link' => "{$lang->doc->product}|doc|tableContents|type=product", 'alias' => 'showfiles,product'); $lang->doc->menu->api = array('link' => "{$lang->doc->api}|api|index", 'alias' => 'api'); $lang->doc->menu->project = array('link' => "{$lang->doc->project}|doc|tableContents|type=project", 'alias' => 'showfiles,project'); +$lang->doc->menu->execution = array('link' => "{$lang->doc->execution}|doc|tableContents|type=execution", 'alias' => 'showfiles,execution'); $lang->doc->menu->custom = array('link' => "{$lang->doc->custom}|doc|tableContents|type=custom", 'alias' => 'custom'); -if(!isset($config->projectMode) || $config->projectMode != 'noExecution') $lang->doc->menu->execution = array('link' => "{$lang->doc->execution}|doc|tableContents|type=execution", 'alias' => 'showfiles,execution'); $lang->doc->dividerMenu = ',product,'; @@ -445,14 +457,16 @@ $lang->doc->menuOrder[15] = 'my'; $lang->doc->menuOrder[20] = 'collect'; $lang->doc->menuOrder[25] = 'product'; $lang->doc->menuOrder[30] = 'project'; +$lang->doc->menuOrder[35] = 'execution'; $lang->doc->menuOrder[36] = 'api'; $lang->doc->menuOrder[40] = 'custom'; -if(!isset($config->projectMode) || $config->projectMode != 'noExecution') $lang->doc->menuOrder[35] = 'execution'; +if(isset($config->projectMode) and $config->projectMode == 'noExecution') unset($lang->doc->menu->execution, $lang->doc->menuOrder[35]); -$lang->doc->menu->product['subMenu'] = new stdclass(); -$lang->doc->menu->project['subMenu'] = new stdclass(); -$lang->doc->menu->custom['subMenu'] = new stdclass(); -if(!isset($config->projectMode) || $config->projectMode != 'noExecution') $lang->doc->menu->execution['subMenu'] = new stdclass(); +$lang->doc->menu->product['subMenu'] = new stdclass(); +$lang->doc->menu->project['subMenu'] = new stdclass(); +$lang->doc->menu->execution['subMenu'] = new stdclass(); +$lang->doc->menu->custom['subMenu'] = new stdclass(); +if(isset($config->projectMode) and $config->projectMode == 'noExecution') unset($lang->doc->menu->execution['subMenu']); $lang->doc->menu->api['subMenu'] = new stdclass(); $lang->doc->menu->api['subMenu']->index = array('link' => "{$lang->doc->apiDoc}|api|index|libID=%s", 'alias' => 'create,edit'); diff --git a/module/common/lang/zh-cn.php b/module/common/lang/zh-cn.php index dd93f2b400..f1becbb1c1 100644 --- a/module/common/lang/zh-cn.php +++ b/module/common/lang/zh-cn.php @@ -345,7 +345,7 @@ $lang->createObjects['bug'] = 'Bug'; $lang->createObjects['story'] = '需求'; $lang->createObjects['task'] = '任务'; $lang->createObjects['testcase'] = '用例'; -$lang->createObjects['execution'] = $lang->execution->common; +$lang->createObjects['execution'] = '执行'; $lang->createObjects['project'] = '项目'; $lang->createObjects['product'] = '产品'; $lang->createObjects['program'] = '项目集'; diff --git a/module/common/model.php b/module/common/model.php index fe83b77fde..3390089b3b 100644 --- a/module/common/model.php +++ b/module/common/model.php @@ -623,8 +623,8 @@ class commonModel extends model if($config->systemMode != 'new') unset($lang->createIcons['program']); if(!isset($config->projectMode) || $config->projectMode == 'noExecution') unset($lang->createIcons['execution']); - /* Check whether the creation permission is available, and print create buttons. */ + foreach($lang->createIcons as $objectType => $objectIcon) { $createMethod = 'create'; diff --git a/module/doc/control.php b/module/doc/control.php index cbadd7763d..29ee7ee417 100755 --- a/module/doc/control.php +++ b/module/doc/control.php @@ -506,8 +506,8 @@ class doc extends control unset($this->lang->doc->menu->product['subMenu']); unset($this->lang->doc->menu->custom['subMenu']); - if($this->config->systemMode == 'new') unset($this->lang->doc->menu->project['subMenu']); - if($this->config->systemMode == 'classic') unset($this->lang->doc->menu->execution['subMenu']); + unset($this->lang->doc->menu->project['subMenu']); + unset($this->lang->doc->menu->execution['subMenu']); /* High light menu. */ if(strpos(',product,project,execution,custom,book,', ",$objectType,") !== false) @@ -626,7 +626,6 @@ class doc extends control { $doc = $this->doc->getByID($docID); $objectType = $this->dao->select('type')->from(TABLE_DOCLIB)->where('id')->eq($doc->lib)->fetch('type'); - if($this->config->systemMode == 'classic' and $objectType == 'project') $objectType = 'execution'; $this->doc->delete(TABLE_DOC, $docID); /* if ajax request, send result. */ @@ -1119,7 +1118,6 @@ class doc extends control $lib = $this->doc->getLibById($libID); if(!empty($lib) and $lib->deleted == '1') $appendLib = $libID; - if($this->config->systemMode == 'classic' and $type == 'project') $type = 'execution'; list($libs, $libID, $object, $objectID) = $this->doc->setMenuByType($type, $objectID, $libID, $appendLib); /* Set Custom. */ diff --git a/module/group/control.php b/module/group/control.php index 2f32259e70..942d36293e 100644 --- a/module/group/control.php +++ b/module/group/control.php @@ -209,14 +209,6 @@ class group extends control $group = $this->group->getById($groupID); $groupPrivs = $this->group->getPrivs($groupID); - if($this->config->systemMode == 'classic') - { - if(isset($groupPrivs['project']['browse'])) - { - $groupPrivs['project']['list'] = 'list'; - } - } - $this->view->title = $this->lang->company->common . $this->lang->colon . $group->name . $this->lang->colon . $this->lang->group->managePriv; $this->view->position[] = $group->name; $this->view->position[] = $this->lang->group->managePriv; diff --git a/module/group/lang/resource.php b/module/group/lang/resource.php index a0ff9f225b..12118a855c 100644 --- a/module/group/lang/resource.php +++ b/module/group/lang/resource.php @@ -88,6 +88,7 @@ $lang->resource->my->todo = 'todo'; $lang->resource->my->calendar = 'calendarAction'; $lang->resource->my->work = 'workAction'; $lang->resource->my->contribute = 'contributeAction'; +$lang->resource->my->project = 'project'; $lang->resource->my->profile = 'profileAction'; $lang->resource->my->uploadAvatar = 'uploadAvatar'; $lang->resource->my->preference = 'preference'; @@ -151,36 +152,226 @@ $lang->personnel->methodOrder[10] = 'invest'; $lang->personnel->methodOrder[15] = 'whitelist'; $lang->personnel->methodOrder[20] = 'addWhitelist'; +/* Design. */ +$lang->resource->design = new stdclass(); +$lang->resource->design->browse = 'browse'; +$lang->resource->design->view = 'view'; +$lang->resource->design->create = 'create'; +$lang->resource->design->batchCreate = 'batchCreate'; +$lang->resource->design->edit = 'edit'; +$lang->resource->design->assignTo = 'assignTo'; +$lang->resource->design->delete = 'delete'; +$lang->resource->design->linkCommit = 'linkCommit'; +$lang->resource->design->viewCommit = 'viewCommit'; +$lang->resource->design->unlinkCommit = 'unlinkCommit'; +$lang->resource->design->revision = 'revision'; + +$lang->design->methodOrder[5] = 'browse'; +$lang->design->methodOrder[10] = 'view'; +$lang->design->methodOrder[15] = 'create'; +$lang->design->methodOrder[20] = 'batchCreate'; +$lang->design->methodOrder[25] = 'edit'; +$lang->design->methodOrder[30] = 'assignTo'; +$lang->design->methodOrder[35] = 'delete'; +$lang->design->methodOrder[40] = 'linkCommit'; +$lang->design->methodOrder[45] = 'viewCommit'; +$lang->design->methodOrder[50] = 'unlinkCommit'; +$lang->design->methodOrder[55] = 'revision'; + +/* Program plan. */ +$lang->resource->programplan = new stdclass(); +$lang->resource->programplan->create = 'create'; +$lang->resource->programplan->edit = 'edit'; + +$lang->programplan->methodOrder[0] = 'create'; +$lang->programplan->methodOrder[5] = 'edit'; + +/* Project. */ +$lang->resource->project = new stdclass(); +$lang->resource->project->index = 'index'; +$lang->resource->project->browse = 'browse'; +$lang->resource->project->kanban = 'kanban'; +$lang->resource->project->create = 'create'; +$lang->resource->project->edit = 'edit'; +$lang->resource->project->batchEdit = 'batchEdit'; +$lang->resource->project->group = 'group'; +$lang->resource->project->createGroup = 'createGroup'; +$lang->resource->project->managePriv = 'managePriv'; +$lang->resource->project->manageMembers = 'manageMembers'; +$lang->resource->project->manageGroupMember = 'manageGroupMember'; +$lang->resource->project->copyGroup = 'copyGroup'; +$lang->resource->project->editGroup = 'editGroup'; +$lang->resource->project->start = 'start'; +$lang->resource->project->suspend = 'suspend'; +$lang->resource->project->close = 'close'; +$lang->resource->project->activate = 'activate'; +$lang->resource->project->delete = 'delete'; +$lang->resource->project->view = 'view'; +$lang->resource->project->whitelist = 'whitelist'; +$lang->resource->project->addWhitelist = 'addWhitelist'; +$lang->resource->project->unbindWhitelist = 'unbindWhitelist'; +$lang->resource->project->manageProducts = 'manageProducts'; +$lang->resource->project->dynamic = 'dynamic'; +$lang->resource->project->build = 'build'; +$lang->resource->project->qa = 'qa'; +$lang->resource->project->bug = 'bug'; +$lang->resource->project->testcase = 'testcase'; +$lang->resource->project->testtask = 'testtask'; +$lang->resource->project->testreport = 'testreport'; +$lang->resource->project->execution = 'execution'; +$lang->resource->project->export = 'export'; +$lang->resource->project->updateOrder = 'updateOrder'; +$lang->resource->project->team = 'teamAction'; +$lang->resource->project->unlinkMember = 'unlinkMember'; + +$lang->project->methodOrder[0] = 'index'; +$lang->project->methodOrder[5] = 'browse'; +$lang->project->methodOrder[10] = 'kanban'; +$lang->project->methodOrder[15] = 'projectTitle'; +$lang->project->methodOrder[20] = 'create'; +$lang->project->methodOrder[25] = 'edit'; +$lang->project->methodOrder[30] = 'batchEdit'; +$lang->project->methodOrder[35] = 'group'; +$lang->project->methodOrder[40] = 'createGroup'; +$lang->project->methodOrder[45] = 'managePriv'; +$lang->project->methodOrder[50] = 'manageMembers'; +$lang->project->methodOrder[55] = 'manageGroupMember'; +$lang->project->methodOrder[60] = 'copyGroup'; +$lang->project->methodOrder[65] = 'editGroup'; +$lang->project->methodOrder[70] = 'start'; +$lang->project->methodOrder[75] = 'suspend'; +$lang->project->methodOrder[80] = 'close'; +$lang->project->methodOrder[85] = 'activate'; +$lang->project->methodOrder[90] = 'updateOrder'; +$lang->project->methodOrder[95] = 'delete'; +$lang->project->methodOrder[100] = 'view'; +$lang->project->methodOrder[105] = 'whitelist'; +$lang->project->methodOrder[110] = 'addWhitelist'; +$lang->project->methodOrder[115] = 'unbindWhitelist'; +$lang->project->methodOrder[120] = 'manageProducts'; +$lang->project->methodOrder[125] = 'view'; +$lang->project->methodOrder[130] = 'dynamic'; +$lang->project->methodOrder[135] = 'build'; +$lang->project->methodOrder[140] = 'qa'; +$lang->project->methodOrder[145] = 'bug'; +$lang->project->methodOrder[150] = 'testcase'; +$lang->project->methodOrder[155] = 'testtask'; +$lang->project->methodOrder[160] = 'testreport'; +$lang->project->methodOrder[165] = 'execution'; +$lang->project->methodOrder[170] = 'export'; +$lang->project->methodOrder[175] = 'updateOrder'; +$lang->project->methodOrder[180] = 'team'; +$lang->project->methodOrder[185] = 'unlinkMember'; + +$lang->resource->projectbuild = new stdclass(); +$lang->resource->projectbuild->browse = 'browse'; + +$lang->projectbuild->methodOrder[5] = 'browse'; + +/* Project Story. */ +$lang->resource->projectstory = new stdclass(); +$lang->resource->projectstory->story = 'story'; +$lang->resource->projectstory->track = 'trackAction'; +$lang->resource->projectstory->view = 'view'; +$lang->resource->projectstory->linkStory = 'linkStory'; +$lang->resource->projectstory->unlinkStory = 'unlinkStory'; +$lang->resource->projectstory->batchUnlinkStory = 'batchUnlinkStory'; +$lang->resource->projectstory->importplanstories = 'importplanstories'; + +$lang->projectstory->methodOrder[5] = 'story'; +$lang->projectstory->methodOrder[10] = 'track'; +$lang->projectstory->methodOrder[15] = 'view'; +$lang->projectstory->methodOrder[20] = 'linkStory'; +$lang->projectstory->methodOrder[25] = 'unlinkStory'; +$lang->projectstory->methodOrder[23] = 'importplanstories'; + +/* Release. */ +$lang->resource->projectrelease = new stdclass(); +$lang->resource->projectrelease->browse = 'browseAction'; +$lang->resource->projectrelease->create = 'create'; +$lang->resource->projectrelease->edit = 'edit'; +$lang->resource->projectrelease->delete = 'delete'; +$lang->resource->projectrelease->view = 'view'; +$lang->resource->projectrelease->export = 'export'; +$lang->resource->projectrelease->linkStory = 'linkStory'; +$lang->resource->projectrelease->unlinkStory = 'unlinkStory'; +$lang->resource->projectrelease->batchUnlinkStory = 'batchUnlinkStory'; +$lang->resource->projectrelease->linkBug = 'linkBug'; +$lang->resource->projectrelease->unlinkBug = 'unlinkBug'; +$lang->resource->projectrelease->batchUnlinkBug = 'batchUnlinkBug'; +$lang->resource->projectrelease->changeStatus = 'changeStatus'; +$lang->resource->projectrelease->notify = 'notify'; + +$lang->projectrelease->methodOrder[5] = 'browse'; +$lang->projectrelease->methodOrder[10] = 'create'; +$lang->projectrelease->methodOrder[15] = 'edit'; +$lang->projectrelease->methodOrder[20] = 'delete'; +$lang->projectrelease->methodOrder[25] = 'view'; +$lang->projectrelease->methodOrder[35] = 'export'; +$lang->projectrelease->methodOrder[40] = 'linkStory'; +$lang->projectrelease->methodOrder[45] = 'unlinkStory'; +$lang->projectrelease->methodOrder[50] = 'batchUnlinkStory'; +$lang->projectrelease->methodOrder[55] = 'linkBug'; +$lang->projectrelease->methodOrder[60] = 'unlinkBug'; +$lang->projectrelease->methodOrder[65] = 'batchUnlinkBug'; +$lang->projectrelease->methodOrder[70] = 'changeStatus'; +$lang->projectrelease->methodOrder[75] = 'notify'; + +/* Stage. */ +$lang->resource->stage = new stdclass(); +$lang->resource->stage->browse = 'browse'; +$lang->resource->stage->create = 'create'; +$lang->resource->stage->batchCreate = 'batchCreate'; +$lang->resource->stage->edit = 'edit'; +$lang->resource->stage->setType = 'setType'; +$lang->resource->stage->delete = 'delete'; + +$lang->stage->methodOrder[5] = 'browse'; +$lang->stage->methodOrder[10] = 'create'; +$lang->stage->methodOrder[15] = 'batchCreate'; +$lang->stage->methodOrder[20] = 'edit'; +$lang->stage->methodOrder[25] = 'setType'; +$lang->stage->methodOrder[30] = 'delete'; + +/* Stakeholer. */ +$lang->resource->stakeholder = new stdclass(); +$lang->resource->stakeholder->browse = 'browse'; +$lang->resource->stakeholder->create = 'create'; +$lang->resource->stakeholder->batchCreate = 'batchCreate'; +$lang->resource->stakeholder->edit = 'edit'; +$lang->resource->stakeholder->delete = 'delete'; +$lang->resource->stakeholder->view = 'viewAction'; +$lang->resource->stakeholder->issue = 'issue'; +$lang->resource->stakeholder->viewIssue = 'viewIssueAction'; +$lang->resource->stakeholder->communicate = 'communicate'; +$lang->resource->stakeholder->expect = 'expect'; +$lang->resource->stakeholder->expectation = 'expectation'; +$lang->resource->stakeholder->deleteExpect = 'deleteExpect'; +$lang->resource->stakeholder->createExpect = 'createExpect'; +$lang->resource->stakeholder->editExpect = 'editExpect'; +$lang->resource->stakeholder->viewExpect = 'viewExpect'; +$lang->resource->stakeholder->userIssue = 'userIssue'; + +$lang->stakeholder->methodOrder[5] = 'browse'; +$lang->stakeholder->methodOrder[10] = 'create'; +$lang->stakeholder->methodOrder[13] = 'batchCreate'; +$lang->stakeholder->methodOrder[15] = 'edit'; +$lang->stakeholder->methodOrder[25] = 'delete'; +$lang->stakeholder->methodOrder[30] = 'view'; +$lang->stakeholder->methodOrder[35] = 'issue'; +$lang->stakeholder->methodOrder[40] = 'viewIssue'; +$lang->stakeholder->methodOrder[45] = 'communicate'; +$lang->stakeholder->methodOrder[50] = 'expect'; +$lang->stakeholder->methodOrder[55] = 'expectation'; +$lang->stakeholder->methodOrder[60] = 'deleteExpect'; +$lang->stakeholder->methodOrder[65] = 'createExpect'; +$lang->stakeholder->methodOrder[70] = 'editExpect'; +$lang->stakeholder->methodOrder[75] = 'viewExpect'; +$lang->stakeholder->methodOrder[80] = 'userIssue'; + global $config; if($config->systemMode == 'new') { - $lang->resource->my->project = 'project'; - - /* Design. */ - $lang->resource->design = new stdclass(); - $lang->resource->design->browse = 'browse'; - $lang->resource->design->view = 'view'; - $lang->resource->design->create = 'create'; - $lang->resource->design->batchCreate = 'batchCreate'; - $lang->resource->design->edit = 'edit'; - $lang->resource->design->assignTo = 'assignTo'; - $lang->resource->design->delete = 'delete'; - $lang->resource->design->linkCommit = 'linkCommit'; - $lang->resource->design->viewCommit = 'viewCommit'; - $lang->resource->design->unlinkCommit = 'unlinkCommit'; - $lang->resource->design->revision = 'revision'; - - $lang->design->methodOrder[5] = 'browse'; - $lang->design->methodOrder[10] = 'view'; - $lang->design->methodOrder[15] = 'create'; - $lang->design->methodOrder[20] = 'batchCreate'; - $lang->design->methodOrder[25] = 'edit'; - $lang->design->methodOrder[30] = 'assignTo'; - $lang->design->methodOrder[35] = 'delete'; - $lang->design->methodOrder[40] = 'linkCommit'; - $lang->design->methodOrder[45] = 'viewCommit'; - $lang->design->methodOrder[50] = 'unlinkCommit'; - $lang->design->methodOrder[55] = 'revision'; /* Program. */ $lang->resource->program = new stdclass(); @@ -223,197 +414,7 @@ if($config->systemMode == 'new') $lang->program->methodOrder[90] = 'unbindWhitelist'; $lang->program->methodOrder[95] = 'updateOrder'; - /* Program plan. */ - $lang->resource->programplan = new stdclass(); - $lang->resource->programplan->create = 'create'; - $lang->resource->programplan->edit = 'edit'; - - $lang->programplan->methodOrder[0] = 'create'; - $lang->programplan->methodOrder[5] = 'edit'; - - /* Project. */ - $lang->resource->project = new stdclass(); - $lang->resource->project->index = 'index'; - $lang->resource->project->browse = 'browse'; - $lang->resource->project->kanban = 'kanban'; - $lang->resource->project->programTitle = 'moduleOpen'; - $lang->resource->project->create = 'create'; - $lang->resource->project->edit = 'edit'; - $lang->resource->project->batchEdit = 'batchEdit'; - $lang->resource->project->group = 'group'; - $lang->resource->project->createGroup = 'createGroup'; - $lang->resource->project->managePriv = 'managePriv'; - $lang->resource->project->manageMembers = 'manageMembers'; - $lang->resource->project->manageGroupMember = 'manageGroupMember'; - $lang->resource->project->copyGroup = 'copyGroup'; - $lang->resource->project->editGroup = 'editGroup'; - $lang->resource->project->start = 'start'; - $lang->resource->project->suspend = 'suspend'; - $lang->resource->project->close = 'close'; - $lang->resource->project->activate = 'activate'; - $lang->resource->project->delete = 'delete'; - $lang->resource->project->view = 'view'; - $lang->resource->project->whitelist = 'whitelist'; - $lang->resource->project->addWhitelist = 'addWhitelist'; - $lang->resource->project->unbindWhitelist = 'unbindWhitelist'; - $lang->resource->project->manageProducts = 'manageProducts'; - $lang->resource->project->dynamic = 'dynamic'; - $lang->resource->project->build = 'build'; - $lang->resource->project->qa = 'qa'; - $lang->resource->project->bug = 'bug'; - $lang->resource->project->testcase = 'testcase'; - $lang->resource->project->testtask = 'testtask'; - $lang->resource->project->testreport = 'testreport'; - $lang->resource->project->execution = 'execution'; - $lang->resource->project->export = 'export'; - $lang->resource->project->updateOrder = 'updateOrder'; - $lang->resource->project->team = 'teamAction'; - $lang->resource->project->unlinkMember = 'unlinkMember'; - - $lang->project->methodOrder[0] = 'index'; - $lang->project->methodOrder[5] = 'browse'; - $lang->project->methodOrder[10] = 'kanban'; - $lang->project->methodOrder[15] = 'projectTitle'; - $lang->project->methodOrder[20] = 'create'; - $lang->project->methodOrder[25] = 'edit'; - $lang->project->methodOrder[30] = 'batchEdit'; - $lang->project->methodOrder[35] = 'group'; - $lang->project->methodOrder[40] = 'createGroup'; - $lang->project->methodOrder[45] = 'managePriv'; - $lang->project->methodOrder[50] = 'manageMembers'; - $lang->project->methodOrder[55] = 'manageGroupMember'; - $lang->project->methodOrder[60] = 'copyGroup'; - $lang->project->methodOrder[65] = 'editGroup'; - $lang->project->methodOrder[70] = 'start'; - $lang->project->methodOrder[75] = 'suspend'; - $lang->project->methodOrder[80] = 'close'; - $lang->project->methodOrder[85] = 'activate'; - $lang->project->methodOrder[90] = 'updateOrder'; - $lang->project->methodOrder[95] = 'delete'; - $lang->project->methodOrder[100] = 'view'; - $lang->project->methodOrder[105] = 'whitelist'; - $lang->project->methodOrder[110] = 'addWhitelist'; - $lang->project->methodOrder[115] = 'unbindWhitelist'; - $lang->project->methodOrder[120] = 'manageProducts'; - $lang->project->methodOrder[125] = 'view'; - $lang->project->methodOrder[130] = 'dynamic'; - $lang->project->methodOrder[135] = 'build'; - $lang->project->methodOrder[140] = 'qa'; - $lang->project->methodOrder[145] = 'bug'; - $lang->project->methodOrder[150] = 'testcase'; - $lang->project->methodOrder[155] = 'testtask'; - $lang->project->methodOrder[160] = 'testreport'; - $lang->project->methodOrder[165] = 'execution'; - $lang->project->methodOrder[170] = 'export'; - $lang->project->methodOrder[175] = 'updateOrder'; - $lang->project->methodOrder[180] = 'team'; - $lang->project->methodOrder[185] = 'unlinkMember'; - - $lang->resource->projectbuild = new stdclass(); - $lang->resource->projectbuild->browse = 'browse'; - - $lang->projectbuild->methodOrder[5] = 'browse'; - - /* Project Story. */ - $lang->resource->projectstory = new stdclass(); - $lang->resource->projectstory->story = 'story'; - $lang->resource->projectstory->track = 'trackAction'; - $lang->resource->projectstory->view = 'view'; - $lang->resource->projectstory->linkStory = 'linkStory'; - $lang->resource->projectstory->unlinkStory = 'unlinkStory'; - $lang->resource->projectstory->batchUnlinkStory = 'batchUnlinkStory'; - $lang->resource->projectstory->importplanstories = 'importplanstories'; - - $lang->projectstory->methodOrder[5] = 'story'; - $lang->projectstory->methodOrder[10] = 'track'; - $lang->projectstory->methodOrder[15] = 'view'; - $lang->projectstory->methodOrder[20] = 'linkStory'; - $lang->projectstory->methodOrder[25] = 'unlinkStory'; - $lang->projectstory->methodOrder[23] = 'importplanstories'; - - /* Release. */ - $lang->resource->projectrelease = new stdclass(); - $lang->resource->projectrelease->browse = 'browseAction'; - $lang->resource->projectrelease->create = 'create'; - $lang->resource->projectrelease->edit = 'edit'; - $lang->resource->projectrelease->delete = 'delete'; - $lang->resource->projectrelease->view = 'view'; - $lang->resource->projectrelease->export = 'export'; - $lang->resource->projectrelease->linkStory = 'linkStory'; - $lang->resource->projectrelease->unlinkStory = 'unlinkStory'; - $lang->resource->projectrelease->batchUnlinkStory = 'batchUnlinkStory'; - $lang->resource->projectrelease->linkBug = 'linkBug'; - $lang->resource->projectrelease->unlinkBug = 'unlinkBug'; - $lang->resource->projectrelease->batchUnlinkBug = 'batchUnlinkBug'; - $lang->resource->projectrelease->changeStatus = 'changeStatus'; - $lang->resource->projectrelease->notify = 'notify'; - - $lang->projectrelease->methodOrder[5] = 'browse'; - $lang->projectrelease->methodOrder[10] = 'create'; - $lang->projectrelease->methodOrder[15] = 'edit'; - $lang->projectrelease->methodOrder[20] = 'delete'; - $lang->projectrelease->methodOrder[25] = 'view'; - $lang->projectrelease->methodOrder[35] = 'export'; - $lang->projectrelease->methodOrder[40] = 'linkStory'; - $lang->projectrelease->methodOrder[45] = 'unlinkStory'; - $lang->projectrelease->methodOrder[50] = 'batchUnlinkStory'; - $lang->projectrelease->methodOrder[55] = 'linkBug'; - $lang->projectrelease->methodOrder[60] = 'unlinkBug'; - $lang->projectrelease->methodOrder[65] = 'batchUnlinkBug'; - $lang->projectrelease->methodOrder[70] = 'changeStatus'; - $lang->projectrelease->methodOrder[75] = 'notify'; - - /* Stage. */ - $lang->resource->stage = new stdclass(); - $lang->resource->stage->browse = 'browse'; - $lang->resource->stage->create = 'create'; - $lang->resource->stage->batchCreate = 'batchCreate'; - $lang->resource->stage->edit = 'edit'; - $lang->resource->stage->setType = 'setType'; - $lang->resource->stage->delete = 'delete'; - - $lang->stage->methodOrder[5] = 'browse'; - $lang->stage->methodOrder[10] = 'create'; - $lang->stage->methodOrder[15] = 'batchCreate'; - $lang->stage->methodOrder[20] = 'edit'; - $lang->stage->methodOrder[25] = 'setType'; - $lang->stage->methodOrder[30] = 'delete'; - - /* Stakeholer. */ - $lang->resource->stakeholder = new stdclass(); - $lang->resource->stakeholder->browse = 'browse'; - $lang->resource->stakeholder->create = 'create'; - $lang->resource->stakeholder->batchCreate = 'batchCreate'; - $lang->resource->stakeholder->edit = 'edit'; - $lang->resource->stakeholder->delete = 'delete'; - $lang->resource->stakeholder->view = 'viewAction'; - $lang->resource->stakeholder->issue = 'issue'; - $lang->resource->stakeholder->viewIssue = 'viewIssueAction'; - $lang->resource->stakeholder->communicate = 'communicate'; - $lang->resource->stakeholder->expect = 'expect'; - $lang->resource->stakeholder->expectation = 'expectation'; - $lang->resource->stakeholder->deleteExpect = 'deleteExpect'; - $lang->resource->stakeholder->createExpect = 'createExpect'; - $lang->resource->stakeholder->editExpect = 'editExpect'; - $lang->resource->stakeholder->viewExpect = 'viewExpect'; - $lang->resource->stakeholder->userIssue = 'userIssue'; - - $lang->stakeholder->methodOrder[5] = 'browse'; - $lang->stakeholder->methodOrder[10] = 'create'; - $lang->stakeholder->methodOrder[13] = 'batchCreate'; - $lang->stakeholder->methodOrder[15] = 'edit'; - $lang->stakeholder->methodOrder[25] = 'delete'; - $lang->stakeholder->methodOrder[30] = 'view'; - $lang->stakeholder->methodOrder[35] = 'issue'; - $lang->stakeholder->methodOrder[40] = 'viewIssue'; - $lang->stakeholder->methodOrder[45] = 'communicate'; - $lang->stakeholder->methodOrder[50] = 'expect'; - $lang->stakeholder->methodOrder[55] = 'expectation'; - $lang->stakeholder->methodOrder[60] = 'deleteExpect'; - $lang->stakeholder->methodOrder[65] = 'createExpect'; - $lang->stakeholder->methodOrder[70] = 'editExpect'; - $lang->stakeholder->methodOrder[75] = 'viewExpect'; - $lang->stakeholder->methodOrder[80] = 'userIssue'; + $lang->resource->project->programTitle = 'moduleOpen'; } /* Product. */ diff --git a/module/group/view/manageprojectadmin.html.php b/module/group/view/manageprojectadmin.html.php index d3cf2665c2..370e3a3cbc 100644 --- a/module/group/view/manageprojectadmin.html.php +++ b/module/group/view/manageprojectadmin.html.php @@ -11,7 +11,7 @@ */ ?> -systemMode == 'classic' and $this->app->getClientLang() == 'en'):?> + @@ -41,24 +41,25 @@ group->allCheck . " ";?> actions;?> - systemMode == 'new'):?> + systemMode == 'new' ? '' : 'hidden';?> + systemMode == 'new' ? 4 : 3;?> $group):?> - +
group][]", $allUsers, $account, "class='form-control picker-select' multiple");?>
- +
programs == 'all' ? "disabled='disabled'" : '';?> group->manageProgram;?> group][]", $programs, $group->programs == 'all' ? '' : $group->programs, "class='form-control picker-select' multiple $disabled");?>
- + group]", array(1 => ''), $group->programs == 'all' ? 1 : '', "onchange=toggleDisabled(this);");?> - + @@ -103,19 +104,19 @@ - +
- +
group->manageProgram;?>
- + ''), '', "onchange=toggleDisabled(this);");?> - + @@ -154,74 +155,6 @@ - - - $group):?> - - -
group][]", $allUsers, $account, "class='form-control picker-select' multiple");?>
- - -
- products == 'all' ? "disabled='disabled'" : '';?> - group->manageProduct;?> - group][]", $products, $group->products == 'all' ? '' : $group->products, "class='form-control picker-select' multiple $disabled");?> -
- - - group]", array(1 => ''), $group->products == 'all' ? 1 : '', "onchange=toggleDisabled(this);");?> - - - - - - - - - -
- executions == 'all' ? "disabled='disabled'" : '';?> - group->manageExecution;?> - group][]", $executions, $group->executions == 'all' ? '' : $group->executions, "class='form-control picker-select' multiple $disabled");?> -
- - - group]", array(1 => ''), $group->executions == 'all' ? 1 : '', "onchange=toggleDisabled(this);");?> - - - - - - -
- - -
- group->manageProduct;?> - -
- - - ''), '', "onchange=toggleDisabled(this);");?> - - - - - - - - -
- group->manageExecution;?> - -
- - - ''), '', "onchange=toggleDisabled(this);");?> - - - - install->guideVideo;?>" width="100%" controls ="controls">

install->howToUse;?>

- upgrade->to15Mode['classic']) ? 'classic' : 'new';?> - visions == ',lite,'):?> - install->modeList['classic']);?> -
install->modeList, $systemMode);?>
upgrade->selectedModeTips[$systemMode];?>
diff --git a/module/product/control.php b/module/product/control.php index ee3d3e1427..82c59c5b46 100644 --- a/module/product/control.php +++ b/module/product/control.php @@ -406,8 +406,7 @@ class product extends control if(!empty($this->config->user->moreLink)) $this->config->moreLinks["RD"] = $this->config->user->moreLink; $lines = array(); - if($programID) $lines = array('') + $this->product->getLinePairs($programID); - if($this->config->systemMode == 'classic') $lines = array('') + $this->product->getLinePairs(); + if($programID and $this->config->systemMode == 'new') $lines = array('') + $this->product->getLinePairs($programID); if($this->app->tab == 'doc') unset($this->lang->doc->menu->product['subMenu']); @@ -551,8 +550,7 @@ class product extends control if(!empty($this->config->user->moreLink)) $this->config->moreLinks["RD"] = $this->config->user->moreLink; $lines = array(); - if($product->program) $lines = array('') + $this->product->getLinePairs($product->program); - if($this->config->systemMode == 'classic') $lines = array('') + $this->product->getLinePairs(); + if($product->program and $this->config->systemMode == 'new') $lines = array('') + $this->product->getLinePairs($product->program); /* Get programs. */ $programs = $this->loadModel('program')->getTopPairs(); @@ -1263,7 +1261,7 @@ class product extends control $pager = new pager($recTotal, $recPerPage, $pageID); /* Process product structure. */ - if($this->config->systemMode == 'classic' and $orderBy == 'program_asc') $orderBy = 'line_desc,order_asc'; + if($this->config->systemMode == 'lite' and $orderBy == 'program_asc') $orderBy = 'order_asc'; $productStats = $this->product->getStats($orderBy, $pager, $browseType, '', 'story', '', $queryID); $productStructure = $this->product->statisticProgram($productStats); $productLines = $this->dao->select('*')->from(TABLE_MODULE)->where('type')->eq('line')->andWhere('deleted')->eq(0)->orderBy('`order` asc')->fetchAll(); diff --git a/module/product/model.php b/module/product/model.php index 6d7da2880a..6f3d20c6b0 100644 --- a/module/product/model.php +++ b/module/product/model.php @@ -344,35 +344,19 @@ class productModel extends model if(!empty($append) and is_array($append)) $append = implode(',', $append); - $views = empty($append) ? $this->app->user->view->products : $this->app->user->view->products . ",$append"; - if($this->config->systemMode == 'new') - { - /* Order by program. */ - return $this->dao->select('t1.*, IF(INSTR(" closed", t1.status) < 2, 0, 1) AS isClosed')->from(TABLE_PRODUCT)->alias('t1') - ->leftJoin(TABLE_PROGRAM)->alias('t2')->on('t1.program = t2.id') - ->where(1) - ->beginIF(strpos($mode, 'all') === false)->andWhere('t1.deleted')->eq(0)->fi() - ->beginIF($programID)->andWhere('t1.program')->eq($programID)->fi() - ->beginIF(strpos($mode, 'noclosed') !== false)->andWhere('t1.status')->ne('closed')->fi() - ->beginIF(!$this->app->user->admin and $this->config->vision == 'rnd')->andWhere('t1.id')->in($views)->fi() - ->andWhere('t1.vision')->eq($this->config->vision) - ->orderBy('isClosed, t2.order_asc, t1.line_desc, t1.order_asc') - ->fetchPairs('id', 'name'); - } - else - { - $orderBy = !empty($this->config->product->orderBy) ? $this->config->product->orderBy : 'isClosed'; - return $this->dao->select('*, IF(INSTR(" closed", status) < 2, 0, 1) AS isClosed') - ->from(TABLE_PRODUCT) - ->where(1) - ->beginIF(strpos($mode, 'all') === false)->andWhere('deleted')->eq(0)->fi() - ->beginIF($programID)->andWhere('program')->eq($programID)->fi() - ->beginIF(strpos($mode, 'noclosed') !== false)->andWhere('status')->ne('closed')->fi() - ->beginIF(!$this->app->user->admin and $this->config->vision == 'rnd')->andWhere('id')->in($views)->fi() - ->andWhere('vision')->eq($this->config->vision) - ->orderBy($orderBy) - ->fetchPairs('id', 'name'); - } + $views = empty($append) ? $this->app->user->view->products : $this->app->user->view->products . ",$append"; + $orderBy = !empty($this->config->product->orderBy) ? $this->config->product->orderBy : 'isClosed'; + /* Order by program. */ + return $this->dao->select('t1.*, IF(INSTR(" closed", t1.status) < 2, 0, 1) AS isClosed')->from(TABLE_PRODUCT)->alias('t1') + ->leftJoin(TABLE_PROGRAM)->alias('t2')->on('t1.program = t2.id') + ->where(1) + ->beginIF(strpos($mode, 'all') === false)->andWhere('t1.deleted')->eq(0)->fi() + ->beginIF($programID)->andWhere('t1.program')->eq($programID)->fi() + ->beginIF(strpos($mode, 'noclosed') !== false)->andWhere('t1.status')->ne('closed')->fi() + ->beginIF(!$this->app->user->admin and $this->config->vision == 'rnd')->andWhere('t1.id')->in($views)->fi() + ->andWhere('t1.vision')->eq($this->config->vision) + ->orderBy("$orderBy, t2.order_asc, t1.line_desc, t1.order_asc") + ->fetchPairs('id', 'name'); } /** @@ -1167,10 +1151,8 @@ class productModel extends model ->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project = t2.id') ->where('t1.product')->eq($productID) ->beginIF($status == 'closed')->andWhere('t2.status')->ne('closed')->fi() - ->beginIF($this->config->systemMode == 'new')->andWhere('t2.type')->eq('project')->fi() - ->beginIF($this->config->systemMode == 'classic')->andWhere('t2.type')->eq('sprint')->fi() - ->beginIF(!$this->app->user->admin and $this->config->systemMode == 'new')->andWhere('t2.id')->in($this->app->user->view->projects)->fi() - ->beginIF(!$this->app->user->admin and $this->config->systemMode == 'classic')->andWhere('t2.id')->in($this->app->user->view->sprints)->fi() + ->andWhere('t2.type')->eq('project') + ->beginIF(!$this->app->user->admin)->andWhere('t2.id')->in($this->app->user->view->projects)->fi() ->beginIF($product->type != 'normal' and $branch !== '')->andWhere('t1.branch')->in($branch)->fi() ->andWhere('t2.deleted')->eq('0') ->orderBy('order_asc') @@ -1196,12 +1178,10 @@ class productModel extends model $projectList = $this->dao->select('t2.*')->from(TABLE_PROJECTPRODUCT)->alias('t1') ->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project = t2.id') ->where('t1.product')->eq($productID) - ->beginIF($this->config->systemMode == 'new')->andWhere('t2.type')->eq('project')->fi() - ->beginIF($this->config->systemMode == 'classic')->andWhere('t2.type')->eq('sprint')->fi() + ->andWhere('t2.type')->eq('project') ->beginIF($browseType == 'undone')->andWhere('t2.status')->in('wait,doing')->fi() ->beginIF(strpos(",all,undone,", ",$browseType,") === false)->andWhere('t2.status')->eq($browseType)->fi() - ->beginIF(!$this->app->user->admin and $this->config->systemMode == 'new')->andWhere('t2.id')->in($this->app->user->view->projects)->fi() - ->beginIF(!$this->app->user->admin and $this->config->systemMode == 'classic')->andWhere('t2.id')->in($this->app->user->view->sprints)->fi() + ->beginIF(!$this->app->user->admin)->andWhere('t2.id')->in($this->app->user->view->projects)->fi() ->beginIF($this->cookie->involved or $involved) ->andWhere('t2.openedBy', true)->eq($this->app->user->account) ->orWhere('t2.PM')->eq($this->app->user->account) @@ -1245,24 +1225,13 @@ class productModel extends model $emptyHour = array('totalEstimate' => 0, 'totalConsumed' => 0, 'totalLeft' => 0, 'progress' => 0); /* Get all tasks and compute totalEstimate, totalConsumed, totalLeft, progress according to them. */ - if($this->config->systemMode == 'new') - { - $tasks = $this->dao->select('id, project, estimate, consumed, `left`, status, closedReason') - ->from(TABLE_TASK) - ->where('project')->in($projectKeys) - ->andWhere('parent')->lt(1) - ->andWhere('deleted')->eq(0) - ->fetchGroup('project', 'id'); - } - else - { - $tasks = $this->dao->select('id, execution, estimate, consumed, `left`, status, closedReason') - ->from(TABLE_TASK) - ->where('execution')->in($projectKeys) - ->andWhere('parent')->lt(1) - ->andWhere('deleted')->eq(0) - ->fetchGroup('execution', 'id'); - } + $tasks = $this->dao->select('id, project, estimate, consumed, `left`, status, closedReason') + ->from(TABLE_TASK) + ->where('project')->in($projectKeys) + ->andWhere('parent')->lt(1) + ->andWhere('deleted')->eq(0) + ->fetchGroup('project', 'id'); + /* Compute totalEstimate, totalConsumed, totalLeft. */ foreach($tasks as $projectID => $projectTasks) { @@ -1332,7 +1301,6 @@ class productModel extends model public function getExecutionPairsByProduct($productID, $branch = 0, $orderBy = 'id_asc', $projectID = 0, $mode = '') { if(empty($productID)) return array(); - if(empty($projectID) or $this->config->systemMode == 'classic') return $this->getAllExecutionPairsByProduct($productID, $branch); $project = $this->loadModel('project')->getByID($projectID); $orderBy = $project->model == 'waterfall' ? 'begin_asc,id_asc' : 'begin_desc,id_desc'; @@ -1426,8 +1394,7 @@ class productModel extends model $executionPairs = $executionPairs + $execution->children; continue; } - if($this->config->systemMode == 'new' and isset($projectPairs[$execution->project])) $executionPairs[$execution->id] = $projectPairs[$execution->project] . '/' . $execution->name; - if($this->config->systemMode == 'classic') $executionPairs[$execution->id] = $execution->name; + if(isset($projectPairs[$execution->project])) $executionPairs[$execution->id] = $projectPairs[$execution->project] . '/' . $execution->name; } return $executionPairs; @@ -1683,7 +1650,7 @@ class productModel extends model if(empty($products)) return array(); $productKeys = array_keys($products); - if($orderBy == 'program_asc' and $this->config->systemMode == 'new') + if($orderBy == 'program_asc') { $products = $this->dao->select('t1.id as id, t1.*')->from(TABLE_PRODUCT)->alias('t1') ->leftJoin(TABLE_PROGRAM)->alias('t2')->on('t1.program = t2.id') @@ -1881,38 +1848,26 @@ class productModel extends model ->orderBy('begin desc') ->fetchGroup('product', 'id'); - $executionListKey = $this->config->systemMode == 'new' ? 'project' : 'productID'; $executionList = $this->dao->select('t1.product as productID,t2.*')->from(TABLE_PROJECTPRODUCT)->alias('t1') ->leftJoin(TABLE_EXECUTION)->alias('t2')->on('t1.project=t2.id') ->where('type')->in('stage,sprint,kanban') - ->beginIF($this->config->systemMode == 'new')->andWhere('t2.project')->in(array_keys($projectList))->fi() + ->andWhere('t2.project')->in(array_keys($projectList)) ->beginIF(!$this->app->user->admin)->andWhere('t1.project')->in($this->app->user->view->sprints)->fi() ->andWhere('t1.product')->in(array_keys($productList)) ->andWhere('status')->eq('doing') ->andWhere('deleted')->eq('0') ->orderBy('id_desc') - ->fetchGroup($executionListKey, 'id'); + ->fetchGroup('project', 'id'); $projectLatestExecutions = array(); $latestExecutionList = array(); - if($this->config->systemMode == 'new') + foreach($executionList as $projectID => $executions) { - foreach($executionList as $projectID => $executions) - { - /* Used to computer execution progress. */ - $latestExecutionList[key($executions)] = current($executions); + /* Used to computer execution progress. */ + $latestExecutionList[key($executions)] = current($executions); - /* Used for display in page. */ - $projectLatestExecutions[$projectID] = current($executions); - } - } - - if($this->config->systemMode == 'classic') - { - foreach($executionList as $productID => $executions) - { - foreach($executions as $executionID => $execution) $latestExecutionList[$executionID] = $execution; - } + /* Used for display in page. */ + $projectLatestExecutions[$projectID] = current($executions); } $hourList = $this->loadModel('project')->computerProgress($latestExecutionList); diff --git a/module/product/view/create.html.php b/module/product/view/create.html.php index e02e822238..3cf28e8393 100644 --- a/module/product/view/create.html.php +++ b/module/product/view/create.html.php @@ -32,7 +32,7 @@ product->line;?> - systemMode == 'classic' or $programID)):?> +
1 ? '' : 'checked';?> diff --git a/module/program/model.php b/module/program/model.php index c2d23738b1..46d96b2edc 100644 --- a/module/program/model.php +++ b/module/program/model.php @@ -572,8 +572,8 @@ class programModel extends model ->where('t1.deleted')->eq('0') ->andWhere('t1.vision')->eq($this->config->vision) ->beginIF($browseType == 'bysearch')->andWhere($query)->fi() - ->beginIF($this->config->systemMode == 'new')->andWhere('t1.type')->eq('project')->fi() - ->beginIF($this->config->systemMode == 'new' and ($this->cookie->involved or $involved))->andWhere('t2.type')->eq('project')->fi() + ->andWhere('t1.type')->eq('project') + ->beginIF($this->cookie->involved or $involved)->andWhere('t2.type')->eq('project')->fi() ->beginIF(!in_array($browseType, array('all', 'undone', 'bysearch', 'review', 'unclosed'), true))->andWhere('t1.status')->eq($browseType)->fi() ->beginIF($browseType == 'undone' or $browseType == 'unclosed')->andWhere('t1.status')->in('wait,doing')->fi() ->beginIF($browseType == 'review') diff --git a/module/project/config.php b/module/project/config.php index db2d222cdb..8b0c298011 100644 --- a/module/project/config.php +++ b/module/project/config.php @@ -49,16 +49,13 @@ $config->project->datatable->fieldList['name']['required'] = 'yes'; $config->project->datatable->fieldList['name']['sort'] = 'no'; $config->project->datatable->fieldList['name']['pri'] = '1'; -if(!isset($config->setCode) or $config->setCode == 1) -{ - $config->project->datatable->fieldList['code']['title'] = 'code'; - $config->project->datatable->fieldList['code']['fixed'] = 'left'; - $config->project->datatable->fieldList['code']['width'] = '100'; - $config->project->datatable->fieldList['code']['minWidth'] = '180'; - $config->project->datatable->fieldList['code']['required'] = 'no'; - $config->project->datatable->fieldList['code']['sort'] = 'no'; - $config->project->datatable->fieldList['code']['pri'] = '1'; -} +$config->project->datatable->fieldList['code']['title'] = 'code'; +$config->project->datatable->fieldList['code']['fixed'] = 'left'; +$config->project->datatable->fieldList['code']['width'] = '100'; +$config->project->datatable->fieldList['code']['minWidth'] = '180'; +$config->project->datatable->fieldList['code']['required'] = 'no'; +$config->project->datatable->fieldList['code']['sort'] = 'no'; +$config->project->datatable->fieldList['code']['pri'] = '1'; $config->project->datatable->fieldList['PM']['title'] = 'PM'; $config->project->datatable->fieldList['PM']['fixed'] = 'no'; @@ -128,6 +125,8 @@ $config->project->datatable->fieldList['actions']['width'] = '180'; $config->project->datatable->fieldList['actions']['required'] = 'yes'; $config->project->datatable->fieldList['actions']['pri'] = '1'; +if(isset($config->setCode) and $config->setCode == 0) unset($config->project->datatable->fieldList['code']); + $config->project->checkList = new stdclass(); $config->project->checkList->scrum = array('bug', 'execution', 'build', 'doc', 'release', 'testtask', 'case'); $config->project->checkList->waterfall = array('execution', 'design', 'doc', 'bug', 'case', 'build', 'release', 'testtask'); @@ -137,7 +136,7 @@ $config->project->maxCheckList->waterfall = array('execution', 'design', 'doc', $config->project->search['module'] = 'project'; $config->project->search['fields']['name'] = $lang->project->name; -if(!isset($config->setCode) or $config->setCode == 1) $config->project->search['fields']['code'] = $lang->project->code; +$config->project->search['fields']['code'] = $lang->project->code; $config->project->search['fields']['id'] = $lang->project->id; $config->project->search['fields']['model'] = $lang->project->model; $config->project->search['fields']['parent'] = $lang->project->parent; @@ -155,7 +154,7 @@ $config->project->search['fields']['lastEditedDate'] = $lang->project->lastEdite $config->project->search['fields']['closedDate'] = $lang->project->closedDate; $config->project->search['params']['name'] = array('operator' => 'include', 'control' => 'input' , 'values' => ''); -if(!isset($config->setCode) or $config->setCode == 1) $config->project->search['params']['code'] = array('operator' => '=', 'control' => 'input' , 'values' => ''); +$config->project->search['params']['code'] = array('operator' => '=', 'control' => 'input' , 'values' => ''); $config->project->search['params']['id'] = array('operator' => '=' , 'control' => 'input' , 'values' => ''); $config->project->search['params']['model'] = array('operator' => '=' , 'control' => 'select', 'values' => $lang->project->modelList); $config->project->search['params']['parent'] = array('operator' => '=' , 'control' => 'select', 'values' => ''); diff --git a/module/project/control.php b/module/project/control.php index 56282a0926..20cff8bddd 100644 --- a/module/project/control.php +++ b/module/project/control.php @@ -10,6 +10,21 @@ */ class project extends control { + /** + * Construct + * + * @param string $moduleName + * @param string $methodName + * @param string $appName + * @access public + * @return void + */ + public function __construct($moduleName = '', $methodName = '', $appName = '') + { + parent::__construct($moduleName, $methodName, $appName); + $this->view->globalDisableProgram = $this->config->systemMode != 'new'; + } + /** * Project create guide. * @@ -737,12 +752,10 @@ class project extends control /** * Batch edit projects. * - * @param string $from - * @param int $projectID * @access public * @return void */ - public function batchEdit($from = 'browse', $projectID = 0) + public function batchEdit() { $this->loadModel('action'); $this->loadModel('execution'); diff --git a/module/project/model.php b/module/project/model.php index 64e107c2ab..e38755458b 100644 --- a/module/project/model.php +++ b/module/project/model.php @@ -893,6 +893,10 @@ class projectModel extends model $programPairs = array(0 => ''); $programPairs += $this->loadModel('program')->getPairs(); $this->config->project->search['params']['parent']['values'] = $programPairs; + + if(isset($this->config->setCode) and $this->config->setCode == 0) unset($this->config->project->search['fields']['code'], $this->config->project->search['params']['code']); + if($this->config->systemMode == 'lite') unset($this->config->project->search['fields']['parent'], $this->config->project->search['params']['parent']); + $this->loadModel('search')->setSearchParams($this->config->project->search); } @@ -1961,7 +1965,7 @@ class projectModel extends model $canBatchEdit = common::hasPriv('project', 'batchEdit'); $account = $this->app->user->account; $id = $col->id; - $projectLink = $this->config->systemMode == 'new' ? helper::createLink('project', 'index', "projectID=$project->id", '', '', $project->id) : helper::createLink('execution', 'task', "projectID=$project->id"); + $projectLink = helper::createLink('project', 'index', "projectID=$project->id", '', '', $project->id); if($col->show) { diff --git a/module/project/view/batchedit.html.php b/module/project/view/batchedit.html.php index ef59ddf40b..883eeaa5ea 100644 --- a/module/project/view/batchedit.html.php +++ b/module/project/view/batchedit.html.php @@ -29,7 +29,9 @@ idAB;?> + project->parent;?> + project->name;?> setCode) or $config->setCode == 1):?> project->code;?> @@ -46,9 +48,10 @@ $project):?> - parent ? $lang->program->subAcls : $lang->project->acls;?> + parent) ? $lang->program->subAcls : $lang->project->acls;?> + parent])):?> parent, "class='form-control chosen' onchange='outOfDateTip($projectID)' data-id='$projectID' data-name='{$project->name}' data-parent='{$project->parent}' disabled");?> @@ -57,6 +60,7 @@ parent, "class='form-control chosen' onchange='outOfDateTip($projectID)' data-id='$projectID' data-name='{$project->name}' data-parent='{$project->parent}'");?> + name, "class='form-control'");?> setCode) or $config->setCode == 1):?> code, "class='form-control'");?> diff --git a/module/project/view/browsebycard.html.php b/module/project/view/browsebycard.html.php index 0794d733db..aeb13d4a2f 100644 --- a/module/project/view/browsebycard.html.php +++ b/module/project/view/browsebycard.html.php @@ -57,8 +57,10 @@