diff --git a/module/bug/control.php b/module/bug/control.php index 931a218447..00e55cdb57 100644 --- a/module/bug/control.php +++ b/module/bug/control.php @@ -1504,6 +1504,8 @@ class bug extends control public function resolve($bugID, $extra = '') { $bug = $this->bug->getById($bugID); + if($bug->execution) $execution = $this->loadModel('execution')->getByID($bug->execution); + if(!empty($_POST)) { $changes = $this->bug->resolve($bugID, $extra); @@ -1535,7 +1537,6 @@ class bug extends control parse_str($extra, $output); if(isonlybody()) { - $execution = $this->loadModel('execution')->getByID($bug->execution); if(isset($execution->type) and $execution->type == 'kanban' and $this->app->tab == 'execution') { $regionID = isset($output['regionID']) ? $output['regionID'] : 0; @@ -1576,6 +1577,7 @@ class bug extends control $this->view->executions = $this->loadModel('product')->getExecutionPairsByProduct($productID, $bug->branch ? "0,{$bug->branch}" : 0, 'id_desc', $projectID); $this->view->builds = $this->loadModel('build')->getBuildPairs($productID, $bug->branch, 'withbranch'); $this->view->actions = $this->action->getList('bug', $bugID); + $this->view->execution = isset($execution) ? $execution : ''; $this->display(); } diff --git a/module/bug/model.php b/module/bug/model.php index a731b4afc4..d07cfe6a95 100644 --- a/module/bug/model.php +++ b/module/bug/model.php @@ -1055,7 +1055,16 @@ class bugModel extends model if($bug->resolution == 'duplicate' and !$this->post->duplicateBug) dao::$errors[] = sprintf($this->lang->error->notempty, $this->lang->bug->duplicateBug); if(empty($bug->buildName)) dao::$errors['buildName'][] = sprintf($this->lang->error->notempty, $this->lang->bug->placeholder->newBuildName); - if(empty($bug->buildExecution)) dao::$errors['buildExecution'][] = sprintf($this->lang->error->notempty, $this->lang->bug->execution); + if(empty($bug->buildExecution)) + { + $executionLang = $this->lang->bug->execution; + if($oldBug->execution) + { + $execution = $this->loadModel('execution')->getByID($oldBug->execution); + if($execution->type == 'kanban') $executionLang = $this->lang->bug->kanban; + } + dao::$errors['buildExecution'][] = sprintf($this->lang->error->notempty, $executionLang); + } if(dao::isError()) return false; $buildData = new stdclass(); diff --git a/module/bug/view/resolve.html.php b/module/bug/view/resolve.html.php index dcb8c8b4d3..1217f16097 100644 --- a/module/bug/view/resolve.html.php +++ b/module/bug/view/resolve.html.php @@ -44,7 +44,7 @@ js::set('productID' , $bug->product); bug->resolvedBuild;?>
- build->execution;?> + type == 'kanban') ? $lang->bug->kanban : $lang->build->execution;?>
diff --git a/module/execution/js/kanban.js b/module/execution/js/kanban.js index faf3f6d55a..958232cac8 100644 --- a/module/execution/js/kanban.js +++ b/module/execution/js/kanban.js @@ -1102,7 +1102,7 @@ function createStoryMenu(options) var items = []; var showAction = story.$col.type == 'backlog' || story.$col.type == 'ready' || story.$col.type == 'developing' || story.$col.type == 'developed' || story.$col.type == 'testing' || story.$col.type == 'tested' || story.$col.type == 'verified' || story.$col.type == 'released'; - if(priv.canEditStory) items.push({label: storyLang.edit, icon: 'edit', url: createLink('story', 'edit', 'storyID=' + story.id, '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '80%'}}); + if(priv.canEditStory) items.push({label: storyLang.edit, icon: 'edit', url: createLink('story', 'edit', 'storyID=' + story.id, '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '95%'}}); if(priv.canChangeStory && showAction) items.push({label: storyLang.change, icon: 'change', url: createLink('story', 'change', 'storyID=' + story.id, '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '80%'}}); if(priv.canCreateTask && showAction) items.push({label: executionLang.wbs, icon: 'plus', url: createLink('task', 'create', 'executionID=' + execution.id + '&storyID=' + story.id, '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '80%'}}); if(priv.canBatchCreateTask && showAction) items.push({label: executionLang.batchWBS, icon: 'pluses', url: createLink('task', 'batchCreate', 'executionID=' + execution.id + '&storyID=' + story.id, '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '80%'}}); @@ -1121,7 +1121,7 @@ function createTaskMenu(options) var $card = options.$trigger.closest('.kanban-item'); var task = $card.data('item'); var items = []; - if(priv.canEditTask) items.push({label: taskLang.edit, icon: 'edit', url: createLink('task', 'edit', 'taskID=' + task.id, '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '80%'}}); + if(priv.canEditTask) items.push({label: taskLang.edit, icon: 'edit', url: createLink('task', 'edit', 'taskID=' + task.id, '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '95%'}}); if(priv.canRestartTask && task.$col.type == 'pause') items.push({label: taskLang.restart, icon: 'play', url: createLink('task', 'restart', 'taskID=' + task.id, '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '80%'}}); if(priv.canPauseTask && task.$col.type == 'developing') items.push({label: taskLang.pause, icon: 'pause', url: createLink('task', 'pause', 'taskID=' + task.id, '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '80%'}}); if(priv.canRecordEstimateTask) items.push({label: executionLang.effort, icon: 'time', url: createLink('task', 'recordEstimate', 'taskID=' + task.id, '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '80%'}}); @@ -1141,7 +1141,7 @@ function createBugMenu(options) var $card = options.$trigger.closest('.kanban-item'); var bug = $card.data('item'); var items = []; - if(priv.canEditBug) items.push({label: bugLang.edit, icon: 'edit', url: createLink('bug', 'edit', 'bugID=' + bug.id, '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '80%'}}); + if(priv.canEditBug) items.push({label: bugLang.edit, icon: 'edit', url: createLink('bug', 'edit', 'bugID=' + bug.id, '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '95%'}}); if(priv.canResolveBug && (bug.$col.type == 'unconfirmed' || bug.$col.type == 'confirmed' || bug.$col.type == 'fixing')) items.push({label: bugLang.resolve, icon: 'checked', url: createLink('bug', 'resolve', 'bugID=' + bug.id, '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '80%'}}); if(priv.canConfirmBug && (bug.$col.type == 'fixed' || bug.$col.type == 'testing' || bug.$col.type == 'tested')) items.push({label: bugLang.close, icon: 'off', url: createLink('bug', 'close', 'bugID=' + bug.id, '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '80%'}}); if(priv.canConfirmBug && bug.$col.type == 'unconfirmed') items.push({label: bugLang.confirmBug, icon: 'ok', url: createLink('bug', 'confirmbug', 'bugID=' + bug.id, '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '80%'}}); diff --git a/module/kanban/css/space.css b/module/kanban/css/space.css index 8451f6d1f3..0af2b80557 100644 --- a/module/kanban/css/space.css +++ b/module/kanban/css/space.css @@ -36,3 +36,5 @@ .kanbans .kanbanAcl {position: absolute; right: 0px; bottom: 2px; color: #838a9d;} a.disabled {pointer-events: none;} + +.noBorder{border: 0px;} diff --git a/module/kanban/css/view.css b/module/kanban/css/view.css index 1ab18d6b40..56180ca8a7 100644 --- a/module/kanban/css/view.css +++ b/module/kanban/css/view.css @@ -19,7 +19,7 @@ .region .region-header label {color: #999; background: transparent; border: 1px solid #ddd; margin-left: 10px; margin-right: 10px} .region .region-header .action {float: right} .region .region-header .icon-double-angle-up,.icon-double-angle-down {cursor: pointer;} -.region .kanban-header-sub-cols {border-right: 2px solid #fff;margin-left:0;} +.region .kanban-header-sub-cols {margin-left:0;} .region .kanban-header-sub-cols .kanban-header-col > .title {max-width: 100% !important;min-width:240px;} .region .sort .region-header {cursor: move;} diff --git a/module/kanban/view/space.html.php b/module/kanban/view/space.html.php index beb0b76392..0d21beed09 100644 --- a/module/kanban/view/space.html.php +++ b/module/kanban/view/space.html.php @@ -147,7 +147,7 @@ -
+

kanban->empty;?>