This commit is contained in:
tianshujie98
2020-12-22 14:32:27 +08:00
34 changed files with 399 additions and 151 deletions
+24 -10
View File
@@ -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
View File
@@ -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
View File
@@ -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;
+8 -15
View File
@@ -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
View File
@@ -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;
+21 -7
View File
@@ -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
View File
@@ -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
View File
@@ -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
*
+5
View File
@@ -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'});
+6 -6
View File
@@ -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">
+1
View File
@@ -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>
+15
View File
@@ -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';?>
+111 -30
View File
@@ -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=&param=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=&param=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=&param=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>
+15
View File
@@ -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 -17
View File
@@ -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>
+7 -6
View File
@@ -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">
+8 -5
View File
@@ -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');
+8 -5
View File
@@ -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 -2
View File
@@ -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';
-1
View File
@@ -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';
-1
View File
@@ -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';
-1
View File
@@ -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';
-1
View File
@@ -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';
-1
View File
@@ -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 = "类型";
-1
View File
@@ -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 = "類型";
+6
View File
@@ -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();
+2 -4
View File
@@ -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
+1
View File
@@ -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';
+1
View File
@@ -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';
+1
View File
@@ -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';
+1
View File
@@ -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';
+2 -1
View File
@@ -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 = '优先级';
+2 -1
View File
@@ -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 = '優先順序';
+1 -1
View File
@@ -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>