Merge branch 'sprint/tianshujie_fixbug' into 'master'
Sprint/tianshujie fixbug See merge request easycorp/zentaopms!2433
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -44,7 +44,7 @@ js::set('productID' , $bug->product);
|
||||
<th><?php echo $lang->bug->resolvedBuild;?></th>
|
||||
<td id='newBuildExecutionBox' class='hidden'>
|
||||
<div class='input-group'>
|
||||
<span class='input-group-addon'><?php echo $lang->build->execution;?></span>
|
||||
<span class='input-group-addon'><?php echo (!empty($execution) and $execution->type == 'kanban') ? $lang->bug->kanban : $lang->build->execution;?></span>
|
||||
<?php echo html::select('buildExecution', $executions, '', "class='form-control chosen'");?>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
@@ -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%'}});
|
||||
|
||||
@@ -36,3 +36,5 @@
|
||||
.kanbans .kanbanAcl {position: absolute; right: 0px; bottom: 2px; color: #838a9d;}
|
||||
|
||||
a.disabled {pointer-events: none;}
|
||||
|
||||
.noBorder{border: 0px;}
|
||||
|
||||
@@ -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;}
|
||||
|
||||
|
||||
@@ -147,7 +147,7 @@
|
||||
<?php endforeach;?>
|
||||
</div>
|
||||
<?php else:?>
|
||||
<div class="table-empty-tip">
|
||||
<div class="table-empty-tip <?php if($this->cookie->theme == 'blue') echo 'noBorder';?>">
|
||||
<p><span class="text-muted"><?php echo $lang->kanban->empty;?></span></p>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
|
||||
Reference in New Issue
Block a user