diff --git a/module/execution/css/story.css b/module/execution/css/story.css
index 3c75842a66..9213919db3 100644
--- a/module/execution/css/story.css
+++ b/module/execution/css/story.css
@@ -20,3 +20,4 @@ th.c-pri{width:50px;}
.switchBtn {background-color: #fff !important;}
.switchBtn > i {padding-left: 7px;}
#main>.container {padding: 0 20px 20px 23px;}
+#executionStoryForm table tbody tr td.c-actions .dividing-line {width: 1px; height: 16px; display: inline-block; vertical-align: middle; background: #EDEEF2; margin: 0 4px 0 0;}
diff --git a/module/product/view/browse.html.php b/module/product/view/browse.html.php
index bc8f27eac6..fafa8067c9 100644
--- a/module/product/view/browse.html.php
+++ b/module/product/view/browse.html.php
@@ -43,7 +43,7 @@ $projectIDParam = $isProjectStory ? "projectID=$projectID&" : '';
.btn-group button.dropdown-toggle.btn-secondary, .btn-group button.dropdown-toggle.btn-primary {padding:6px;}
#productStoryForm table tbody tr td.c-actions {overflow: visible;}
-#productStoryForm table tbody tr td.c-actions .dividing-line {width: 1px; height: 16px; display: inline-block; vertical-align: middle; background: #E4E4E4; margin: 0 4px 0 0;}
+#productStoryForm table tbody tr td.c-actions .dividing-line {width: 1px; height: 16px; display: inline-block; vertical-align: middle; background: #EDEEF2; margin: 0 4px 0 0;}
diff --git a/module/story/model.php b/module/story/model.php
index ca0b5e51da..135536c34e 100644
--- a/module/story/model.php
+++ b/module/story/model.php
@@ -4262,7 +4262,7 @@ class storyModel extends model
$menu .= $this->buildMenu('story', 'edit', $params . "&kanbanGroup=default&storyType=$story->type", $story, $type, '', '', 'showinonlybody');
if(in_array($this->app->tab, array('product', 'project')))
{
- if((common::hasPriv('story', 'change') or common::hasPriv('story', 'review') or common::hasPriv('story', 'recall') or common::hasPriv('story', 'edit')) and ($storyType == 'story' and common::hasPriv('story', 'batchCreate') or common::hasPriv('testcase', 'create') or ($storyType == 'requirement' and common::hasPriv('story', 'close'))))
+ if((common::hasPriv('story', 'change') or common::hasPriv('story', 'recall') or (strpos('draft,changing', $story->status) !== false and common::hasPriv('story', 'submitReview')) or (strpos('active,reviewing,closed', $story->status) !== false and common::hasPriv('story', 'review')) or common::hasPriv('story', 'edit')) and ($storyType == 'story' and common::hasPriv('story', 'batchCreate') or common::hasPriv('testcase', 'create') or ($storyType == 'requirement' and common::hasPriv('story', 'close'))))
{
$menu .= "
";
}
@@ -4299,7 +4299,7 @@ class storyModel extends model
}
}
- if($storyType == 'story' and common::hasPriv('story', 'batchCreate')) $menu .= $this->buildMenu('story', 'batchCreate', "productID=$story->product&branch=$story->branch&module=$story->module&$params&executionID=0&plan=0&storyType=story", $story, $type, 'split', '', 'showinonlybody', '', '', $title);
+ if($storyType == 'story') $menu .= $this->buildMenu('story', 'batchCreate', "productID=$story->product&branch=$story->branch&module=$story->module&$params&executionID=0&plan=0&storyType=story", $story, $type, 'split', '', 'showinonlybody', '', '', $title);
}
if($this->app->rawModule == 'projectstory' and $this->config->vision != 'lite')
@@ -4312,7 +4312,6 @@ class storyModel extends model
$menu .= $this->buildMenu('story', 'close', $params . "&from=&storyType=$story->type", $story, $type, '', '', 'iframe', true);
}
-
if($this->app->tab == 'product' and $storyType == 'story')
{
if((common::hasPriv('story', 'batchCreate') or common::hasPriv('testcase', 'create')) and common::hasPriv('story', 'close'))
@@ -4328,7 +4327,6 @@ class storyModel extends model
{
return $this->buildMenu('story', 'close', $params . "&from=&storyType=$story->type", $story, 'list', '', '', 'iframe', true);
}
-
}
if($type == 'view')
@@ -4434,21 +4432,26 @@ class storyModel extends model
$this->lang->task->batchCreate = $this->lang->execution->batchWBS;
if($hasDBPriv) $menu .= common::printIcon('task', 'batchCreate', "executionID=$executionID&story={$story->id}", '', 'list', 'pluses', '', $toTaskDisabled);
+ if(((strpos('draft,changing', $story->status) !== false and common::hasPriv('story', 'submitReview')) or (strpos('active,reviewing,closed', $story->status) !== false and common::hasPriv('story', 'review')) or common::hasPriv('story', 'recall') or common::hasPriv('task', 'create') or common::hasPriv('task', 'batchCreate')) and (($hasDBPriv and common::hasPriv('testcase', 'create')) or common::hasPriv('execution', 'storyEstimate', $execution) or common::hasPriv('execution', 'unlinkStory', $execution)))
+ {
+ $menu .= "
";
+ }
+
+ if(common::hasPriv('execution', 'storyEstimate', $execution))
+ {
+ $menu .= $this->buildMenu('execution', 'storyEstimate', "executionID=$executionID&storyID=$story->id", $story, $type, 'estimate', '', 'iframe', true, "data-width='470px'");
+ }
+
+ if(common::hasPriv('execution', 'unlinkStory', $execution))
+ {
+ $menu .= common::printIcon('execution', 'unlinkStory', "executionID=$executionID&storyID=$story->id&confirm=no", '', 'list', 'unlink', 'hiddenwin');
+ }
+
$this->lang->testcase->batchCreate = $this->lang->testcase->create;
if($hasDBPriv and common::hasPriv('testcase', 'create'))
{
$menu .= html::a(helper::createLink('testcase', 'create', "productID=$story->product&branch=$story->branch&moduleID=$story->module&form=¶m=0&storyID=$story->id"), '
', '', "class='btn' title='{$this->lang->testcase->create}' data-app='qa'");
}
-
- if($canBeChanged and common::hasPriv('execution', 'storyEstimate', $execution))
- {
- $menu .= common::printIcon('execution', 'storyEstimate', "executionID=$executionID&storyID=$story->id", '', 'list', 'estimate', '', 'iframe', true, "data-width='470px'");
- }
-
- if($canBeChanged and common::hasPriv('execution', 'unlinkStory', $execution))
- {
- $menu .= common::printIcon('execution', 'unlinkStory', "executionID=$executionID&storyID=$story->id&confirm=no", '', 'list', 'unlink', 'hiddenwin');
- }
}
}