This commit is contained in:
hufangzhou
2020-12-09 15:03:33 +08:00
30 changed files with 153 additions and 199 deletions
+2 -1
View File
@@ -8,6 +8,7 @@ $maxConsumed = 0;
<div class='panel-body'>
<div class='table-row'>
<div class='table-col chart-titles'>
<div class='chart-col-title strong'><span><?php echo $lang->program->PRJName;?></span></div>
<?php foreach($projects as $project):?>
<?php
$maxTeamCount = max($maxTeamCount, $project->teamCount);
@@ -47,7 +48,7 @@ $maxConsumed = 0;
</div>
<style>
.block-projectteam .panel-body {margin-top: -10px}
.chart-titles {width: 110px; padding-right: 10px; padding-top: 30px; position: relative; z-index: 1}
.chart-titles {width: 110px; padding-right: 10px; position: relative; z-index: 1}
.chart-rows {position: relative; z-index: 0}
.chart-title {width: 100px; line-height: 20px; padding: 5px 0; height: 30px}
.chart-title > span {background: #fff}
+10 -17
View File
@@ -125,11 +125,8 @@ $lang->common = new stdclass();
$lang->common->common = 'Standard Module';
global $config;
if($config->URAndSR)
{
$URCommon = zget($lang, 'URCommon', "UR");
$SRCommon = zget($lang, 'SRCommon', "SR");
}
$URCommon = zget($lang, 'URCommon', "UR");
$SRCommon = zget($lang, 'SRCommon', "SR");
/* Main menu. */
$lang->mainNav = new stdclass();
@@ -169,9 +166,9 @@ $lang->product->menu->home = 'Home|product|index|';
$lang->product->menu->list = array('link' => $lang->productCommon . '|product|all|', 'alias' => 'create,batchedit');
$lang->product->viewMenu = new stdclass();
if($config->URAndSR) $lang->product->viewMenu->requirement = array('link' => "$lang->productURCommon|product|browse|productID=%s&branch=&browseType=unclosed&param=0&storyType=requirement", 'alias' => 'batchedit', 'subModule' => 'story');
$lang->product->viewMenu->requirement = array('link' => "$lang->productURCommon|product|browse|productID=%s&branch=&browseType=unclosed&param=0&storyType=requirement", 'alias' => 'batchedit', 'subModule' => 'story');
$lang->product->viewMenu->story = array('link' => "$lang->productSRCommon|product|browse|productID=%s", 'alias' => 'batchedit', 'subModule' => 'story');
if($config->URAndSR) $lang->product->viewMenu->track = array('link' => "Track|story|track|productID=%s");
$lang->product->viewMenu->track = array('link' => "Track|story|track|productID=%s");
$lang->product->viewMenu->plan = array('link' => "Plan|productplan|browse|productID=%s", 'subModule' => 'productplan');
$lang->product->viewMenu->release = array('link' => "Release|release|browse|productID=%s", 'subModule' => 'release');
$lang->product->viewMenu->roadmap = 'Roadmap|product|roadmap|productID=%s';
@@ -281,6 +278,8 @@ $lang->my->menu->testtask = array('link' => 'Test Aufgaben|my|testtask|', 'su
$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 = 'Profile|my|profile|';
$lang->my->menu->contacts = 'Contacts|my|managecontacts|';
$lang->my->dividerMenu = ',program,requirement,dynamic,';
@@ -302,11 +301,8 @@ $lang->scrumproduct->menu->branch = '@branch@|branch|manage|productID=%s';
$lang->scrumproduct->menu->module = 'Modul|tree|browse|productID=%s&view=story';
$lang->scrumproduct->menu->view = array('link' => 'Übersicht|product|view|productID=%s', 'alias' => 'edit');
if(!empty($config->URAndSR))
{
$lang->product->menu->requirement = array('link' => "{$URCommon}|product|browse|productID=%s&branch=&browseType=unclosed&param=0&storyType=requirement", 'alias' => 'batchedit', 'subModule' => 'story');
$lang->product->menu->story = array('link' => "{$SRCommon}|product|browse|productID=%s", 'alias' => 'batchedit', 'subModule' => 'story');
}
$lang->product->menu->requirement = array('link' => "{$URCommon}|product|browse|productID=%s&branch=&browseType=unclosed&param=0&storyType=requirement", 'alias' => 'batchedit', 'subModule' => 'story');
$lang->product->menu->story = array('link' => "{$SRCommon}|product|browse|productID=%s", 'alias' => 'batchedit', 'subModule' => 'story');
$lang->product->dividerMenu = ',project,doc,';
@@ -956,11 +952,8 @@ $lang->waterfallproduct->menu->plan = array('link' => "{$lang->planCommon}|prod
$lang->waterfallproduct->menu->story = 'Story|product|browse|product={PRODUCT}';
$lang->waterfallproduct->menu->track = 'Track|story|track|product={PRODUCT}';
if($config->URAndSR)
{
$lang->waterfallproduct->menu->requirement = array('link' => "{$URCommon}|product|browse|productID={PRODUCT}&branch=&browseType=unclosed&param=0&storyType=requirement");
$lang->waterfallproduct->menu->story = array('link' => "{$SRCommon}|product|browse|productID={PRODUCT}");
}
$lang->waterfallproduct->menu->requirement = array('link' => "{$URCommon}|product|browse|productID={PRODUCT}&branch=&browseType=unclosed&param=0&storyType=requirement");
$lang->waterfallproduct->menu->story = array('link' => "{$SRCommon}|product|browse|productID={PRODUCT}");
$lang->nc->menu = $lang->auditplan->menu;
$lang->noMenuModule = array('my', 'todo', 'effort', 'program', 'product', 'productplan', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'holiday', 'custom', 'auditcl', 'subject', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search');
+10 -17
View File
@@ -125,11 +125,8 @@ $lang->common = new stdclass();
$lang->common->common = 'Common Module';
global $config;
if($config->URAndSR)
{
$URCommon = zget($lang, 'URCommon', "UR");
$SRCommon = zget($lang, 'SRCommon', "SR");
}
$URCommon = zget($lang, 'URCommon', "UR");
$SRCommon = zget($lang, 'SRCommon', "SR");
/* Main menu. */
$lang->mainNav = new stdclass();
@@ -169,9 +166,9 @@ $lang->product->menu->home = 'Home|product|index|';
$lang->product->menu->list = array('link' => $lang->productCommon . '|product|all|', 'alias' => 'create,batchedit');
$lang->product->viewMenu = new stdclass();
if($config->URAndSR) $lang->product->viewMenu->requirement = array('link' => "$lang->productURCommon|product|browse|productID=%s&branch=&browseType=unclosed&param=0&storyType=requirement", 'alias' => 'batchedit', 'subModule' => 'story');
$lang->product->viewMenu->requirement = array('link' => "$lang->productURCommon|product|browse|productID=%s&branch=&browseType=unclosed&param=0&storyType=requirement", 'alias' => 'batchedit', 'subModule' => 'story');
$lang->product->viewMenu->story = array('link' => "$lang->productSRCommon|product|browse|productID=%s", 'alias' => 'batchedit', 'subModule' => 'story');
if($config->URAndSR) $lang->product->viewMenu->track = array('link' => "Track|story|track|productID=%s");
$lang->product->viewMenu->track = array('link' => "Track|story|track|productID=%s");
$lang->product->viewMenu->plan = array('link' => "Plan|productplan|browse|productID=%s", 'subModule' => 'productplan');
$lang->product->viewMenu->release = array('link' => "Release|release|browse|productID=%s", 'subModule' => 'release');
$lang->product->viewMenu->roadmap = 'Roadmap|product|roadmap|productID=%s';
@@ -281,6 +278,8 @@ $lang->my->menu->testtask = array('link' => 'Request|my|testtask|', 'subModul
$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 = 'Profile|my|profile|';
$lang->my->menu->contacts = 'Contacts|my|managecontacts|';
$lang->my->dividerMenu = ',program,requirement,dynamic,';
@@ -302,11 +301,8 @@ $lang->scrumproduct->menu->branch = '@branch@|branch|manage|productID=%s';
$lang->scrumproduct->menu->module = 'Module|tree|browse|productID=%s&view=story';
$lang->scrumproduct->menu->view = array('link' => 'Overview|product|view|productID=%s', 'alias' => 'edit');
if($config->URAndSR)
{
$lang->product->menu->requirement = array('link' => "{$URCommon}|product|browse|productID=%s&branch=&browseType=unclosed&param=0&storyType=requirement", 'alias' => 'batchedit', 'subModule' => 'story');
$lang->product->menu->story = array('link' => "{$SRCommon}|product|browse|productID=%s", 'alias' => 'batchedit', 'subModule' => 'story');
}
$lang->product->menu->requirement = array('link' => "{$URCommon}|product|browse|productID=%s&branch=&browseType=unclosed&param=0&storyType=requirement", 'alias' => 'batchedit', 'subModule' => 'story');
$lang->product->menu->story = array('link' => "{$SRCommon}|product|browse|productID=%s", 'alias' => 'batchedit', 'subModule' => 'story');
$lang->product->dividerMenu = ',project,doc,';
@@ -956,11 +952,8 @@ $lang->waterfallproduct->menu->plan = array('link' => "{$lang->planCommon}|prod
$lang->waterfallproduct->menu->story = 'Story|product|browse|product={PRODUCT}';
$lang->waterfallproduct->menu->track = 'Track|story|track|product={PRODUCT}';
if($config->URAndSR)
{
$lang->waterfallproduct->menu->requirement = array('link' => "{$URCommon}|product|browse|productID={PRODUCT}&branch=&browseType=unclosed&param=0&storyType=requirement");
$lang->waterfallproduct->menu->story = array('link' => "{$SRCommon}|product|browse|productID={PRODUCT}");
}
$lang->waterfallproduct->menu->requirement = array('link' => "{$URCommon}|product|browse|productID={PRODUCT}&branch=&browseType=unclosed&param=0&storyType=requirement");
$lang->waterfallproduct->menu->story = array('link' => "{$SRCommon}|product|browse|productID={PRODUCT}");
$lang->nc->menu = $lang->auditplan->menu;
$lang->noMenuModule = array('my', 'todo', 'effort', 'program', 'product', 'productplan', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'holiday', 'custom', 'auditcl', 'subject', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search');
+10 -17
View File
@@ -125,11 +125,8 @@ $lang->common = new stdclass();
$lang->common->common = 'Module Commun';
global $config;
if($config->URAndSR)
{
$URCommon = zget($lang, 'URCommon', "UR");
$SRCommon = zget($lang, 'SRCommon', "SR");
}
$URCommon = zget($lang, 'URCommon', "UR");
$SRCommon = zget($lang, 'SRCommon', "SR");
/* Main menu. */
$lang->mainNav = new stdclass();
@@ -169,9 +166,9 @@ $lang->product->menu->home = 'Home|product|index|';
$lang->product->menu->list = array('link' => $lang->productCommon . '|product|all|', 'alias' => 'create,batchedit');
$lang->product->viewMenu = new stdclass();
if($config->URAndSR) $lang->product->viewMenu->requirement = array('link' => "$lang->productURCommon|product|browse|productID=%s&branch=&browseType=unclosed&param=0&storyType=requirement", 'alias' => 'batchedit', 'subModule' => 'story');
$lang->product->viewMenu->requirement = array('link' => "$lang->productURCommon|product|browse|productID=%s&branch=&browseType=unclosed&param=0&storyType=requirement", 'alias' => 'batchedit', 'subModule' => 'story');
$lang->product->viewMenu->story = array('link' => "$lang->productSRCommon|product|browse|productID=%s", 'alias' => 'batchedit', 'subModule' => 'story');
if($config->URAndSR) $lang->product->viewMenu->track = array('link' => "Track|story|track|productID=%s");
$lang->product->viewMenu->track = array('link' => "Track|story|track|productID=%s");
$lang->product->viewMenu->plan = array('link' => "Plan|productplan|browse|productID=%s", 'subModule' => 'productplan');
$lang->product->viewMenu->release = array('link' => "Release|release|browse|productID=%s", 'subModule' => 'release');
$lang->product->viewMenu->roadmap = 'Roadmap|product|roadmap|productID=%s';
@@ -281,6 +278,8 @@ $lang->my->menu->testtask = array('link' => 'Recette|my|testtask|', 'subModul
$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 = 'Profile|my|profile|';
$lang->my->menu->contacts = 'Contacts|my|managecontacts|';
$lang->my->dividerMenu = ',program,requirement,dynamic,';
@@ -302,11 +301,8 @@ $lang->scrumproduct->menu->branch = '@branch@|branch|manage|productID=%s';
$lang->scrumproduct->menu->module = 'Module|tree|browse|productID=%s&view=story';
$lang->scrumproduct->menu->view = array('link' => 'Overview|product|view|productID=%s', 'alias' => 'edit');
if($config->URAndSR)
{
$lang->product->menu->requirement = array('link' => "{$URCommon}|product|browse|productID=%s&branch=&browseType=unclosed&param=0&storyType=requirement", 'alias' => 'batchedit', 'subModule' => 'story');
$lang->product->menu->story = array('link' => "{$SRCommon}|product|browse|productID=%s", 'alias' => 'batchedit', 'subModule' => 'story');
}
$lang->product->menu->requirement = array('link' => "{$URCommon}|product|browse|productID=%s&branch=&browseType=unclosed&param=0&storyType=requirement", 'alias' => 'batchedit', 'subModule' => 'story');
$lang->product->menu->story = array('link' => "{$SRCommon}|product|browse|productID=%s", 'alias' => 'batchedit', 'subModule' => 'story');
$lang->product->dividerMenu = ',project,doc,';
@@ -956,11 +952,8 @@ $lang->waterfallproduct->menu->plan = array('link' => "{$lang->planCommon}|prod
$lang->waterfallproduct->menu->story = 'Story|product|browse|product={PRODUCT}';
$lang->waterfallproduct->menu->track = 'Track|story|track|product={PRODUCT}';
if($config->URAndSR)
{
$lang->waterfallproduct->menu->requirement = array('link' => "{$URCommon}|product|browse|productID={PRODUCT}&branch=&browseType=unclosed&param=0&storyType=requirement");
$lang->waterfallproduct->menu->story = array('link' => "{$SRCommon}|product|browse|productID={PRODUCT}");
}
$lang->waterfallproduct->menu->requirement = array('link' => "{$URCommon}|product|browse|productID={PRODUCT}&branch=&browseType=unclosed&param=0&storyType=requirement");
$lang->waterfallproduct->menu->story = array('link' => "{$SRCommon}|product|browse|productID={PRODUCT}");
$lang->nc->menu = $lang->auditplan->menu;
$lang->noMenuModule = array('my', 'todo', 'effort', 'program', 'product', 'productplan', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'holiday', 'custom', 'auditcl', 'subject', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search');
+1
View File
@@ -49,6 +49,7 @@ $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;
/* product menu order. */
+10 -17
View File
@@ -125,11 +125,8 @@ $lang->common = new stdclass();
$lang->common->common = 'Module chung';
global $config;
if($config->URAndSR)
{
$URCommon = zget($lang, 'URCommon', "UR");
$SRCommon = zget($lang, 'SRCommon', "SR");
}
$URCommon = zget($lang, 'URCommon', "UR");
$SRCommon = zget($lang, 'SRCommon', "SR");
/* Main menu. */
$lang->mainNav = new stdclass();
@@ -169,9 +166,9 @@ $lang->product->menu->home = 'Home|product|index|';
$lang->product->menu->list = array('link' => $lang->productCommon . '|product|all|', 'alias' => 'create,batchedit');
$lang->product->viewMenu = new stdclass();
if($config->URAndSR) $lang->product->viewMenu->requirement = array('link' => "$lang->productURCommon|product|browse|productID=%s&branch=&browseType=unclosed&param=0&storyType=requirement", 'alias' => 'batchedit', 'subModule' => 'story');
$lang->product->viewMenu->requirement = array('link' => "$lang->productURCommon|product|browse|productID=%s&branch=&browseType=unclosed&param=0&storyType=requirement", 'alias' => 'batchedit', 'subModule' => 'story');
$lang->product->viewMenu->story = array('link' => "$lang->productSRCommon|product|browse|productID=%s", 'alias' => 'batchedit', 'subModule' => 'story');
if($config->URAndSR) $lang->product->viewMenu->track = array('link' => "Track|story|track|productID=%s");
$lang->product->viewMenu->track = array('link' => "Track|story|track|productID=%s");
$lang->product->viewMenu->plan = array('link' => "Plan|productplan|browse|productID=%s", 'subModule' => 'productplan');
$lang->product->viewMenu->release = array('link' => "Release|release|browse|productID=%s", 'subModule' => 'release');
$lang->product->viewMenu->roadmap = 'Roadmap|product|roadmap|productID=%s';
@@ -281,6 +278,8 @@ $lang->my->menu->testtask = array('link' => 'Yêu cầu|my|testtask|', 'subMo
$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 = 'Profile|my|profile|';
$lang->my->menu->contacts = 'Contacts|my|managecontacts|';
$lang->my->dividerMenu = ',program,requirement,dynamic,';
@@ -302,11 +301,8 @@ $lang->scrumproduct->menu->branch = '@branch@|branch|manage|productID=%s';
$lang->scrumproduct->menu->module = 'Module|tree|browse|productID=%s&view=story';
$lang->scrumproduct->menu->view = array('link' => 'Overview|product|view|productID=%s', 'alias' => 'edit');
if($config->URAndSR)
{
$lang->product->menu->requirement = array('link' => "{$URCommon}|product|browse|productID=%s&branch=&browseType=unclosed&param=0&storyType=requirement", 'alias' => 'batchedit', 'subModule' => 'story');
$lang->product->menu->story = array('link' => "{$SRCommon}|product|browse|productID=%s", 'alias' => 'batchedit', 'subModule' => 'story');
}
$lang->product->menu->requirement = array('link' => "{$URCommon}|product|browse|productID=%s&branch=&browseType=unclosed&param=0&storyType=requirement", 'alias' => 'batchedit', 'subModule' => 'story');
$lang->product->menu->story = array('link' => "{$SRCommon}|product|browse|productID=%s", 'alias' => 'batchedit', 'subModule' => 'story');
$lang->product->dividerMenu = ',project,doc,';
@@ -956,11 +952,8 @@ $lang->waterfallproduct->menu->plan = array('link' => "{$lang->planCommon}|prod
$lang->waterfallproduct->menu->story = 'Story|product|browse|product={PRODUCT}';
$lang->waterfallproduct->menu->track = 'Track|story|track|product={PRODUCT}';
if($config->URAndSR)
{
$lang->waterfallproduct->menu->requirement = array('link' => "{$URCommon}|product|browse|productID={PRODUCT}&branch=&browseType=unclosed&param=0&storyType=requirement");
$lang->waterfallproduct->menu->story = array('link' => "{$SRCommon}|product|browse|productID={PRODUCT}");
}
$lang->waterfallproduct->menu->requirement = array('link' => "{$URCommon}|product|browse|productID={PRODUCT}&branch=&browseType=unclosed&param=0&storyType=requirement");
$lang->waterfallproduct->menu->story = array('link' => "{$SRCommon}|product|browse|productID={PRODUCT}");
$lang->nc->menu = $lang->auditplan->menu;
$lang->noMenuModule = array('my', 'todo', 'effort', 'program', 'product', 'productplan', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'holiday', 'custom', 'auditcl', 'subject', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search');
+10 -17
View File
@@ -125,11 +125,8 @@ $lang->common = new stdclass();
$lang->common->common = '公有模块';
global $config;
if($config->URAndSR)
{
$URCommon = zget($lang, 'URCommon', "用户需求");
$SRCommon = zget($lang, 'SRCommon', "软件需求");
}
$URCommon = zget($lang, 'URCommon', "用户需求");
$SRCommon = zget($lang, 'SRCommon', "软件需求");
/* 主导航菜单。*/
$lang->mainNav = new stdclass();
@@ -169,9 +166,9 @@ $lang->product->menu->home = '主页|product|index|';
$lang->product->menu->list = array('link' => $lang->productCommon . '|product|all|', 'alias' => 'create,batchedit');
$lang->product->viewMenu = new stdclass();
if($config->URAndSR) $lang->product->viewMenu->requirement = array('link' => "$lang->productURCommon|product|browse|productID=%s&branch=&browseType=unclosed&param=0&storyType=requirement", 'alias' => 'batchedit', 'subModule' => 'story');
$lang->product->viewMenu->requirement = array('link' => "$lang->productURCommon|product|browse|productID=%s&branch=&browseType=unclosed&param=0&storyType=requirement", 'alias' => 'batchedit', 'subModule' => 'story');
$lang->product->viewMenu->story = array('link' => "$lang->productSRCommon|product|browse|productID=%s", 'alias' => 'batchedit', 'subModule' => 'story');
if($config->URAndSR) $lang->product->viewMenu->track = array('link' => "跟踪矩阵|story|track|productID=%s");
$lang->product->viewMenu->track = array('link' => "跟踪矩阵|story|track|productID=%s");
$lang->product->viewMenu->plan = array('link' => "计划|productplan|browse|productID=%s", 'subModule' => 'productplan');
$lang->product->viewMenu->release = array('link' => '发布|release|browse|productID=%s', 'subModule' => 'release');
$lang->product->viewMenu->roadmap = '路线图|product|roadmap|productID=%s';
@@ -281,6 +278,8 @@ $lang->my->menu->testtask = array('link' => '测试|my|testtask|', 'subModule
$lang->my->menu->story = array('link' => "需求|my|story|", 'subModule' => 'story');
$lang->my->menu->myExecution = "{$lang->executionCommon}|my|execution|";
$lang->my->menu->dynamic = '动态|my|dynamic|';
$lang->my->menu->profile = '档案|my|profile|';
$lang->my->menu->contacts = '联系人|my|managecontacts|';
$lang->my->dividerMenu = ',program,requirement,dynamic,';
@@ -302,11 +301,8 @@ $lang->scrumproduct->menu->branch = '@branch@|branch|manage|productID=%s';
$lang->scrumproduct->menu->module = '模块|tree|browse|productID=%s&view=story';
$lang->scrumproduct->menu->view = array('link' => '概况|product|view|productID=%s', 'alias' => 'edit');
if($config->URAndSR)
{
$lang->scrumproduct->menu->requirement = array('link' => "{$lang->projectURCommon}|product|browse|productID=%s&branch=&browseType=unclosed&param=0&storyType=requirement", 'alias' => 'batchedit', 'subModule' => 'story');
$lang->scrumproduct->menu->story = array('link' => "{$lang->projectSRCommon}|product|browse|productID=%s", 'alias' => 'batchedit', 'subModule' => 'story');
}
$lang->scrumproduct->menu->requirement = array('link' => "{$lang->projectURCommon}|product|browse|productID=%s&branch=&browseType=unclosed&param=0&storyType=requirement", 'alias' => 'batchedit', 'subModule' => 'story');
$lang->scrumproduct->menu->story = array('link' => "{$lang->projectSRCommon}|product|browse|productID=%s", 'alias' => 'batchedit', 'subModule' => 'story');
$lang->product->dividerMenu = ',project,doc,';
@@ -956,11 +952,8 @@ $lang->waterfallproduct->menu->plan = array('link' => "{$lang->planCommon}|prod
$lang->waterfallproduct->menu->story = '需求|product|browse|product={PRODUCT}';
$lang->waterfallproduct->menu->track = '跟踪矩阵|story|track|product={PRODUCT}';
if($config->URAndSR)
{
$lang->waterfallproduct->menu->requirement = array('link' => "{$URCommon}|product|browse|productID={PRODUCT}&branch=&browseType=unclosed&param=0&storyType=requirement");
$lang->waterfallproduct->menu->story = array('link' => "{$SRCommon}|product|browse|productID={PRODUCT}");
}
$lang->waterfallproduct->menu->requirement = array('link' => "{$URCommon}|product|browse|productID={PRODUCT}&branch=&browseType=unclosed&param=0&storyType=requirement");
$lang->waterfallproduct->menu->story = array('link' => "{$SRCommon}|product|browse|productID={PRODUCT}");
$lang->nc->menu = $lang->auditplan->menu;
$lang->noMenuModule = array('my', 'todo', 'effort', 'program', 'product', 'productplan', 'projectbuild', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'holiday', 'custom', 'auditcl', 'subject', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search');
+8 -17
View File
@@ -125,11 +125,8 @@ $lang->common = new stdclass();
$lang->common->common = '公有模組';
global $config;
if($config->URAndSR)
{
$URCommon = zget($lang, 'URCommon', "用戶需求");
$SRCommon = zget($lang, 'SRCommon', "軟件需求");
}
$URCommon = zget($lang, 'URCommon', "用戶需求");
$SRCommon = zget($lang, 'SRCommon', "軟件需求");
/* 主導航菜單。*/
$lang->mainNav = new stdclass();
@@ -169,9 +166,9 @@ $lang->product->menu->home = '主頁|product|index|';
$lang->product->menu->list = array('link' => $lang->productCommon . '|product|all|', 'alias' => 'create,batchedit');
$lang->product->viewMenu = new stdclass();
if($config->URAndSR) $lang->product->viewMenu->requirement = array('link' => "$lang->productURCommon|product|browse|productID=%s&branch=&browseType=unclosed&param=0&storyType=requirement", 'alias' => 'batchedit', 'subModule' => 'story');
$lang->product->viewMenu->requirement = array('link' => "$lang->productURCommon|product|browse|productID=%s&branch=&browseType=unclosed&param=0&storyType=requirement", 'alias' => 'batchedit', 'subModule' => 'story');
$lang->product->viewMenu->story = array('link' => "$lang->productSRCommon|product|browse|productID=%s", 'alias' => 'batchedit', 'subModule' => 'story');
if($config->URAndSR) $lang->product->viewMenu->track = array('link' => "跟蹤矩陣|story|track|productID=%s");
$lang->product->viewMenu->track = array('link' => "跟蹤矩陣|story|track|productID=%s");
$lang->product->viewMenu->plan = array('link' => "計劃|productplan|browse|productID=%s", 'subModule' => 'productplan');
$lang->product->viewMenu->release = array('link' => '發佈|release|browse|productID=%s', 'subModule' => 'release');
$lang->product->viewMenu->roadmap = '路線圖|product|roadmap|productID=%s';
@@ -302,11 +299,8 @@ $lang->scrumproduct->menu->branch = '@branch@|branch|manage|productID=%s';
$lang->scrumproduct->menu->module = '模組|tree|browse|productID=%s&view=story';
$lang->scrumproduct->menu->view = array('link' => '概況|product|view|productID=%s', 'alias' => 'edit');
if($config->URAndSR)
{
$lang->scrumproduct->menu->requirement = array('link' => "{$lang->projectURCommon}|product|browse|productID=%s&branch=&browseType=unclosed&param=0&storyType=requirement", 'alias' => 'batchedit', 'subModule' => 'story');
$lang->scrumproduct->menu->story = array('link' => "{$lang->projectSRCommon}|product|browse|productID=%s", 'alias' => 'batchedit', 'subModule' => 'story');
}
$lang->scrumproduct->menu->requirement = array('link' => "{$lang->projectURCommon}|product|browse|productID=%s&branch=&browseType=unclosed&param=0&storyType=requirement", 'alias' => 'batchedit', 'subModule' => 'story');
$lang->scrumproduct->menu->story = array('link' => "{$lang->projectSRCommon}|product|browse|productID=%s", 'alias' => 'batchedit', 'subModule' => 'story');
$lang->product->dividerMenu = ',project,doc,';
@@ -956,11 +950,8 @@ $lang->waterfallproduct->menu->plan = array('link' => "{$lang->planCommon}|prod
$lang->waterfallproduct->menu->story = '需求|product|browse|product={PRODUCT}';
$lang->waterfallproduct->menu->track = '跟蹤矩陣|story|track|product={PRODUCT}';
if($config->URAndSR)
{
$lang->waterfallproduct->menu->requirement = array('link' => "{$URCommon}|product|browse|productID={PRODUCT}&branch=&browseType=unclosed&param=0&storyType=requirement");
$lang->waterfallproduct->menu->story = array('link' => "{$SRCommon}|product|browse|productID={PRODUCT}");
}
$lang->waterfallproduct->menu->requirement = array('link' => "{$URCommon}|product|browse|productID={PRODUCT}&branch=&browseType=unclosed&param=0&storyType=requirement");
$lang->waterfallproduct->menu->story = array('link' => "{$SRCommon}|product|browse|productID={PRODUCT}");
$lang->nc->menu = $lang->auditplan->menu;
$lang->noMenuModule = array('my', 'todo', 'effort', 'program', 'product', 'productplan', 'projectbuild', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'holiday', 'custom', 'auditcl', 'subject', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search');
+1
View File
@@ -95,6 +95,7 @@ function getExecutions()
})
}
}
adjustMenuWidth();
</script>
<main id='main' <?php if(!empty($config->sso->redirect)) echo "class='ranzhiFixedTfootAction'";?> >
<div class='container'>
+19 -23
View File
@@ -594,35 +594,31 @@ class customModel extends model
$data = fixer::input('post')->get();
$lang = $this->app->getClientLang();
$this->loadModel('setting')->setItem("system.custom.URAndSR", $data->URAndSR);
if($data->URAndSR)
/* If has custom UR and SR name. */
$newKey = '';
if(isset($data->URSRCustom))
{
/* If has custom UR and SR name. */
$newKey = '';
if(isset($data->URSRCustom))
{
if(!$data->URName || !$data->SRName) return false;
if(!$data->URName || !$data->SRName) return false;
$newKey = max(array_keys($this->lang->custom->URSRList)) + 1;
$URSRName = $data->URName . '/' . $data->SRName;
$newKey = max(array_keys($this->lang->custom->URSRList)) + 1;
$URSRName = $data->URName . '/' . $data->SRName;
/* Delete old lang data, and add new. */
$this->lang->custom->URSRList[$newKey] = $URSRName;
$this->lang->custom->URList[$newKey] = $data->URName;
$this->lang->custom->SRList[$newKey] = $data->SRName;
$this->deleteItems("lang=$lang&module=custom&section=URSRList");
$this->deleteItems("lang=$lang&module=custom&section=URList");
$this->deleteItems("lang=$lang&module=custom&section=SRList");
/* Delete old lang data, and add new. */
$this->lang->custom->URSRList[$newKey] = $URSRName;
$this->lang->custom->URList[$newKey] = $data->URName;
$this->lang->custom->SRList[$newKey] = $data->SRName;
$this->deleteItems("lang=$lang&module=custom&section=URSRList");
$this->deleteItems("lang=$lang&module=custom&section=URList");
$this->deleteItems("lang=$lang&module=custom&section=SRList");
foreach($this->lang->custom->URSRList as $key => $value) $this->setItem("$lang.custom.URSRList.{$key}.1", $value);
foreach($this->lang->custom->URList as $key => $value) $this->setItem("$lang.custom.URList.{$key}.1", $value);
foreach($this->lang->custom->SRList as $key => $value) $this->setItem("$lang.custom.SRList.{$key}.1", $value);
}
$URSRName = $newKey ? $newKey : $data->URSRCommon;
$this->setting->setItem("system.custom.URSRName", $URSRName);
foreach($this->lang->custom->URSRList as $key => $value) $this->setItem("$lang.custom.URSRList.{$key}.1", $value);
foreach($this->lang->custom->URList as $key => $value) $this->setItem("$lang.custom.URList.{$key}.1", $value);
foreach($this->lang->custom->SRList as $key => $value) $this->setItem("$lang.custom.SRList.{$key}.1", $value);
}
$URSRName = $newKey ? $newKey : $data->URSRCommon;
$this->loadModel('setting')->setItem("system.custom.URSRName", $URSRName);
return true;
}
@@ -20,16 +20,11 @@
<form class="load-indicator main-form form-ajax" method='post'>
<div class='modal-body'>
<table class='table table-form'>
<tr>
<th class='w-160px'> <?php echo $lang->custom->waterfall->URAndSR;?> </th>
<td> <?php echo html::radio('URAndSR', $lang->custom->waterfallOptions->URAndSR, zget($this->config->custom, 'URAndSR', '0'));?> </td>
<td></td><td></td><td></td><td></td>
</tr>
<?php $hidden = zget($this->config->custom, 'URAndSR', 0) == 0 ? 'hidden' : '';?>
<tr class="<?php echo $hidden;?>" id='URSRName'>
<th><?php echo $lang->custom->waterfall->URSRName;?></th>
<tr id='URSRName'>
<th class='w-160px'><?php echo $lang->custom->waterfall->URSRName;?></th>
<td><?php echo html::select('URSRCommon', $lang->custom->URSRList, zget($config->custom, 'URSRName', 1), "class='form-control chosen'");?></td>
<td><?php echo html::checkbox('URSRCustom', $lang->custom->common, "class='form-control'");?></td>
<td></td><td></td><td></td><td></td>
</tr>
<tr class='hidden' id='customURSR'>
<th></th>
-2
View File
@@ -21,9 +21,7 @@
</button>
<ul class='dropdown-menu'>
<li><?php echo html::a($this->inLink('story', "type=$type"), $lang->generalSR);?></li>
<?php if($config->URAndSR):?>
<li><?php echo html::a($this->inLink('story', "type=$type&storyType=requirement"), $lang->generalUR);?></li>
<?php endif;?>
</ul>
</div>
</div>
+1 -1
View File
@@ -194,7 +194,7 @@ class product extends control
$storyCases = $this->loadModel('testcase')->getStoryCaseCounts($storyIdList);
/* Change for requirement story title. */
if($storyType == 'requirement' and $this->config->URAndSR)
if($storyType == 'requirement')
{
$this->lang->story->title = str_replace($this->lang->productSRCommon, $this->lang->productURCommon, $this->lang->story->title);
$this->config->product->search['fields']['title'] = $this->lang->story->title;
+2 -5
View File
@@ -1239,11 +1239,8 @@ class productModel extends model
$rate = count($stories) == 0 || $rateCount == 0 ? 0 : round(count($cases) / $rateCount, 2);
$storyCommon = $this->lang->productSRCommon;
if($this->config->URAndSR)
{
if($storyType == 'requirement') $storyCommon = $this->lang->productURCommon;
if($storyType == 'story') $storyCommon = $this->lang->productSRCommon;
}
if($storyType == 'requirement') $storyCommon = $this->lang->productURCommon;
if($storyType == 'story') $storyCommon = $this->lang->productSRCommon;
return sprintf($this->lang->product->storySummary, $allCount, $storyCommon, $totalEstimate, $rate * 100 . "%");
}
-2
View File
@@ -55,13 +55,11 @@
<?php echo html::select('type', $productTypeList, 'normal', "class='form-control'");?>
</td><td></td>
</tr>
<?php if($config->URAndSR):?>
<tr>
<th><?php echo $lang->product->storyConcept;?></th>
<td><?php echo html::select('storyConcept', $lang->custom->URSRList, zget($config->custom, 'URSRName', 1), "class='form-control chosen'");?></td>
<td></td>
</tr>
<?php endif;?>
<tr class='hide'>
<th><?php echo $lang->product->status;?></th>
<td><?php echo html::hidden('status', 'normal');?></td>
-2
View File
@@ -55,13 +55,11 @@
<th><?php echo $lang->product->type;?></th>
<td><?php echo html::select('type', $lang->product->typeList, $product->type, "class='form-control'");?></td><td></td>
</tr>
<?php if($config->URAndSR):?>
<tr>
<th><?php echo $lang->product->storyConcept;?></th>
<td><?php echo html::select('storyConcept', $lang->custom->URSRList, $product->storyConcept, "class='form-control chosen'");?></td>
<td></td>
</tr>
<?php endif;?>
<tr>
<th><?php echo $lang->product->status;?></th>
<td><?php echo html::select('status', $lang->product->statusList, $product->status, "class='form-control'");?></td><td></td>
+1 -1
View File
@@ -503,7 +503,7 @@ class productplan extends control
$this->loadModel('bug');
$plan = $this->productplan->getByID($planID);
$this->commonAction($plan->product, $plan->branch);
$products = $this->product->getProductPairsByProject($this->session->PRJ);
$products = $this->product->getPairs('nocode');
$productID = $plan->product;
$queryID = ($browseType == 'bysearch') ? (int)$param : 0;
-2
View File
@@ -131,14 +131,12 @@
</tr>
<?php endif;?>
<?php $this->printExtendFields('', 'table');?>
<?php if($config->URAndSR):?>
<tr>
<th><?php echo $lang->program->PRJStoryConcept;?></th>
<td>
<?php echo html::select('storyConcept', $lang->custom->URSRList, zget($config->custom, 'URSRName', 1), "class='form-control chosen'");?>
</td>
</tr>
<?php endif;?>
<tr>
<th><?php echo $lang->program->PRJDesc;?></th>
<td colspan='3'>
-2
View File
@@ -131,14 +131,12 @@
<td></td>
</tr>
<?php endif;?>
<?php if($config->URAndSR):?>
<tr>
<th><?php echo $lang->program->PRJStoryConcept;?></th>
<td>
<?php echo html::select('storyConcept', $lang->custom->URSRList, $project->storyConcept, "class='form-control chosen'");?>
</td>
</tr>
<?php endif;?>
<tr>
<th><?php echo $lang->program->PRJDesc;?></th>
<td colspan='3'>
+1 -1
View File
@@ -1022,7 +1022,7 @@ class projectModel extends model
->beginIF($status == 'undone')->andWhere('status')->notIN('done,closed')->fi()
->beginIF($status != 'all' and $status != 'undone')->andWhere('status')->in($status)->fi()
->andWhere('deleted')->eq('0')
->orderBy('id_asc')
->orderBy('begin_asc')
->beginIF($limit)->limit($limit)->fi()
->fetchAll('id');
+1 -1
View File
@@ -472,7 +472,7 @@ class story extends control
*/
public function replaceURLang($type)
{
if($type == 'requirement' and $this->config->URAndSR)
if($type == 'requirement')
{
$storyLang = $this->lang->story;
$SRCommon = $this->lang->productSRCommon;
+5 -8
View File
@@ -14,14 +14,11 @@ $lang->story->create = "Story hinzufügen";
$lang->story->createStory = "Story hinzufügen";
$lang->story->createRequirement = 'Create Requirement';
if(!empty($config->URAndSR))
{
$lang->story->requirement = zget($lang, 'urCommon', "Requirement");
$lang->story->story = zget($lang, 'srCommon', "Story");
$lang->story->createStory = 'Create ' . $lang->story->story;
$lang->story->createRequirement = 'Create ' . $lang->story->requirement;
$lang->story->affectedStories = "Affected {$lang->story->story}";
}
$lang->story->requirement = zget($lang, 'urCommon', "Requirement");
$lang->story->story = zget($lang, 'srCommon', "Story");
$lang->story->createStory = 'Create ' . $lang->story->story;
$lang->story->createRequirement = 'Create ' . $lang->story->requirement;
$lang->story->affectedStories = "Affected {$lang->story->story}";
$lang->story->batchCreate = "Mehere hinzufügen";
$lang->story->change = "Ändern";
+5 -8
View File
@@ -14,14 +14,11 @@ $lang->story->create = "Create Story";
$lang->story->createStory = 'Create Story';
$lang->story->createRequirement = 'Create Requirement';
if($config->URAndSR)
{
$lang->story->requirement = zget($lang, 'URCommon', "Requirement");
$lang->story->story = zget($lang, 'SRCommon', "Story");
$lang->story->createStory = 'Create ' . $lang->story->story;
$lang->story->createRequirement = 'Create ' . $lang->story->requirement;
$lang->story->affectedStories = "Affected {$lang->story->story}";
}
$lang->story->requirement = zget($lang, 'URCommon', "Requirement");
$lang->story->story = zget($lang, 'SRCommon', "Story");
$lang->story->createStory = 'Create ' . $lang->story->story;
$lang->story->createRequirement = 'Create ' . $lang->story->requirement;
$lang->story->affectedStories = "Affected {$lang->story->story}";
$lang->story->batchCreate = "Batch Create";
$lang->story->change = "Change";
+5 -8
View File
@@ -14,14 +14,11 @@ $lang->story->create = "Créer Story";
$lang->story->createStory = "Créer Story";
$lang->story->createRequirement = 'Create Requirement';
if(!empty($config->URAndSR))
{
$lang->story->requirement = zget($lang, 'urCommon', "Requirement");
$lang->story->story = zget($lang, 'srCommon', "Story");
$lang->story->createStory = 'Create ' . $lang->story->story;
$lang->story->createRequirement = 'Create ' . $lang->story->requirement;
$lang->story->affectedStories = "Affected {$lang->story->story}";
}
$lang->story->requirement = zget($lang, 'urCommon', "Requirement");
$lang->story->story = zget($lang, 'srCommon', "Story");
$lang->story->createStory = 'Create ' . $lang->story->story;
$lang->story->createRequirement = 'Create ' . $lang->story->requirement;
$lang->story->affectedStories = "Affected {$lang->story->story}";
$lang->story->batchCreate = "Créer par Lot";
$lang->story->change = "Changer";
+5 -8
View File
@@ -14,14 +14,11 @@ $lang->story->create = "Create Story";
$lang->story->createStory = 'Create Story';
$lang->story->createRequirement = 'Create Requirement';
if(!empty($config->URAndSR))
{
$lang->story->requirement = zget($lang, 'urCommon', "Requirement");
$lang->story->story = zget($lang, 'srCommon', "Story");
$lang->story->createStory = 'Create ' . $lang->story->story;
$lang->story->createRequirement = 'Create ' . $lang->story->requirement;
$lang->story->affectedStories = "Affected {$lang->story->story}";
}
$lang->story->requirement = zget($lang, 'urCommon', "Requirement");
$lang->story->story = zget($lang, 'srCommon', "Story");
$lang->story->createStory = 'Create ' . $lang->story->story;
$lang->story->createRequirement = 'Create ' . $lang->story->requirement;
$lang->story->affectedStories = "Affected {$lang->story->story}";
$lang->story->batchCreate = "Tạo hàng loạt";
$lang->story->change = "Thay đổi";
+5 -8
View File
@@ -14,14 +14,11 @@ $lang->story->create = "提{$lang->productSRCommon}";
$lang->story->createStory = "{$lang->productSRCommon}";
$lang->story->createRequirement = "{$lang->productSRCommon}";
if($config->URAndSR)
{
$lang->story->requirement = zget($lang, 'productURCommon', "用户需求");
$lang->story->story = zget($lang, 'productSRCommon', "软件需求");
$lang->story->createStory = '添加' . $lang->story->story;
$lang->story->createRequirement = '添加' . $lang->story->requirement;
$lang->story->affectedStories = "影响的{$lang->story->story}";
}
$lang->story->requirement = zget($lang, 'productURCommon', "用户需求");
$lang->story->story = zget($lang, 'productSRCommon', "软件需求");
$lang->story->createStory = '添加' . $lang->story->story;
$lang->story->createRequirement = '添加' . $lang->story->requirement;
$lang->story->affectedStories = "影响的{$lang->story->story}";
$lang->story->batchCreate = "批量创建";
$lang->story->change = "变更";
+1 -1
View File
@@ -3168,7 +3168,7 @@ class storyModel extends model
->fetchPairs('id', 'title');
/* For requirement children. */
if($type == 'requirement' && $this->config->URAndSR)
if($type == 'requirement')
{
$relations = $this->dao->select('DISTINCT AID, BID')->from(TABLE_RELATION)
->where('AID')->in(array_keys($stories))
+1 -1
View File
@@ -122,7 +122,7 @@
<?php endif;?>
<?php endif;?>
</tr>
<?php if($config->URAndSR and $type == 'story'):?>
<?php if($type == 'story'):?>
<tr>
<th><?php echo $lang->story->requirement;?></th>
<td colspan=2><?php echo html::select('URS[]', $URS, '', "class='form-control chosen' multiple");?></td>
-4
View File
@@ -389,17 +389,14 @@
<div class="cell">
<div class='tabs'>
<ul class='nav nav-tabs'>
<?php if($config->URAndSR):?>
<li class='active'><a href='#legendStories' data-toggle='tab'><?php echo $story->type == 'story' ? $lang->story->requirement : $lang->story->story;?></a></li>
<li><a href='#legendProjectAndTask' data-toggle='tab'><?php echo $lang->story->legendProjectAndTask;?></a></li>
<li><a href='#legendRelated' data-toggle='tab'><?php echo $lang->story->legendRelated;?></a></li>
<?php else:?>
<li class='active'><a href='#legendProjectAndTask' data-toggle='tab'><?php echo $lang->story->legendProjectAndTask;?></a></li>
<li><a href='#legendRelated' data-toggle='tab'><?php echo $lang->story->legendRelated;?></a></li>
<?php endif;?>
</ul>
<div class='tab-content'>
<?php if($config->URAndSR):?>
<div class='tab-pane active' id='legendStories'>
<ul class="list-unstyled">
<?php
@@ -416,7 +413,6 @@
<?php if(!empty($relations)) echo html::a('javascript:void(0)', $lang->story->unlink . $linkLang, '', "class='btn btn-info' id='unlinkStory'");?></li>
</ul>
</div>
<?php endif;?>
<div class='tab-pane active' id='legendProjectAndTask'>
<ul class="list-unstyled">
<?php
+36
View File
@@ -796,6 +796,42 @@ function toggleFold(form, unfoldIdList, objectID, objectType)
});
}
/**
* Adjust menu width.
*
* @access public
* @return void
*/
function adjustMenuWidth()
{
$mainHeader = $('#mainHeader .container');
if($mainHeader.length == 0) return false;
$navbar = $mainHeader.find('#navbar .nav');
mainHeaderWidth = $mainHeader.width() - 10;
headingWidth = $mainHeader.find('#heading').width() + 30;
navbarWidth = $navbar.width();
toolbarWidth = $mainHeader.find('#toolbar').width() + 20;
if(mainHeaderWidth < headingWidth + navbarWidth + toolbarWidth)
{
delta = (headingWidth + navbarWidth + toolbarWidth) - mainHeaderWidth;
delta = Math.ceil(delta / $navbar.children('li').length / 2);
aTagPadding = $navbar.find('a:first').css('padding-left').replace('px', '');
dividerMargin = $navbar.find('.divider').css('margin-left').replace('px', '');
newPadding = aTagPadding - delta;
newMargin = dividerMargin - delta - 1;
if(newPadding < 0) newPadding = 0;
if(newMargin < 0) newMargin = 0;
$navbar.children('li').find('a').css('padding-left', newPadding).css('padding-right', newPadding);
$navbar.find('.divider').css('margin-left', newMargin).css('margin-right', newMargin);
}
}
/* Ping the server every some minutes to keep the session. */
needPing = true;