diff --git a/extension/lite/product/ext/view/browse.html.php b/extension/lite/product/ext/view/browse.html.php index 5e563f9c1a..524ca6c491 100644 --- a/extension/lite/product/ext/view/browse.html.php +++ b/extension/lite/product/ext/view/browse.html.php @@ -18,6 +18,7 @@ body {margin-bottom: 25px;} #mainMenu .btn-toolbar .btn-group .dropdown-menu .btn-active-text:hover .text:after {border-bottom: unset;} .body-modal #mainMenu>.btn-toolbar {width: auto;} .assignedTo{border-radius: 4px !important;} +#productStoryForm table tbody tr td.c-actions .dividing-line {width: 1px; height: 16px; display: inline-block; vertical-align: middle; background: #F4F5F7; margin: 0 4px 0 0;} diff --git a/module/execution/css/story.css b/module/execution/css/story.css index 3c75842a66..edef11c0c7 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: #F4F5F7; margin: 0 4px 0 0;} diff --git a/module/kanban/css/view.css b/module/kanban/css/view.css index 1a860e96f3..d3503c0e8a 100644 --- a/module/kanban/css/view.css +++ b/module/kanban/css/view.css @@ -185,3 +185,4 @@ .region.active.notAll {margin-top: -5px;} .region.active.notAll .region-header {display: none;} .region.active.notAll .kanban, .region.active.notAll .kanban .kanban-header {background-color: #efefef;} +.kanban-card a[disabled] {color: #313c52;} diff --git a/module/my/css/common.css b/module/my/css/common.css index 7f537d48f0..8b139ae11f 100644 --- a/module/my/css/common.css +++ b/module/my/css/common.css @@ -8,3 +8,4 @@ .dropdown-list > li > a:focus {color: #1a4f85; text-decoration: none; background-color: #ddd;} .btn-toolbar .nav-title {float: left; display: inline-block; padding: 6px 12px; margin-bottom: 0; font-size: 13px; font-weight: bolder; line-height: 18px; text-align: center; white-space: nowrap; vertical-align: middle;} +#myStoryForm table tbody tr td.c-actions .dividing-line {width: 1px; height: 16px; display: inline-block; vertical-align: middle; background: #F4F5F7; margin: 0 4px 0 0;} diff --git a/module/my/css/story.css b/module/my/css/story.css index 13919b8117..58b9c22c7d 100644 --- a/module/my/css/story.css +++ b/module/my/css/story.css @@ -10,3 +10,4 @@ .table td.c-hours {padding-right: 12px;} .main-table tbody > tr.table-children > td:first-child::before {width: 3px;} @-moz-document url-prefix() {.main-table tbody > tr.table-children > td:first-child::before {width: 4px;};} +.c-actions-6 {width: 185px;} diff --git a/module/my/view/requirement.html.php b/module/my/view/requirement.html.php index 37248276c6..d607ca8e1c 100644 --- a/module/my/view/requirement.html.php +++ b/module/my/view/requirement.html.php @@ -114,8 +114,21 @@ echo common::buildIconButton('story', 'review', "$vars&from=product&storyType=requirement", $story, 'list', 'search', '', 'iframe', true); } echo common::buildIconButton('story', 'recall', "$vars&from=list&storyType=requirement", $story, 'list', 'undo', 'hiddenwin', '', '', '', $lang->story->recall); - echo common::buildIconButton('story', 'close', "$vars&from=&storyType=requirement", $story, 'list', '', '', 'iframe', true); echo common::buildIconButton('story', 'edit', "$vars&from=default&storyType=requirement", $story, 'list', '', '', 'iframe', true, "data-width='95%'"); + + $storyType = 'storyType=requirement'; + $canChange = common::hasPriv('story', 'change', '', $storyType); + $canSubmitReview = (strpos('draft,changing', $story->status) !== false and common::hasPriv('story', 'submitReview', '', $storyType)); + $canReview = (strpos('draft,changing', $story->status) === false and common::hasPriv('story', 'review', '', $storyType)); + $canRecall = common::hasPriv('story', 'recall', '', $storyType); + $canEdit = common::hasPriv('story', 'edit', '', $storyType); + $canClose = common::hasPriv('story', 'close', '', $storyType); + if(($canChange or $canSubmitReview or $canReview or $canRecall or $canEdit) and $canClose) + { + echo "
"; + } + + echo common::buildIconButton('story', 'close', "$vars&from=&storyType=requirement", $story, 'list', '', '', 'iframe', true); } ?> @@ -163,8 +176,19 @@ } common::printIcon('story', 'recall', "$vars&from=list&storyType=story", $child, 'list', 'undo', 'hiddenwin', '', '', '', $lang->story->recall); - common::printIcon('story', 'close', "$vars&from=&storyType=story", $child, 'list', '', '', 'iframe', true); common::printIcon('story', 'edit', "$vars&from=default&storyType=story", $child, 'list'); + $storyType = 'storyType=story'; + $canChange = common::hasPriv('story', 'change', '', $storyType); + $canSubmitReview = (strpos('draft,changing', $child->status) !== false and common::hasPriv('story', 'submitReview', '', $storyType)); + $canReview = (strpos('draft,draft', $child->status) === false and common::hasPriv('story', 'review', '', $storyType)); + $canRecall = common::hasPriv('story', 'recall', '', $storyType); + $canEdit = common::hasPriv('story', 'edit', '', $storyType); + $canClose = common::hasPriv('story', 'close', '', $storyType); + if(($canChange or $canSubmitReview or $canReview or $canRecall or $canEdit) and $canClose) + { + echo "
"; + } + common::printIcon('story', 'close', "$vars&from=&storyType=story", $child, 'list', '', '', 'iframe', true); } } ?> diff --git a/module/my/view/story.html.php b/module/my/view/story.html.php index b309858436..933b5ce449 100644 --- a/module/my/view/story.html.php +++ b/module/my/view/story.html.php @@ -50,6 +50,11 @@ $canBatchReview = common::hasPriv('story', 'batchReview'); $canBatchAssignTo = common::hasPriv('story', 'batchAssignTo'); $canBatchAction = ($canBatchEdit or $canBatchClose or $canBatchReview or $canBatchAssignTo); + $canChange = common::hasPriv('story', 'change'); + $canRecall = common::hasPriv('story', 'recall'); + $canEdit = common::hasPriv('story', 'edit'); + $canCreateCase = common::hasPriv('testcase', 'create'); + $canClose = common::hasPriv('story', 'close'); ?> @@ -116,9 +121,21 @@ } echo common::buildIconButton('story', 'recall', $vars, $story, 'list', 'undo', 'hiddenwin', '', '', '', $lang->story->recall); - echo common::buildIconButton('story', 'close', $vars, $story, 'list', '', '', 'iframe', true); echo common::buildIconButton('story', 'edit', $vars, $story, 'list', '', '', 'iframe', true, "data-width='95%'"); - echo common::buildIconButton('story', 'createCase', "productID=$story->product&branch=$story->branch&module=0&from=¶m=0&$vars", $story, 'list', 'sitemap', '', 'iframe', true, "data-width='95%'"); + + $canSubmitReview = (strpos('draft,changing', $story->status) !== false and common::hasPriv('story', 'submitReview')); + $canReview = (strpos('draft,changing', $story->status) === false and common::hasPriv('story', 'review')); + + if(($canChange or $canSubmitReview or $canReview or $canRecall or $canEdit) and ($canCreateCase or $canClose)) + { + echo "
"; + } + + echo common::buildIconButton('testcase', 'create', "productID=$story->product&branch=$story->branch&module=0&from=¶m=0&$vars", $story, 'list', 'sitemap', '', 'iframe', true, "data-width='95%'"); + + if($canCreateCase and $canClose) echo "
"; + + echo common::buildIconButton('story', 'close', $vars, $story, 'list', '', '', 'iframe', true); } ?> @@ -165,9 +182,21 @@ common::printIcon('story', 'review', $vars, $child, 'list', 'search', '', 'iframe', true); } common::printIcon('story', 'recall', $vars, $child, 'list', 'undo', 'hiddenwin', '', '', '', $lang->story->recall); - common::printIcon('story', 'close', $vars, $child, 'list', '', '', 'iframe', true); common::printIcon('story', 'edit', $vars, $child, 'list', '', '', 'iframe', true, "data-width='95%'"); - common::printIcon('story', 'createCase', "productID=$child->product&branch=$child->branch&module=0&from=¶m=0&$vars", $child, 'list', 'sitemap', '', 'iframe', true, "data-width='95%'"); + + $canSubmitReview = (strpos('draft,changing', $child->status) !== false and common::hasPriv('story', 'submitReview')); + $canReview = (strpos('draft,changing', $child->status) === false and common::hasPriv('story', 'review')); + + if(($canChange or $canSubmitReview or $canReview or $canRecall or $canEdit) and ($canCreateCase or $canClose)) + { + echo "
"; + } + + common::printIcon('testcase', 'create', "productID=$child->product&branch=$child->branch&module=0&from=¶m=0&$vars", $child, 'list', 'sitemap', '', 'iframe', true, "data-width='95%'"); + + if($canCreateCase and $canClose) echo "
"; + + common::printIcon('story', 'close', $vars, $child, 'list', '', '', 'iframe', true); } ?> diff --git a/module/product/view/browse.html.php b/module/product/view/browse.html.php index 48cfe38868..b0de892804 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: #F4F5F7; margin: 0 4px 0 0;}