Merge branch '15.0.beta3' of http://gitlab.zcorp.cc/easycorp/zentaopms into 15.0.beta3

This commit is contained in:
zhujinyong
2021-03-17 11:34:25 +08:00
20 changed files with 113 additions and 125 deletions
+1 -1
View File
@@ -22,7 +22,7 @@
<th class='text-left'><?php echo $lang->testtask->product;?></th>
<?php endif;?>
<?php if($longBlock):?>
<th class='text-left'><?php echo $lang->testtask->project?></th>
<th class='text-left'><?php echo $lang->testtask->execution?></th>
<?php endif;?>
<th class='text-left'><?php echo $lang->testtask->build;?></th>
<th class='w-date'><?php echo $lang->testtask->status;?></th>
+6
View File
@@ -59,6 +59,12 @@ $lang->my->menuOrder[40] = 'follow';
$lang->my->menuOrder[45] = 'contacts';
$lang->todo->menuOrder = $lang->my->menuOrder;
/* program menu order. */
$lang->program->menuOrder[5] = 'product';
$lang->program->menuOrder[10] = 'project';
$lang->program->menuOrder[15] = 'personnel';
$lang->program->menuOrder[20] = 'stakeholder';
/* product menu order. */
$lang->product->menuOrder[5] = 'dashboard';
$lang->product->menuOrder[10] = 'story';
+1 -1
View File
@@ -11,7 +11,7 @@
*/
/* 字段列表。*/
$lang->executionCommon = $lang->executionCommon;
$lang->execution->common = $lang->executionCommon . '视图';
$lang->execution->common = '执行';
$lang->execution->allExecutions = '所有' . $lang->executionCommon;
$lang->execution->id = $lang->executionCommon . '编号';
$lang->execution->type = $lang->executionCommon . '类型';
+2 -1
View File
@@ -894,7 +894,8 @@ class executionModel extends model
}
$dropMenuLink = helper::createLink('execution', 'ajaxGetDropMenu', "objectID=$executionID&module=$currentModule&method=$currentMethod&extra=");
$output = "<div class='btn-group header-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='btn-group header-btn'>" . html::a(helper::createLink('execution', 'all'), "<i class='icon icon-run'></i> {$this->lang->execution->common}", '', "class='btn'") . '</div>';
$output .= "<div class='btn-group header-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>";
+1 -6
View File
@@ -48,12 +48,7 @@
<?php if($from == 'execution'):?>
<div id="sidebar" class="side-col">
<div class="sidebar-toggle"><i class="icon icon-angle-left"></i></div>
<div class="cell">
<?php echo $projectTree;?>
<div class="text-center">
<?php common::printLink('project', 'projectTitle', '', $lang->project->moduleSetting, '', "class='btn btn-info btn-wide iframe'", true, true);?>
</div>
</div>
<div class="cell"><?php echo $projectTree;?></div>
</div>
<?php endif;?>
<?php $canBatchEdit = common::hasPriv('execution', 'batchEdit'); ?>
+35 -29
View File
@@ -547,8 +547,11 @@ $lang->resource->execution->importplanstories = 'importPlanStories';
$lang->resource->execution->importBug = 'importBug';
$lang->resource->execution->story = 'story';
$lang->resource->execution->build = 'build';
$lang->resource->execution->qa = 'qa';
$lang->resource->execution->testtask = 'testtaskAction';
$lang->resource->execution->testcase = 'testcase';
$lang->resource->execution->bug = 'bug';
$lang->resource->execution->testreport = 'testreport';
$lang->resource->execution->burn = 'burn';
$lang->resource->execution->computeBurn = 'computeBurnAction';
$lang->resource->execution->fixFirst = 'fixFirst';
@@ -600,36 +603,39 @@ $lang->execution->methodOrder[80] = 'importplanstories';
$lang->execution->methodOrder[85] = 'importBug';
$lang->execution->methodOrder[90] = 'story';
$lang->execution->methodOrder[95] = 'build';
$lang->execution->methodOrder[100] = 'testtask';
$lang->execution->methodOrder[105] = 'bug';
$lang->execution->methodOrder[110] = 'burn';
$lang->execution->methodOrder[115] = 'computeBurn';
$lang->execution->methodOrder[120] = 'fixFirst';
$lang->execution->methodOrder[125] = 'burnData';
$lang->execution->methodOrder[130] = 'team';
$lang->execution->methodOrder[100] = 'qa';
$lang->execution->methodOrder[105] = 'testcase';
$lang->execution->methodOrder[110] = 'bug';
$lang->execution->methodOrder[115] = 'testtask';
$lang->execution->methodOrder[120] = 'testreport';
$lang->execution->methodOrder[125] = 'burn';
$lang->execution->methodOrder[130] = 'computeBurn';
$lang->execution->methodOrder[135] = 'fixFirst';
$lang->execution->methodOrder[140] = 'burnData';
$lang->execution->methodOrder[145] = 'team';
//$lang->execution->methodOrder[130] = 'doc';
$lang->execution->methodOrder[135] = 'dynamic';
$lang->execution->methodOrder[140] = 'manageProducts';
$lang->execution->methodOrder[145] = 'manageMembers';
$lang->execution->methodOrder[150] = 'unlinkMember';
$lang->execution->methodOrder[155] = 'linkStory';
$lang->execution->methodOrder[160] = 'unlinkStory';
$lang->execution->methodOrder[165] = 'batchUnlinkStory';
$lang->execution->methodOrder[170] = 'updateOrder';
$lang->execution->methodOrder[175] = 'kanban';
$lang->execution->methodOrder[180] = 'printKanban';
$lang->execution->methodOrder[185] = 'kanbanHideCols';
$lang->execution->methodOrder[190] = 'kanbanColsColor';
$lang->execution->methodOrder[195] = 'tree';
$lang->execution->methodOrder[200] = 'treeTask';
$lang->execution->methodOrder[205] = 'treeStory';
$lang->execution->methodOrder[210] = 'all';
$lang->execution->methodOrder[215] = 'export';
$lang->execution->methodOrder[220] = 'storyKanban';
$lang->execution->methodOrder[225] = 'storySort';
$lang->execution->methodOrder[230] = 'whitelist';
$lang->execution->methodOrder[235] = 'addWhitelist';
$lang->execution->methodOrder[240] = 'unbindWhitelist';
$lang->execution->methodOrder[150] = 'dynamic';
$lang->execution->methodOrder[155] = 'manageProducts';
$lang->execution->methodOrder[160] = 'manageMembers';
$lang->execution->methodOrder[165] = 'unlinkMember';
$lang->execution->methodOrder[170] = 'linkStory';
$lang->execution->methodOrder[175] = 'unlinkStory';
$lang->execution->methodOrder[180] = 'batchUnlinkStory';
$lang->execution->methodOrder[185] = 'updateOrder';
$lang->execution->methodOrder[190] = 'kanban';
$lang->execution->methodOrder[195] = 'printKanban';
$lang->execution->methodOrder[200] = 'kanbanHideCols';
$lang->execution->methodOrder[205] = 'kanbanColsColor';
$lang->execution->methodOrder[210] = 'tree';
$lang->execution->methodOrder[215] = 'treeTask';
$lang->execution->methodOrder[220] = 'treeStory';
$lang->execution->methodOrder[225] = 'all';
$lang->execution->methodOrder[230] = 'export';
$lang->execution->methodOrder[235] = 'storyKanban';
$lang->execution->methodOrder[240] = 'storySort';
$lang->execution->methodOrder[245] = 'whitelist';
$lang->execution->methodOrder[250] = 'addWhitelist';
$lang->execution->methodOrder[255] = 'unbindWhitelist';
/* Task. */
$lang->resource->task = new stdclass();
+2 -2
View File
@@ -97,7 +97,7 @@
{
$vars = "story={$story->id}";
common::printIcon('story', 'change', $vars, $story, 'list', 'alter');
common::printIcon('story', 'review', $vars, $story, 'list', 'glasses');
common::printIcon('story', 'review', $vars, $story, 'list', 'search');
common::printIcon('story', 'close', $vars, $story, 'list', '', '', 'iframe', true);
common::printIcon('story', 'edit', $vars, $story, 'list');
common::printIcon('story', 'createCase', "productID=$story->product&branch=$story->branch&module=0&from=&param=0&$vars", $story, 'list', 'sitemap');
@@ -137,7 +137,7 @@
{
$vars = "story={$child->id}";
common::printIcon('story', 'change', $vars, $child, 'list', 'fork');
common::printIcon('story', 'review', $vars, $child, 'list', 'glasses');
common::printIcon('story', 'review', $vars, $child, 'list', 'search');
common::printIcon('story', 'close', $vars, $child, 'list', '', '', 'iframe', true);
common::printIcon('story', 'edit', $vars, $child, 'list');
common::printIcon('story', 'createCase', "productID=$child->product&branch=$child->branch&module=0&from=&param=0&$vars", $child, 'list', 'sitemap');
+1 -1
View File
@@ -224,7 +224,7 @@ class personnel extends control
public function setProgramMenu($programID = 0)
{
$this->loadModel('program');
$this->lang->program->switcherMenu = $this->program->getSwitcher($programID, true);
$this->lang->program->switcherMenu = $this->program->getSwitcher($programID, true);
commonModel::setAppObjectID('program', $programID);
}
}
+3 -3
View File
@@ -273,7 +273,7 @@ class productModel extends model
->orWhere('createdBy')->eq($this->app->user->account)
->markRight(1)
->fi()
->orderBy('program_asc,line_desc,order_asc')
->orderBy('program_asc, line_desc, order_asc')
->beginIF($limit > 0)->limit($limit)->fi()
->fetchAll('id');
}
@@ -471,7 +471,7 @@ class productModel extends model
$fromModule = $this->lang->navGroup->qa == 'qa' ? 'qa' : '';
$dropMenuLink = helper::createLink('product', 'ajaxGetDropMenu', "objectID=$productID&module=$currentModule&method=$currentMethod&extra=$extra&from=$fromModule");
$output = "<div class='btn-group header-btn'>" . html::a(helper::createLink('product', 'all'), "<i class='icon icon-product'></i> {$this->lang->productCommon}", '', "class='btn'") . '</div>';
$output = $this->app->openApp == 'product' ? "<div class='btn-group header-btn'>" . html::a(helper::createLink('product', 'all'), "<i class='icon icon-product'></i> {$this->lang->productCommon}", '', "class='btn'") . '</div>' : '';
$output .= "<div class='btn-group header-btn' id='swapper'><button data-toggle='dropdown' type='button' class='btn' id='currentItem' title='{$currentProductName}'><span class='text'>{$currentProductName}</span> <span class='caret' style='margin-top: 3px'></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>";
@@ -1329,7 +1329,7 @@ class productModel extends model
$productKeys = array_keys($products);
$products = $this->dao->select('*')->from(TABLE_PRODUCT)
->where('id')->in($productKeys)
->orderBy('program_asc,line_desc,' . $orderBy)
->orderBy('program_asc, line_desc, ' . $orderBy)
->page($pager)
->fetchAll('id');
+2
View File
@@ -71,6 +71,8 @@ $isProjectStory = $this->app->rawModule == 'projectstory';
</div>
<?php endif;?>
<?php
$this->moduleName = $this->app->rawModule;
$this->methodName = $this->app->rawMethod;
foreach(customModel::getFeatureMenu($this->moduleName, $this->methodName) as $menuItem)
{
if(isset($menuItem->hidden)) continue;
+1 -1
View File
@@ -125,7 +125,7 @@ class project extends control
foreach($projects as $project)
{
if($project->parent and $project->parent != $programID) continue;
$project->parent = $this->program->getTopByID();
$project->parent = $this->program->getTopByID($project->parent);
$orderedProjects[] = $project;
unset($projects[$project->id]);
}
+30 -4
View File
@@ -142,6 +142,7 @@ class projectModel extends model
*/
public function getSwitcher($projectID, $currentModule, $currentMethod)
{
if($currentModule == 'project' and $currentMethod == 'browse') return;
$this->session->set('moreProjectLink', $this->app->getURI(true));
$currentProjectName = $this->lang->project->common;
@@ -281,12 +282,14 @@ class projectModel extends model
->groupBy('project')
->fetchPairs();
$this->loadModel('product');
foreach($projectIdList as $projectID)
{
$productIdList = $this->loadModel('product')->getProductIDByProject($projectID, false);
$allStories[$projectID] = $this->product->getTotalStoriesByProduct($productIdList, 'story');
$doneStories[$projectID] = $this->product->getTotalStoriesByProduct($productIdList, 'story', 'closed');
$leftStories[$projectID] = $this->product->getTotalStoriesByProduct($productIdList, 'story', 'active');
$productIdList = $this->product->getProductIDByProject($projectID, false);
$allStories[$projectID] = $this->getTotalStoriesByProject($projectID, $productIdList, 'story');
$doneStories[$projectID] = $this->getTotalStoriesByProject($projectID, $productIdList, 'story', 'closed');
$leftStories[$projectID] = $this->getTotalStoriesByProject($projectID, $productIdList, 'story', 'active');
}
$leftBugs = $this->getTotalBugByProject($projectIdList, 'active');
@@ -310,6 +313,29 @@ class projectModel extends model
return $projects;
}
/**
* Get the number of stories associated with the project.
*
* @param int $projectID
* @param array $productIdList
* @param string $type story|requirement
* @param string $status all|closed|active
* @access public
* @return int
*/
public function getTotalStoriesByProject($projectID = 0, $productIdList, $type = 'story', $status = 'all')
{
return $this->dao->select('count(t2.id) as stories')->from(TABLE_PROJECTSTORY)->alias('t1')
->leftJoin(TABLE_STORY)->alias('t2')->on('t1.story=t2.id')
->where('t1.project')->eq($projectID)
->andWhere('t2.type')->eq($type)
->andWhere('t2.product')->in($productIdList)
->beginIF($status != 'all')->andWhere('t2.status')->eq($status)->fi()
->beginIF($status == 'closed')->andWhere('t2.closedReason')->eq('done')->fi()
->andWhere('deleted')->eq('0')
->fetch('stories');
}
/**
* Get project workhour info.
*
-2
View File
@@ -46,8 +46,6 @@ class projectStory extends control
{
$this->session->set('storyList', $this->app->getURI(true));
$this->lang->menugroup->product = 'projectstory';
$this->lang->story->title = str_replace($this->lang->SRCommon, $this->lang->SRCommon, $this->lang->story->title);
$this->lang->story->createRequirement = str_replace($this->lang->SRCommon, $this->lang->SRCommon, $this->lang->story->createRequirement);
$this->lang->story->createStory = str_replace($this->lang->SRCommon, $this->lang->SRCommon, $this->lang->story->createStory);
+6 -11
View File
@@ -10,14 +10,9 @@ $lang->projectstory->importplanstories = 'Linked by plan' . $lang->SRCommon;
global $app;
$app->loadLang('product');
$lang->projectstory->featureBarList['allstory'] = $lang->product->allStory;
$lang->projectstory->featureBarList['unclosed'] = $lang->product->unclosed;
$lang->projectstory->featureBarList['willclose'] = $lang->product->willClose;
$lang->projectstory->featureBarList['status']['draftstory'] = $lang->product->draftStory;
$lang->projectstory->featureBarList['status']['activestory'] = $lang->product->activeStory;
$lang->projectstory->featureBarList['status']['changedstory'] = $lang->product->changedStory;
$lang->projectstory->featureBarList['status']['closedstory'] = $lang->product->closedStory;
$lang->projectstory->featureBarList['other']['openedbyme'] = $lang->product->openedByMe;
$lang->projectstory->featureBarList['other']['assignedtome'] = $lang->product->assignedToMe;
$lang->projectstory->featureBarList['other']['reviewedbyme'] = $lang->product->reviewedByMe;
$lang->projectstory->featureBarList['other']['closedbyme'] = $lang->product->closedByMe;
$lang->projectstory->featureBar['story']['allstory'] = $lang->product->allStory;
$lang->projectstory->featureBar['story']['unclosed'] = $lang->product->unclosed;
$lang->projectstory->featureBar['story']['changed'] = $lang->product->changedStory;
$lang->projectstory->featureBar['story']['closed'] = $lang->product->closedStory;
+4 -11
View File
@@ -10,14 +10,7 @@ $lang->projectstory->importplanstories = 'Linked by plan' . $lang->SRCommon;
global $app;
$app->loadLang('product');
$lang->projectstory->featureBarList['allstory'] = $lang->product->allStory;
$lang->projectstory->featureBarList['unclosed'] = $lang->product->unclosed;
$lang->projectstory->featureBarList['willclose'] = $lang->product->willClose;
$lang->projectstory->featureBarList['status']['draftstory'] = $lang->product->draftStory;
$lang->projectstory->featureBarList['status']['activestory'] = $lang->product->activeStory;
$lang->projectstory->featureBarList['status']['changedstory'] = $lang->product->changedStory;
$lang->projectstory->featureBarList['status']['closedstory'] = $lang->product->closedStory;
$lang->projectstory->featureBarList['other']['openedbyme'] = $lang->product->openedByMe;
$lang->projectstory->featureBarList['other']['assignedtome'] = $lang->product->assignedToMe;
$lang->projectstory->featureBarList['other']['reviewedbyme'] = $lang->product->reviewedByMe;
$lang->projectstory->featureBarList['other']['closedbyme'] = $lang->product->closedByMe;
$lang->projectstory->featureBar['story']['allstory'] = $lang->product->allStory;
$lang->projectstory->featureBar['story']['unclosed'] = $lang->product->unclosed;
$lang->projectstory->featureBar['story']['changed'] = $lang->product->changedStory;
$lang->projectstory->featureBar['story']['closed'] = $lang->product->closedStory;
+4 -11
View File
@@ -10,14 +10,7 @@ $lang->projectstory->importplanstories = 'Linked by plan' . $lang->SRCommon;
global $app;
$app->loadLang('product');
$lang->projectstory->featureBarList['allstory'] = $lang->product->allStory;
$lang->projectstory->featureBarList['unclosed'] = $lang->product->unclosed;
$lang->projectstory->featureBarList['willclose'] = $lang->product->willClose;
$lang->projectstory->featureBarList['status']['draftstory'] = $lang->product->draftStory;
$lang->projectstory->featureBarList['status']['activestory'] = $lang->product->activeStory;
$lang->projectstory->featureBarList['status']['changedstory'] = $lang->product->changedStory;
$lang->projectstory->featureBarList['status']['closedstory'] = $lang->product->closedStory;
$lang->projectstory->featureBarList['other']['openedbyme'] = $lang->product->openedByMe;
$lang->projectstory->featureBarList['other']['assignedtome'] = $lang->product->assignedToMe;
$lang->projectstory->featureBarList['other']['reviewedbyme'] = $lang->product->reviewedByMe;
$lang->projectstory->featureBarList['other']['closedbyme'] = $lang->product->closedByMe;
$lang->projectstory->featureBar['story']['allstory'] = $lang->product->allStory;
$lang->projectstory->featureBar['story']['unclosed'] = $lang->product->unclosed;
$lang->projectstory->featureBar['story']['changed'] = $lang->product->changedStory;
$lang->projectstory->featureBar['story']['closed'] = $lang->product->closedStory;
+4 -11
View File
@@ -10,14 +10,7 @@ $lang->projectstory->importplanstories = 'Linked by plan' . $lang->SRCommon;
global $app;
$app->loadLang('product');
$lang->projectstory->featureBarList['allstory'] = $lang->product->allStory;
$lang->projectstory->featureBarList['unclosed'] = $lang->product->unclosed;
$lang->projectstory->featureBarList['willclose'] = $lang->product->willClose;
$lang->projectstory->featureBarList['status']['draftstory'] = $lang->product->draftStory;
$lang->projectstory->featureBarList['status']['activestory'] = $lang->product->activeStory;
$lang->projectstory->featureBarList['status']['changedstory'] = $lang->product->changedStory;
$lang->projectstory->featureBarList['status']['closedstory'] = $lang->product->closedStory;
$lang->projectstory->featureBarList['other']['openedbyme'] = $lang->product->openedByMe;
$lang->projectstory->featureBarList['other']['assignedtome'] = $lang->product->assignedToMe;
$lang->projectstory->featureBarList['other']['reviewedbyme'] = $lang->product->reviewedByMe;
$lang->projectstory->featureBarList['other']['closedbyme'] = $lang->product->closedByMe;
$lang->projectstory->featureBar['story']['allstory'] = $lang->product->allStory;
$lang->projectstory->featureBar['story']['unclosed'] = $lang->product->unclosed;
$lang->projectstory->featureBar['story']['changed'] = $lang->product->changedStory;
$lang->projectstory->featureBar['story']['closed'] = $lang->product->closedStory;
+5 -11
View File
@@ -10,14 +10,8 @@ $lang->projectstory->importplanstories = '按计划关联' . $lang->SRCommon;
global $app;
$app->loadLang('product');
$lang->projectstory->featureBarList['allstory'] = $lang->product->allStory;
$lang->projectstory->featureBarList['unclosed'] = $lang->product->unclosed;
$lang->projectstory->featureBarList['willclose'] = $lang->product->willClose;
$lang->projectstory->featureBarList['status']['draftstory'] = $lang->product->draftStory;
$lang->projectstory->featureBarList['status']['activestory'] = $lang->product->activeStory;
$lang->projectstory->featureBarList['status']['changedstory'] = $lang->product->changedStory;
$lang->projectstory->featureBarList['status']['closedstory'] = $lang->product->closedStory;
$lang->projectstory->featureBarList['other']['openedbyme'] = $lang->product->openedByMe;
$lang->projectstory->featureBarList['other']['assignedtome'] = $lang->product->assignedToMe;
$lang->projectstory->featureBarList['other']['reviewedbyme'] = $lang->product->reviewedByMe;
$lang->projectstory->featureBarList['other']['closedbyme'] = $lang->product->closedByMe;
$lang->projectstory->featureBar['story']['allstory'] = $lang->product->allStory;
$lang->projectstory->featureBar['story']['unclosed'] = $lang->product->unclosed;
$lang->projectstory->featureBar['story']['changed'] = $lang->product->changedStory;
$lang->projectstory->featureBar['story']['closed'] = $lang->product->closedStory;
+4 -11
View File
@@ -8,14 +8,7 @@ $lang->projectstory->unlinkStory = '移除' . $lang->SRCommon;
global $app;
$app->loadLang('product');
$lang->projectstory->featureBarList['allstory'] = $lang->product->allStory;
$lang->projectstory->featureBarList['unclosed'] = $lang->product->unclosed;
$lang->projectstory->featureBarList['willclose'] = $lang->product->willClose;
$lang->projectstory->featureBarList['status']['draftstory'] = $lang->product->draftStory;
$lang->projectstory->featureBarList['status']['activestory'] = $lang->product->activeStory;
$lang->projectstory->featureBarList['status']['changedstory'] = $lang->product->changedStory;
$lang->projectstory->featureBarList['status']['closedstory'] = $lang->product->closedStory;
$lang->projectstory->featureBarList['other']['openedbyme'] = $lang->product->openedByMe;
$lang->projectstory->featureBarList['other']['assignedtome'] = $lang->product->assignedToMe;
$lang->projectstory->featureBarList['other']['reviewedbyme'] = $lang->product->reviewedByMe;
$lang->projectstory->featureBarList['other']['closedbyme'] = $lang->product->closedByMe;
$lang->projectstory->featureBar['story']['allstory'] = $lang->product->allStory;
$lang->projectstory->featureBar['story']['unclosed'] = $lang->product->unclosed;
$lang->projectstory->featureBar['story']['changed'] = $lang->product->changedStory;
$lang->projectstory->featureBar['story']['closed'] = $lang->product->closedStory;
+1 -8
View File
@@ -2359,11 +2359,6 @@ class storyModel extends model
$unclosedStatus = $this->lang->story->statusList;
unset($unclosedStatus['closed']);
if($execution->type == 'project')
{
$statusFeatureList = $this->lang->projectstory->featureBarList['status'];
$otherFeatureList = $this->lang->projectstory->featureBarList['other'];
}
$stories = $this->dao->select('distinct t1.*, t2.*,t3.branch as productBranch,t4.type as productType,t2.version as version')->from(TABLE_PROJECTSTORY)->alias('t1')
->leftJoin(TABLE_STORY)->alias('t2')->on('t1.story = t2.id')
@@ -2375,10 +2370,8 @@ class storyModel extends model
->beginIF($execution->type == 'project')
->beginIF(!empty($productID))->andWhere('t1.product')->eq($productID)
->beginIF($type == 'bybranch')->andWhere('t2.branch')->eq($branch)->fi()
->beginIF(isset($statusFeatureList) and in_array($type, array_keys($statusFeatureList)))->andWhere('t2.status')->eq(substr($type, 0, -5))->fi()
->beginIF(isset($otherFeatureList) and in_array($type, array_keys($otherFeatureList)))->andWhere('t2.' . substr($type, 0, -2))->eq($this->app->user->account)->fi()
->beginIF(strpos('changed|closed', $type) !== false)->andWhere('t2.status')->eq($type)->fi()
->beginIF($type == 'unclosed')->andWhere('t2.status')->in(array_keys($unclosedStatus))->fi()
->beginIF($type == 'willclose')->andWhere('t2.stage')->in('developed,released')->andWhere('t2.status')->ne('closed')->fi()
->fi()
->beginIF($execution->type != 'project')
->beginIF(!empty($productParam))->andWhere('t1.product')->eq($productParam)->fi()