Merge branch 'master' of https://git.zcorp.cc/zentaopms
This commit is contained in:
+24
-10
@@ -263,19 +263,33 @@ $lang->index->menu->project = "{$lang->executionCommon}|project|browse";
|
||||
$lang->my = new stdclass();
|
||||
$lang->my->menu = new stdclass();
|
||||
|
||||
$lang->my->menu->index = 'Home|my|index';
|
||||
$lang->my->menu->calendar = array('link' => 'Calendar|my|calendar|', 'subModule' => 'todo', 'alias' => 'todo');;
|
||||
$lang->my->menu->index = 'Index|my|index';
|
||||
$lang->my->menu->calendar = array('link' => 'Calendar|my|calendar|', 'subModule' => 'todo', 'alias' => 'todo');
|
||||
$lang->my->menu->myWork = array('link' => 'Work|my|work|mode=task');
|
||||
$lang->my->menu->myProject = array('link' => 'Project|my|project|');
|
||||
$lang->my->menu->task = array('link' => 'Aufgaben|my|task|', 'subModule' => 'task');
|
||||
$lang->my->menu->bug = array('link' => 'Bug|my|bug|', 'subModule' => 'bug');
|
||||
$lang->my->menu->testtask = array('link' => 'Test Aufgaben|my|testtask|', 'subModule' => 'testcase,testtask', 'alias' => 'testcase');
|
||||
$lang->my->menu->story = array('link' => 'Story|my|story|', 'subModule' => 'story');
|
||||
$lang->my->menu->myExecution = "Execution|my|execution|";
|
||||
$lang->my->menu->dynamic = 'Verlauf|my|dynamic|';
|
||||
$lang->my->menu->profile = array('link' => 'Profile|my|profile|', 'alias' => 'editprofile');
|
||||
$lang->my->menu->contribute = array('link' => 'Contribute|my|contribute|mode=task');
|
||||
$lang->my->menu->dynamic = 'Dynamic|my|dynamic|';
|
||||
$lang->my->menu->score = 'Score|my|score|';
|
||||
$lang->my->menu->contacts = 'Contacts|my|managecontacts|';
|
||||
|
||||
$lang->my->dividerMenu = ',program,requirement,dynamic,';
|
||||
$lang->my->workMenu = new stdclass();
|
||||
$lang->my->workMenu->task = 'Task|my|work|mode=task';
|
||||
$lang->my->workMenu->story = 'Story|my|work|mode=story';
|
||||
$lang->my->workMenu->bug = 'Bug|my|work|mode=bug';
|
||||
$lang->my->workMenu->testcase = 'Test Case|my|work|mode=testcase';
|
||||
$lang->my->workMenu->issue = 'Issue|my|work|mode=issue';
|
||||
$lang->my->workMenu->risk = 'Risk|my|work|mode=risk';
|
||||
|
||||
$lang->my->contributeMenu = new stdclass();
|
||||
$lang->my->contributeMenu->execution = 'Execution|my|contribute|mode=execution';
|
||||
$lang->my->contributeMenu->task = 'Task|my|contribute|mode=task';
|
||||
$lang->my->contributeMenu->story = 'Story|my|contribute|mode=story';
|
||||
$lang->my->contributeMenu->bug = 'Bug|my|contribute|mode=bug';
|
||||
$lang->my->contributeMenu->testcase = 'Test Case|my|contribute|mode=testcase';
|
||||
$lang->my->contributeMenu->issue = 'Issue|my|contribute|mode=issue';
|
||||
$lang->my->contributeMenu->risk = 'Risk|my|contribute|mode=risk';
|
||||
|
||||
$lang->my->dividerMenu = ',myProject,';
|
||||
|
||||
$lang->todo = new stdclass();
|
||||
$lang->todo->menu = $lang->my->menu;
|
||||
|
||||
+24
-10
@@ -263,19 +263,33 @@ $lang->index->menu->project = "{$lang->executionCommon}|project|browse";
|
||||
$lang->my = new stdclass();
|
||||
$lang->my->menu = new stdclass();
|
||||
|
||||
$lang->my->menu->index = 'Home|my|index';
|
||||
$lang->my->menu->calendar = array('link' => 'Calendar|my|calendar|', 'subModule' => 'todo', 'alias' => 'todo');;
|
||||
$lang->my->menu->index = 'Index|my|index';
|
||||
$lang->my->menu->calendar = array('link' => 'Calendar|my|calendar|', 'subModule' => 'todo', 'alias' => 'todo');
|
||||
$lang->my->menu->myWork = array('link' => 'Work|my|work|mode=task');
|
||||
$lang->my->menu->myProject = array('link' => 'Project|my|project|');
|
||||
$lang->my->menu->task = array('link' => 'Task|my|task|', 'subModule' => 'task');
|
||||
$lang->my->menu->bug = array('link' => 'Bug|my|bug|', 'subModule' => 'bug');
|
||||
$lang->my->menu->testtask = array('link' => 'Request|my|testtask|', 'subModule' => 'testcase,testtask', 'alias' => 'testcase');
|
||||
$lang->my->menu->story = array('link' => 'Story|my|story|', 'subModule' => 'story');
|
||||
$lang->my->menu->myExecution = "Execution|my|execution|";
|
||||
$lang->my->menu->dynamic = 'Dynamics|my|dynamic|';
|
||||
$lang->my->menu->profile = array('link' => 'Profile|my|profile|', 'alias' => 'editprofile');
|
||||
$lang->my->menu->contribute = array('link' => 'Contribute|my|contribute|mode=task');
|
||||
$lang->my->menu->dynamic = 'Dynamic|my|dynamic|';
|
||||
$lang->my->menu->score = 'Score|my|score|';
|
||||
$lang->my->menu->contacts = 'Contacts|my|managecontacts|';
|
||||
|
||||
$lang->my->dividerMenu = ',program,requirement,dynamic,';
|
||||
$lang->my->workMenu = new stdclass();
|
||||
$lang->my->workMenu->task = 'Task|my|work|mode=task';
|
||||
$lang->my->workMenu->story = 'Story|my|work|mode=story';
|
||||
$lang->my->workMenu->bug = 'Bug|my|work|mode=bug';
|
||||
$lang->my->workMenu->testcase = 'Test Case|my|work|mode=testcase';
|
||||
$lang->my->workMenu->issue = 'Issue|my|work|mode=issue';
|
||||
$lang->my->workMenu->risk = 'Risk|my|work|mode=risk';
|
||||
|
||||
$lang->my->contributeMenu = new stdclass();
|
||||
$lang->my->contributeMenu->execution = 'Execution|my|contribute|mode=execution';
|
||||
$lang->my->contributeMenu->task = 'Task|my|contribute|mode=task';
|
||||
$lang->my->contributeMenu->story = 'Story|my|contribute|mode=story';
|
||||
$lang->my->contributeMenu->bug = 'Bug|my|contribute|mode=bug';
|
||||
$lang->my->contributeMenu->testcase = 'Test Case|my|contribute|mode=testcase';
|
||||
$lang->my->contributeMenu->issue = 'Issue|my|contribute|mode=issue';
|
||||
$lang->my->contributeMenu->risk = 'Risk|my|contribute|mode=risk';
|
||||
|
||||
$lang->my->dividerMenu = ',myProject,';
|
||||
|
||||
$lang->todo = new stdclass();
|
||||
$lang->todo->menu = $lang->my->menu;
|
||||
|
||||
+24
-10
@@ -263,19 +263,33 @@ $lang->index->menu->project = "{$lang->executionCommon}|project|browse";
|
||||
$lang->my = new stdclass();
|
||||
$lang->my->menu = new stdclass();
|
||||
|
||||
$lang->my->menu->index = 'Accueil|my|index';
|
||||
$lang->my->menu->calendar = 'Todo|my|todo|';
|
||||
$lang->my->menu->index = 'Index|my|index';
|
||||
$lang->my->menu->calendar = array('link' => 'Calendar|my|calendar|', 'subModule' => 'todo', 'alias' => 'todo');
|
||||
$lang->my->menu->myWork = array('link' => 'Work|my|work|mode=task');
|
||||
$lang->my->menu->myProject = array('link' => 'Project|my|project|');
|
||||
$lang->my->menu->task = array('link' => 'Tâche|my|task|', 'subModule' => 'task');
|
||||
$lang->my->menu->bug = array('link' => 'Bug|my|bug|', 'subModule' => 'bug');
|
||||
$lang->my->menu->testtask = array('link' => 'Recette|my|testtask|', 'subModule' => 'testcase,testtask', 'alias' => 'testcase');
|
||||
$lang->my->menu->story = array('link' => 'Story|my|story|', 'subModule' => 'story');
|
||||
$lang->my->menu->myExecution = "Execution|my|execution|";
|
||||
$lang->my->menu->dynamic = 'Historique|my|dynamic|';
|
||||
$lang->my->menu->profile = array('link' => 'Profile|my|profile|', 'alias' => 'editprofile');
|
||||
$lang->my->menu->contribute = array('link' => 'Contribute|my|contribute|mode=task');
|
||||
$lang->my->menu->dynamic = 'Dynamic|my|dynamic|';
|
||||
$lang->my->menu->score = 'Score|my|score|';
|
||||
$lang->my->menu->contacts = 'Contacts|my|managecontacts|';
|
||||
|
||||
$lang->my->dividerMenu = ',program,requirement,dynamic,';
|
||||
$lang->my->workMenu = new stdclass();
|
||||
$lang->my->workMenu->task = 'Task|my|work|mode=task';
|
||||
$lang->my->workMenu->story = 'Story|my|work|mode=story';
|
||||
$lang->my->workMenu->bug = 'Bug|my|work|mode=bug';
|
||||
$lang->my->workMenu->testcase = 'Test Case|my|work|mode=testcase';
|
||||
$lang->my->workMenu->issue = 'Issue|my|work|mode=issue';
|
||||
$lang->my->workMenu->risk = 'Risk|my|work|mode=risk';
|
||||
|
||||
$lang->my->contributeMenu = new stdclass();
|
||||
$lang->my->contributeMenu->execution = 'Execution|my|contribute|mode=execution';
|
||||
$lang->my->contributeMenu->task = 'Task|my|contribute|mode=task';
|
||||
$lang->my->contributeMenu->story = 'Story|my|contribute|mode=story';
|
||||
$lang->my->contributeMenu->bug = 'Bug|my|contribute|mode=bug';
|
||||
$lang->my->contributeMenu->testcase = 'Test Case|my|contribute|mode=testcase';
|
||||
$lang->my->contributeMenu->issue = 'Issue|my|contribute|mode=issue';
|
||||
$lang->my->contributeMenu->risk = 'Risk|my|contribute|mode=risk';
|
||||
|
||||
$lang->my->dividerMenu = ',myProject,';
|
||||
|
||||
$lang->todo = new stdclass();
|
||||
$lang->todo->menu = $lang->my->menu;
|
||||
|
||||
@@ -36,21 +36,14 @@ $lang->index->menuOrder[10] = 'project';
|
||||
/* my menu order. */
|
||||
$lang->my->menuOrder[5] = 'index';
|
||||
$lang->my->menuOrder[10] = 'calendar';
|
||||
$lang->my->menuOrder[12] = 'myProject';
|
||||
$lang->my->menuOrder[20] = 'myExecution';
|
||||
$lang->my->menuOrder[25] = 'review';
|
||||
$lang->my->menuOrder[29] = 'requirement';
|
||||
$lang->my->menuOrder[31] = 'story';
|
||||
$lang->my->menuOrder[40] = 'task';
|
||||
$lang->my->menuOrder[45] = 'bug';
|
||||
$lang->my->menuOrder[50] = 'testtask';
|
||||
$lang->my->menuOrder[55] = 'nc';
|
||||
$lang->my->menuOrder[60] = 'dynamic';
|
||||
$lang->my->menuOrder[65] = 'profile';
|
||||
$lang->my->menuOrder[70] = 'changePassword';
|
||||
$lang->my->menuOrder[75] = 'score';
|
||||
$lang->my->menuOrder[80] = 'contacts';
|
||||
$lang->todo->menuOrder = $lang->my->menuOrder;
|
||||
$lang->my->menuOrder[15] = 'myWork';
|
||||
$lang->my->menuOrder[20] = 'myProject';
|
||||
$lang->my->menuOrder[25] = 'contribute';
|
||||
$lang->my->menuOrder[30] = 'score';
|
||||
$lang->my->menuOrder[35] = 'dynamic';
|
||||
$lang->my->menuOrder[40] = 'follow';
|
||||
$lang->my->menuOrder[45] = 'contacts';
|
||||
$lang->todo->menuOrder = $lang->my->menuOrder;
|
||||
|
||||
/* product menu order. */
|
||||
$lang->product->menuOrder[1] = 'requirement';
|
||||
|
||||
+25
-11
@@ -263,19 +263,33 @@ $lang->index->menu->project = "{$lang->executionCommon}|project|browse";
|
||||
$lang->my = new stdclass();
|
||||
$lang->my->menu = new stdclass();
|
||||
|
||||
$lang->my->menu->index = 'Home|my|index';
|
||||
$lang->my->menu->calendar = array('link' => 'Calendar|my|calendar|', 'subModule' => 'todo', 'alias' => 'todo');;
|
||||
$lang->my->menu->myProject = array('link' => '项目|my|project|');
|
||||
$lang->my->menu->task = array('link' => 'Nhiệm vụ|my|task|', 'subModule' => 'task');
|
||||
$lang->my->menu->bug = array('link' => 'Bug|my|bug|', 'subModule' => 'bug');
|
||||
$lang->my->menu->testtask = array('link' => 'Yêu cầu|my|testtask|', 'subModule' => 'testcase,testtask', 'alias' => 'testcase');
|
||||
$lang->my->menu->story = array('link' => 'Câu chuyện|my|story|', 'subModule' => 'story');
|
||||
$lang->my->menu->myExecution = "Execution|my|execution|";
|
||||
$lang->my->menu->dynamic = 'Lịch sử|my|dynamic|';
|
||||
$lang->my->menu->profile = array('link' => 'Profile|my|profile|', 'alias' => 'editprofile');
|
||||
$lang->my->menu->index = 'Index|my|index';
|
||||
$lang->my->menu->calendar = array('link' => 'Calendar|my|calendar|', 'subModule' => 'todo', 'alias' => 'todo');
|
||||
$lang->my->menu->myWork = array('link' => 'Work|my|work|mode=task');
|
||||
$lang->my->menu->myProject = array('link' => 'Project|my|project|');
|
||||
$lang->my->menu->contribute = array('link' => 'Contribute|my|contribute|mode=task');
|
||||
$lang->my->menu->dynamic = 'Dynamic|my|dynamic|';
|
||||
$lang->my->menu->score = 'Score|my|score|';
|
||||
$lang->my->menu->contacts = 'Contacts|my|managecontacts|';
|
||||
|
||||
$lang->my->dividerMenu = ',program,requirement,dynamic,';
|
||||
$lang->my->workMenu = new stdclass();
|
||||
$lang->my->workMenu->task = 'Task|my|work|mode=task';
|
||||
$lang->my->workMenu->story = 'Story|my|work|mode=story';
|
||||
$lang->my->workMenu->bug = 'Bug|my|work|mode=bug';
|
||||
$lang->my->workMenu->testcase = 'Test Case|my|work|mode=testcase';
|
||||
$lang->my->workMenu->issue = 'Issue|my|work|mode=issue';
|
||||
$lang->my->workMenu->risk = 'Risk|my|work|mode=risk';
|
||||
|
||||
$lang->my->contributeMenu = new stdclass();
|
||||
$lang->my->contributeMenu->execution = 'Execution|my|contribute|mode=execution';
|
||||
$lang->my->contributeMenu->task = 'Task|my|contribute|mode=task';
|
||||
$lang->my->contributeMenu->story = 'Story|my|contribute|mode=story';
|
||||
$lang->my->contributeMenu->bug = 'Bug|my|contribute|mode=bug';
|
||||
$lang->my->contributeMenu->testcase = 'Test Case|my|contribute|mode=testcase';
|
||||
$lang->my->contributeMenu->issue = 'Issue|my|contribute|mode=issue';
|
||||
$lang->my->contributeMenu->risk = 'Risk|my|contribute|mode=risk';
|
||||
|
||||
$lang->my->dividerMenu = ',myProject,';
|
||||
|
||||
$lang->todo = new stdclass();
|
||||
$lang->todo->menu = $lang->my->menu;
|
||||
|
||||
@@ -265,17 +265,31 @@ $lang->my->menu = new stdclass();
|
||||
|
||||
$lang->my->menu->index = '首页|my|index';
|
||||
$lang->my->menu->calendar = array('link' => '日程|my|calendar|', 'subModule' => 'todo', 'alias' => 'todo');
|
||||
$lang->my->menu->myWork = array('link' => '待处理|my|work|mode=task');
|
||||
$lang->my->menu->myProject = array('link' => '项目|my|project|');
|
||||
$lang->my->menu->task = array('link' => '任务|my|task|', 'subModule' => 'task');
|
||||
$lang->my->menu->bug = array('link' => 'Bug|my|bug|', 'subModule' => 'bug');
|
||||
$lang->my->menu->testtask = array('link' => '测试|my|testtask|', 'subModule' => 'testcase,testtask', 'alias' => 'testcase');
|
||||
$lang->my->menu->story = array('link' => "需求|my|story|", 'subModule' => 'story');
|
||||
$lang->my->menu->myExecution = "{$lang->execution->common}|my|execution|";
|
||||
$lang->my->menu->contribute = array('link' => '贡献|my|contribute|mode=task');
|
||||
$lang->my->menu->dynamic = '动态|my|dynamic|';
|
||||
$lang->my->menu->profile = array('link' => '档案|my|profile|', 'alias' => 'editprofile');
|
||||
$lang->my->menu->score = '积分|my|score|';
|
||||
$lang->my->menu->contacts = '联系人|my|managecontacts|';
|
||||
|
||||
$lang->my->dividerMenu = ',program,requirement,dynamic,';
|
||||
$lang->my->workMenu = new stdclass();
|
||||
$lang->my->workMenu->task = '任务|my|work|mode=task';
|
||||
$lang->my->workMenu->story = '需求|my|work|mode=story';
|
||||
$lang->my->workMenu->bug = 'Bug|my|work|mode=bug';
|
||||
$lang->my->workMenu->testtask = '测试|my|work|mode=testtask&type=wait';
|
||||
$lang->my->workMenu->issue = '问题|my|work|mode=issue';
|
||||
$lang->my->workMenu->risk = '风险|my|work|mode=risk';
|
||||
|
||||
$lang->my->contributeMenu = new stdclass();
|
||||
$lang->my->contributeMenu->execution = '执行|my|contribute|mode=execution';
|
||||
$lang->my->contributeMenu->task = '任务|my|contribute|mode=task';
|
||||
$lang->my->contributeMenu->story = '需求|my|contribute|mode=story';
|
||||
$lang->my->contributeMenu->bug = 'Bug|my|contribute|mode=bug';
|
||||
$lang->my->contributeMenu->testtask = '用例|my|contribute|mode=testtask&type=wait';
|
||||
$lang->my->contributeMenu->issue = '问题|my|contribute|mode=issue';
|
||||
$lang->my->contributeMenu->risk = '风险|my|contribute|mode=risk';
|
||||
|
||||
$lang->my->dividerMenu = ',myProject,';
|
||||
|
||||
$lang->todo = new stdclass();
|
||||
$lang->todo->menu = $lang->my->menu;
|
||||
|
||||
+18
-1
@@ -773,6 +773,7 @@ class commonModel extends model
|
||||
global $config, $lang, $app;
|
||||
|
||||
$moduleName = $app->rawModule;
|
||||
$methodName = $app->rawMethod;
|
||||
$mainMenu = $moduleName;
|
||||
if($moduleName == 'program') return;
|
||||
if(isset($lang->menugroup->$moduleName)) $mainMenu = $lang->menugroup->$moduleName;
|
||||
@@ -780,7 +781,7 @@ class commonModel extends model
|
||||
/* Set main menu by group. */
|
||||
$group = isset($lang->navGroup->$moduleName) ? $lang->navGroup->$moduleName : '';
|
||||
if($moduleName == 'admin') return;
|
||||
if($group == 'my' || $group == 'reporting' || $group == 'attend') return;
|
||||
if($group == 'my') self::getMyModuleMenu($moduleName, $methodName);
|
||||
if($group == 'project') self::getProgramModuleMenu($moduleName);
|
||||
|
||||
if(!isset($lang->$moduleName->menu))
|
||||
@@ -2408,6 +2409,22 @@ EOD;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get my module menu by methodName.
|
||||
*
|
||||
* @param string $moduleName
|
||||
* @param string $methodName
|
||||
* @static
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
public static function getMyModuleMenu($moduleName, $methodName)
|
||||
{
|
||||
global $lang;
|
||||
if($methodName == 'work') $lang->my->menu = $lang->my->workMenu;
|
||||
if($methodName == 'contribute') $lang->my->menu = $lang->my->contributeMenu;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get relations for two object.
|
||||
*
|
||||
|
||||
+49
-3
@@ -67,6 +67,22 @@ class my extends control
|
||||
$this->locate($this->createLink('my', 'todo'));
|
||||
}
|
||||
|
||||
public function work($mode = 'task', $type = 'assignedTo', $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1)
|
||||
{
|
||||
$moduleIndex = array_search('my', $this->lang->noMenuModule);
|
||||
if($moduleIndex !== false) unset($this->lang->noMenuModule[$moduleIndex]);
|
||||
|
||||
echo $this->fetch('my', $mode, "type=$type&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pageID=$pageID");
|
||||
}
|
||||
|
||||
public function contribute($mode = 'task', $type = 'assignedTo', $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1)
|
||||
{
|
||||
$moduleIndex = array_search('my', $this->lang->noMenuModule);
|
||||
if($moduleIndex !== false) unset($this->lang->noMenuModule[$moduleIndex]);
|
||||
|
||||
echo $this->fetch('my', $mode, "type=$type&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pageID=$pageID");
|
||||
}
|
||||
|
||||
/**
|
||||
* My todos.
|
||||
*
|
||||
@@ -160,6 +176,7 @@ class my extends control
|
||||
$this->view->pageID = $pageID;
|
||||
$this->view->orderBy = $orderBy;
|
||||
$this->view->pager = $pager;
|
||||
$this->view->mode = 'story';
|
||||
|
||||
$this->display();
|
||||
}
|
||||
@@ -176,7 +193,7 @@ class my extends control
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function story($type = 'assignedTo', $storyType = 'story', $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1)
|
||||
public function story($type = 'assignedTo', $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1)
|
||||
{
|
||||
/* Save session. */
|
||||
if($this->app->viewType != 'json') $this->session->set('storyList', $this->app->getURI(true));
|
||||
@@ -192,16 +209,16 @@ class my extends control
|
||||
/* Assign. */
|
||||
$this->view->title = $this->lang->my->common . $this->lang->colon . $this->lang->my->story;
|
||||
$this->view->position[] = $this->lang->my->story;
|
||||
$this->view->stories = $this->loadModel('story')->getUserStories($this->app->user->account, $type, $sort, $pager, $storyType);
|
||||
$this->view->stories = $this->loadModel('story')->getUserStories($this->app->user->account, $type, $sort, $pager, 'story');
|
||||
$this->view->users = $this->user->getPairs('noletter');
|
||||
$this->view->projects = $this->loadModel('program')->getPRJPairs();
|
||||
$this->view->type = $type;
|
||||
$this->view->storyType = $storyType;
|
||||
$this->view->recTotal = $recTotal;
|
||||
$this->view->recPerPage = $recPerPage;
|
||||
$this->view->pageID = $pageID;
|
||||
$this->view->orderBy = $orderBy;
|
||||
$this->view->pager = $pager;
|
||||
$this->view->mode = 'story';
|
||||
|
||||
$this->display();
|
||||
}
|
||||
@@ -249,6 +266,7 @@ class my extends control
|
||||
$this->view->projects = $this->loadModel('program')->getPRJPairs();
|
||||
$this->view->users = $this->loadModel('user')->getPairs('noletter');
|
||||
$this->view->pager = $pager;
|
||||
$this->view->mode = 'task';
|
||||
|
||||
if($this->app->viewType == 'json') $this->view->tasks = array_values($this->view->tasks);
|
||||
$this->display();
|
||||
@@ -294,6 +312,7 @@ class my extends control
|
||||
$this->view->pageID = $pageID;
|
||||
$this->view->orderBy = $orderBy;
|
||||
$this->view->pager = $pager;
|
||||
$this->view->mode = 'bug';
|
||||
|
||||
$this->display();
|
||||
}
|
||||
@@ -328,6 +347,7 @@ class my extends control
|
||||
$this->view->orderBy = $orderBy;
|
||||
$this->view->type = $type;
|
||||
$this->view->pager = $pager;
|
||||
$this->view->mode = 'testtask';
|
||||
$this->display();
|
||||
|
||||
}
|
||||
@@ -383,6 +403,7 @@ class my extends control
|
||||
$this->view->pageID = $pageID;
|
||||
$this->view->orderBy = $orderBy;
|
||||
$this->view->pager = $pager;
|
||||
$this->view->mode = 'testcase';
|
||||
|
||||
$this->display();
|
||||
}
|
||||
@@ -432,10 +453,35 @@ class my extends control
|
||||
$this->view->position[] = $this->lang->my->execution;
|
||||
$this->view->tabID = 'project';
|
||||
$this->view->executions = $this->user->getProjects($this->app->user->account, 'execution');
|
||||
$this->view->mode = 'execution';
|
||||
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* My issues.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function issue()
|
||||
{
|
||||
$this->view->mode = 'issue';
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* My risks.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function risk()
|
||||
{
|
||||
$this->view->mode = 'risk';
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Edit profile
|
||||
*
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
$(function()
|
||||
{
|
||||
if(typeof(mode) != 'undefined')
|
||||
{
|
||||
if(mode == 'testcase') mode = 'testtask';
|
||||
$('#subNavbar li[data-id=' + mode + ']').addClass('active');
|
||||
}
|
||||
var scp = $('[data-id="changePassword"] a');
|
||||
var sign = config.requestType == 'GET' ? '&' : '?';
|
||||
scp.attr('href', scp.attr('href') + sign + 'onlybody=yes').modalTrigger({width:500, type:'iframe'});
|
||||
|
||||
@@ -11,14 +11,15 @@
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php js::set('mode', $mode);?>
|
||||
<div id="mainMenu" class="clearfix">
|
||||
<div class="btn-toolbar pull-left">
|
||||
<?php
|
||||
$recTotalLabel = " <span class='label label-light label-badge'>{$pager->recTotal}</span>";
|
||||
echo html::a(inlink('bug', "type=assignedTo"), "<span class='text'>{$lang->bug->assignedTo}</span>" . ($type == 'assignedTo' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedTo' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink('bug', "type=openedBy"), "<span class='text'>{$lang->bug->openedByMe}</span>" . ($type == 'openedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'openedBy' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink('bug', "type=resolvedBy"), "<span class='text'>{$lang->bug->resolvedByMe}</span>" . ($type == 'resolvedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'resolvedBy' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink('bug', "type=closedBy"), "<span class='text'>{$lang->bug->closedByMe}</span>" . ($type == 'closedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink($app->rawMethod, "mode=$mode&type=assignedTo"), "<span class='text'>{$lang->bug->assignedTo}</span>" . ($type == 'assignedTo' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedTo' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink($app->rawMethod, "mode=$mode&type=openedBy"), "<span class='text'>{$lang->bug->openedByMe}</span>" . ($type == 'openedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'openedBy' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink($app->rawMethod, "mode=$mode&type=resolvedBy"), "<span class='text'>{$lang->bug->resolvedByMe}</span>" . ($type == 'resolvedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'resolvedBy' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink($app->rawMethod, "mode=$mode&type=closedBy"), "<span class='text'>{$lang->bug->closedByMe}</span>" . ($type == 'closedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' ? ' btn-active-text' : '') . "'");
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
@@ -34,11 +35,10 @@
|
||||
$canBatchConfirm = common::hasPriv('bug', 'batchConfirm');
|
||||
$canBatchClose = (common::hasPriv('bug', 'batchClose') and strtolower($type) != 'closedby');
|
||||
$canBatchAssignTo = common::hasPriv('bug', 'batchAssignTo');
|
||||
|
||||
$canBatchAction = ($canBatchEdit or $canBatchConfirm or $canBatchClose or $canBatchAssignTo);
|
||||
?>
|
||||
<table class="table has-sort-head table-fixed" id='bugList'>
|
||||
<?php $vars = "type=$type&orderBy=%s&recTotal=$recTotal&recPerPage=$recPerPage&pageID=$pageID"; ?>
|
||||
<?php $vars = "mode=$mode&type=$type&orderBy=%s&recTotal=$recTotal&recPerPage=$recPerPage&pageID=$pageID"; ?>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="w-100px">
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php js::set('mode', $mode);?>
|
||||
<div id="mainMenu" class="clearfix">
|
||||
<div class="btn-toolbar pull-left">
|
||||
<span class='btn btn-link btn-active-text'><span class='text'><?php echo $lang->my->myExecutions;?></span></span>
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
/**
|
||||
* The issue view file of my module of ZenTaoPMS.
|
||||
*
|
||||
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
|
||||
* @license ZPL (http://zpl.pub/page/zplv12.html)
|
||||
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
|
||||
* @package my
|
||||
* @version $Id
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php js::set('mode', $mode);?>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
@@ -1,24 +1,36 @@
|
||||
<?php
|
||||
/**
|
||||
* The story view file of dashboard module of ZenTaoPMS.
|
||||
* The requirement view file of my module of ZenTaoPMS.
|
||||
*
|
||||
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
|
||||
* @license ZPL (http://zpl.pub/page/zplv12.html)
|
||||
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
|
||||
* @package dashboard
|
||||
* @version $Id: story.html.php 5116 2013-07-12 06:37:48Z chencongzhi520@gmail.com $
|
||||
* @package my
|
||||
* @version $Id
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php js::set('mode', $mode);?>
|
||||
<div id="mainMenu" class="clearfix">
|
||||
<div class="btn-toolbar pull-left">
|
||||
<div class="btn-group active">
|
||||
<div class="btn-group">
|
||||
<button type='button' class='btn btn-link dropdown-toggle' data-toggle='dropdown'>
|
||||
<?php echo $lang->generalUR;?><span class='caret'></span>
|
||||
</button>
|
||||
<ul class='dropdown-menu'>
|
||||
<li><?php echo html::a($this->inLink($app->rawMethod, "mode=story&type=$type"), $lang->generalSR);?></li>
|
||||
<li><?php echo html::a($this->inLink($app->rawMethod, "mode=requirement&type=$type"), $lang->generalUR);?></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
$recTotalLabel = " <span class='label label-light label-badge'>{$pager->recTotal}</span>";
|
||||
echo html::a(inlink('requirement', "type=assignedTo"), "<span class='text'>{$lang->my->storyMenu->assignedToMe}</span>" . ($type == 'assignedTo' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedTo' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink('requirement', "type=openedBy"), "<span class='text'>{$lang->my->storyMenu->openedByMe}</span>" . ($type == 'openedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'openedBy' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink('requirement', "type=reviewedBy"), "<span class='text'>{$lang->my->storyMenu->reviewedByMe}</span>" . ($type == 'reviewedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'reviewedBy' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink('requirement', "type=closedBy"), "<span class='text'>{$lang->my->storyMenu->closedByMe}</span>" . ($type == 'closedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink($app->rawMethod, "mode=requirement&type=assignedTo"), "<span class='text'>{$lang->my->storyMenu->assignedToMe}</span>" . ($type == 'assignedTo' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedTo' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink($app->rawMethod, "mode=requirement&type=openedBy"), "<span class='text'>{$lang->my->storyMenu->openedByMe}</span>" . ($type == 'openedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'openedBy' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink($app->rawMethod, "mode=requirement&type=reviewedBy"), "<span class='text'>{$lang->my->storyMenu->reviewedByMe}</span>" . ($type == 'reviewedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'reviewedBy' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink($app->rawMethod, "mode=requirement&type=closedBy"), "<span class='text'>{$lang->my->storyMenu->closedByMe}</span>" . ($type == 'closedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' ? ' btn-active-text' : '') . "'");
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
@@ -29,25 +41,28 @@
|
||||
</div>
|
||||
<?php else:?>
|
||||
<form id='myStoryForm' class="main-table table-story" data-ride="table" method="post">
|
||||
<table class="table has-sort-head table-fixed">
|
||||
<?php $vars = "type=$type&orderBy=%s&recTotal=$recTotal&recPerPage=$recPerPage&pageID=$pageID"; ?>
|
||||
<table id='storyList' class="table has-sort-head table-fixed">
|
||||
<?php $vars = "mode=requirement&type=$type&orderBy=%s&recTotal=$recTotal&recPerPage=$recPerPage&pageID=$pageID"; ?>
|
||||
<?php
|
||||
$canBatchEdit = common::hasPriv('story', 'batchEdit');
|
||||
$canBatchClose = (common::hasPriv('story', 'batchClose') && strtolower($type) != 'closedbyme');
|
||||
$canBatchEdit = common::hasPriv('story', 'batchEdit');
|
||||
$canBatchClose = (common::hasPriv('story', 'batchClose') and strtolower($type) != 'closedby');
|
||||
$canBatchReview = common::hasPriv('story', 'batchReview');
|
||||
$canBatchAssignTo = common::hasPriv('story', 'batchAssignTo');
|
||||
$canBatchAction = ($canBatchEdit or $canBatchClose or $canBatchReview or $canBatchAssignTo);
|
||||
?>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="c-id">
|
||||
<?php if($canBatchEdit or $canBatchClose):?>
|
||||
<?php if($canBatchAction):?>
|
||||
<div class="checkbox-primary check-all" title="<?php echo $lang->selectAll?>">
|
||||
<label></label>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
<?php common::printOrderLink('id', $orderBy, $vars, $lang->idAB);?>
|
||||
</th>
|
||||
<th class='c-pri w-40px'> <?php common::printOrderLink('pri', $orderBy, $vars, $lang->priAB);?></th>
|
||||
<th class='c-pri w-40px'> <?php common::printOrderLink('pri', $orderBy, $vars, $lang->priAB);?></th>
|
||||
<th class='c-product'> <?php common::printOrderLink('productTitle', $orderBy, $vars, $lang->story->product);?></th>
|
||||
<th class='c-name'> <?php common::printOrderLink('title', $orderBy, $vars, $lang->story->title);?></th>
|
||||
<th class='c-name'> <?php common::printOrderLink('title', $orderBy, $vars, $lang->my->name);?></th>
|
||||
<th class='c-user'> <?php common::printOrderLink('openedBy', $orderBy, $vars, $lang->openedByAB);?></th>
|
||||
<th class='c-hours'> <?php common::printOrderLink('estimate', $orderBy, $vars, $lang->story->estimateAB);?></th>
|
||||
<th class='c-status'> <?php common::printOrderLink('status', $orderBy, $vars, $lang->statusAB);?></th>
|
||||
@@ -57,12 +72,15 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach($stories as $story):?>
|
||||
<?php $storyLink = $this->createLink('story', 'view', "id=$story->id", '', '', $story->PRJ);?>
|
||||
<?php
|
||||
$storyLink = $this->createLink('story', 'view', "id=$story->id");
|
||||
$canBeChanged = common::canBeChanged('story', $story);
|
||||
?>
|
||||
<tr>
|
||||
<td class="c-id">
|
||||
<?php if($canBatchEdit or $canBatchClose):?>
|
||||
<?php if($canBatchAction):?>
|
||||
<div class="checkbox-primary">
|
||||
<input type='checkbox' name='storyIdList[<?php echo $story->id;?>]' value='<?php echo $story->id;?>' />
|
||||
<input type='checkbox' name='storyIdList[<?php echo $story->id;?>]' value='<?php echo $story->id;?>' <?php if(!$canBeChanged) echo 'disabled';?>/>
|
||||
<label></label>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
@@ -70,31 +88,87 @@
|
||||
</td>
|
||||
<td class='c-pri'><span class='label-pri <?php echo 'label-pri-' . $story->pri;?>' title='<?php echo zget($lang->story->priList, $story->pri, $story->pri);?>'><?php echo zget($lang->story->priList, $story->pri, $story->pri);?></span></td>
|
||||
<td class='c-product'><?php echo $story->productTitle;?></td>
|
||||
<td class='c-name nobr'><?php echo html::a($storyLink, $story->title, null, "style='color: $story->color'");?></td>
|
||||
<td class='c-name nobr <?php if(!empty($story->children)) echo "has-child" ?>'>
|
||||
<?php echo html::a($storyLink, $story->title, null, "style='color: $story->color'");?>
|
||||
<?php if(!empty($story->children)) echo '<a class="story-toggle" data-id="' . $story->id . '"><i class="icon icon-angle-double-right"></i></a>';;?>
|
||||
</td>
|
||||
<td class='c-user'><?php echo zget($users, $story->openedBy);?></td>
|
||||
<td class='c-hours'><?php echo $story->estimate;?></td>
|
||||
<td class='c-status'><span class='status-story status-<?php echo $story->status;?>'> <?php echo $this->processStatus('story', $story);?></span></td>
|
||||
<td class='c-stage'><?php echo zget($lang->story->stageList, $story->stage);?></td>
|
||||
<td class='c-actions'>
|
||||
<?php
|
||||
$vars = "story={$story->id}";
|
||||
common::printIcon('story', 'change', $vars, $story, 'list', 'fork', '', '', '', '', '', $story->PRJ);
|
||||
common::printIcon('story', 'review', $vars, $story, 'list', 'glasses', '', '', '', '', '', $story->PRJ);
|
||||
common::printIcon('story', 'close', $vars, $story, 'list', '', '', 'iframe', true, '', '', $story->PRJ);
|
||||
common::printIcon('story', 'edit', $vars, $story, 'list', '', '', '', '', '', '', $story->PRJ);
|
||||
common::printIcon('story', 'createCase', "productID=$story->product&branch=$story->branch&module=0&from=¶m=0&$vars", $story, 'list', 'sitemap', '', '', '', '', '', $story->PRJ);
|
||||
if($canBeChanged)
|
||||
{
|
||||
$vars = "story={$story->id}";
|
||||
common::printIcon('story', 'change', $vars, $story, 'list', 'fork');
|
||||
common::printIcon('story', 'review', $vars, $story, 'list', 'glasses');
|
||||
common::printIcon('story', 'close', $vars, $story, 'list', '', '', 'iframe', true);
|
||||
common::printIcon('story', 'edit', $vars, $story, 'list');
|
||||
common::printIcon('story', 'createCase', "productID=$story->product&branch=$story->branch&module=0&from=¶m=0&$vars", $story, 'list', 'sitemap');
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php if(!empty($story->children)):?>
|
||||
<?php $i = 0;?>
|
||||
<?php foreach($story->children as $key => $child):?>
|
||||
<?php $storyLink = $this->createLink('story', 'view', "id=$child->id");?>
|
||||
<?php $class = $i == 0 ? ' table-child-top' : '';?>
|
||||
<?php $class .= ($i + 1 == count($story->children)) ? ' table-child-bottom' : '';?>
|
||||
<tr class='table-children<?php echo $class;?> parent-<?php echo $story->id;?>' data-id='<?php echo $child->id?>' data-status='<?php echo $child->status?>' data-estimate='<?php echo $child->estimate?>'>
|
||||
<td class="c-id">
|
||||
<?php if($canBatchAction):?>
|
||||
<div class="checkbox-primary">
|
||||
<input type='checkbox' name='storyIdList[<?php echo $child->id;?>]' value='<?php echo $child->id;?>' />
|
||||
<label></label>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
<?php printf('%03d', $child->id);?>
|
||||
</td>
|
||||
<td class='c-pri'><span class='label-pri <?php echo 'label-pri-' . $child->pri;?>' title='<?php echo zget($lang->story->priList, $child->pri, $child->pri);?>'><?php echo zget($lang->story->priList, $child->pri, $child->pri);?></span></td>
|
||||
<td class='c-product'><?php echo $child->productTitle;?></td>
|
||||
<td class='c-name nobr'>
|
||||
<?php echo '<span class="label label-badge label-light" title="' . $this->lang->story->children .'">' . $this->lang->story->childrenAB . '</span> ' . html::a($storyLink, $child->title, null, "style='color: $child->color'");?>
|
||||
</td>
|
||||
<td class='c-user'><?php echo zget($users, $child->openedBy);?></td>
|
||||
<td class='c-hours'><?php echo $child->estimate;?></td>
|
||||
<td class='c-status'><span class='status-story status-<?php echo $child->status;?>'> <?php echo $this->processStatus('story', $child);?></span></td>
|
||||
<td class='c-stage'><?php echo zget($lang->story->stageList, $child->stage);?></td>
|
||||
<td class='c-actions'>
|
||||
<?php
|
||||
if($canBeChanged)
|
||||
{
|
||||
$vars = "story={$child->id}";
|
||||
common::printIcon('story', 'change', $vars, $child, 'list', 'fork');
|
||||
common::printIcon('story', 'review', $vars, $child, 'list', 'glasses');
|
||||
common::printIcon('story', 'close', $vars, $child, 'list', '', '', 'iframe', true);
|
||||
common::printIcon('story', 'edit', $vars, $child, 'list');
|
||||
common::printIcon('story', 'createCase', "productID=$child->product&branch=$child->branch&module=0&from=¶m=0&$vars", $child, 'list', 'sitemap');
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php $i ++;?>
|
||||
<?php endforeach;?>
|
||||
<?php endif;?>
|
||||
<?php endforeach;?>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="table-footer">
|
||||
<?php if($canBatchEdit or $canBatchClose):?>
|
||||
<?php if($canBatchAction):?>
|
||||
<div class="checkbox-primary check-all"><label><?php echo $lang->selectAll?></label></div>
|
||||
<?php endif;?>
|
||||
<div class="table-actions btn-toolbar">
|
||||
<?php if(common::hasPriv('story', 'batchReview')):?>
|
||||
<?php
|
||||
if($canBatchEdit)
|
||||
{
|
||||
$actionLink = $this->createLink('story', 'batchEdit');
|
||||
$misc = "data-form-action='$actionLink'";
|
||||
echo html::commonButton($lang->edit, $misc);
|
||||
}
|
||||
?>
|
||||
<?php if($canBatchReview):?>
|
||||
<div class="btn-group dropup">
|
||||
<button type='button' class='btn' data-toggle='dropdown'><?php echo $lang->story->review;?> <span class='caret'></span></button>
|
||||
<ul class='dropdown-menu'>
|
||||
@@ -103,7 +177,7 @@
|
||||
unset($lang->story->reviewResultList['revert']);
|
||||
foreach($lang->story->reviewResultList as $key => $result)
|
||||
{
|
||||
$actionLink = $this->createLink('story', 'batchReview', "result=$key", '', '', $story->PRJ);
|
||||
$actionLink = $this->createLink('story', 'batchReview', "result=$key");
|
||||
if($key == 'reject')
|
||||
{
|
||||
echo "<li class='dropdown-submenu'>";
|
||||
@@ -115,7 +189,7 @@
|
||||
|
||||
foreach($lang->story->reasonList as $key => $reason)
|
||||
{
|
||||
$actionLink = $this->createLink('story', 'batchReview', "result=reject&reason=$key", '', '', $story->PRJ);
|
||||
$actionLink = $this->createLink('story', 'batchReview', "result=reject&reason=$key");
|
||||
echo "<li>";
|
||||
echo html::a('#', $reason, '', "onclick=\"setFormAction('$actionLink', 'hiddenwin')\"");
|
||||
echo "</li>";
|
||||
@@ -131,12 +205,12 @@
|
||||
</ul>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
<?php if(common::hasPriv('story', 'batchAssignTo')):?>
|
||||
<?php if($canBatchAssignTo):?>
|
||||
<div class="btn-group dropup">
|
||||
<button data-toggle="dropdown" type="button" class="btn"><?php echo $lang->story->assignedTo?> <span class="caret"></span></button>
|
||||
<?php
|
||||
$withSearch = count($users) > 10;
|
||||
$actionLink = $this->createLink('story', 'batchAssignTo', '', '', '', $story->PRJ);
|
||||
$actionLink = $this->createLink('story', 'batchAssignTo');
|
||||
echo html::select('assignedTo', $users, '', 'class="hidden"');
|
||||
if($withSearch)
|
||||
{
|
||||
@@ -164,6 +238,13 @@
|
||||
?>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
<?php if($canBatchClose):?>
|
||||
<?php
|
||||
$actionLink = $this->createLink('story', 'batchClose');
|
||||
$misc = "data-form-action=\"$actionLink\"";
|
||||
echo html::commonButton($lang->close, $misc);
|
||||
?>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
<?php $pager->show('right', 'pagerjs');?>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
/**
|
||||
* The risk view file of my module of ZenTaoPMS.
|
||||
*
|
||||
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
|
||||
* @license ZPL (http://zpl.pub/page/zplv12.html)
|
||||
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
|
||||
* @package my
|
||||
* @version $Id
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php js::set('mode', $mode);?>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
@@ -11,26 +11,26 @@
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php js::set('mode', $mode);?>
|
||||
<div id="mainMenu" class="clearfix">
|
||||
<div class="btn-toolbar pull-left">
|
||||
<div class="btn-group active">
|
||||
<div class="btn-group">
|
||||
<button type='button' class='btn btn-link dropdown-toggle' data-toggle='dropdown'>
|
||||
<?php $label = $storyType == 'story' ? $lang->generalSR : $lang->generalUR;?>
|
||||
<?php echo $label;?><span class='caret'></span>
|
||||
<?php echo $lang->generalSR;?><span class='caret'></span>
|
||||
</button>
|
||||
<ul class='dropdown-menu'>
|
||||
<li><?php echo html::a($this->inLink('story', "type=$type"), $lang->generalSR);?></li>
|
||||
<li><?php echo html::a($this->inLink('story', "type=$type&storyType=requirement"), $lang->generalUR);?></li>
|
||||
<li><?php echo html::a($this->inLink($app->rawMethod, "mode=$mode&type=$type"), $lang->generalSR);?></li>
|
||||
<li><?php echo html::a($this->inLink($app->rawMethod, "mode=requirement&type=$type"), $lang->generalUR);?></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
$recTotalLabel = " <span class='label label-light label-badge'>{$pager->recTotal}</span>";
|
||||
echo html::a(inlink('story', "type=assignedTo&storyType=$storyType"), "<span class='text'>{$lang->my->storyMenu->assignedToMe}</span>" . ($type == 'assignedTo' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedTo' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink('story', "type=openedBy&storyType=$storyType"), "<span class='text'>{$lang->my->storyMenu->openedByMe}</span>" . ($type == 'openedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'openedBy' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink('story', "type=reviewedBy&storyType=$storyType"), "<span class='text'>{$lang->my->storyMenu->reviewedByMe}</span>" . ($type == 'reviewedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'reviewedBy' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink('story', "type=closedBy&storyType=$storyType"), "<span class='text'>{$lang->my->storyMenu->closedByMe}</span>" . ($type == 'closedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink($app->rawMethod, "mode=$mode&type=assignedTo"), "<span class='text'>{$lang->my->storyMenu->assignedToMe}</span>" . ($type == 'assignedTo' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedTo' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink($app->rawMethod, "mode=$mode&type=openedBy"), "<span class='text'>{$lang->my->storyMenu->openedByMe}</span>" . ($type == 'openedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'openedBy' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink($app->rawMethod, "mode=$mode&type=reviewedBy"), "<span class='text'>{$lang->my->storyMenu->reviewedByMe}</span>" . ($type == 'reviewedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'reviewedBy' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink($app->rawMethod, "mode=$mode&type=closedBy"), "<span class='text'>{$lang->my->storyMenu->closedByMe}</span>" . ($type == 'closedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' ? ' btn-active-text' : '') . "'");
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
@@ -42,13 +42,12 @@
|
||||
<?php else:?>
|
||||
<form id='myStoryForm' class="main-table table-story" data-ride="table" method="post">
|
||||
<table id='storyList' class="table has-sort-head table-fixed">
|
||||
<?php $vars = "type=$type&storyType=$storyType&orderBy=%s&recTotal=$recTotal&recPerPage=$recPerPage&pageID=$pageID"; ?>
|
||||
<?php $vars = "mode=$mode&type=$type&orderBy=%s&recTotal=$recTotal&recPerPage=$recPerPage&pageID=$pageID"; ?>
|
||||
<?php
|
||||
$canBatchEdit = common::hasPriv('story', 'batchEdit');
|
||||
$canBatchClose = (common::hasPriv('story', 'batchClose') and strtolower($type) != 'closedby');
|
||||
$canBatchReview = common::hasPriv('story', 'batchReview');
|
||||
$canBatchAssignTo = common::hasPriv('story', 'batchAssignTo');
|
||||
|
||||
$canBatchAction = ($canBatchEdit or $canBatchClose or $canBatchReview or $canBatchAssignTo);
|
||||
?>
|
||||
<thead>
|
||||
@@ -61,12 +60,10 @@
|
||||
<?php endif;?>
|
||||
<?php common::printOrderLink('id', $orderBy, $vars, $lang->idAB);?>
|
||||
</th>
|
||||
<th class='c-pri w-40px'> <?php common::printOrderLink('pri', $orderBy, $vars, $lang->priAB);?></th>
|
||||
<th class='c-name'> <?php common::printOrderLink('title', $orderBy, $vars, $lang->my->name);?></th>
|
||||
<th class='c-pri w-40px'> <?php common::printOrderLink('pri', $orderBy, $vars, $lang->priAB);?></th>
|
||||
<th class='c-product'> <?php common::printOrderLink('productTitle', $orderBy, $vars, $lang->story->product);?></th>
|
||||
<?php if($storyType == 'story'):?>
|
||||
<th class='c-name'> <?php common::printOrderLink('title', $orderBy, $vars, $lang->my->name);?></th>
|
||||
<th class='c-plan'> <?php common::printOrderLink('plan', $orderBy, $vars, $lang->story->plan);?></th>
|
||||
<?php endif;?>
|
||||
<th class='c-user'> <?php common::printOrderLink('openedBy', $orderBy, $vars, $lang->openedByAB);?></th>
|
||||
<th class='c-hours'> <?php common::printOrderLink('estimate', $orderBy, $vars, $lang->story->estimateAB);?></th>
|
||||
<th class='c-status'> <?php common::printOrderLink('status', $orderBy, $vars, $lang->statusAB);?></th>
|
||||
@@ -96,9 +93,7 @@
|
||||
<?php if(!empty($story->children)) echo '<a class="story-toggle" data-id="' . $story->id . '"><i class="icon icon-angle-double-right"></i></a>';;?>
|
||||
</td>
|
||||
<td class='c-product'><?php echo $story->productTitle;?></td>
|
||||
<?php if($storyType == 'story'):?>
|
||||
<td class='c-plan'><?php echo $story->planTitle;?></td>
|
||||
<?php endif;?>
|
||||
<td class='c-user'><?php echo zget($users, $story->openedBy);?></td>
|
||||
<td class='c-hours'><?php echo $story->estimate;?></td>
|
||||
<td class='c-status'><span class='status-story status-<?php echo $story->status;?>'> <?php echo $this->processStatus('story', $story);?></span></td>
|
||||
@@ -140,7 +135,6 @@
|
||||
<td class='c-product'><?php echo $child->productTitle;?></td>
|
||||
<?php if($storyType == 'story'):?>
|
||||
<td class='c-plan'><?php echo $child->planTitle;?></td>
|
||||
<?php endif;?>
|
||||
<td class='c-user'><?php echo zget($users, $child->openedBy);?></td>
|
||||
<td class='c-hours'><?php echo $child->estimate;?></td>
|
||||
<td class='c-status'><span class='status-story status-<?php echo $child->status;?>'> <?php echo $this->processStatus('story', $child);?></span></td>
|
||||
|
||||
@@ -11,15 +11,16 @@
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php js::set('mode', $mode);?>
|
||||
<div id="mainMenu" class="clearfix">
|
||||
<div class="btn-toolbar pull-left">
|
||||
<?php
|
||||
$recTotalLabel = " <span class='label label-light label-badge'>{$pager->recTotal}</span>";
|
||||
echo html::a(inlink('task', "type=assignedTo"), "<span class='text'>{$lang->my->taskMenu->assignedToMe}</span>" . ($type == 'assignedTo' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedTo' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink('task', "type=openedBy"), "<span class='text'>{$lang->my->taskMenu->openedByMe}</span>" . ($type == 'openedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'openedBy' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink('task', "type=finishedBy"), "<span class='text'>{$lang->my->taskMenu->finishedByMe}</span>" . ($type == 'finishedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'finishedBy' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink('task', "type=closedBy"), "<span class='text'>{$lang->my->taskMenu->closedByMe}</span>" . ($type == 'closedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink('task', "type=canceledBy"), "<span class='text'>{$lang->my->taskMenu->canceledByMe}</span>" . ($type == 'canceledBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'canceledBy' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink($app->rawMethod, "mode=$mode&type=assignedTo"), "<span class='text'>{$lang->my->taskMenu->assignedToMe}</span>" . ($type == 'assignedTo' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedTo' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink($app->rawMethod, "mode=$mode&type=openedBy"), "<span class='text'>{$lang->my->taskMenu->openedByMe}</span>" . ($type == 'openedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'openedBy' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink($app->rawMethod, "mode=$mode&type=finishedBy"), "<span class='text'>{$lang->my->taskMenu->finishedByMe}</span>" . ($type == 'finishedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'finishedBy' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink($app->rawMethod, "mode=$mode&type=closedBy"), "<span class='text'>{$lang->my->taskMenu->closedByMe}</span>" . ($type == 'closedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink($app->rawMethod, "mode=$mode&type=canceledBy"), "<span class='text'>{$lang->my->taskMenu->canceledByMe}</span>" . ($type == 'canceledBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'canceledBy' ? ' btn-active-text' : '') . "'");
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
@@ -33,7 +34,7 @@
|
||||
<?php $canBatchEdit = common::hasPriv('task', 'batchEdit');?>
|
||||
<?php $canBatchClose = (common::hasPriv('task', 'batchClose') and $type != 'closedBy');?>
|
||||
<table class="table has-sort-head table-fixed" id='tasktable'>
|
||||
<?php $vars = "type=$type&orderBy=%s&recTotal=$recTotal&recPerPage=$recPerPage&pageID=$pageID"; ?>
|
||||
<?php $vars = "mode=$mode&type=$type&orderBy=%s&recTotal=$recTotal&recPerPage=$recPerPage&pageID=$pageID"; ?>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="c-id">
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php js::set('mode', $mode);?>
|
||||
<style>
|
||||
.w-230px{width:230px;}
|
||||
</style>
|
||||
@@ -19,11 +20,13 @@
|
||||
<div class="btn-toolbar pull-left">
|
||||
<?php
|
||||
$recTotalLabel = " <span class='label label-light label-badge'>{$pager->recTotal}</span>";
|
||||
echo html::a(inlink('testtask', "type=wait"), "<span class='text'>{$lang->testtask->wait}</span>", '', "class='btn btn-link'");
|
||||
echo html::a(inlink('testtask', "type=done"), "<span class='text'>{$lang->testtask->done}</span>", '', "class='btn btn-link'");
|
||||
echo "<span class='nav-title'>{$lang->testtask->common}: </span>";
|
||||
echo html::a(inlink($app->rawMethod, "mode=testtask&type=wait"), "<span class='text'>{$lang->testtask->wait}</span>", '', "class='btn btn-link'");
|
||||
echo html::a(inlink($app->rawMethod, "mode=testtask&type=done"), "<span class='text'>{$lang->testtask->done}</span>", '', "class='btn btn-link'");
|
||||
echo "<span class='divider'></span>";
|
||||
echo html::a(inlink('testcase', "type=assigntome"), "<span class='text'>{$lang->testcase->assignToMe}</span>" . ($type == 'assigntome' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assigntome' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink('testcase', "type=openedbyme"), "<span class='text'>{$lang->testcase->openedByMe}</span>" . ($type == 'openedbyme' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'openedbyme' ? ' btn-active-text' : '') . "'");
|
||||
echo "<span class='nav-title'>{$lang->testcase->common}: </span>";
|
||||
echo html::a(inlink($app->rawMethod, "mode=$mode&type=assigntome"), "<span class='text'>{$lang->testcase->assignToMe}</span>" . ($type == 'assigntome' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assigntome' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink($app->rawMethod, "mode=$mode&type=openedbyme"), "<span class='text'>{$lang->testcase->openedByMe}</span>" . ($type == 'openedbyme' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'openedbyme' ? ' btn-active-text' : '') . "'");
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
@@ -36,7 +39,7 @@
|
||||
<form id='myCaseForm' class="main-table table-case" data-ride="table" method="post">
|
||||
<table class="table has-sort-head" id='caseList'>
|
||||
<?php
|
||||
$vars = "type=$type&orderBy=%s&recTotal=$recTotal&recPerPage=$recPerPage&pageID=$pageID";
|
||||
$vars = "mode=$mode&type=$type&orderBy=%s&recTotal=$recTotal&recPerPage=$recPerPage&pageID=$pageID";
|
||||
$this->app->loadLang('testtask');
|
||||
$canBatchRun = common::hasPriv('testtask', 'batchRun');
|
||||
$canBatchEdit = common::hasPriv('testcase', 'batchEdit');
|
||||
|
||||
@@ -11,16 +11,19 @@
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php js::set('mode', $mode);?>
|
||||
<?php js::set('confirmDelete', $lang->testtask->confirmDelete)?>
|
||||
<div id="mainMenu" class="clearfix">
|
||||
<div class="btn-toolbar pull-left">
|
||||
<?php
|
||||
$recTotalLabel = " <span class='label label-light label-badge'>{$pager->recTotal}</span>";
|
||||
echo html::a(inlink('testtask', "type=wait"), "<span class='text'>{$lang->testtask->wait}</span>" . ($type == 'wait' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'wait' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink('testtask', "type=done"), "<span class='text'>{$lang->testtask->done}</span>" . ($type == 'done' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'done' ? ' btn-active-text' : '') . "'");
|
||||
echo "<span class='nav-title'>{$lang->testtask->common}: </span>";
|
||||
echo html::a(inlink($app->rawMethod, "mode=$mode&type=wait"), "<span class='text'>{$lang->testtask->wait}</span>" . ($type == 'wait' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'wait' ? ' btn-active-text' : '') . "'");
|
||||
echo html::a(inlink($app->rawMethod, "mode=$mode&type=done"), "<span class='text'>{$lang->testtask->done}</span>" . ($type == 'done' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'done' ? ' btn-active-text' : '') . "'");
|
||||
echo "<span class='divider'></span>";
|
||||
echo html::a(inlink('testcase', "type=assigntome"), "<span class='text'>{$lang->testcase->assignToMe}</span>", '', "class='btn btn-link'");
|
||||
echo html::a(inlink('testcase', "type=openedbyme"), "<span class='text'>{$lang->testcase->openedByMe}</span>", '', "class='btn btn-link'");
|
||||
echo "<span class='nav-title'>{$lang->testcase->common}: </span>";
|
||||
echo html::a(inlink($app->rawMethod, "mode=testcase&type=assigntome"), "<span class='text'>{$lang->testcase->assignToMe}</span>", '', "class='btn btn-link'");
|
||||
echo html::a(inlink($app->rawMethod, "mode=testcase&type=openedbyme"), "<span class='text'>{$lang->testcase->openedByMe}</span>", '', "class='btn btn-link'");
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
@@ -31,7 +34,7 @@
|
||||
</div>
|
||||
<?php else:?>
|
||||
<table class="table has-sort-head table-fixed" id='taskList'>
|
||||
<?php $vars = "type=$type&orderBy=%s&recTotal=$recTotal&recPerPage=$recPerPage&pageID=$pageID"; ?>
|
||||
<?php $vars = "mode=$mode&type=$type&orderBy=%s&recTotal=$recTotal&recPerPage=$recPerPage&pageID=$pageID"; ?>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class='w-id'> <?php common::printOrderLink('id', $orderBy, $vars, $lang->idAB);?></th>
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
$config->product = new stdclass();
|
||||
$config->product->orderBy = 'isClosed,order_desc';
|
||||
|
||||
$config->product->customBatchEditFields = 'line,PO,QD,RD,status,type,desc';
|
||||
$config->product->customBatchEditFields = 'PO,QD,RD,status,type,desc,acl';
|
||||
|
||||
$config->product->browse = new stdclass();
|
||||
$config->product->custom = new stdclass();
|
||||
$config->product->custom->batchEditFields = 'line,PO,QD,RD,status';
|
||||
$config->product->custom->batchEditFields = 'PO,QD,RD,status,type,acl';
|
||||
|
||||
$config->product->list = new stdclass();
|
||||
$config->product->list->exportFields = 'id,name,line,activeStories,changedStories,draftStories,closedStories,plans,releases,bugs,unResolvedBugs,assignToNullBugs';
|
||||
|
||||
@@ -69,7 +69,6 @@ $lang->product->id = 'ID';
|
||||
$lang->product->program = "Program";
|
||||
$lang->product->name = 'Name';
|
||||
$lang->product->code = 'Alias';
|
||||
$lang->product->line = 'Produktlinie';
|
||||
$lang->product->order = 'Sortierung';
|
||||
$lang->product->type = 'Typ';
|
||||
$lang->product->typeAB = 'Typ';
|
||||
|
||||
@@ -69,7 +69,6 @@ $lang->product->id = 'ID';
|
||||
$lang->product->program = "Program";
|
||||
$lang->product->name = "{$lang->productCommon} Name";
|
||||
$lang->product->code = 'Code';
|
||||
$lang->product->line = "{$lang->productCommon} Line";
|
||||
$lang->product->order = 'Rank';
|
||||
$lang->product->type = 'Type';
|
||||
$lang->product->typeAB = 'Type';
|
||||
|
||||
@@ -69,7 +69,6 @@ $lang->product->id = 'ID';
|
||||
$lang->product->program = "Program";
|
||||
$lang->product->name = "Nom du {$lang->productCommon}";
|
||||
$lang->product->code = 'Code';
|
||||
$lang->product->line = "Ligne Produit";
|
||||
$lang->product->order = 'Rang';
|
||||
$lang->product->type = 'Type';
|
||||
$lang->product->typeAB = 'Type';
|
||||
|
||||
@@ -69,7 +69,6 @@ $lang->product->id = 'ID';
|
||||
$lang->product->program = "Program";
|
||||
$lang->product->name = "Tên {$lang->productCommon}";
|
||||
$lang->product->code = 'Mã';
|
||||
$lang->product->line = "Dòng {$lang->productCommon}";
|
||||
$lang->product->order = 'Đánh giá';
|
||||
$lang->product->type = 'Loại';
|
||||
$lang->product->typeAB = 'Loại AB';
|
||||
|
||||
@@ -69,7 +69,6 @@ $lang->product->id = '编号';
|
||||
$lang->product->program = "所属项目集";
|
||||
$lang->product->name = "{$lang->productCommon}名称";
|
||||
$lang->product->code = "{$lang->productCommon}代号";
|
||||
$lang->product->line = "{$lang->productCommon}线";
|
||||
$lang->product->order = '排序';
|
||||
$lang->product->type = "{$lang->productCommon}类型";
|
||||
$lang->product->typeAB = "类型";
|
||||
|
||||
@@ -69,7 +69,6 @@ $lang->product->id = '編號';
|
||||
$lang->product->program = "所屬項目集";
|
||||
$lang->product->name = "{$lang->productCommon}名稱";
|
||||
$lang->product->code = "{$lang->productCommon}代號";
|
||||
$lang->product->line = "{$lang->productCommon}綫";
|
||||
$lang->product->order = '排序';
|
||||
$lang->product->type = "{$lang->productCommon}類型";
|
||||
$lang->product->typeAB = "類型";
|
||||
|
||||
@@ -625,6 +625,7 @@ class productModel extends model
|
||||
$products[$productID]->line = $data->lines[$productID];
|
||||
$products[$productID]->status = $data->statuses[$productID];
|
||||
$products[$productID]->desc = strip_tags($this->post->descs[$productID], $this->config->allowedTags);
|
||||
$products[$productID]->acl = $data->acl[$productID];
|
||||
$products[$productID]->order = $data->orders[$productID];
|
||||
|
||||
/* Check unique name for edited products. */
|
||||
@@ -650,6 +651,11 @@ class productModel extends model
|
||||
->where('id')->eq($productID)
|
||||
->exec();
|
||||
if(dao::isError()) die(js::error('product#' . $productID . dao::getError(true)));
|
||||
|
||||
/* When acl is open, white list set empty. When acl is private,update user view. */
|
||||
if($product->acl == 'open') $this->loadModel('personnel')->updateWhitelist('', 'product', $productID);
|
||||
if($product->acl != 'open') $this->loadModel('user')->updateUserView($productID, 'product');
|
||||
|
||||
$allChanges[$productID] = common::createChanges($oldProduct, $product);
|
||||
}
|
||||
$this->fixOrder();
|
||||
|
||||
@@ -41,14 +41,13 @@
|
||||
<tr>
|
||||
<th class='w-60px'><?php echo $lang->idAB;?></th>
|
||||
<th class='w-200px required'><?php echo $lang->product->name;?></th>
|
||||
<th class='w-150px required'><?php echo $lang->product->code;?></th>
|
||||
<th class='w-150px<?php echo zget($visibleFields, 'line', ' hidden') . zget($requiredFields, 'line', '', ' required');?>'><?php echo $lang->product->line;?></th>
|
||||
<th class='w-150px<?php echo zget($visibleFields, 'PO', ' hidden') . zget($requiredFields, 'PO', '', ' required');?>'><?php echo $lang->product->PO;?></th>
|
||||
<th class='w-150px<?php echo zget($visibleFields, 'QD', ' hidden') . zget($requiredFields, 'QD', '', ' required');?>'><?php echo $lang->product->QD;?></th>
|
||||
<th class='w-150px<?php echo zget($visibleFields, 'RD', ' hidden') . zget($requiredFields, 'RD', '', ' required');?>'><?php echo $lang->product->RD;?></th>
|
||||
<th class='w-100px<?php echo zget($visibleFields, 'type', ' hidden') . zget($requiredFields, 'type', '', ' required');?>'><?php echo $lang->product->type;?></th>
|
||||
<th class='w-100px<?php echo zget($visibleFields, 'status', ' hidden') . zget($requiredFields, 'status', '', ' required');?>'><?php echo $lang->product->status;?></th>
|
||||
<th class='w-200px<?php echo zget($visibleFields, 'desc', ' hidden') . zget($requiredFields, 'desc', '', ' required');?>'><?php echo $lang->product->desc;?></th>
|
||||
<th class='w-200px<?php echo zget($visibleFields, 'acl', ' hidden');?>'><?php echo $lang->product->acl;?></th>
|
||||
<th class='w-80px'><?php echo $lang->product->order;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -62,14 +61,13 @@
|
||||
<tr>
|
||||
<td><?php echo sprintf('%03d', $productID) . html::hidden("productIDList[$productID]", $productID);?></td>
|
||||
<td title='<?php echo $products[$productID]->name?>'><?php echo html::input("names[$productID]", $products[$productID]->name, "class='form-control'");?></td>
|
||||
<td><?php echo html::input("codes[$productID]", $products[$productID]->code, "class='form-control'");?></td>
|
||||
<td class='text-left<?php echo zget($visibleFields, 'line', ' hidden')?>' style='overflow:visible'><?php echo html::select("lines[$productID]", $lines, $products[$productID]->line, "class='form-control chosen'");?></td>
|
||||
<td class='text-left<?php echo zget($visibleFields, 'PO', ' hidden')?>' style='overflow:visible'><?php echo html::select("POs[$productID]", $poUsers, $products[$productID]->PO, "class='form-control chosen'");?></td>
|
||||
<td class='text-left<?php echo zget($visibleFields, 'QD', ' hidden')?>' style='overflow:visible'><?php echo html::select("QDs[$productID]", $qdUsers, $products[$productID]->QD, "class='form-control chosen'");?></td>
|
||||
<td class='text-left<?php echo zget($visibleFields, 'RD', ' hidden')?>' style='overflow:visible'><?php echo html::select("RDs[$productID]", $rdUsers, $products[$productID]->RD, "class='form-control chosen'");?></td>
|
||||
<td class='<?php echo zget($visibleFields, 'type', 'hidden')?>'><?php echo html::select("types[$productID]", $lang->product->typeList, $products[$productID]->type, "class='form-control'");?></td>
|
||||
<td class='<?php echo zget($visibleFields, 'status', 'hidden')?>'><?php echo html::select("statuses[$productID]", $lang->product->statusList, $products[$productID]->status, "class='form-control'");?></td>
|
||||
<td class='<?php echo zget($visibleFields, 'desc', 'hidden')?>'><?php echo html::textarea("descs[$productID]", htmlspecialchars($products[$productID]->desc), "rows='1' class='form-control autosize'");?></td>
|
||||
<td class='<?php echo zget($visibleFields, 'acl', 'hidden')?>'><?php echo html::select("acl[$productID]", $lang->product->aclList, $products[$productID]->acl, "class='form-control'");?></td>
|
||||
<td><?php echo html::input("orders[$productID]", $products[$productID]->order, "class='form-control'");?></td>
|
||||
</tr>
|
||||
<?php
|
||||
|
||||
@@ -93,6 +93,7 @@ $lang->story->source = 'Von';
|
||||
$lang->story->sourceNote = 'Hinweis';
|
||||
$lang->story->fromBug = 'Von Bug';
|
||||
$lang->story->title = 'Titel';
|
||||
$lang->story->name = 'Name';
|
||||
$lang->story->type = 'Type';
|
||||
$lang->story->color = 'Color';
|
||||
$lang->story->toBug = 'ToBug';
|
||||
|
||||
@@ -93,6 +93,7 @@ $lang->story->source = 'From';
|
||||
$lang->story->sourceNote = 'Note';
|
||||
$lang->story->fromBug = 'From Bug';
|
||||
$lang->story->title = 'Title';
|
||||
$lang->story->name = 'Name';
|
||||
$lang->story->type = 'Type';
|
||||
$lang->story->color = 'Color';
|
||||
$lang->story->toBug = 'ToBug';
|
||||
|
||||
@@ -93,6 +93,7 @@ $lang->story->source = 'De';
|
||||
$lang->story->sourceNote = 'Note';
|
||||
$lang->story->fromBug = 'Depuis Bug';
|
||||
$lang->story->title = 'Titre';
|
||||
$lang->story->name = 'Name';
|
||||
$lang->story->type = 'Type';
|
||||
$lang->story->color = 'Couleur';
|
||||
$lang->story->toBug = 'Vers Bug';
|
||||
|
||||
@@ -93,6 +93,7 @@ $lang->story->source = 'Từ';
|
||||
$lang->story->sourceNote = 'Ghi chú';
|
||||
$lang->story->fromBug = 'Từ Bug';
|
||||
$lang->story->title = 'Tiêu đề';
|
||||
$lang->story->name = 'Name';
|
||||
$lang->story->type = 'Loại';
|
||||
$lang->story->color = 'Màu';
|
||||
$lang->story->toBug = 'Tới Bug';
|
||||
|
||||
@@ -93,10 +93,11 @@ $lang->story->source = "来源";
|
||||
$lang->story->sourceNote = '来源备注';
|
||||
$lang->story->fromBug = '来源Bug';
|
||||
$lang->story->title = "{$lang->productSRCommon}名称";
|
||||
$lang->story->name = '名称';
|
||||
$lang->story->type = "类型";
|
||||
$lang->story->color = '标题颜色';
|
||||
$lang->story->toBug = '转Bug';
|
||||
$lang->story->spec = "{$lang->productSRCommon}描述";
|
||||
$lang->story->spec = "描述";
|
||||
$lang->story->assign = '指派给';
|
||||
$lang->story->verify = '验收标准';
|
||||
$lang->story->pri = '优先级';
|
||||
|
||||
@@ -93,10 +93,11 @@ $lang->story->source = "來源";
|
||||
$lang->story->sourceNote = '來源備註';
|
||||
$lang->story->fromBug = '來源Bug';
|
||||
$lang->story->title = "{$lang->productSRCommon}名稱";
|
||||
$lang->story->name = '名稱';
|
||||
$lang->story->type = "{$lang->productSRCommon}類型";
|
||||
$lang->story->color = '標題顏色';
|
||||
$lang->story->toBug = '轉Bug';
|
||||
$lang->story->spec = "{$lang->productSRCommon}描述";
|
||||
$lang->story->spec = "描述";
|
||||
$lang->story->assign = '指派給';
|
||||
$lang->story->verify = '驗收標準';
|
||||
$lang->story->pri = '優先順序';
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
</tr>
|
||||
<?php $this->printExtendFields($story, 'table');?>
|
||||
<tr>
|
||||
<th><?php echo $lang->story->title;?></th>
|
||||
<th><?php echo $lang->story->name;?></th>
|
||||
<td colspan='2'><?php echo html::input('title', $story->title, 'class="form-control"');?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
Reference in New Issue
Block a user