* Modify story review and other about story.
This commit is contained in:
@@ -411,7 +411,7 @@ $lang->execution->unresolvedBug = "[%s] unresolved bugs. ";
|
||||
$lang->execution->projectNotEmpty = 'Project cannot be empty.';
|
||||
$lang->execution->confirmStoryToTask = $lang->SRCommon . '%s are converted to tasks in the current. Do you want to convert them anyways?';
|
||||
$lang->execution->ge = "『%s』should be >= actual begin『%s』.";
|
||||
$lang->execution->storyDragError = "The {$lang->SRCommon} is still a draft or has been changed, please drag it after the review";
|
||||
$lang->execution->storyDragError = "The {$lang->SRCommon} is not active. Please activate and drag again.";
|
||||
$lang->execution->countTip = ' (%s member)';
|
||||
$lang->execution->pleaseInput = "Enter";
|
||||
$lang->execution->week = 'week';
|
||||
|
||||
@@ -411,7 +411,7 @@ $lang->execution->unresolvedBug = "[%s] unresolved bugs. ";
|
||||
$lang->execution->projectNotEmpty = 'Project cannot be empty.';
|
||||
$lang->execution->confirmStoryToTask = $lang->SRCommon . '%s are converted to tasks in the current. Do you want to convert them anyways?';
|
||||
$lang->execution->ge = "『%s』should be >= actual begin『%s』.";
|
||||
$lang->execution->storyDragError = "The {$lang->SRCommon} is still a draft or has been changed, please drag it after the review";
|
||||
$lang->execution->storyDragError = "The {$lang->SRCommon} is not active. Please activate and drag again.";
|
||||
$lang->execution->countTip = ' (%s member)';
|
||||
$lang->execution->pleaseInput = "Enter";
|
||||
$lang->execution->week = 'week';
|
||||
|
||||
@@ -411,7 +411,7 @@ $lang->execution->unresolvedBug = "[%s] unresolved bugs. ";
|
||||
$lang->execution->projectNotEmpty = 'Project cannot be empty.';
|
||||
$lang->execution->confirmStoryToTask = $lang->SRCommon . '%s are converted to tasks in the current. Do you want to convert them anyways?';
|
||||
$lang->execution->ge = "『%s』should be >= actual begin『%s』.";
|
||||
$lang->execution->storyDragError = "The {$lang->SRCommon} is still a draft or has been changed, please drag it after the review";
|
||||
$lang->execution->storyDragError = "The {$lang->SRCommon} is not active. Please activate and drag again.";
|
||||
$lang->execution->countTip = ' (%s member)';
|
||||
$lang->execution->pleaseInput = "Enter";
|
||||
$lang->execution->week = 'week';
|
||||
|
||||
@@ -411,7 +411,7 @@ $lang->execution->unresolvedBug = "[%s]个未解决的bug,";
|
||||
$lang->execution->projectNotEmpty = '所属项目不能为空。';
|
||||
$lang->execution->confirmStoryToTask = '%s' . $lang->SRCommon . '已经在当前' . $lang->execution->common . '中转了任务,请确认是否重复转任务。';
|
||||
$lang->execution->ge = "『%s』应当不小于实际开始时间『%s』。";
|
||||
$lang->execution->storyDragError = "该{$lang->SRCommon}还是草稿或已变更状态,请评审通过后再拖动";
|
||||
$lang->execution->storyDragError = "该{$lang->SRCommon}不是激活状态,请激活后再拖动";
|
||||
$lang->execution->countTip = '(%s人)';
|
||||
$lang->execution->pleaseInput = "请输入";
|
||||
$lang->execution->week = '周';
|
||||
|
||||
@@ -141,14 +141,6 @@
|
||||
<th class='c-bugs'><?php echo $lang->product->bugs?></th>
|
||||
<td><strong><?php echo $product->bugs?></strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->story->statusList['changing'] . $space . $lang->story->common;?></th>
|
||||
<td><strong><?php echo $product->stories['changing']?></strong></td>
|
||||
<th><?php echo $lang->product->releases?></th>
|
||||
<td><strong><?php echo $product->releases?></strong></td>
|
||||
<th><?php echo $lang->product->cases?></th>
|
||||
<td><strong><?php echo $product->cases?></strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->story->statusList['draft'] . $space . $lang->story->common;?></th>
|
||||
<td><strong><?php echo $product->stories['draft']?></strong></td>
|
||||
@@ -158,8 +150,16 @@
|
||||
<td><strong><?php echo $product->docs?></strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->story->statusList['closed'] . $space . $lang->story->common;?></th>
|
||||
<td><strong><?php echo $product->stories['closed']?></strong></td>
|
||||
<th><?php echo $lang->story->statusList['changing'] . $space . $lang->story->common;?></th>
|
||||
<td><strong><?php echo $product->stories['changing']?></strong></td>
|
||||
<th><?php echo $lang->product->releases?></th>
|
||||
<td><strong><?php echo $product->releases?></strong></td>
|
||||
<th><?php echo $lang->product->cases?></th>
|
||||
<td><strong><?php echo $product->cases?></strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->story->statusList['reviewing'] . $space . $lang->story->common;?></th>
|
||||
<td><strong><?php echo $product->stories['reviewing']?></strong></td>
|
||||
<?php if($config->systemMode == 'new'):?>
|
||||
<th><?php echo $lang->product->projects?></th>
|
||||
<td><strong><?php echo $product->projects?></strong></td>
|
||||
|
||||
@@ -26,6 +26,8 @@ global $app;
|
||||
$app->loadLang('product');
|
||||
$lang->projectstory->featureBar['story']['allstory'] = $lang->product->allStory;
|
||||
$lang->projectstory->featureBar['story']['unclosed'] = $lang->product->unclosed;
|
||||
$lang->projectstory->featureBar['story']['draft'] = $lang->product->draftStory;
|
||||
$lang->projectstory->featureBar['story']['reviewing'] = $lang->product->reviewingStory;
|
||||
$lang->projectstory->featureBar['story']['changing'] = $lang->product->changingStory;
|
||||
$lang->projectstory->featureBar['story']['closed'] = $lang->product->closedStory;
|
||||
$lang->projectstory->featureBar['story']['linkedExecution'] = 'Linked ' . $lang->execution->common;
|
||||
|
||||
@@ -26,6 +26,8 @@ global $app;
|
||||
$app->loadLang('product');
|
||||
$lang->projectstory->featureBar['story']['allstory'] = $lang->product->allStory;
|
||||
$lang->projectstory->featureBar['story']['unclosed'] = $lang->product->unclosed;
|
||||
$lang->projectstory->featureBar['story']['draft'] = $lang->product->draftStory;
|
||||
$lang->projectstory->featureBar['story']['reviewing'] = $lang->product->reviewingStory;
|
||||
$lang->projectstory->featureBar['story']['changing'] = $lang->product->changingStory;
|
||||
$lang->projectstory->featureBar['story']['closed'] = $lang->product->closedStory;
|
||||
$lang->projectstory->featureBar['story']['linkedExecution'] = 'Linked ' . $lang->execution->common;
|
||||
|
||||
@@ -26,6 +26,8 @@ global $app;
|
||||
$app->loadLang('product');
|
||||
$lang->projectstory->featureBar['story']['allstory'] = $lang->product->allStory;
|
||||
$lang->projectstory->featureBar['story']['unclosed'] = $lang->product->unclosed;
|
||||
$lang->projectstory->featureBar['story']['draft'] = $lang->product->draftStory;
|
||||
$lang->projectstory->featureBar['story']['reviewing'] = $lang->product->reviewingStory;
|
||||
$lang->projectstory->featureBar['story']['changing'] = $lang->product->changingStory;
|
||||
$lang->projectstory->featureBar['story']['closed'] = $lang->product->closedStory;
|
||||
$lang->projectstory->featureBar['story']['linkedExecution'] = 'Linked ' . $lang->execution->common;
|
||||
|
||||
@@ -18,7 +18,11 @@ $lang->projectstory->batchUnlinkTip = 'Other requirements are removed. The follo
|
||||
|
||||
global $app;
|
||||
$app->loadLang('product');
|
||||
$lang->projectstory->featureBar['story']['allstory'] = $lang->product->allStory;
|
||||
$lang->projectstory->featureBar['story']['unclosed'] = $lang->product->unclosed;
|
||||
$lang->projectstory->featureBar['story']['changing'] = $lang->product->changingStory;
|
||||
$lang->projectstory->featureBar['story']['closed'] = $lang->product->closedStory;
|
||||
$lang->projectstory->featureBar['story']['allstory'] = $lang->product->allStory;
|
||||
$lang->projectstory->featureBar['story']['unclosed'] = $lang->product->unclosed;
|
||||
$lang->projectstory->featureBar['story']['draft'] = $lang->product->draftStory;
|
||||
$lang->projectstory->featureBar['story']['reviewing'] = $lang->product->reviewingStory;
|
||||
$lang->projectstory->featureBar['story']['changing'] = $lang->product->changingStory;
|
||||
$lang->projectstory->featureBar['story']['closed'] = $lang->product->closedStory;
|
||||
$lang->projectstory->featureBar['story']['linkedExecution'] = 'Linked ' . $lang->execution->common;
|
||||
$lang->projectstory->featureBar['story']['unlinkedExecution'] = 'Unlinked ' . $lang->execution->common;
|
||||
|
||||
@@ -26,6 +26,8 @@ global $app;
|
||||
$app->loadLang('product');
|
||||
$lang->projectstory->featureBar['story']['allstory'] = $lang->product->allStory;
|
||||
$lang->projectstory->featureBar['story']['unclosed'] = $lang->product->unclosed;
|
||||
$lang->projectstory->featureBar['story']['draft'] = $lang->product->draftStory;
|
||||
$lang->projectstory->featureBar['story']['reviewing'] = $lang->product->reviewingStory;
|
||||
$lang->projectstory->featureBar['story']['changing'] = $lang->product->changingStory;
|
||||
$lang->projectstory->featureBar['story']['closed'] = $lang->product->closedStory;
|
||||
$lang->projectstory->featureBar['story']['linkedExecution'] = '已关联' . $lang->execution->common;
|
||||
|
||||
@@ -48,6 +48,7 @@
|
||||
<th class="c-date"><?php echo $lang->productplan->begin;?></th>
|
||||
<th class="c-date"><?php echo $lang->productplan->end;?></th>
|
||||
<th class="c-count"><?php echo $lang->story->statusList['draft'];?></th>
|
||||
<th class="c-count"><?php echo $lang->story->statusList['reviewing'];?></th>
|
||||
<th class="c-count"><?php echo $lang->story->statusList['active'];?></th>
|
||||
<th class="c-count"><?php echo $lang->story->statusList['changing'];?></th>
|
||||
<th class="c-count"><?php echo $lang->story->statusList['closed'];?></th>
|
||||
@@ -71,16 +72,18 @@
|
||||
<td class="<?php echo $class;?>"><?php echo $plan->begin == '2030-01-01' ? $lang->productplan->future : $plan->begin;?></td>
|
||||
<td class="<?php echo $class;?>"><?php echo $plan->end == '2030-01-01' ? $lang->productplan->future : $plan->end;?></td>
|
||||
<?php
|
||||
$draftCount = isset($plan->status['draft']) ? $plan->status['draft'] : 0;
|
||||
$activeCount = isset($plan->status['active']) ? $plan->status['active'] : 0;
|
||||
$changedCount = isset($plan->status['changing']) ? $plan->status['changing'] : 0;
|
||||
$closedCount = isset($plan->status['closed']) ? $plan->status['closed'] : 0;
|
||||
$draftCount = isset($plan->status['draft']) ? $plan->status['draft'] : 0;
|
||||
$reviewingCount = isset($plan->status['reviewing']) ? $plan->status['reviewing'] : 0;
|
||||
$activeCount = isset($plan->status['active']) ? $plan->status['active'] : 0;
|
||||
$changedCount = isset($plan->status['changing']) ? $plan->status['changing'] : 0;
|
||||
$closedCount = isset($plan->status['closed']) ? $plan->status['closed'] : 0;
|
||||
?>
|
||||
<td class="<?php echo $class;?>"><?php echo $draftCount;?></td>
|
||||
<td class="<?php echo $class;?>"><?php echo $reviewingCount;?></td>
|
||||
<td class="<?php echo $class;?>"><?php echo $activeCount;?></td>
|
||||
<td class="<?php echo $class;?>"><?php echo $changedCount;?></td>
|
||||
<td class="<?php echo $class;?>"><?php echo $closedCount;?></td>
|
||||
<td class="<?php echo $class;?>"><?php echo $draftCount + $activeCount + $changedCount + $closedCount;?></td>
|
||||
<td class="<?php echo $class;?>"><?php echo $draftCount + $reviewingCount + $activeCount + $changedCount + $closedCount;?></td>
|
||||
<?php if($id != 1) echo "</tr>"?>
|
||||
<?php $id ++;?>
|
||||
<?php $color = !$color;?>
|
||||
@@ -95,6 +98,7 @@
|
||||
<td class="<?php echo $class;?>">0</td>
|
||||
<td class="<?php echo $class;?>">0</td>
|
||||
<td class="<?php echo $class;?>">0</td>
|
||||
<td class="<?php echo $class;?>">0</td>
|
||||
<?php $color = !$color;?>
|
||||
<?php endif;?>
|
||||
</tr>
|
||||
|
||||
@@ -1202,7 +1202,7 @@ class story extends control
|
||||
|
||||
/* Assign. */
|
||||
$this->view->title = $this->lang->story->activate . "STORY" . $this->lang->colon . $this->view->story->title;
|
||||
$this->view->users = $this->user->getPairs('pofirst|nodeleted', $this->view->story->closedBy);
|
||||
$this->view->users = $this->user->getPairs('pofirst|nodeleted|noclosed', $this->view->story->closedBy);
|
||||
$this->view->position[] = $this->lang->story->activate;
|
||||
$this->display();
|
||||
}
|
||||
@@ -1510,7 +1510,7 @@ class story extends control
|
||||
if($confirm == 'no')
|
||||
{
|
||||
$confirmTips = $story->status == 'changing' ? $this->lang->story->confirmRecallChange : $this->lang->story->confirmRecallReview;
|
||||
return print(js::confirm($confirmTips, $this->createLink('story', 'recall', "storyID=$storyID&from=lite&confirm=yes")));
|
||||
return print(js::confirm($confirmTips, $this->createLink('story', 'recall', "storyID=$storyID&from=$from&confirm=yes")));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1520,10 +1520,10 @@ class story extends control
|
||||
$action = $story->status == 'changing' ? 'recalledChange' : 'Recalled';
|
||||
$this->loadModel('action')->create('story', $storyID, $action);
|
||||
|
||||
if($from == 'view') return print(js::locate($this->createLink('story', 'view', "storyID={$storyID}&from=view")));
|
||||
if($from == 'view') return print(js::locate($this->createLink('story', 'view', "storyID=$storyID"), 'parent'));
|
||||
|
||||
$locateLink = $this->session->storyList ? $this->session->storyList : $this->createLink('product', 'browse', "productID={$story->product}");
|
||||
echo js::locate($locateLink, 'parent');
|
||||
return print(js::locate($locateLink, 'parent'));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -462,8 +462,10 @@ $lang->story->subDivideTip['planned'] = 'The Story has been planned and cannot
|
||||
$lang->story->subDivideTip['projected'] = 'The Story has been initiated and cannot be subdivided.';
|
||||
$lang->story->subDivideTip['notActive'] = 'The Story is not active and cannot be subdivided.';
|
||||
|
||||
$lang->story->featureBar['browse']['all'] = $lang->all;
|
||||
$lang->story->featureBar['browse']['unclosed'] = $lang->story->unclosed;
|
||||
$lang->story->featureBar['browse']['all'] = $lang->all;
|
||||
$lang->story->featureBar['browse']['unclosed'] = $lang->story->unclosed;
|
||||
$lang->story->featureBar['browse']['draft'] = $lang->story->statusList['draft'];
|
||||
$lang->story->featureBar['browse']['reviewing'] = $lang->story->statusList['reviewing'];
|
||||
|
||||
$lang->story->recallList = array();
|
||||
$lang->story->recallList['recallReview'] = $lang->story->recall;
|
||||
|
||||
@@ -462,8 +462,10 @@ $lang->story->subDivideTip['planned'] = 'The Story has been planned and cannot
|
||||
$lang->story->subDivideTip['projected'] = 'The Story has been initiated and cannot be subdivided.';
|
||||
$lang->story->subDivideTip['notActive'] = 'The Story is not active and cannot be subdivided.';
|
||||
|
||||
$lang->story->featureBar['browse']['all'] = $lang->all;
|
||||
$lang->story->featureBar['browse']['unclosed'] = $lang->story->unclosed;
|
||||
$lang->story->featureBar['browse']['all'] = $lang->all;
|
||||
$lang->story->featureBar['browse']['unclosed'] = $lang->story->unclosed;
|
||||
$lang->story->featureBar['browse']['draft'] = $lang->story->statusList['draft'];
|
||||
$lang->story->featureBar['browse']['reviewing'] = $lang->story->statusList['reviewing'];
|
||||
|
||||
$lang->story->recallList = array();
|
||||
$lang->story->recallList['recallReview'] = $lang->story->recall;
|
||||
|
||||
@@ -462,8 +462,10 @@ $lang->story->subDivideTip['planned'] = 'Cette Story est planifiée et ne peut
|
||||
$lang->story->subDivideTip['projected'] = 'Cette Story a été créée et ne peut être subdivisée.';
|
||||
$lang->story->subDivideTip['notActive'] = "Cette Story n'est pas active et ne peut être subdivisée.";
|
||||
|
||||
$lang->story->featureBar['browse']['all'] = $lang->all;
|
||||
$lang->story->featureBar['browse']['unclosed'] = $lang->story->unclosed;
|
||||
$lang->story->featureBar['browse']['all'] = $lang->all;
|
||||
$lang->story->featureBar['browse']['unclosed'] = $lang->story->unclosed;
|
||||
$lang->story->featureBar['browse']['draft'] = $lang->story->statusList['draft'];
|
||||
$lang->story->featureBar['browse']['reviewing'] = $lang->story->statusList['reviewing'];
|
||||
|
||||
$lang->story->recallList = array();
|
||||
$lang->story->recallList['recallReview'] = $lang->story->recall;
|
||||
|
||||
@@ -454,8 +454,10 @@ $lang->story->subDivideTip['planned'] = 'The Story has been planned and cannot
|
||||
$lang->story->subDivideTip['projected'] = 'The Story has been initiated and cannot be subdivided.';
|
||||
$lang->story->subDivideTip['notActive'] = 'The Story is not active and cannot be subdivided.';
|
||||
|
||||
$lang->story->featureBar['browse']['all'] = $lang->all;
|
||||
$lang->story->featureBar['browse']['unclosed'] = $lang->story->unclosed;
|
||||
$lang->story->featureBar['browse']['all'] = $lang->all;
|
||||
$lang->story->featureBar['browse']['unclosed'] = $lang->story->unclosed;
|
||||
$lang->story->featureBar['browse']['draft'] = $lang->story->statusList['draft'];
|
||||
$lang->story->featureBar['browse']['reviewing'] = $lang->story->statusList['reviewing'];
|
||||
|
||||
$lang->story->recallList = array();
|
||||
$lang->story->recallList['recallReview'] = $lang->story->recall;
|
||||
|
||||
@@ -462,8 +462,10 @@ $lang->story->subDivideTip['planned'] = '该需求已计划,无法进行细
|
||||
$lang->story->subDivideTip['projected'] = '该需求已立项,无法进行细分操作';
|
||||
$lang->story->subDivideTip['notActive'] = '需求不是激活状态,无法进行细分操作';
|
||||
|
||||
$lang->story->featureBar['browse']['all'] = $lang->all;
|
||||
$lang->story->featureBar['browse']['unclosed'] = $lang->story->unclosed;
|
||||
$lang->story->featureBar['browse']['all'] = $lang->all;
|
||||
$lang->story->featureBar['browse']['unclosed'] = $lang->story->unclosed;
|
||||
$lang->story->featureBar['browse']['draft'] = $lang->story->statusList['draft'];
|
||||
$lang->story->featureBar['browse']['reviewing'] = $lang->story->statusList['reviewing'];
|
||||
|
||||
$lang->story->recallList = array();
|
||||
$lang->story->recallList['recallReview'] = $lang->story->recall;
|
||||
|
||||
+21
-14
@@ -709,6 +709,7 @@ class storyModel extends model
|
||||
->remove('files,labels,reviewer,comment,needNotReview,uid')
|
||||
->get();
|
||||
|
||||
|
||||
$story = $this->loadModel('file')->processImgURL($story, $this->config->story->editor->change['id'], $this->post->uid);
|
||||
$this->dao->update(TABLE_STORY)->data($story, 'spec,verify')
|
||||
->autoCheck()
|
||||
@@ -757,12 +758,15 @@ class storyModel extends model
|
||||
$reviewData->reviewer = $reviewer;
|
||||
$this->dao->insert(TABLE_STORYREVIEW)->data($reviewData)->exec();
|
||||
}
|
||||
|
||||
if($reviewerHasChanged)
|
||||
{
|
||||
$oldStory->reviewers = implode(',', array_keys($oldStoryReviewers));
|
||||
$story->reviewers = implode(',', $_POST['reviewer']);
|
||||
}
|
||||
}
|
||||
|
||||
$this->file->updateObjectID($this->post->uid, $storyID, 'story');
|
||||
|
||||
$oldStory->reviewers = implode(',', array_keys($oldStoryReviewers));
|
||||
$story->reviewers = implode(',', $_POST['reviewer']);
|
||||
return common::createChanges($oldStory, $story);
|
||||
}
|
||||
}
|
||||
@@ -1438,6 +1442,8 @@ class storyModel extends model
|
||||
->add('id', $storyID)
|
||||
->remove('result,comment')
|
||||
->get();
|
||||
|
||||
$story->reviewedBy = implode(',', array_unique(explode(',', $story->reviewedBy)));
|
||||
$story = $this->loadModel('file')->processImgURL($story, $this->config->story->editor->review['id'], $this->post->uid);
|
||||
|
||||
/* Fix bug #671. */
|
||||
@@ -3051,15 +3057,6 @@ class storyModel extends model
|
||||
if(empty($normalProducts) and empty($branchProducts)) $storyQuery .= '1 = 1';
|
||||
$storyQuery .= ') ';
|
||||
|
||||
if($this->app->moduleName == 'release' or $this->app->moduleName == 'build')
|
||||
{
|
||||
$storyQuery .= " AND `status` NOT IN ('draft', 'reviewing')"; // Fix bug #990.
|
||||
}
|
||||
else
|
||||
{
|
||||
$storyQuery .= " AND `status` NOT IN ('draft', 'reviewing', 'closed')";
|
||||
}
|
||||
|
||||
if($this->app->rawModule == 'build' and $this->app->rawMethod == 'linkstory') $storyQuery .= " AND `parent` != '-1'";
|
||||
}
|
||||
elseif(strpos($storyQuery, $allBranch) !== false)
|
||||
@@ -3072,6 +3069,15 @@ class storyModel extends model
|
||||
}
|
||||
$storyQuery = preg_replace("/`plan` +LIKE +'%([0-9]+)%'/i", "CONCAT(',', `plan`, ',') LIKE '%,$1,%'", $storyQuery);
|
||||
|
||||
if($this->app->moduleName == 'release' or $this->app->moduleName == 'build')
|
||||
{
|
||||
$storyQuery .= " AND `status` NOT IN ('draft', 'reviewing')"; // Fix bug #990.
|
||||
}
|
||||
else
|
||||
{
|
||||
$storyQuery .= " AND `status` NOT IN ('draft', 'reviewing', 'closed')";
|
||||
}
|
||||
|
||||
return $this->getBySQL($queryProductID, $storyQuery, $orderBy, $pager, $type);
|
||||
}
|
||||
|
||||
@@ -3225,7 +3231,7 @@ class storyModel extends model
|
||||
->beginIF($execution->type == 'project')
|
||||
->beginIF(!empty($productID))->andWhere('t1.product')->eq($productID)
|
||||
->beginIF($type == 'bybranch' and $branchParam !== '')->andWhere('t2.branch')->in("0,$branchParam")->fi()
|
||||
->beginIF(strpos('changing|closed', $type) !== false)->andWhere('t2.status')->eq($type)->fi()
|
||||
->beginIF(strpos('draft|reviewing|changing|closed', $type) !== false)->andWhere('t2.status')->eq($type)->fi()
|
||||
->beginIF($type == 'unclosed')->andWhere('t2.status')->in(array_keys($unclosedStatus))->fi()
|
||||
->beginIF($type == 'linkedexecution')->andWhere('t2.id')->in($storyIdList)->fi()
|
||||
->beginIF($type == 'unlinkedexecution')->andWhere('t2.id')->notIn($storyIdList)->fi()
|
||||
@@ -4129,7 +4135,7 @@ class storyModel extends model
|
||||
if($action == 'assignto') return $story->status != 'closed';
|
||||
if($action == 'createcase') return $story->type != 'requirement';
|
||||
if($action == 'batchcreate' and $story->parent > 0) return false;
|
||||
if($action == 'batchcreate' and $story->type == 'requirement' and $story->status != 'closed') return $story->status != 'draft';
|
||||
if($action == 'batchcreate' and $story->type == 'requirement' and $story->status != 'closed') return strpos('draft,reviewing,changing', $story->status) === false;
|
||||
if($action == 'batchcreate' and $config->vision == 'lite' and ($story->status == 'active' and ($story->stage == 'wait' or $story->stage == 'projected'))) return true;
|
||||
if($action == 'batchcreate' and ($story->status != 'active' or $story->stage != 'wait' or !empty($story->plan))) return false;
|
||||
|
||||
@@ -4237,6 +4243,7 @@ class storyModel extends model
|
||||
if($type == 'view')
|
||||
{
|
||||
$menu .= $this->buildMenu('story', 'change', $params, $story, $type, 'alter', '', 'showinonlybody');
|
||||
if($story->status == 'draft') $menu .= $this->buildMenu('story', 'submitReview', $params, $story, $type, 'sub-review', '', 'showinonlybody iframe', true, "data-width='50%'");
|
||||
|
||||
$title = $story->status == 'changing' ? $this->lang->story->recallChange : $this->lang->story->recall;
|
||||
$menu .= $this->buildMenu('story', 'recall', $params . '&from=view', $story, $type, 'undo', 'hiddenwin', 'showinonlybody', false, '', $title);
|
||||
|
||||
Reference in New Issue
Block a user