This commit is contained in:
holan20180123
2021-03-10 15:31:58 +08:00
44 changed files with 278 additions and 236 deletions
+1 -1
View File
@@ -519,7 +519,7 @@ class bugModel extends model
->andWhere('t1.toStory')->eq(0)
->beginIF(!empty($products))->andWhere('t1.product')->in($products)->fi()
->beginIF(empty($products))->andWhere('t1.execution')->eq($executionID)->fi()
->andWhere('t2.execution')->eq($executionID)
->andWhere('t2.project')->eq($executionID)
->andWhere("(t2.branch = '0' OR t1.branch = '0' OR t2.branch = t1.branch)")
->andWhere('t1.deleted')->eq(0)
->orderBy('id desc')
+3 -1
View File
@@ -149,7 +149,7 @@ $lang->mainNav->qa = '<i class="icon icon-test"></i> Test|qa|index|';
$lang->mainNav->repo = '<i class="icon icon-code1"></i> Code|repo|browse|';
$lang->mainNav->doc = '<i class="icon icon-doc"></i> Doc|doc|index|';
$lang->mainNav->report = "<i class='icon icon-statistic'></i> Statistic|report|productsummary|";
$lang->mainNav->system = '<i class="icon icon-menu-users"></i> System|my|team|';
$lang->mainNav->system = '<i class="icon icon-menu-users"></i> System|company|browse|';
$lang->mainNav->admin = '<i class="icon icon-menu-backend"></i> Admin|admin|index|';
if($config->systemMode == 'new') $lang->mainNav->program = "<i class='icon icon-program'></i> Program|$programModule|$programMethod|";
@@ -559,6 +559,8 @@ $lang->admin->subMenu->system->cron = array('link' => 'Cron|cron|index', '
$lang->admin->subMenu->system->timezone = array('link' => 'Timezone|custom|timezone', 'subModule' => 'custom');
$lang->admin->subMenu->system->buildIndex = array('link' => 'Full Text Search|search|buildindex|');
$lang->admin->dividerMenu = ',message,system,';
$lang->convert = new stdclass();
$lang->upgrade = new stdclass();
$lang->action = new stdclass();
+5 -1
View File
@@ -149,7 +149,7 @@ $lang->mainNav->qa = '<i class="icon icon-test"></i> Test|qa|index|';
$lang->mainNav->repo = '<i class="icon icon-code1"></i> Code|repo|browse|';
$lang->mainNav->doc = '<i class="icon icon-doc"></i> Doc|doc|index|';
$lang->mainNav->report = "<i class='icon icon-statistic'></i> Statistic|report|productsummary|";
$lang->mainNav->system = '<i class="icon icon-menu-users"></i> System|my|team|';
$lang->mainNav->system = '<i class="icon icon-menu-users"></i> System|company|browse|';
$lang->mainNav->admin = '<i class="icon icon-menu-backend"></i> Admin|admin|index|';
if($config->systemMode == 'new') $lang->mainNav->program = "<i class='icon icon-program'></i> Program|$programModule|$programMethod|";
@@ -172,6 +172,8 @@ else
$lang->project->menu->browse = array('link' => "$lang->executionCommon|project|browse|");
}
$lang->project->dividerMenu = ',execution,programplan,doc,other,';
$lang->program->viewMenu = new stdclass();
$lang->program->viewMenu->product = array('link' => 'Product|program|product|program=%s', 'alias' => 'view');
$lang->program->viewMenu->project = array('link' => "Project|program|project|program=%s");
@@ -552,6 +554,8 @@ $lang->admin->subMenu->system->cron = array('link' => 'Cron|cron|index', '
$lang->admin->subMenu->system->timezone = array('link' => 'Timezone|custom|timezone', 'subModule' => 'custom');
$lang->admin->subMenu->system->buildIndex = array('link' => 'Full Text Search|search|buildindex|');
$lang->admin->dividerMenu = ',message,system,';
$lang->convert = new stdclass();
$lang->upgrade = new stdclass();
$lang->action = new stdclass();
+3 -1
View File
@@ -149,7 +149,7 @@ $lang->mainNav->qa = '<i class="icon icon-test"></i> Test|qa|index|';
$lang->mainNav->repo = '<i class="icon icon-code1"></i> Code|repo|browse|';
$lang->mainNav->doc = '<i class="icon icon-doc"></i> Doc|doc|index|';
$lang->mainNav->report = "<i class='icon icon-statistic'></i> Statistic|report|productsummary|";
$lang->mainNav->system = '<i class="icon icon-menu-users"></i> System|my|team|';
$lang->mainNav->system = '<i class="icon icon-menu-users"></i> System|company|browse|';
$lang->mainNav->admin = '<i class="icon icon-menu-backend"></i> Admin|admin|index|';
if($config->systemMode == 'new') $lang->mainNav->program = "<i class='icon icon-program'></i> Program|$programModule|$programMethod|";
@@ -551,6 +551,8 @@ $lang->admin->subMenu->system->cron = array('link' => 'Cron|cron|index', '
$lang->admin->subMenu->system->timezone = array('link' => 'Timezone|custom|timezone', 'subModule' => 'custom');
$lang->admin->subMenu->system->buildIndex = array('link' => 'Full Text Search|search|buildindex|');
$lang->admin->dividerMenu = ',message,system,';
$lang->convert = new stdclass();
$lang->upgrade = new stdclass();
$lang->action = new stdclass();
+4 -8
View File
@@ -154,16 +154,12 @@ $lang->system->menuOrder[15] = 'calendar';
/* admin menu order. */
$lang->admin->menuOrder[5] = 'index';
$lang->admin->menuOrder[9] = 'company';
$lang->admin->menuOrder[10] = 'message';
$lang->admin->menuOrder[10] = 'model';
$lang->admin->menuOrder[15] = 'custom';
$lang->admin->menuOrder[20] = 'sso';
$lang->admin->menuOrder[20] = 'message';
$lang->admin->menuOrder[25] = 'extension';
$lang->admin->menuOrder[30] = 'dev';
$lang->admin->menuOrder[35] = 'translate';
$lang->admin->menuOrder[40] = 'data';
$lang->admin->menuOrder[45] = 'safe';
$lang->admin->menuOrder[50] = 'system';
$lang->admin->menuOrder[35] = 'dev';
$lang->admin->menuOrder[40] = 'system';
$lang->admin->subMenuOrder = new stdclass();
$lang->admin->subMenuOrder->message[5] = 'mail';
+3 -1
View File
@@ -149,7 +149,7 @@ $lang->mainNav->qa = '<i class="icon icon-test"></i> Test|qa|index|';
$lang->mainNav->repo = '<i class="icon icon-code1"></i> Code|repo|browse|';
$lang->mainNav->doc = '<i class="icon icon-doc"></i> Doc|doc|index|';
$lang->mainNav->report = "<i class='icon icon-statistic'></i> Statistic|report|productsummary|";
$lang->mainNav->system = '<i class="icon icon-menu-users"></i> System|my|team|';
$lang->mainNav->system = '<i class="icon icon-menu-users"></i> System|company|browse|';
$lang->mainNav->admin = '<i class="icon icon-menu-backend"></i> Admin|admin|index|';
if($config->systemMode == 'new') $lang->mainNav->program = "<i class='icon icon-program'></i> Program|$programModule|$programMethod|";
@@ -557,6 +557,8 @@ $lang->admin->subMenu->system->cron = array('link' => 'Cron|cron|index', '
$lang->admin->subMenu->system->timezone = array('link' => 'Timezone|custom|timezone', 'subModule' => 'custom');
$lang->admin->subMenu->system->buildIndex = array('link' => 'Full Text Search|search|buildindex|');
$lang->admin->dividerMenu = ',message,system,';
$lang->convert = new stdclass();
$lang->upgrade = new stdclass();
$lang->action = new stdclass();
+5 -2
View File
@@ -149,7 +149,7 @@ $lang->mainNav->qa = '<i class="icon icon-test"></i> 测试|qa|index|';
$lang->mainNav->repo = '<i class="icon icon-code1"></i> 代码|repo|browse|';
$lang->mainNav->doc = '<i class="icon icon-doc"></i> 文档|doc|index|';
$lang->mainNav->report = "<i class='icon icon-statistic'></i> 统计|report|productSummary|";
$lang->mainNav->system = '<i class="icon icon-group"></i> 组织|my|team|';
$lang->mainNav->system = '<i class="icon icon-group"></i> 组织|company|browse|';
$lang->mainNav->admin = '<i class="icon icon-cog-outline"></i> 后台|admin|index|';
if($config->systemMode == 'new') $lang->mainNav->program = "<i class='icon icon-program'></i> 项目集|$programModule|$programMethod|";
@@ -563,6 +563,8 @@ $lang->admin->subMenu->system->cron = array('link' => '定时|cron|index',
$lang->admin->subMenu->system->timezone = array('link' => '时区|custom|timezone', 'subModule' => 'custom');
$lang->admin->subMenu->system->buildIndex = array('link' => '重建索引|search|buildindex|');
$lang->admin->dividerMenu = ',message,system,';
$lang->convert = new stdclass();
$lang->upgrade = new stdclass();
$lang->action = new stdclass();
@@ -699,6 +701,7 @@ $lang->navGroup->cron = 'admin';
$lang->navGroup->backup = 'admin';
$lang->navGroup->mail = 'admin';
$lang->navGroup->dev = 'admin';
$lang->navGroup->entry = 'admin';
$lang->navGroup->extension = 'admin';
$lang->navGroup->action = 'admin';
$lang->navGroup->search = 'admin';
@@ -967,6 +970,6 @@ $lang->projectstory->menu = new stdclass();
$lang->stakeholder->menu = $lang->scrum->setMenu;
$lang->nc->menu = $lang->auditplan->menu;
$lang->noMenuModule = array('report', 'my', 'todo', 'effort', 'program', 'product', 'execution', 'task', 'build', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
$lang->noMenuModule = array('report', 'my', 'todo', 'effort', 'program', 'product', 'execution', 'task', 'build', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage', 'entry');
include (dirname(__FILE__) . '/menuOrder.php');
-1
View File
@@ -746,7 +746,6 @@ class commonModel extends model
{
$class = $key == $searchObject ? "class='selected'" : '';
if($key == 'program') $key = 'program-product';
if($key == 'project') $key = 'project-index';
if($key == 'deploystep') $key = 'deploy-viewstep';
echo "<li $class><a href='javascript:$.setSearchType(\"$key\");' data-value='{$key}'>{$value}</a></li>";
@@ -55,6 +55,7 @@
</div>
</div>
<script>
$('#navbar li[data-id="custom"]').removeClass('active');
$("input[name='default']").change(function()
{
var checked = $(this).val();
+4 -4
View File
@@ -50,9 +50,9 @@ $lang->dev->tableList['lang'] = 'Sprache';
$lang->dev->tableList['module'] = 'Modul';
$lang->dev->tableList['product'] = $lang->productCommon;
$lang->dev->tableList['productplan'] = $lang->productCommon . 'Plan';
$lang->dev->tableList['project'] = $lang->projectCommon;
$lang->dev->tableList['projectproduct'] = $lang->projectCommon . $lang->productCommon;
$lang->dev->tableList['projectstory'] = $lang->projectCommon . 'Story';
$lang->dev->tableList['project'] = 'Project';
$lang->dev->tableList['projectproduct'] = 'Project' . $lang->productCommon;
$lang->dev->tableList['projectstory'] = 'Project Story';
$lang->dev->tableList['execution'] = $lang->executionCommon;
$lang->dev->tableList['release'] = 'Release';
$lang->dev->tableList['story'] = 'Story';
@@ -121,7 +121,7 @@ $lang->dev->tableList['searchindex'] = 'Search index';
$lang->dev->groupList['my'] = 'Dashboard';
$lang->dev->groupList['program'] = 'Program';
$lang->dev->groupList['product'] = $lang->productCommon;
$lang->dev->groupList['project'] = $lang->projectCommon;
$lang->dev->groupList['project'] = 'project';
$lang->dev->groupList['execution'] = $lang->executionCommon;
$lang->dev->groupList['qa'] = 'QA';
$lang->dev->groupList['doc'] = 'Dok';
+4 -4
View File
@@ -50,9 +50,9 @@ $lang->dev->tableList['lang'] = 'Language';
$lang->dev->tableList['module'] = 'Module';
$lang->dev->tableList['product'] = $lang->productCommon;
$lang->dev->tableList['productplan'] = $lang->productCommon . 'Plan';
$lang->dev->tableList['project'] = $lang->projectCommon;
$lang->dev->tableList['projectproduct'] = $lang->projectCommon . $lang->productCommon;
$lang->dev->tableList['projectstory'] = $lang->projectCommon . 'Story';
$lang->dev->tableList['project'] = 'Project';
$lang->dev->tableList['projectproduct'] = 'Project' . $lang->productCommon;
$lang->dev->tableList['projectstory'] = 'Project Story';
$lang->dev->tableList['execution'] = $lang->executionCommon;
$lang->dev->tableList['release'] = 'Release';
$lang->dev->tableList['story'] = 'Story';
@@ -121,7 +121,7 @@ $lang->dev->tableList['searchindex'] = 'Search index';
$lang->dev->groupList['my'] = 'Dashboard';
$lang->dev->groupList['program'] = 'Program';
$lang->dev->groupList['product'] = $lang->productCommon;
$lang->dev->groupList['project'] = $lang->projectCommon;
$lang->dev->groupList['project'] = 'project';
$lang->dev->groupList['execution'] = $lang->executionCommon;
$lang->dev->groupList['qa'] = 'Test';
$lang->dev->groupList['doc'] = 'Doc';
+4 -4
View File
@@ -50,9 +50,9 @@ $lang->dev->tableList['lang'] = 'Langue';
$lang->dev->tableList['module'] = 'Module';
$lang->dev->tableList['product'] = $lang->productCommon;
$lang->dev->tableList['productplan'] = $lang->productCommon . 'Plan';
$lang->dev->tableList['project'] = $lang->projectCommon;
$lang->dev->tableList['projectproduct'] = $lang->projectCommon . $lang->productCommon;
$lang->dev->tableList['projectstory'] = $lang->projectCommon . 'Story';
$lang->dev->tableList['project'] = 'Project';
$lang->dev->tableList['projectproduct'] = 'Project' . $lang->productCommon;
$lang->dev->tableList['projectstory'] = 'Project';
$lang->dev->tableList['execution'] = $lang->executionCommon;
$lang->dev->tableList['release'] = 'Release';
$lang->dev->tableList['story'] = 'Story';
@@ -121,7 +121,7 @@ $lang->dev->tableList['searchindex'] = 'Search index';
$lang->dev->groupList['my'] = 'Dashboard';
$lang->dev->groupList['program'] = 'Program';
$lang->dev->groupList['product'] = $lang->productCommon;
$lang->dev->groupList['project'] = $lang->projectCommon;
$lang->dev->groupList['project'] = 'Project';
$lang->dev->groupList['execution'] = $lang->executionCommon;
$lang->dev->groupList['qa'] = 'QA';
$lang->dev->groupList['doc'] = 'Doc';
+3 -3
View File
@@ -50,9 +50,9 @@ $lang->dev->tableList['lang'] = 'Ngôn ngữ';
$lang->dev->tableList['module'] = 'Module';
$lang->dev->tableList['product'] = $lang->productCommon;
$lang->dev->tableList['productplan'] = 'Kế hoạch '.$lang->productCommon;
$lang->dev->tableList['project'] = $lang->projectCommon;
$lang->dev->tableList['projectproduct'] = $lang->projectCommon . $lang->productCommon;
$lang->dev->tableList['projectstory'] = $lang->projectCommon . 'Câu chuyện';
$lang->dev->tableList['project'] = 'project';
$lang->dev->tableList['projectproduct'] = 'project' . $lang->productCommon;
$lang->dev->tableList['projectstory'] = 'project Câu chuyện';
$lang->dev->tableList['execution'] = $lang->executionCommon;
$lang->dev->tableList['release'] = 'Phát hành';
$lang->dev->tableList['story'] = 'Câu chuyện';
+4 -4
View File
@@ -50,9 +50,9 @@ $lang->dev->tableList['lang'] = '语言定义';
$lang->dev->tableList['module'] = '模块';
$lang->dev->tableList['product'] = $lang->productCommon;
$lang->dev->tableList['productplan'] = $lang->productCommon . '计划';
$lang->dev->tableList['project'] = $lang->projectCommon;
$lang->dev->tableList['projectproduct'] = $lang->projectCommon . $lang->productCommon;
$lang->dev->tableList['projectstory'] = $lang->projectCommon . $lang->SRCommon;
$lang->dev->tableList['project'] = '项目';
$lang->dev->tableList['projectproduct'] = '项目' . $lang->productCommon;
$lang->dev->tableList['projectstory'] = '项目' . $lang->SRCommon;
$lang->dev->tableList['execution'] = $lang->executionCommon;
$lang->dev->tableList['release'] = '发布';
$lang->dev->tableList['story'] = $lang->SRCommon;
@@ -121,7 +121,7 @@ $lang->dev->tableList['searchindex'] = '搜索索引';
$lang->dev->groupList['my'] = '我的地盘';
$lang->dev->groupList['program'] = '项目集';
$lang->dev->groupList['product'] = $lang->productCommon;
$lang->dev->groupList['project'] = $lang->projectCommon;
$lang->dev->groupList['project'] = '项目';
$lang->dev->groupList['execution'] = $lang->executionCommon;
$lang->dev->groupList['qa'] = '测试';
$lang->dev->groupList['doc'] = '文档';
+7 -5
View File
@@ -555,16 +555,16 @@ class execution extends control
$products = $this->dao->select('t1.product, t2.name')->from(TABLE_PROJECTPRODUCT)->alias('t1')
->leftJoin(TABLE_PRODUCT)->alias('t2')
->on('t1.product = t2.id')
->where('t1.execution')->eq($executionID)
->where('t1.project')->eq($executionID)
->fetchPairs('product');
if(!empty($products))
{
unset($executions);
$executions = $this->dao->select('t1.execution, t2.name')->from(TABLE_PROJECTPRODUCT)->alias('t1')
$executions = $this->dao->select('t1.project, t2.name')->from(TABLE_PROJECTPRODUCT)->alias('t1')
->leftJoin(TABLE_EXECUTION)->alias('t2')
->on('t1.execution = t2.id')
->on('t1.project = t2.id')
->where('t1.product')->in(array_keys($products))
->fetchPairs('execution');
->fetchPairs('project');
}
else
{
@@ -2591,10 +2591,12 @@ class execution extends control
$executionID = $execution->id;
}
$this->session->set('executionList', $this->app->getURI(true));
$projectID = 0;
}
elseif($from == 'project')
{
$this->lang->navGroup->execution = 'project';
$projectID = $this->session->PRJ;
}
/* Load pager and get tasks. */
@@ -2604,7 +2606,7 @@ class execution extends control
$this->view->title = $this->lang->execution->allExecutions;
$this->view->position[] = $this->lang->execution->allExecutions;
$this->view->executionStats = $this->project->getStats($this->session->PRJ, $status, $productID, 0, 30, $orderBy, $pager);
$this->view->executionStats = $this->project->getStats($projectID, $status, $productID, 0, 30, $orderBy, $pager);
$this->view->products = array(0 => $this->lang->product->select) + $this->loadModel('product')->getProductPairsByProject($this->session->PRJ);
$this->view->productID = $productID;
$this->view->executionID = $executionID;
+10 -10
View File
@@ -123,7 +123,7 @@ global $config;
if($config->systemMode == 'new')
{
$lang->execution->aclList['private'] = 'Private (for team members and project stakeholders)';
$lang->execution->aclList['open'] = 'Inherited Project ACL (for who can access the current project)';
$lang->execution->aclList['open'] = 'Inherited Execution ACL (for who can access the current project)';
}
else
{
@@ -235,13 +235,13 @@ $lang->execution->groupFilter['assignedTo']['all'] = $lang->execution->all;
$lang->execution->byQuery = 'Suche';
/* 查询条件列表。*/
$lang->execution->allProject = "Alle {$lang->executionCommon}";
$lang->execution->allExecution = "Alle {$lang->executionCommon}";
$lang->execution->aboveAllProduct = "Alle oberen {$lang->productCommon}";
$lang->execution->aboveAllProject = "Alle oberen {$lang->executionCommon}";
$lang->execution->aboveAllExecution = "Alle oberen {$lang->executionCommon}";
/* 页面提示。*/
$lang->execution->linkStoryByPlanTips = "This action will link all stories in this plan to the {$lang->executionCommon}.";
$lang->execution->selectProject = "Auswahl {$lang->executionCommon}";
$lang->execution->selectExecution = "Auswahl {$lang->executionCommon}";
$lang->execution->selectExecution = "Select Execution";
$lang->execution->beginAndEnd = 'Dauer';
$lang->execution->begin = 'Start';
@@ -262,7 +262,7 @@ $lang->execution->howToUpdateBurn = "<a href='http://api.zentao.net/goto.php
$lang->execution->whyNoStories = "Keine Story kann verknüpft werden. Bitte prüfen Sie ob ein Story mit {$lang->executionCommon} verknüpft ist {$lang->productCommon} und stellen Sie sicher das diese geprüft ist.";
$lang->execution->productStories = "{$lang->executionCommon} verknüpfte Story ist ein Subset von {$lang->productCommon}, welche nur nach überprüfung verknüpft werden kann. Bitte <a href='%s'> Story verknüpfen</a>。";
$lang->execution->haveDraft = "There are %s draft stories can't be linked.";
$lang->execution->doneProjects = 'Erledigt';
$lang->execution->doneExecutions = 'Erledigt';
$lang->execution->selectDept = 'Abteilung wählen';
$lang->execution->selectDeptTitle = 'Abteilung wählen';
$lang->execution->copyTeam = 'Team kopieren';
@@ -270,12 +270,12 @@ $lang->execution->copyFromTeam = "Kopieren von {$lang->executionCommon} T
$lang->execution->noMatched = "$lang->executionCommon mit '%s' konnte nicht gefunden werden.";
$lang->execution->copyTitle = "Wählen Sie ein {$lang->executionCommon} zum Kopieren.";
$lang->execution->copyTeamTitle = "Wählen Sie ein {$lang->executionCommon} Team zum Kopieren.";
$lang->execution->copyNoProject = "{$lang->executionCommon} kann nicht kopiert werden.";
$lang->execution->copyFromProject = "Kopie von {$lang->executionCommon} <strong>%s</strong>";
$lang->execution->copyNoExecution = "{$lang->executionCommon} kann nicht kopiert werden.";
$lang->execution->copyFromExecution = "Kopie von {$lang->executionCommon} <strong>%s</strong>";
$lang->execution->cancelCopy = 'Kopieren abbrechen';
$lang->execution->byPeriod = 'Nach Zeit';
$lang->execution->byUser = 'Nach Benutzer';
$lang->execution->noProject = 'Keine Projekte. ';
$lang->execution->noExecution = 'Keine Projekte. ';
$lang->execution->noMembers = 'Keine Mitglieder. ';
$lang->execution->workloadTotal = "The cumulative workload ratio should not exceed 100, and the total workload under the current product is: %s";
$lang->execution->linkPRJStoryTip = "(Link {$lang->SRCommon} comes from {$lang->SRCommon} linked under the project)";
@@ -285,7 +285,7 @@ $lang->execution->linkAllStoryTip = "({$lang->SRCommon} has never been linke
$lang->execution->confirmDelete = "Möchten Sie {$lang->executionCommon}[%s] löschen?";
$lang->execution->confirmUnlinkMember = "Möchten Sie den Benutzer vom {$lang->executionCommon} entfernen?";
$lang->execution->confirmUnlinkStory = "Möchten Sie die Story vom {$lang->executionCommon} entfernen?";
$lang->execution->confirmUnlinkProjectStory = "Do you want to unlink this Story from the project?";
$lang->execution->confirmUnlinkExecutionStory = "Do you want to unlink this Story from the project?";
$lang->execution->notAllowedUnlinkStory = "This {$lang->SRCommon} is linked to the {$lang->executionCommon} of the project. Remove it from the {$lang->executionCommon}, then try again.";
$lang->execution->notAllowRemoveProducts = "The story of this product is linked with the {$lang->executionCommon}. Unlink it before doing any action.";
$lang->execution->errorNoLinkedProducts = "Kein verknüpftes {$lang->productCommon} in {$lang->executionCommon} gefunden. Sie werden auf die {$lang->productCommon} Seite geleitet.";
@@ -301,7 +301,7 @@ $lang->execution->noweekend = 'Ohne Wochenende';
$lang->execution->withweekend = 'Mit Wochenende';
$lang->execution->interval = 'Intervale ';
$lang->execution->fixFirstWithLeft = 'Modify the left';
$lang->execution->unfinishedProject = "This {$lang->executionCommon} has ";
$lang->execution->unfinishedExecution = "This {$lang->executionCommon} has ";
$lang->execution->unfinishedTask = "[%s] unfinished tasks. ";
$lang->execution->unresolvedBug = "[%s] unresolved bugs. ";
+10 -10
View File
@@ -127,7 +127,7 @@ global $config;
if($config->systemMode == 'new')
{
$lang->execution->aclList['private'] = 'Private (for team members and execution stakeholders)';
$lang->execution->aclList['open'] = 'Inherited Project ACL (for who can access the current execution)';
$lang->execution->aclList['open'] = 'Inherited Execution ACL (for who can access the current execution)';
}
else
{
@@ -239,13 +239,13 @@ $lang->execution->groupFilter['assignedTo']['all'] = 'All';
$lang->execution->byQuery = 'Search';
/* Query condition list. */
$lang->execution->allProject = "All {$lang->executionCommon}s";
$lang->execution->allExecution = "All {$lang->executionCommon}s";
$lang->execution->aboveAllProduct = "All the above {$lang->productCommon}s";
$lang->execution->aboveAllProject = "All the above {$lang->executionCommon}s";
$lang->execution->aboveAllExecution = "All the above {$lang->executionCommon}s";
/* Page prompt. */
$lang->execution->linkStoryByPlanTips = "This action will link all stories in this plan to the {$lang->executionCommon}.";
$lang->execution->selectProject = "Select {$lang->executionCommon}";
$lang->execution->selectExecution = "Select {$lang->executionCommon}";
$lang->execution->selectExecution = "Select Stage/Sprint/Iteration";
$lang->execution->beginAndEnd = 'Duration';
$lang->execution->lblStats = 'Efforts';
@@ -264,7 +264,7 @@ $lang->execution->howToUpdateBurn = "<a href='https://api.zentao.pm/goto.php
$lang->execution->whyNoStories = "No story can be linked. Please check whether there is any story in {$lang->executionCommon} which is linked to {$lang->productCommon} and make sure it has been reviewed.";
$lang->execution->productStories = "Stories linked to {$lang->executionCommon} are the subeset of stories linked to {$lang->productCommon}. Stories can only be linked after they pass the review. <a href='%s'> Link Stories</a> now.";
$lang->execution->haveDraft = "%s stories in draft, so they can't be linked.";
$lang->execution->doneProjects = 'Finished';
$lang->execution->doneExecutions = 'Finished';
$lang->execution->selectDept = 'Select Department';
$lang->execution->selectDeptTitle = 'Select User';
$lang->execution->copyTeam = 'Copy Team';
@@ -272,12 +272,12 @@ $lang->execution->copyFromTeam = "Copy from {$lang->executionCommon} Team
$lang->execution->noMatched = "No $lang->executionCommon including '%s'can be found.";
$lang->execution->copyTitle = "Choose a {$lang->executionCommon} to copy.";
$lang->execution->copyTeamTitle = "Choose a {$lang->executionCommon} Team to copy.";
$lang->execution->copyNoProject = "No {$lang->executionCommon} can be copied.";
$lang->execution->copyFromProject = "Copy from {$lang->executionCommon} <strong>%s</strong>";
$lang->execution->copyNoExecution = "No {$lang->executionCommon} can be copied.";
$lang->execution->copyFromExecution = "Copy from {$lang->executionCommon} <strong>%s</strong>";
$lang->execution->cancelCopy = 'Cancel Copy';
$lang->execution->byPeriod = 'By Time';
$lang->execution->byUser = 'By User';
$lang->execution->noProject = "No {$lang->executionCommon}. ";
$lang->execution->noExecution = "No {$lang->executionCommon}. ";
$lang->execution->noMembers = 'No team members yet. ';
$lang->execution->workloadTotal = "The cumulative workload ratio should not exceed 100, and the total workload under the current product is: %s";
$lang->execution->linkPRJStoryTip = "(Link {$lang->SRCommon} comes from {$lang->SRCommon} linked under the execution)";
@@ -287,7 +287,7 @@ $lang->execution->linkAllStoryTip = "({$lang->SRCommon} has never been linke
$lang->execution->confirmDelete = "Do you want to delete the {$lang->executionCommon}[%s]?";
$lang->execution->confirmUnlinkMember = "Do you want to unlink this User from {$lang->executionCommon}?";
$lang->execution->confirmUnlinkStory = "Do you want to unlink this Story from {$lang->executionCommon}?";
$lang->execution->confirmUnlinkProjectStory = "Do you want to unlink this Story from the execution?";
$lang->execution->confirmUnlinkExecutionStory = "Do you want to unlink this Story from the execution?";
$lang->execution->notAllowedUnlinkStory = "This {$lang->SRCommon} is linked to the {$lang->executionCommon} of the execution. Remove it from the {$lang->executionCommon}, then try again.";
$lang->execution->notAllowRemoveProducts = "The story of this product is linked with the {$lang->executionCommon}. Unlink it before doing any action.";
$lang->execution->errorNoLinkedProducts = "No {$lang->productCommon} is linked to {$lang->executionCommon}. You will be directed to {$lang->productCommon} page to link one.";
@@ -303,7 +303,7 @@ $lang->execution->noweekend = 'Exclude Weekend';
$lang->execution->withweekend = 'Include Weekend';
$lang->execution->interval = 'Intervals ';
$lang->execution->fixFirstWithLeft = 'Update hours left too';
$lang->execution->unfinishedProject = "This {$lang->executionCommon} has ";
$lang->execution->unfinishedExecution = "This {$lang->executionCommon} has ";
$lang->execution->unfinishedTask = "[%s] unfinished tasks. ";
$lang->execution->unresolvedBug = "[%s] unresolved bugs. ";
+10 -10
View File
@@ -123,7 +123,7 @@ global $config;
if($config->systemMode == 'new')
{
$lang->execution->aclList['private'] = 'Private (for team members and project stakeholders)';
$lang->execution->aclList['open'] = 'Inherited Project ACL (for who can access the current project)';
$lang->execution->aclList['open'] = 'Inherited Execution ACL (for who can access the current project)';
}
else
{
@@ -235,13 +235,13 @@ $lang->execution->groupFilter['assignedTo']['all'] = 'Toutes';
$lang->execution->byQuery = 'Recherche';
/* 查询条件列表。*/
$lang->execution->allProject = "Tous les {$lang->executionCommon}s";
$lang->execution->allExecution = "Tous les {$lang->executionCommon}s";
$lang->execution->aboveAllProduct = "Tous les {$lang->productCommon}s dépendants";
$lang->execution->aboveAllProject = "Tous les {$lang->executionCommon}s dépendants";
$lang->execution->aboveAllExecution = "Tous les {$lang->executionCommon}s dépendants";
/* 页面提示。*/
$lang->execution->linkStoryByPlanTips = "Cette action va lier toutes les stories incluses dans le plan à ce {$lang->executionCommon}.";
$lang->execution->selectProject = "Sélectionner {$lang->executionCommon}";
$lang->execution->selectExecution = "Sélectionner {$lang->executionCommon}";
$lang->execution->selectExecution = "Select Execution";
$lang->execution->beginAndEnd = 'Durée';
$lang->execution->begin = 'Début';
@@ -262,7 +262,7 @@ $lang->execution->howToUpdateBurn = "<a href='https://api.zentao.pm/goto.php
$lang->execution->whyNoStories = "Aucune story ne peut être associée. Vérifiez s'il existe des stories dans {$lang->executionCommon} qui sont associées à {$lang->productCommon} et vérifiez qu'elles ont bien été validées.";
$lang->execution->productStories = "Les stories associées au {$lang->executionCommon} sont une portion des stories associées au {$lang->productCommon}. Les stories ne peuvent être associées à un {$lang->executionCommon} qu'après avoir été validées. <a href='%s'> Associer Stories</a> maintenant.";
$lang->execution->haveDraft = "%s stories sont encore en conception, elles ne peuvent pas être associées au {$lang->executionCommon} actuellement.";
$lang->execution->doneProjects = 'Terminé';
$lang->execution->doneExecutions = 'Terminé';
$lang->execution->selectDept = 'Sélection Compartiment';
$lang->execution->selectDeptTitle = 'Sélection Utilisateur';
$lang->execution->copyTeam = 'Copier Equipe';
@@ -270,12 +270,12 @@ $lang->execution->copyFromTeam = "Copié de l'Equipe {$lang->executionCom
$lang->execution->noMatched = "Aucun $lang->executionCommon inclus '%s' ne peut être trouvé.";
$lang->execution->copyTitle = "Choisissez un {$lang->executionCommon} à copier.";
$lang->execution->copyTeamTitle = "Choisissez une Equipe {$lang->executionCommon} à copier.";
$lang->execution->copyNoProject = "Aucun {$lang->executionCommon} ne peut être copié.";
$lang->execution->copyFromProject = "Copié du {$lang->executionCommon} <strong>%s</strong>";
$lang->execution->copyNoExecution = "Aucun {$lang->executionCommon} ne peut être copié.";
$lang->execution->copyFromExecution = "Copié du {$lang->executionCommon} <strong>%s</strong>";
$lang->execution->cancelCopy = 'Annuler la copie';
$lang->execution->byPeriod = 'Par Temps';
$lang->execution->byUser = 'Par Utilisateur';
$lang->execution->noProject = "Aucun {$lang->executionCommon}. ";
$lang->execution->noExecution = "Aucun {$lang->executionCommon}. ";
$lang->execution->noMembers = "Actuellement il n'y a aucun membre dans l'équipe. On ne va pas aller loin... ";
$lang->execution->workloadTotal = "The cumulative workload ratio should not exceed 100, and the total workload under the current product is: %s";
$lang->execution->linkPRJStoryTip = "(Link {$lang->SRCommon} comes from {$lang->SRCommon} linked under the project)";
@@ -285,7 +285,7 @@ $lang->execution->linkAllStoryTip = "({$lang->SRCommon} has never been linke
$lang->execution->confirmDelete = "Voulez-vous réellement supprimer le {$lang->executionCommon}[%s] ?";
$lang->execution->confirmUnlinkMember = "Voulez-vous retirer cet utilisateur du {$lang->executionCommon} ?";
$lang->execution->confirmUnlinkStory = "Voulez-vous retirer cette Story du {$lang->executionCommon} ?";
$lang->execution->confirmUnlinkProjectStory = "Do you want to unlink this Story from the project?";
$lang->execution->confirmUnlinkExecutionStory = "Do you want to unlink this Story from the project?";
$lang->execution->notAllowedUnlinkStory = "This {$lang->SRCommon} is linked to the {$lang->executionCommon} of the project. Remove it from the {$lang->executionCommon}, then try again.";
$lang->execution->notAllowRemoveProducts = "The story of this product is linked with the {$lang->executionCommon}. Unlink it before doing any action.";
$lang->execution->errorNoLinkedProducts = "Aucun {$lang->productCommon} n'est associé à ce {$lang->executionCommon}. Vous allez être redirigé vers la page {$lang->productCommon} pour en associer un.";
@@ -301,7 +301,7 @@ $lang->execution->noweekend = 'Exclure les Weekends';
$lang->execution->withweekend = 'Inclure les Weekends';
$lang->execution->interval = 'Intervalles';
$lang->execution->fixFirstWithLeft = 'Mettre à jour les heures également';
$lang->execution->unfinishedProject = "This {$lang->executionCommon} has ";
$lang->execution->unfinishedExecution = "This {$lang->executionCommon} has ";
$lang->execution->unfinishedTask = "[%s] unfinished tasks. ";
$lang->execution->unresolvedBug = "[%s] unresolved bugs. ";
+10 -10
View File
@@ -123,7 +123,7 @@ global $config;
if($config->systemMode == 'new')
{
$lang->execution->aclList['private'] = 'Private (for team members and project stakeholders)';
$lang->execution->aclList['open'] = 'Inherited Project ACL (for who can access the current project)';
$lang->execution->aclList['open'] = 'Inherited Execution ACL (for who can access the current project)';
}
else
{
@@ -235,13 +235,13 @@ $lang->execution->groupFilter['assignedTo']['all'] = 'Tất cả';
$lang->execution->byQuery = 'Tìm kiếm';
/* Query condition list. */
$lang->execution->allProject = "Tất cả {$lang->executionCommon}";
$lang->execution->allExecution = "Tất cả {$lang->executionCommon}";
$lang->execution->aboveAllProduct = "Tất cả {$lang->productCommon} trên";
$lang->execution->aboveAllProject = "Tất cả {$lang->executionCommon} trên";
$lang->execution->aboveAllExecution = "Tất cả {$lang->executionCommon} trên";
/* Page prompt. */
$lang->execution->linkStoryByPlanTips = "Hành động này sẽ liên kết tất cả câu chuyện trong kế hoạch này tới {$lang->executionCommon} này.";
$lang->execution->selectProject = "Chọn {$lang->executionCommon}";
$lang->execution->selectExecution = "Chọn {$lang->executionCommon}";
$lang->execution->selectExecution = "Select Execution";
$lang->execution->beginAndEnd = 'Thời gian';
$lang->execution->begin = 'Bắt đầu';
@@ -262,7 +262,7 @@ $lang->execution->howToUpdateBurn = "<a href='https://api.zentao.pm/goto.php
$lang->execution->whyNoStories = "Không có câu chuyện có thể liên kết. Vui lòng kiểm tra có câu chuyện trong {$lang->executionCommon} cái liên kết tới {$lang->productCommon} và chắc chắn nó đã được duyệt.";
$lang->execution->productStories = "Câu chuyện liên kết tới {$lang->executionCommon} là tập hợp con của câu chuyện liên kết tới {$lang->productCommon}. Các câu chuyện chỉ có thể liên kết sau khi chúng đã được duyệt. <a href='%s'> Liên kết câu chuyện</a> now.";
$lang->execution->haveDraft = "%s câu chuyện đang nháp, bởi vậy chúng không thể liên kết.";
$lang->execution->doneProjects = 'Kết thúc';
$lang->execution->doneExecutions = 'Kết thúc';
$lang->execution->selectDept = 'Chọn phòng/ban';
$lang->execution->selectDeptTitle = 'Chọn người dùng';
$lang->execution->copyTeam = 'Copy đội nhóm';
@@ -270,12 +270,12 @@ $lang->execution->copyFromTeam = "Sao chép từ {$lang->executionCommon}
$lang->execution->noMatched = "Không có $lang->executionCommon bao gồm '%s' có thể được tìm thấy.";
$lang->execution->copyTitle = "Chọn một {$lang->executionCommon} để sao chép.";
$lang->execution->copyTeamTitle = "Chọn một {$lang->executionCommon} đội nhóm để sao chép.";
$lang->execution->copyNoProject = "Không có {$lang->executionCommon} có thể sao chép.";
$lang->execution->copyFromProject = "Sao chép từ {$lang->executionCommon} <strong>%s</strong>";
$lang->execution->copyNoExecution = "Không có {$lang->executionCommon} có thể sao chép.";
$lang->execution->copyFromExecution = "Sao chép từ {$lang->executionCommon} <strong>%s</strong>";
$lang->execution->cancelCopy = 'Hủy sao chép';
$lang->execution->byPeriod = 'Theo thời gian';
$lang->execution->byUser = 'Theo người dùng';
$lang->execution->noProject = "Không có {$lang->executionCommon} nào";
$lang->execution->noExecution = "Không có {$lang->executionCommon} nào";
$lang->execution->noMembers = 'Không có thành viên đội nhóm nào';
$lang->execution->workloadTotal = "The cumulative workload ratio should not exceed 100, and the total workload under the current product is: %s";
$lang->execution->linkPRJStoryTip = "(Link {$lang->SRCommon} comes from {$lang->SRCommon} linked under the project)";
@@ -285,7 +285,7 @@ $lang->execution->linkAllStoryTip = "({$lang->SRCommon} has never been linke
$lang->execution->confirmDelete = "Bạn có muốn xóa {$lang->executionCommon}[%s] này?";
$lang->execution->confirmUnlinkMember = "Bạn có muốn hủy liên kết người dùng này từ {$lang->executionCommon}?";
$lang->execution->confirmUnlinkStory = "Bạn có muốn hủy liên kết câu chuyện này từ {$lang->executionCommon}?";
$lang->execution->confirmUnlinkProjectStory = "Do you want to unlink this Story from the project?";
$lang->execution->confirmUnlinkExecutionStory = "Do you want to unlink this Story from the project?";
$lang->execution->notAllowedUnlinkStory = "This {$lang->SRCommon} is linked to the {$lang->executionCommon} of the project. Remove it from the {$lang->executionCommon}, then try again.";
$lang->execution->notAllowRemoveProducts = "The story of this product is linked with the {$lang->executionCommon}. Unlink it before doing any action.";
$lang->execution->errorNoLinkedProducts = "Không có {$lang->productCommon} liên kết tới {$lang->executionCommon}. Bạn sẽ được chuyển tới trang {$lang->productCommon} để liên kết.";
@@ -301,7 +301,7 @@ $lang->execution->noweekend = 'Không gồm cuối tuần';
$lang->execution->withweekend = 'Bao gồm cuối tuần';
$lang->execution->interval = 'Intervals ';
$lang->execution->fixFirstWithLeft = 'Cập nhật cả giờ còn lại';
$lang->execution->unfinishedProject = "This {$lang->executionCommon} has ";
$lang->execution->unfinishedExecution = "This {$lang->executionCommon} has ";
$lang->execution->unfinishedTask = "[%s] unfinished tasks. ";
$lang->execution->unresolvedBug = "[%s] unresolved bugs. ";
+9 -9
View File
@@ -240,13 +240,13 @@ $lang->execution->groupFilter['assignedTo']['all'] = '所有';
$lang->execution->byQuery = '搜索';
/* 查询条件列表。*/
$lang->execution->allProject = "所有{$lang->executionCommon}";
$lang->execution->allExecution = "所有{$lang->executionCommon}";
$lang->execution->aboveAllProduct = "以上所有{$lang->productCommon}";
$lang->execution->aboveAllProject = "以上所有{$lang->executionCommon}";
$lang->execution->aboveAllExecution = "以上所有{$lang->executionCommon}";
/* 页面提示。*/
$lang->execution->linkStoryByPlanTips = "此操作会将所选计划下面的{$lang->SRCommon}全部关联到此{$lang->executionCommon}";
$lang->execution->selectProject = "请选择{$lang->executionCommon}";
$lang->execution->selectExecution = "请选择{$lang->executionCommon}";
$lang->execution->selectExecution = "请选择阶段/迭代/冲刺";
$lang->execution->beginAndEnd = '起止时间';
$lang->execution->lblStats = '工时统计';
@@ -265,7 +265,7 @@ $lang->execution->howToUpdateBurn = "<a href='https://api.zentao.net/goto.ph
$lang->execution->whyNoStories = "看起来没有{$lang->SRCommon}可以关联。请检查下{$lang->executionCommon}关联的{$lang->productCommon}中有没有{$lang->SRCommon},而且要确保它们已经审核通过。";
$lang->execution->productStories = "{$lang->executionCommon}关联的{$lang->SRCommon}{$lang->productCommon}{$lang->SRCommon}的子集,并且只有评审通过的{$lang->SRCommon}才能关联。请<a href='%s'>关联{$lang->SRCommon}</a>。";
$lang->execution->haveDraft = "有%s条草稿状态的{$lang->SRCommon}无法关联到该{$lang->executionCommon}";
$lang->execution->doneProjects = '已结束';
$lang->execution->doneExecutions = '已结束';
$lang->execution->selectDept = '选择部门';
$lang->execution->selectDeptTitle = '选择一个部门的成员';
$lang->execution->copyTeam = '复制团队';
@@ -273,12 +273,12 @@ $lang->execution->copyFromTeam = "复制自{$lang->executionCommon}团队
$lang->execution->noMatched = "找不到包含'%s'的$lang->executionCommon";
$lang->execution->copyTitle = "请选择一个{$lang->executionCommon}来复制";
$lang->execution->copyTeamTitle = "选择一个{$lang->executionCommon}团队来复制";
$lang->execution->copyNoProject = "没有可用的{$lang->executionCommon}来复制";
$lang->execution->copyFromProject = "复制自{$lang->executionCommon} <strong>%s</strong>";
$lang->execution->copyNoExecution = "没有可用的{$lang->executionCommon}来复制";
$lang->execution->copyFromExecution = "复制自{$lang->executionCommon} <strong>%s</strong>";
$lang->execution->cancelCopy = '取消复制';
$lang->execution->byPeriod = '按时间段';
$lang->execution->byUser = '按用户';
$lang->execution->noProject = "暂时没有{$lang->executionCommon}";
$lang->execution->noExecution = "暂时没有{$lang->executionCommon}";
$lang->execution->noMembers = '暂时没有团队成员。';
$lang->execution->workloadTotal = "工作量占比累计不应当超过100, 当前产品下的工作量之和为%s";
$lang->execution->linkPRJStoryTip = "(关联{$lang->SRCommon}来源于项目下所关联的{$lang->SRCommon})";
@@ -288,7 +288,7 @@ $lang->execution->linkAllStoryTip = "(项目下还未关联{$lang->SRCommon}
$lang->execution->confirmDelete = "您确定删除{$lang->executionCommon}[%s]吗?";
$lang->execution->confirmUnlinkMember = "您确定从该{$lang->executionCommon}中移除该用户吗?";
$lang->execution->confirmUnlinkStory = "您确定从该{$lang->executionCommon}中移除该{$lang->SRCommon}吗?";
$lang->execution->confirmUnlinkProjectStory = "您确定从该项目中移除该{$lang->SRCommon}吗?";
$lang->execution->confirmUnlinkExecutionStory = "您确定从该项目中移除该{$lang->SRCommon}吗?";
$lang->execution->notAllowedUnlinkStory = "{$lang->SRCommon}已经与项目下{$lang->executionCommon}相关联,请从{$lang->executionCommon}中移除后再操作。";
$lang->execution->notAllowRemoveProducts = "{$lang->productCommon}中的{$lang->SRCommon}已与该{$lang->executionCommon}进行了关联,请取消关联后再操作。";
$lang->execution->errorNoLinkedProducts = "{$lang->executionCommon}没有关联的{$lang->productCommon},系统将转到{$lang->productCommon}关联页面";
@@ -304,7 +304,7 @@ $lang->execution->noweekend = '去除周末';
$lang->execution->withweekend = '显示周末';
$lang->execution->interval = '间隔';
$lang->execution->fixFirstWithLeft = '修改剩余工时';
$lang->execution->unfinishedProject = "{$lang->executionCommon}下还有";
$lang->execution->unfinishedExecution = "{$lang->executionCommon}下还有";
$lang->execution->unfinishedTask = "[%s]个未完成的任务,";
$lang->execution->unresolvedBug = "[%s]个未解决的bug";
+7 -4
View File
@@ -896,6 +896,8 @@ class executionModel extends model
*/
public function getSwitcher($executionID, $currentModule, $currentMethod)
{
if($currentMethod == 'index' or $currentMethod == 'all') return;
$this->session->set('moreExecutionLink', $this->app->getURI(true));
$currentExecutionName = $this->lang->execution->common;
@@ -906,7 +908,7 @@ class executionModel extends model
}
$dropMenuLink = helper::createLink('execution', 'ajaxGetDropMenu', "objectID=$executionID&module=$currentModule&method=$currentMethod&extra=");
$output = "<div class='btn-group header-angle-btn' id='swapper'><button data-toggle='dropdown' type='button' class='btn' id='currentItem' title='{$currentExecutionName}'><span class='text'><i class='icon icon-project'></i> {$currentExecutionName}</span> <span class='caret'></span></button><div id='dropMenu' class='dropdown-menu search-list' data-ride='searchList' data-url='$dropMenuLink'>";
$output = "<div class='btn-group header-angle-btn' id='swapper'><button data-toggle='dropdown' type='button' class='btn' id='currentItem' title='{$currentExecutionName}'><span class='text'>{$currentExecutionName}</span> <span class='caret'></span></button><div id='dropMenu' class='dropdown-menu search-list' data-ride='searchList' data-url='$dropMenuLink'>";
$output .= '<div class="input-control search-box has-icon-left has-icon-right search-example"><input type="search" class="form-control search-input" /><label class="input-control-icon-left search-icon"><i class="icon icon-search"></i></label><a class="input-control-icon-right search-clear-btn"><i class="icon icon-close icon-sm"></i></a></div>';
$output .= "</div></div>";
@@ -2041,7 +2043,7 @@ class executionModel extends model
$data->order = ++$lastOrder;
$this->dao->insert(TABLE_PROJECTSTORY)->data($data)->exec();
$this->story->setStage($storyID);
$action = $executionID == $this->session->PRJ ? 'linked2prj' : 'linked2execution';
$action = $executionID == $this->session->PRJ ? 'linked2project' : 'linked2execution';
$this->action->create('story', $storyID, $action, '', $executionID);
}
}
@@ -2117,7 +2119,8 @@ class executionModel extends model
}
$this->loadModel('story')->setStage($storyID);
$this->loadModel('action')->create('story', $storyID, 'unlinkedfromexecution', '', $executionID);
$objectType = $executionID == $this->session->PRJ ? unlinkedfromproject : unlinkedfromexecution;
$this->loadModel('action')->create('story', $storyID, $objectType, '', $executionID);
$tasks = $this->dao->select('id')->from(TABLE_TASK)->where('story')->eq($storyID)->andWhere('execution')->eq($executionID)->andWhere('status')->in('wait,doing')->fetchPairs('id');
foreach($tasks as $taskID)
@@ -3540,7 +3543,7 @@ class executionModel extends model
$productpairs = $this->dao->select('t1.project, t2.name')->from(TABLE_PROJECTPRODUCT)->alias('t1')
->leftJoin(TABLE_PRODUCT)->alias('t2')->on('t1.product=t2.id')
->where('t1.project')->in($stageIdList)
->fetchPairs('execution', 'name');
->fetchPairs('project', 'name');
return $productpairs;
}
}
@@ -50,7 +50,7 @@ foreach($executions as $execution)
</div>
<div class="col-footer">
<?php echo html::a(helper::createLink('execution', 'all'), '<i class="icon icon-cards-view muted"></i> ' . $lang->execution->all, '', 'class="not-list-item"'); ?>
<a class='pull-right toggle-right-col not-list-item'><?php echo $lang->execution->doneProjects?><i class='icon icon-angle-right'></i></a>
<a class='pull-right toggle-right-col not-list-item'><?php echo $lang->execution->doneExecutions;?><i class='icon icon-angle-right'></i></a>
</div>
</div>
<div class="table-col col-right">
+14 -12
View File
@@ -269,17 +269,19 @@ if($config->systemMode == 'new')
/* Project Story. */
$lang->resource->projectstory = new stdclass();
$lang->resource->projectstory->story = 'story';
$lang->resource->projectstory->track = 'track';
$lang->resource->projectstory->view = 'view';
$lang->resource->projectstory->linkStory = 'linkStory';
$lang->resource->projectstory->unlinkStory = 'unlinkStory';
$lang->resource->projectstory->story = 'story';
$lang->resource->projectstory->track = 'track';
$lang->resource->projectstory->view = 'view';
$lang->resource->projectstory->linkStory = 'linkStory';
$lang->resource->projectstory->unlinkStory = 'unlinkStory';
$lang->resource->projectstory->importplanstories = 'importplanstories';
$lang->projectstory->methodOrder[5] = 'story';
$lang->projectstory->methodOrder[10] = 'track';
$lang->projectstory->methodOrder[15] = 'view';
$lang->projectstory->methodOrder[20] = 'linkStory';
$lang->projectstory->methodOrder[25] = 'unlinkStory';
$lang->projectstory->methodOrder[23] = 'importplanstories';
/* Release. */
$lang->resource->projectbuild = new stdclass();
@@ -1217,15 +1219,15 @@ $lang->tree->methodOrder[30] = 'delete';
/* Report. */
$lang->resource->report = new stdclass();
$lang->resource->report->index = 'index';
$lang->resource->report->projectDeviation = 'projectDeviation';
$lang->resource->report->productSummary = 'productSummary';
$lang->resource->report->bugCreate = 'bugCreate';
$lang->resource->report->bugAssign = 'bugAssign';
$lang->resource->report->workload = 'workload';
$lang->resource->report->index = 'index';
$lang->resource->report->executionDeviation = 'executionDeviation';
$lang->resource->report->productSummary = 'productSummary';
$lang->resource->report->bugCreate = 'bugCreate';
$lang->resource->report->bugAssign = 'bugAssign';
$lang->resource->report->workload = 'workload';
$lang->report->methodOrder[0] = 'index';
$lang->report->methodOrder[5] = 'projectDeviation';
$lang->report->methodOrder[5] = 'executionDeviation';
$lang->report->methodOrder[10] = 'productSummary';
$lang->report->methodOrder[15] = 'bugCreate';
$lang->report->methodOrder[20] = 'workload';
+2 -3
View File
@@ -678,9 +678,8 @@ function changeSearchObject()
if(searchObjectList.indexOf(',' + searchType + ',') == -1) var searchType = 'bug';
if(searchType == 'program') var searchType = 'program-pgmproduct';
if(searchType == 'project') var searchType = 'program-index';
if(searchType == 'execution') var searchType = 'project-view';
if(searchType == 'program') var searchType = 'program-product';
if(searchType == 'deploystep') var searchType = 'deploy-viewstep';
$("#searchType").val(searchType);
return searchType;
+4 -1
View File
@@ -212,7 +212,6 @@ class product extends control
$product = $this->product->getById($productID);
/* Get stories. */
$stories = $this->product->getStories($productID, $branch, $browseType, $queryID, $moduleID, $storyType, $sort, $pager);
if($this->app->rawModule == 'projectstory')
{
if(!empty($product)) $this->session->set('currentProductType', $product->type);
@@ -222,6 +221,10 @@ class product extends control
if($browseType == 'bybranch') $param = $branch;
$stories = $this->story->getExecutionStories($this->session->PRJ, $productID, $branch, $sort, $browseType, $param, 'story', '', $pager);
}
else
{
$stories = $this->product->getStories($productID, $branch, $browseType, $queryID, $moduleID, $storyType, $sort, $pager);
}
/* Process the sql, get the conditon partion, save it to session. */
$this->loadModel('common')->saveQueryCondition($this->dao->get(), 'story', $browseType != 'bysearch' && $this->app->rawModule != 'projectstory');
+3 -1
View File
@@ -155,6 +155,7 @@ $isProjectStory = $this->app->rawModule == 'projectstory';
}
?>
</li>
<?php if(!empty($productID)): ?>
<?php $batchDisabled = common::hasPriv('story', 'batchCreate') ? '' : "class='disabled'";?>
<li <?php echo $batchDisabled;?>>
<?php
@@ -163,6 +164,7 @@ $isProjectStory = $this->app->rawModule == 'projectstory';
echo html::a($batchLink, $lang->story->batchCreate, '', "data-group='$openApp'");
?>
</li>
<?php endif;?>
</ul>
</div>
<?php $isShow = $isProjectStory ? '' : "style='display: none;'";?>
@@ -180,7 +182,7 @@ $isProjectStory = $this->app->rawModule == 'projectstory';
echo '</button>';
echo "<ul class='dropdown-menu pull-right' id='linkActionMenu'>";
if(common::hasPriv('projectstory', 'linkStory')) echo '<li>' . html::a($this->createLink('projectstory', 'linkStory', "project={$this->session->PRJ}"), $lang->execution->linkStory). "</li>";
if(common::hasPriv('project', 'importPlanStories')) echo '<li>' . html::a('#linkStoryByPlan', $lang->execution->linkStoryByPlan, '', 'data-toggle="modal"') . "</li>";
if(common::hasPriv('project', 'importPlanStories') and !empty($productID)) echo '<li>' . html::a('#linkStoryByPlan', $lang->execution->linkStoryByPlan, '', 'data-toggle="modal"') . "</li>";
echo '</ul>';
}
?>
+2 -1
View File
@@ -1439,7 +1439,8 @@ class projectModel extends model
if(empty($productID))
{
$executions = $this->dao->select('*')->from(TABLE_EXECUTION)
->where('project')->eq($projectID)
->where('type')->in('sprint,stage')
->beginIF($projectID != 0)->andWhere('project')->eq($projectID)->fi()
->beginIF($status == 'undone')->andWhere('status')->notIN('done,closed')->fi()
->beginIF($status != 'all' and $status != 'undone')->andWhere('status')->eq($status)->fi()
->beginIF(!$this->app->user->admin)->andWhere('id')->in($this->app->user->view->sprints)->fi()
+8 -7
View File
@@ -1,11 +1,12 @@
<?php
$lang->projectstory->common = "Project {$lang->SRCommon}";
$lang->projectstory->index = "{$lang->SRCommon} Home";
$lang->projectstory->view = "{$lang->SRCommon} Detail";
$lang->projectstory->story = "{$lang->SRCommon} List";
$lang->projectstory->track = 'Tracking Matrix';
$lang->projectstory->linkStory = 'Linked' . $lang->SRCommon;
$lang->projectstory->unlinkStory = 'Unlinked' . $lang->SRCommon;
$lang->projectstory->common = "Project {$lang->SRCommon}";
$lang->projectstory->index = "{$lang->SRCommon} Home";
$lang->projectstory->view = "{$lang->SRCommon} Detail";
$lang->projectstory->story = "{$lang->SRCommon} List";
$lang->projectstory->track = 'Tracking Matrix';
$lang->projectstory->linkStory = 'Linked' . $lang->SRCommon;
$lang->projectstory->unlinkStory = 'Unlinked' . $lang->SRCommon;
$lang->projectstory->importplanstories = 'Linked by plan' . $lang->SRCommon;
global $app;
$app->loadLang('product');
+8 -7
View File
@@ -1,11 +1,12 @@
<?php
$lang->projectstory->common = "Project {$lang->SRCommon}";
$lang->projectstory->index = "{$lang->SRCommon} Home";
$lang->projectstory->view = "{$lang->SRCommon} Detail";
$lang->projectstory->story = "{$lang->SRCommon} List";
$lang->projectstory->track = 'Tracking Matrix';
$lang->projectstory->linkStory = 'Linked' . $lang->SRCommon;
$lang->projectstory->unlinkStory = 'Unlinked' . $lang->SRCommon;
$lang->projectstory->common = "Project {$lang->SRCommon}";
$lang->projectstory->index = "{$lang->SRCommon} Home";
$lang->projectstory->view = "{$lang->SRCommon} Detail";
$lang->projectstory->story = "{$lang->SRCommon} List";
$lang->projectstory->track = 'Tracking Matrix';
$lang->projectstory->linkStory = 'Linked' . $lang->SRCommon;
$lang->projectstory->unlinkStory = 'Unlinked' . $lang->SRCommon;
$lang->projectstory->importplanstories = 'Linked by plan' . $lang->SRCommon;
global $app;
$app->loadLang('product');
+8 -7
View File
@@ -1,11 +1,12 @@
<?php
$lang->projectstory->common = "Project {$lang->SRCommon}";
$lang->projectstory->index = "{$lang->SRCommon} Home";
$lang->projectstory->view = "{$lang->SRCommon} Detail";
$lang->projectstory->story = "{$lang->SRCommon} List";
$lang->projectstory->track = 'Tracking Matrix';
$lang->projectstory->linkStory = 'Linked' . $lang->SRCommon;
$lang->projectstory->unlinkStory = 'Unlinked' . $lang->SRCommon;
$lang->projectstory->common = "Project {$lang->SRCommon}";
$lang->projectstory->index = "{$lang->SRCommon} Home";
$lang->projectstory->view = "{$lang->SRCommon} Detail";
$lang->projectstory->story = "{$lang->SRCommon} List";
$lang->projectstory->track = 'Tracking Matrix';
$lang->projectstory->linkStory = 'Linked' . $lang->SRCommon;
$lang->projectstory->unlinkStory = 'Unlinked' . $lang->SRCommon;
$lang->projectstory->importplanstories = 'Linked by plan' . $lang->SRCommon;
global $app;
$app->loadLang('product');
+8 -7
View File
@@ -1,11 +1,12 @@
<?php
$lang->projectstory->common = "Project {$lang->SRCommon}";
$lang->projectstory->index = "{$lang->SRCommon} Home";
$lang->projectstory->view = "{$lang->SRCommon} Detail";
$lang->projectstory->story = "{$lang->SRCommon} List";
$lang->projectstory->track = 'Tracking Matrix';
$lang->projectstory->linkStory = 'Linked' . $lang->SRCommon;
$lang->projectstory->unlinkStory = 'Unlinked' . $lang->SRCommon;
$lang->projectstory->common = "Project {$lang->SRCommon}";
$lang->projectstory->index = "{$lang->SRCommon} Home";
$lang->projectstory->view = "{$lang->SRCommon} Detail";
$lang->projectstory->story = "{$lang->SRCommon} List";
$lang->projectstory->track = 'Tracking Matrix';
$lang->projectstory->linkStory = 'Linked' . $lang->SRCommon;
$lang->projectstory->unlinkStory = 'Unlinked' . $lang->SRCommon;
$lang->projectstory->importplanstories = 'Linked by plan' . $lang->SRCommon;
global $app;
$app->loadLang('product');
+8 -7
View File
@@ -1,11 +1,12 @@
<?php
$lang->projectstory->common = "项目{$lang->SRCommon}";
$lang->projectstory->index = "{$lang->SRCommon}主页";
$lang->projectstory->view = "{$lang->SRCommon}详情";
$lang->projectstory->story = "{$lang->SRCommon}列表";
$lang->projectstory->track = '矩阵';
$lang->projectstory->linkStory = '关联' . $lang->SRCommon;
$lang->projectstory->unlinkStory = '移除' . $lang->SRCommon;
$lang->projectstory->common = "项目{$lang->SRCommon}";
$lang->projectstory->index = "{$lang->SRCommon}主页";
$lang->projectstory->view = "{$lang->SRCommon}详情";
$lang->projectstory->story = "{$lang->SRCommon}列表";
$lang->projectstory->track = '矩阵';
$lang->projectstory->linkStory = '关联' . $lang->SRCommon;
$lang->projectstory->unlinkStory = '移除' . $lang->SRCommon;
$lang->projectstory->importplanstories = '按计划关联' . $lang->SRCommon;
global $app;
$app->loadLang('product');
+2 -2
View File
@@ -140,7 +140,7 @@ class story extends control
if($executionID != 0)
{
if($executionID != $this->session->PRJ) $this->loadModel('action')->create('story', $storyID, 'linked2project', '', $executionID);
$this->loadModel('action')->create('story', $storyID, 'linked2prj', '', $this->session->PRJ);
$this->loadModel('action')->create('story', $storyID, 'linked2project', '', $this->session->PRJ);
}
if($todoID > 0)
@@ -293,7 +293,7 @@ class story extends control
$this->view->position[] = html::a($this->createLink('product', 'browse', "product=$productID&branch=$branch"), $product->name);
$this->view->position[] = $this->lang->story->common;
$this->view->position[] = $this->lang->story->create;
$this->view->products = $products;
$this->view->products = array('' => '') + $products;
$this->view->users = $users;
$this->view->moduleID = $moduleID ? $moduleID : (int)$this->cookie->lastStoryModule;
$this->view->moduleOptionMenu = $moduleOptionMenu;
+16 -16
View File
@@ -273,22 +273,22 @@ $lang->story->form->resource = 'Wer plant die Resourcen? Wie lange wird das daue
$lang->story->form->file = 'Wenn Dateien zu dieser Story gehören, laden Sie diese bIttr hoch.';
$lang->story->action = new stdclass();
$lang->story->action->reviewed = array('main' => '$date, geprüft von <strong>$actor</strong>. Das Ergebnis ist <strong>$extra</strong>.', 'extra' => 'reviewResultList');
$lang->story->action->closed = array('main' => '$date, geschlossen von <strong>$actor</strong>. Der Grund ist <strong>$extra</strong> $appendLink.', 'extra' => 'reasonList');
$lang->story->action->linked2plan = array('main' => '$date, verknüpft von <strong>$actor</strong> mit Plan <strong>$extra</strong>');
$lang->story->action->unlinkedfromplan = array('main' => '$date, Verknüpfung aufgelöst durch <strong>$actor</strong> von Plan <strong>$extra</strong>.');
$lang->story->action->linked2project = array('main' => '$date, verknüpft von <strong>$actor</strong> mit ' . $lang->executionCommon . ' <strong>$extra</strong>.');
$lang->story->action->unlinkedfromproject = array('main' => '$date, Verknüpfung aufgelöst durch <strong>$actor</strong> mit ' . $lang->executionCommon . ' <strong>$extra</strong>.');
$lang->story->action->linked2prj = array('main' => '$date, verknüpft von <strong>$actor</strong> mit project <strong>$extra</strong>.');
$lang->story->action->unlinkedfromprj = array('main' => '$date, Verknüpfung aufgelöst durch <strong>$actor</strong> mit project <strong>$extra</strong>.');
$lang->story->action->linked2build = array('main' => '$date, verknüpft von <strong>$actor</strong> mit Build <strong>$extra</strong>');
$lang->story->action->unlinkedfrombuild = array('main' => '$date, Verknüpfung aufgelöst durch <strong>$actor</strong> von Build <strong>$extra</strong>.');
$lang->story->action->linked2release = array('main' => '$date, verknüpft von <strong>$actor</strong> mit Release <strong>$extra</strong>');
$lang->story->action->unlinkedfromrelease = array('main' => '$date, Verknüpfung aufgelöst durch <strong>$actor</strong> von Release <strong>$extra</strong>.');
$lang->story->action->linkrelatedstory = array('main' => '$date, verknüpft von <strong>$actor</strong> mit Story <strong>$extra</strong>.');
$lang->story->action->subdividestory = array('main' => '$date, aufgeteilt von <strong>$actor</strong> mit Story <strong>$extra</strong>.');
$lang->story->action->unlinkrelatedstory = array('main' => '$date, Verknüpfung aufgelöst durch <strong>$actor</strong> von Story <strong>$extra</strong>.');
$lang->story->action->unlinkchildstory = array('main' => '$date, Verknüpfung aufgelöst durch <strong>$actor</strong> Story <strong>$extra</strong>.');
$lang->story->action->reviewed = array('main' => '$date, geprüft von <strong>$actor</strong>. Das Ergebnis ist <strong>$extra</strong>.', 'extra' => 'reviewResultList');
$lang->story->action->closed = array('main' => '$date, geschlossen von <strong>$actor</strong>. Der Grund ist <strong>$extra</strong> $appendLink.', 'extra' => 'reasonList');
$lang->story->action->linked2plan = array('main' => '$date, verknüpft von <strong>$actor</strong> mit Plan <strong>$extra</strong>');
$lang->story->action->unlinkedfromplan = array('main' => '$date, Verknüpfung aufgelöst durch <strong>$actor</strong> von Plan <strong>$extra</strong>.');
$lang->story->action->linked2execution = array('main' => '$date, verknüpft von <strong>$actor</strong> mit ' . $lang->executionCommon . ' <strong>$extra</strong>.');
$lang->story->action->unlinkedfromexecution = array('main' => '$date, Verknüpfung aufgelöst durch <strong>$actor</strong> mit ' . $lang->executionCommon . ' <strong>$extra</strong>.');
$lang->story->action->linked2project = array('main' => '$date, verknüpft von <strong>$actor</strong> mit project <strong>$extra</strong>.');
$lang->story->action->unlinkedfromproject = array('main' => '$date, Verknüpfung aufgelöst durch <strong>$actor</strong> mit project <strong>$extra</strong>.');
$lang->story->action->linked2build = array('main' => '$date, verknüpft von <strong>$actor</strong> mit Build <strong>$extra</strong>');
$lang->story->action->unlinkedfrombuild = array('main' => '$date, Verknüpfung aufgelöst durch <strong>$actor</strong> von Build <strong>$extra</strong>.');
$lang->story->action->linked2release = array('main' => '$date, verknüpft von <strong>$actor</strong> mit Release <strong>$extra</strong>');
$lang->story->action->unlinkedfromrelease = array('main' => '$date, Verknüpfung aufgelöst durch <strong>$actor</strong> von Release <strong>$extra</strong>.');
$lang->story->action->linkrelatedstory = array('main' => '$date, verknüpft von <strong>$actor</strong> mit Story <strong>$extra</strong>.');
$lang->story->action->subdividestory = array('main' => '$date, aufgeteilt von <strong>$actor</strong> mit Story <strong>$extra</strong>.');
$lang->story->action->unlinkrelatedstory = array('main' => '$date, Verknüpfung aufgelöst durch <strong>$actor</strong> von Story <strong>$extra</strong>.');
$lang->story->action->unlinkchildstory = array('main' => '$date, Verknüpfung aufgelöst durch <strong>$actor</strong> Story <strong>$extra</strong>.');
/* 统计报表。*/
$lang->story->report = new stdclass();
+16 -16
View File
@@ -273,22 +273,22 @@ $lang->story->form->resource = 'Who will allocate resources? How long does it ta
$lang->story->form->file = 'If any file that is linked to a story, please click Here to upload it.';
$lang->story->action = new stdclass();
$lang->story->action->reviewed = array('main' => '$date, recorded by <strong>$actor</strong>. The result is <strong>$extra</strong>.', 'extra' => 'reviewResultList');
$lang->story->action->closed = array('main' => '$date, closed by <strong>$actor</strong>. The reasion is <strong>$extra</strong> $appendLink.', 'extra' => 'reasonList');
$lang->story->action->linked2plan = array('main' => '$date, linked by <strong>$actor</strong> to Plan <strong>$extra</strong>');
$lang->story->action->unlinkedfromplan = array('main' => '$date, unlinked by <strong>$actor</strong> from Plan <strong>$extra</strong>.');
$lang->story->action->linked2project = array('main' => '$date, linked by <strong>$actor</strong> to ' . $lang->executionCommon . ' <strong>$extra</strong>.');
$lang->story->action->unlinkedfromproject = array('main' => '$date, unlinked by <strong>$actor</strong> from ' . $lang->executionCommon . ' <strong>$extra</strong>.');
$lang->story->action->linked2prj = array('main' => '$date, linked by <strong>$actor</strong> to project <strong>$extra</strong>.');
$lang->story->action->unlinkedfromprj = array('main' => '$date, unlinked by <strong>$actor</strong> from project <strong>$extra</strong>.');
$lang->story->action->linked2build = array('main' => '$date, linked by <strong>$actor</strong> to Build <strong>$extra</strong>');
$lang->story->action->unlinkedfrombuild = array('main' => '$date, unlinked by <strong>$actor</strong> from Build <strong>$extra</strong>.');
$lang->story->action->linked2release = array('main' => '$date, linked by <strong>$actor</strong> to Release <strong>$extra</strong>');
$lang->story->action->unlinkedfromrelease = array('main' => '$date, unlinked by <strong>$actor</strong> from Release <strong>$extra</strong>.');
$lang->story->action->linkrelatedstory = array('main' => '$date, linked by <strong>$actor</strong> to Story <strong>$extra</strong>.');
$lang->story->action->subdividestory = array('main' => '$date, decomposed by <strong>$actor</strong> to Story <strong>$extra</strong>.');
$lang->story->action->unlinkrelatedstory = array('main' => '$date, unlinked by <strong>$actor</strong> from Story <strong>$extra</strong>.');
$lang->story->action->unlinkchildstory = array('main' => '$date, unlinked by <strong>$actor</strong> Decomposed Story <strong>$extra</strong>.');
$lang->story->action->reviewed = array('main' => '$date, recorded by <strong>$actor</strong>. The result is <strong>$extra</strong>.', 'extra' => 'reviewResultList');
$lang->story->action->closed = array('main' => '$date, closed by <strong>$actor</strong>. The reasion is <strong>$extra</strong> $appendLink.', 'extra' => 'reasonList');
$lang->story->action->linked2plan = array('main' => '$date, linked by <strong>$actor</strong> to Plan <strong>$extra</strong>');
$lang->story->action->unlinkedfromplan = array('main' => '$date, unlinked by <strong>$actor</strong> from Plan <strong>$extra</strong>.');
$lang->story->action->linked2execution = array('main' => '$date, linked by <strong>$actor</strong> to ' . $lang->executionCommon . ' <strong>$extra</strong>.');
$lang->story->action->unlinkedfromexecution = array('main' => '$date, unlinked by <strong>$actor</strong> from ' . $lang->executionCommon . ' <strong>$extra</strong>.');
$lang->story->action->linked2project = array('main' => '$date, linked by <strong>$actor</strong> to project <strong>$extra</strong>.');
$lang->story->action->unlinkedfromproject = array('main' => '$date, unlinked by <strong>$actor</strong> from project <strong>$extra</strong>.');
$lang->story->action->linked2build = array('main' => '$date, linked by <strong>$actor</strong> to Build <strong>$extra</strong>');
$lang->story->action->unlinkedfrombuild = array('main' => '$date, unlinked by <strong>$actor</strong> from Build <strong>$extra</strong>.');
$lang->story->action->linked2release = array('main' => '$date, linked by <strong>$actor</strong> to Release <strong>$extra</strong>');
$lang->story->action->unlinkedfromrelease = array('main' => '$date, unlinked by <strong>$actor</strong> from Release <strong>$extra</strong>.');
$lang->story->action->linkrelatedstory = array('main' => '$date, linked by <strong>$actor</strong> to Story <strong>$extra</strong>.');
$lang->story->action->subdividestory = array('main' => '$date, decomposed by <strong>$actor</strong> to Story <strong>$extra</strong>.');
$lang->story->action->unlinkrelatedstory = array('main' => '$date, unlinked by <strong>$actor</strong> from Story <strong>$extra</strong>.');
$lang->story->action->unlinkchildstory = array('main' => '$date, unlinked by <strong>$actor</strong> Decomposed Story <strong>$extra</strong>.');
/* Statistical statement. */
$lang->story->report = new stdclass();
+16 -16
View File
@@ -273,22 +273,22 @@ $lang->story->form->resource = 'Qui va allouer des resources ? Combien de temps
$lang->story->form->file = 'Si certains fichiers sont associés à la story, cliquez ici pour les uploader.';
$lang->story->action = new stdclass();
$lang->story->action->reviewed = array('main' => '$date, validée par <strong>$actor</strong>. Le résultat est <strong>$extra</strong>.', 'extra' => 'reviewResultList');
$lang->story->action->closed = array('main' => '$date, Fermée par <strong>$actor</strong>. La raison est <strong>$extra</strong> $appendLink.', 'extra' => 'reasonList');
$lang->story->action->linked2plan = array('main' => '$date, planifiée par <strong>$actor</strong> au Plan <strong>$extra</strong>');
$lang->story->action->unlinkedfromplan = array('main' => '$date, déplanifiée par <strong>$actor</strong> du Plan <strong>$extra</strong>.');
$lang->story->action->linked2project = array('main' => '$date, associée au ' . $lang->executionCommon . ' <strong>$extra</strong> par <strong>$actor</strong>.');
$lang->story->action->unlinkedfromproject = array('main' => '$date, dissociée du ' . $lang->executionCommon . ' <strong>$extra</strong> par <strong>$actor</strong>.');
$lang->story->action->linked2prj = array('main' => '$date, associée au project <strong>$extra</strong> par <strong>$actor</strong>.');
$lang->story->action->unlinkedfromprj = array('main' => '$date, dissociée d uproject <strong>$extra</strong> par <strong>$actor</strong>.');
$lang->story->action->linked2build = array('main' => '$date, intégrée par <strong>$actor</strong> au Build <strong>$extra</strong>');
$lang->story->action->unlinkedfrombuild = array('main' => '$date, retirée par <strong>$actor</strong> du Build <strong>$extra</strong>.');
$lang->story->action->linked2release = array('main' => '$date, ajoutée par <strong>$actor</strong> à la Release <strong>$extra</strong>');
$lang->story->action->unlinkedfromrelease = array('main' => '$date, retirée par <strong>$actor</strong> de la Release <strong>$extra</strong>.');
$lang->story->action->linkrelatedstory = array('main' => '$date, associée par <strong>$actor</strong> à la Story <strong>$extra</strong>.');
$lang->story->action->subdividestory = array('main' => '$date, décomposée par <strong>$actor</strong> en Story <strong>$extra</strong>.');
$lang->story->action->unlinkrelatedstory = array('main' => '$date, dissociée par <strong>$actor</strong> de la Story <strong>$extra</strong>.');
$lang->story->action->unlinkchildstory = array('main' => '$date, dissociée par <strong>$actor</strong> de la sous-Story <strong>$extra</strong>.');
$lang->story->action->reviewed = array('main' => '$date, validée par <strong>$actor</strong>. Le résultat est <strong>$extra</strong>.', 'extra' => 'reviewResultList');
$lang->story->action->closed = array('main' => '$date, Fermée par <strong>$actor</strong>. La raison est <strong>$extra</strong> $appendLink.', 'extra' => 'reasonList');
$lang->story->action->linked2plan = array('main' => '$date, planifiée par <strong>$actor</strong> au Plan <strong>$extra</strong>');
$lang->story->action->unlinkedfromplan = array('main' => '$date, déplanifiée par <strong>$actor</strong> du Plan <strong>$extra</strong>.');
$lang->story->action->linked2execution = array('main' => '$date, associée au ' . $lang->executionCommon . ' <strong>$extra</strong> par <strong>$actor</strong>.');
$lang->story->action->unlinkedfromexecution = array('main' => '$date, dissociée du ' . $lang->executionCommon . ' <strong>$extra</strong> par <strong>$actor</strong>.');
$lang->story->action->linked2project = array('main' => '$date, associée au project <strong>$extra</strong> par <strong>$actor</strong>.');
$lang->story->action->unlinkedfromproject = array('main' => '$date, dissociée d uproject <strong>$extra</strong> par <strong>$actor</strong>.');
$lang->story->action->linked2build = array('main' => '$date, intégrée par <strong>$actor</strong> au Build <strong>$extra</strong>');
$lang->story->action->unlinkedfrombuild = array('main' => '$date, retirée par <strong>$actor</strong> du Build <strong>$extra</strong>.');
$lang->story->action->linked2release = array('main' => '$date, ajoutée par <strong>$actor</strong> à la Release <strong>$extra</strong>');
$lang->story->action->unlinkedfromrelease = array('main' => '$date, retirée par <strong>$actor</strong> de la Release <strong>$extra</strong>.');
$lang->story->action->linkrelatedstory = array('main' => '$date, associée par <strong>$actor</strong> à la Story <strong>$extra</strong>.');
$lang->story->action->subdividestory = array('main' => '$date, décomposée par <strong>$actor</strong> en Story <strong>$extra</strong>.');
$lang->story->action->unlinkrelatedstory = array('main' => '$date, dissociée par <strong>$actor</strong> de la Story <strong>$extra</strong>.');
$lang->story->action->unlinkchildstory = array('main' => '$date, dissociée par <strong>$actor</strong> de la sous-Story <strong>$extra</strong>.');
/* 统计报表。*/
$lang->story->report = new stdclass();
+16 -16
View File
@@ -273,22 +273,22 @@ $lang->story->form->resource = 'Ai sẽ phân bổ nguồn lực? Bao lâu để
$lang->story->form->file = 'Nếu bất kỳ tập tin mà liên kết tới một câu chuyện, Vui lòng click tại đây để tải nó lên.';
$lang->story->action = new stdclass();
$lang->story->action->reviewed = array('main' => '$date, ghi nhận bởi <strong>$actor</strong>. Kết quả là <strong>$extra</strong>.', 'extra' => 'reviewResultList');
$lang->story->action->closed = array('main' => '$date, được đóng bởi <strong>$actor</strong>.Lý do là <strong>$extra</strong> $appendLink.', 'extra' => 'reasonList');
$lang->story->action->linked2plan = array('main' => '$date, liên kết bởi <strong>$actor</strong> tới kế hoạch <strong>$extra</strong>');
$lang->story->action->unlinkedfromplan = array('main' => '$date, bị hủy bởi <strong>$actor</strong> từ kế hoạch <strong>$extra</strong>.');
$lang->story->action->linked2project = array('main' => '$date, liên kết bởi <strong>$actor</strong> tới ' . $lang->executionCommon . ' <strong>$extra</strong>.');
$lang->story->action->unlinkedfromproject = array('main' => '$date, bị hủy bởi <strong>$actor</strong> từ ' . $lang->executionCommon . ' <strong>$extra</strong>.');
$lang->story->action->linked2prj = array('main' => '$date, liên kết bởi <strong>$actor</strong> tớ project <strong>$extra</strong>.');
$lang->story->action->unlinkedfromprj = array('main' => '$date, bị hủy bởi <strong>$actor</strong> từ project <strong>$extra</strong>.');
$lang->story->action->linked2build = array('main' => '$date, liên kết bởi <strong>$actor</strong> tới Bản dựng <strong>$extra</strong>');
$lang->story->action->unlinkedfrombuild = array('main' => '$date, bị hủy bởi <strong>$actor</strong> từ bản dựng <strong>$extra</strong>.');
$lang->story->action->linked2release = array('main' => '$date, liên kết bởi <strong>$actor</strong> tới Phát hành <strong>$extra</strong>');
$lang->story->action->unlinkedfromrelease = array('main' => '$date, bị hủy bởi <strong>$actor</strong> từ Phát hành <strong>$extra</strong>.');
$lang->story->action->linkrelatedstory = array('main' => '$date, liên kết bởi <strong>$actor</strong> tới Câu chuyện <strong>$extra</strong>.');
$lang->story->action->subdividestory = array('main' => '$date, được phân rã bởi <strong>$actor</strong> tới Câu chuyện <strong>$extra</strong>.');
$lang->story->action->unlinkrelatedstory = array('main' => '$date, bị hủy bởi <strong>$actor</strong> từ Câu chuyện <strong>$extra</strong>.');
$lang->story->action->unlinkchildstory = array('main' => '$date, bị hủy bởi <strong>$actor</strong> Câu chuyện được phân rã <strong>$extra</strong>.');
$lang->story->action->reviewed = array('main' => '$date, ghi nhận bởi <strong>$actor</strong>. Kết quả là <strong>$extra</strong>.', 'extra' => 'reviewResultList');
$lang->story->action->closed = array('main' => '$date, được đóng bởi <strong>$actor</strong>.Lý do là <strong>$extra</strong> $appendLink.', 'extra' => 'reasonList');
$lang->story->action->linked2plan = array('main' => '$date, liên kết bởi <strong>$actor</strong> tới kế hoạch <strong>$extra</strong>');
$lang->story->action->unlinkedfromplan = array('main' => '$date, bị hủy bởi <strong>$actor</strong> từ kế hoạch <strong>$extra</strong>.');
$lang->story->action->linked2execution = array('main' => '$date, liên kết bởi <strong>$actor</strong> tới ' . $lang->executionCommon . ' <strong>$extra</strong>.');
$lang->story->action->unlinkedfromexecution = array('main' => '$date, bị hủy bởi <strong>$actor</strong> từ ' . $lang->executionCommon . ' <strong>$extra</strong>.');
$lang->story->action->linked2project = array('main' => '$date, liên kết bởi <strong>$actor</strong> tớ project <strong>$extra</strong>.');
$lang->story->action->unlinkedfromproject = array('main' => '$date, bị hủy bởi <strong>$actor</strong> từ project <strong>$extra</strong>.');
$lang->story->action->linked2build = array('main' => '$date, liên kết bởi <strong>$actor</strong> tới Bản dựng <strong>$extra</strong>');
$lang->story->action->unlinkedfrombuild = array('main' => '$date, bị hủy bởi <strong>$actor</strong> từ bản dựng <strong>$extra</strong>.');
$lang->story->action->linked2release = array('main' => '$date, liên kết bởi <strong>$actor</strong> tới Phát hành <strong>$extra</strong>');
$lang->story->action->unlinkedfromrelease = array('main' => '$date, bị hủy bởi <strong>$actor</strong> từ Phát hành <strong>$extra</strong>.');
$lang->story->action->linkrelatedstory = array('main' => '$date, liên kết bởi <strong>$actor</strong> tới Câu chuyện <strong>$extra</strong>.');
$lang->story->action->subdividestory = array('main' => '$date, được phân rã bởi <strong>$actor</strong> tới Câu chuyện <strong>$extra</strong>.');
$lang->story->action->unlinkrelatedstory = array('main' => '$date, bị hủy bởi <strong>$actor</strong> từ Câu chuyện <strong>$extra</strong>.');
$lang->story->action->unlinkchildstory = array('main' => '$date, bị hủy bởi <strong>$actor</strong> Câu chuyện được phân rã <strong>$extra</strong>.');
/* Statistical statement. */
$lang->story->report = new stdclass();
+16 -16
View File
@@ -273,22 +273,22 @@ $lang->story->form->resource = '资源分配,有谁完成?需要多少时
$lang->story->form->file = "附件,如果该{$lang->SRCommon}有相关文件,请点此上传。";
$lang->story->action = new stdclass();
$lang->story->action->reviewed = array('main' => '$date, 由 <strong>$actor</strong> 记录评审结果,结果为 <strong>$extra</strong>。', 'extra' => 'reviewResultList');
$lang->story->action->closed = array('main' => '$date, 由 <strong>$actor</strong> 关闭,原因为 <strong>$extra</strong> $appendLink。', 'extra' => 'reasonList');
$lang->story->action->linked2plan = array('main' => '$date, 由 <strong>$actor</strong> 关联到计划 <strong>$extra</strong>。');
$lang->story->action->unlinkedfromplan = array('main' => '$date, 由 <strong>$actor</strong> 从计划 <strong>$extra</strong> 移除。');
$lang->story->action->linked2project = array('main' => '$date, 由 <strong>$actor</strong> 关联到' . $lang->executionCommon . ' <strong>$extra</strong>。');
$lang->story->action->unlinkedfromproject = array('main' => '$date, 由 <strong>$actor</strong> 从' . $lang->executionCommon . ' <strong>$extra</strong> 移除。');
$lang->story->action->linked2prj = array('main' => '$date, 由 <strong>$actor</strong> 关联到项目 <strong>$extra</strong>。');
$lang->story->action->unlinkedfromprj = array('main' => '$date, 由 <strong>$actor</strong> 从项目 <strong>$extra</strong> 移除。');
$lang->story->action->linked2build = array('main' => '$date, 由 <strong>$actor</strong> 关联到版本 <strong>$extra</strong>。');
$lang->story->action->unlinkedfrombuild = array('main' => '$date, 由 <strong>$actor</strong> 从版本 <strong>$extra</strong> 移除。');
$lang->story->action->linked2release = array('main' => '$date, 由 <strong>$actor</strong> 关联到发布 <strong>$extra</strong>。');
$lang->story->action->unlinkedfromrelease = array('main' => '$date, 由 <strong>$actor</strong> 从发布 <strong>$extra</strong> 移除。');
$lang->story->action->linkrelatedstory = array('main' => "\$date, 由 <strong>\$actor</strong> 关联相关{$lang->SRCommon} <strong>\$extra</strong>。");
$lang->story->action->subdividestory = array('main' => "\$date, 由 <strong>\$actor</strong> 细分为{$lang->SRCommon} <strong>\$extra</strong>。");
$lang->story->action->unlinkrelatedstory = array('main' => "\$date, 由 <strong>\$actor</strong> 移除相关{$lang->SRCommon} <strong>\$extra</strong>。");
$lang->story->action->unlinkchildstory = array('main' => "\$date, 由 <strong>\$actor</strong> 移除细分{$lang->SRCommon} <strong>\$extra</strong>。");
$lang->story->action->reviewed = array('main' => '$date, 由 <strong>$actor</strong> 记录评审结果,结果为 <strong>$extra</strong>。', 'extra' => 'reviewResultList');
$lang->story->action->closed = array('main' => '$date, 由 <strong>$actor</strong> 关闭,原因为 <strong>$extra</strong> $appendLink。', 'extra' => 'reasonList');
$lang->story->action->linked2plan = array('main' => '$date, 由 <strong>$actor</strong> 关联到计划 <strong>$extra</strong>。');
$lang->story->action->unlinkedfromplan = array('main' => '$date, 由 <strong>$actor</strong> 从计划 <strong>$extra</strong> 移除。');
$lang->story->action->linked2execution = array('main' => '$date, 由 <strong>$actor</strong> 关联到' . $lang->executionCommon . ' <strong>$extra</strong>。');
$lang->story->action->unlinkedfromexecution = array('main' => '$date, 由 <strong>$actor</strong> 从' . $lang->executionCommon . ' <strong>$extra</strong> 移除。');
$lang->story->action->linked2project = array('main' => '$date, 由 <strong>$actor</strong> 关联到项目 <strong>$extra</strong>。');
$lang->story->action->unlinkedfromproject = array('main' => '$date, 由 <strong>$actor</strong> 从项目 <strong>$extra</strong> 移除。');
$lang->story->action->linked2build = array('main' => '$date, 由 <strong>$actor</strong> 关联到版本 <strong>$extra</strong>。');
$lang->story->action->unlinkedfrombuild = array('main' => '$date, 由 <strong>$actor</strong> 从版本 <strong>$extra</strong> 移除。');
$lang->story->action->linked2release = array('main' => '$date, 由 <strong>$actor</strong> 关联到发布 <strong>$extra</strong>。');
$lang->story->action->unlinkedfromrelease = array('main' => '$date, 由 <strong>$actor</strong> 从发布 <strong>$extra</strong> 移除。');
$lang->story->action->linkrelatedstory = array('main' => "\$date, 由 <strong>\$actor</strong> 关联相关{$lang->SRCommon} <strong>\$extra</strong>。");
$lang->story->action->subdividestory = array('main' => "\$date, 由 <strong>\$actor</strong> 细分为{$lang->SRCommon} <strong>\$extra</strong>。");
$lang->story->action->unlinkrelatedstory = array('main' => "\$date, 由 <strong>\$actor</strong> 移除相关{$lang->SRCommon} <strong>\$extra</strong>。");
$lang->story->action->unlinkchildstory = array('main' => "\$date, 由 <strong>\$actor</strong> 移除细分{$lang->SRCommon} <strong>\$extra</strong>。");
/* 统计报表。*/
$lang->story->report = new stdclass();
+2 -2
View File
@@ -3188,8 +3188,8 @@ class storyModel extends model
if($branch) $branch = "0,$branch";
}
$plans = $this->dao->select('id,title')->from(TABLE_PRODUCTPLAN)
->where('product')->in($productID)
->andWhere('deleted')->eq(0)
->Where('deleted')->eq(0)
->beginIF($productID)->andWhere('product')->in($productID)->fi()
->fetchPairs('id', 'title');
/* For requirement children. */
+1 -1
View File
@@ -39,7 +39,7 @@
<?php if($product->type != 'normal'):?>
<div class='input-group'>
<?php endif;?>
<?php echo html::select('product', $products, $productID, "onchange='loadProduct(this.value);' class='form-control chosen control-product'");?>
<?php echo html::select('product', $products, empty($productID) ? '' : $productID, "onchange='loadProduct(this.value);' class='form-control chosen control-product'");?>
<?php if($product->type != 'normal'):?>
<span class='input-group-addon fix-border fix-padding'></span>
<?php echo html::select('branch', $branches, $branch, "onchange='loadBranch();' class='form-control chosen control-branch'");?>
+10 -2
View File
@@ -522,8 +522,8 @@ class testcase extends control
if(!$case) die(js::error($this->lang->notFound) . js::locate('back'));
if($case->auto == 'unit')
{
$this->lang->testcase->subMenu->testcase->feature['alias'] = '';
$this->lang->testcase->subMenu->testcase->unit['alias'] = 'view';
$this->lang->testcase->subMenu->testcase->feature['alias'] = '';
$this->lang->testcase->subMenu->testcase->unit['alias'] = 'view';
$this->lang->testcase->subMenu->testcase->unit['subModule'] = 'testcase';
}
@@ -637,6 +637,14 @@ class testcase extends control
}
$case = $this->testcase->getById($caseID);
if(!$case) die(js::error($this->lang->notFound) . js::locate('back'));
if($case->auto == 'unit')
{
$this->lang->testcase->subMenu->testcase->feature['alias'] = '';
$this->lang->testcase->subMenu->testcase->unit['alias'] = 'view';
$this->lang->testcase->subMenu->testcase->unit['subModule'] = 'testcase';
}
if(empty($case->steps))
{
$step = new stdclass();
+7
View File
@@ -270,4 +270,11 @@
</div>
</form>
</div>
<script>
$(function()
{
$('#subNavbar [data-id=testcase]').addClass('active');
$('#navbar [data-id=testcase]').addClass('active');
})
</script>
<?php include '../../common/view/footer.html.php';?>
+1
View File
@@ -354,6 +354,7 @@ js::set('retrack', $lang->retrack);
$(function()
{
$('#subNavbar [data-id=testcase]').addClass('active');
$('#navbar [data-id=testcase]').addClass('active');
})
</script>
<?php endif;?>
+2 -2
View File
@@ -67,8 +67,8 @@
<td class='text-center fail'><?php echo $task->failCount?></td>
<td class='c-actions'>
<?php
common::printIcon('testtask', 'unitCases', "taskID=$task->id", '', 'list', 'list-alt','','',true);
common::printIcon('testtask', 'edit', "taskID=$task->id", $task, 'list','','','',true);
common::printIcon('testtask', 'unitCases', "taskID=$task->id", '', 'list', 'list-alt', '', 'iframe', true, 'data-width="70%"');
common::printIcon('testtask', 'edit', "taskID=$task->id", $task, 'list', '', '', 'iframe', true);
if(common::hasPriv('testtask', 'delete', $task))
{
$deleteURL = $this->createLink('testtask', 'delete', "taskID=$task->id&confirm=yes");