Merge branch 'kanban' into 'sgm_kanbanaction'
# Conflicts: # module/kanban/js/view.js
This commit is contained in:
@@ -36,6 +36,7 @@ $config->action->objectNameFields['mr'] = 'title';
|
||||
$config->action->objectNameFields['kanbancolumn'] = 'name';
|
||||
$config->action->objectNameFields['kanbanlane'] = 'name';
|
||||
$config->action->objectNameFields['kanbanspace'] = 'name';
|
||||
$config->action->objectNameFields['kanbanregion'] = 'name';
|
||||
$config->action->objectNameFields['kanban'] = 'name';
|
||||
|
||||
$config->action->commonImgSize = 870;
|
||||
|
||||
@@ -542,6 +542,7 @@ $lang->action->label->design = 'Design|design|view|designID=%s';
|
||||
$lang->action->label->stakeholder = 'Stakeholder|stakeholder|view|userID=%s';
|
||||
$lang->action->label->api = 'Interface|api|index|libID=%s&moduleID=%s&apiID=%s';
|
||||
$lang->action->label->kanbanspace = 'Kanban Space|kanban|space|browseType=all';
|
||||
$lang->action->label->kanbanregion = 'Kanban Region|kanban|view|kanbanID=%s';
|
||||
$lang->action->label->kanban = 'Kanban|kanban|view|kanbanID=%s';
|
||||
$lang->action->label->kanbancolumn = 'Kanban Column|execution|kanban|execution=%s';
|
||||
$lang->action->label->kanbanlane = 'Kanban Lane|execution|kanban|execution=%s&type=all';
|
||||
|
||||
@@ -542,6 +542,7 @@ $lang->action->label->design = '设计|design|view|designID=%s';
|
||||
$lang->action->label->stakeholder = '干系人|stakeholder|view|userID=%s';
|
||||
$lang->action->label->api = '接口|api|index|libID=%s&moduleID=%s&apiID=%s';
|
||||
$lang->action->label->kanbanspace = '看板空间|kanban|space|browseType=all';
|
||||
$lang->action->label->kanbanregion = '看板区域|kanban|view|kanbanID=%s';
|
||||
$lang->action->label->kanban = '看板|kanban|view|kanbanID=%s';
|
||||
$lang->action->label->kanbancolumn = '看板列|execution|kanban|execution=%s';
|
||||
$lang->action->label->kanbanlane = '看板泳道|execution|kanban|execution=%s&type=all';
|
||||
|
||||
@@ -1233,6 +1233,12 @@ class actionModel extends model
|
||||
$action->objectLink = helper::createLink('assetlib', 'storyView', "storyID=$action->objectID");
|
||||
}
|
||||
|
||||
if($action->objectType == 'kanbanregion')
|
||||
{
|
||||
$kanbanID = $this->dao->select('kanban')->from(TABLE_KANBANREGION)->where('id')->eq($action->objectID)->fetch('kanban');
|
||||
$action->objectLink = helper::createLink('kanban', 'view', "kanbanID=$kanbanID");
|
||||
}
|
||||
|
||||
return $action;
|
||||
}
|
||||
|
||||
|
||||
@@ -634,10 +634,11 @@ $lang->resource->kanban->editRegion = 'editRegion';
|
||||
$lang->resource->kanban->sortRegion = 'sortRegion';
|
||||
$lang->resource->kanban->deleteRegion = 'deleteRegion';
|
||||
$lang->resource->kanban->createLane = 'createLane';
|
||||
$lang->resource->kanban->editLane = 'editLane';
|
||||
$lang->resource->kanban->setLane = 'setLane';
|
||||
$lang->resource->kanban->sortLane = 'sortLane';
|
||||
$lang->resource->kanban->deleteLane = 'deleteLane';
|
||||
$lang->resource->kanban->createColumn = 'createColumn';
|
||||
$lang->resource->kanban->editColumn = 'editColumn';
|
||||
$lang->resource->kanban->setColumn = 'setColumn';
|
||||
$lang->resource->kanban->setWIP = 'setWIP';
|
||||
$lang->resource->kanban->sortColumn = 'sortColumn';
|
||||
$lang->resource->kanban->deleteColumn = 'deleteColumn';
|
||||
@@ -645,8 +646,6 @@ $lang->resource->kanban->createCard = 'createCard';
|
||||
$lang->resource->kanban->editCard = 'editCard';
|
||||
$lang->resource->kanban->viewCard = 'viewCard';
|
||||
$lang->resource->kanban->sortCard = 'sortCard';
|
||||
$lang->resource->kanban->setLane = 'setLane';
|
||||
$lang->resource->kanban->setColumn = 'setColumn';
|
||||
$lang->resource->kanban->laneMove = 'laneMove';
|
||||
$lang->resource->kanban->cardsSort = 'cardsSort';
|
||||
|
||||
@@ -666,21 +665,20 @@ $lang->kanban->methodOrder[65] = 'editRegion';
|
||||
$lang->kanban->methodOrder[70] = 'sortRegion';
|
||||
$lang->kanban->methodOrder[75] = 'deleteRegion';
|
||||
$lang->kanban->methodOrder[80] = 'createLane';
|
||||
$lang->kanban->methodOrder[85] = 'editLane';
|
||||
$lang->kanban->methodOrder[85] = 'setLane';
|
||||
$lang->kanban->methodOrder[90] = 'sortLane';
|
||||
$lang->kanban->methodOrder[95] = 'createColumn';
|
||||
$lang->kanban->methodOrder[100] = 'editColumn';
|
||||
$lang->kanban->methodOrder[105] = 'setWIP';
|
||||
$lang->kanban->methodOrder[110] = 'sortColumn';
|
||||
$lang->kanban->methodOrder[115] = 'deleteColumn';
|
||||
$lang->kanban->methodOrder[120] = 'createCard';
|
||||
$lang->kanban->methodOrder[125] = 'editCard';
|
||||
$lang->kanban->methodOrder[130] = 'viewCard';
|
||||
$lang->kanban->methodOrder[135] = 'sortCard';
|
||||
$lang->kanban->methodOrder[140] = 'setLane';
|
||||
$lang->kanban->methodOrder[145] = 'setColumn';
|
||||
$lang->kanban->methodOrder[150] = 'laneMove';
|
||||
$lang->kanban->methodOrder[155] = 'cardsSort';
|
||||
$lang->kanban->methodOrder[95] = 'deleteLane';
|
||||
$lang->kanban->methodOrder[100] = 'createColumn';
|
||||
$lang->kanban->methodOrder[105] = 'setColumn';
|
||||
$lang->kanban->methodOrder[110] = 'setWIP';
|
||||
$lang->kanban->methodOrder[115] = 'sortColumn';
|
||||
$lang->kanban->methodOrder[120] = 'deleteColumn';
|
||||
$lang->kanban->methodOrder[125] = 'createCard';
|
||||
$lang->kanban->methodOrder[130] = 'editCard';
|
||||
$lang->kanban->methodOrder[135] = 'viewCard';
|
||||
$lang->kanban->methodOrder[140] = 'sortCard';
|
||||
$lang->kanban->methodOrder[145] = 'laneMove';
|
||||
$lang->kanban->methodOrder[150] = 'cardsSort';
|
||||
|
||||
/* Execution. */
|
||||
$lang->resource->execution = new stdclass();
|
||||
|
||||
@@ -85,5 +85,5 @@ $config->kanban->taskColumnStatusList['pause'] = 'pause';
|
||||
$config->kanban->taskColumnStatusList['canceled'] = 'cancel';
|
||||
$config->kanban->taskColumnStatusList['closed'] = 'closed';
|
||||
|
||||
$config->kanban->laneColorList = array('#7ec5ff', '#333', '#2b529c', '#e48600', '#d2323d', '#229f24', '#777', '#d2691e', '#008b8b', '#2e8b57', '#4169e1', '#4b0082', '#fa8072', '#ba55d3', '#2e8b57', '#6b8e23');
|
||||
$config->kanban->laneColorList = array('#7ec5ff', '#333', '#2b529c', '#e48600', '#d2323d', '#229f24', '#777', '#d2691e', '#008b8b', '#2e8b57', '#4169e1', '#4b0082', '#fa8072', '#ba55d3', '#6b8e23');
|
||||
$config->kanban->columnColorList = array('#333', '#2b519c', '#e48610', '#d2313d', '#2a9f23', '#777', '#d2691e', '#2e8b8b', '#2f8b58', '#4168e0', '#4b0082', '#f58072', '#ba55d3', '#6a8e22');
|
||||
|
||||
@@ -110,7 +110,7 @@ class kanban extends control
|
||||
|
||||
$this->view->users = $this->loadModel('user')->getPairs('noletter|noclosed');
|
||||
$this->view->spaceID = $spaceID;
|
||||
$this->view->spacePairs = array('' => '') + $this->kanban->getSpacePairs();
|
||||
$this->view->spacePairs = array(0 => '') + $this->kanban->getSpacePairs();
|
||||
|
||||
$this->display();
|
||||
}
|
||||
@@ -138,7 +138,7 @@ class kanban extends control
|
||||
}
|
||||
|
||||
$this->view->users = $this->loadModel('user')->getPairs('noletter|noclosed');
|
||||
$this->view->spacePairs = array('' => '') + $this->kanban->getSpacePairs();
|
||||
$this->view->spacePairs = array(0 => '') + $this->kanban->getSpacePairs();
|
||||
$this->view->kanban = $this->kanban->getByID($kanbanID);
|
||||
|
||||
$this->display();
|
||||
@@ -251,7 +251,7 @@ class kanban extends control
|
||||
*
|
||||
* @param int $columnID
|
||||
* @param int $executionID
|
||||
* @param string $from
|
||||
* @param string $from kanban|execution
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
@@ -275,6 +275,7 @@ class kanban extends control
|
||||
|
||||
$this->view->title = $title . $this->lang->colon . $this->lang->kanban->setWIP . '(' . $this->lang->kanban->WIP . ')';
|
||||
$this->view->column = $column;
|
||||
$this->view->from = $from;
|
||||
|
||||
if($from != 'kanban') $this->view->status = zget($this->config->kanban->{$column->laneType . 'ColumnStatusList'}, $column->type);
|
||||
$this->display();
|
||||
@@ -285,7 +286,7 @@ class kanban extends control
|
||||
*
|
||||
* @param int $laneID
|
||||
* @param int $executionID
|
||||
* @param string $from
|
||||
* @param string $from kanban|execution
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
@@ -304,8 +305,9 @@ class kanban extends control
|
||||
$lane = $this->kanban->getLaneById($laneID);
|
||||
if(!$lane) die(js::error($this->lang->notFound) . js::locate($this->createLink('execution', 'kanban', "executionID=$executionID")));
|
||||
|
||||
$this->view->title = zget($this->lang->kanban->laneTypeList, $lane->type) . $this->lang->colon . $this->lang->kanban->setLane;
|
||||
$this->view->title = $from == 'kanban' ? $this->lang->edit . '“' . $lane->name . '”' . $this->lang->kanbanlane->common : zget($this->lang->kanban->laneTypeList, $lane->type) . $this->lang->colon . $this->lang->kanban->setLane;
|
||||
$this->view->lane = $lane;
|
||||
$this->view->from = $from;
|
||||
|
||||
$this->display();
|
||||
}
|
||||
@@ -315,7 +317,7 @@ class kanban extends control
|
||||
*
|
||||
* @param int $columnID
|
||||
* @param int $executionID
|
||||
* @param string $from
|
||||
* @param string $from kanban|execution
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
|
||||
@@ -150,18 +150,18 @@ function renderCount($count, count, column)
|
||||
|
||||
function renderLaneName($lane, lane, $kanban, columns, kanban)
|
||||
{
|
||||
var canEdit = lane.actions.includes('editLane');
|
||||
var canSort = lane.actions.includes('sortLane') && kanban.lanes.length > 1;
|
||||
var canSet = lane.actions.includes('setLane');
|
||||
var canSort = lane.actions.includes('sortLane') && kanban.lanes.length > 1;
|
||||
var canDelete = lane.actions.includes('deleteLane');
|
||||
|
||||
$lane.parent().toggleClass('sort', canSort);
|
||||
|
||||
if(!$lane.children('.actions').length && (canEdit || canDelete))
|
||||
if(!$lane.children('.actions').length && (canSet || canDelete))
|
||||
{
|
||||
$([
|
||||
'<div class="actions" title="' + lang.more + '">',
|
||||
'<a data-contextmenu="lane" data-lane="' + lane.id + '" data-kanban="' + kanban.id + '">',
|
||||
'<i class="icon icon-more-v"></i>',
|
||||
'<i class="icon icon-ellipsis-v"></i>',
|
||||
'</a>',
|
||||
'</div>'
|
||||
].join('')).appendTo($lane);
|
||||
@@ -193,7 +193,7 @@ function renderKanbanItem(item, $item)
|
||||
[
|
||||
'<div class="actions" title="' + lang.more + '">',
|
||||
'<button class="btn btn-link action" data-contextmenu="task" data-id="' + item.id + '" data-status="' + item.status + '">',
|
||||
'<i class="icon icon-more-v"></i>',
|
||||
'<i class="icon icon-ellipsis-v"></i>',
|
||||
'</button>',
|
||||
'</div>'
|
||||
].join('')).appendTo($item);
|
||||
@@ -578,8 +578,8 @@ function createLaneMenu(options)
|
||||
if(!privs.length) return [];
|
||||
|
||||
var items = [];
|
||||
if(privs.includes('editLane')) items.push({label: kanbanLang.editLane, icon: '', url: createLink('kanban', 'editLane', 'lane=' + lane.id), attrs: {'data-toggle': 'modal'}});
|
||||
if(privs.includes('deleteLane')) items.push({label: kanbanLang.deleteLane, icon: '', url: createLink('kanban', 'deleteLane', 'lane=' + lane.id), className: 'confirmer', attrs: {'data-confirmTitle': kanbanlaneLang.confirmDelete, 'data-confirmDetail': kanbanlaneLang.confirmDeleteDetail}});
|
||||
if(privs.includes('setLane')) items.push({label: kanbanLang.editLane, icon: 'edit', url: createLink('kanban', 'setLane', 'laneID=' + lane.id + '&executionID=0&from=kanban'), className: 'iframe', attrs: {'data-toggle': 'modal'}});
|
||||
if(privs.includes('deleteLane')) items.push({label: kanbanLang.deleteLane, icon: 'trash', url: createLink('kanban', 'deleteLane', 'lane=' + lane.id), className: 'confirmer', attrs: {'data-confirmTitle': kanbanlaneLang.confirmDelete, 'data-confirmDetail': kanbanlaneLang.confirmDeleteDetail}});
|
||||
|
||||
var bounds = options.$trigger[0].getBoundingClientRect();
|
||||
items.$options = {x: bounds.right, y: bounds.top};
|
||||
@@ -627,6 +627,7 @@ function createColumnMenu(options)
|
||||
if(privs.includes('editColumn')) items.push({label: kanbanLang.editColumn, icon: 'edit', url: createLink('kanban', 'setColumn', 'columnID=' + column.id, '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal'}});
|
||||
if(privs.includes('setWIP')) items.push({label: kanbanLang.setWIP, icon: 'alert', url: createLink('kanban', 'setWIP', 'columnID=' + column.id), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width' : '500px'}});
|
||||
if(privs.includes('splitColumn')) items.push({label: kanbanLang.splitColumn, icon: 'col-split', url: createLink('kanban', 'splitColumn', 'columnID=' + column.id), className: 'iframe', attrs: {'data-toggle': 'modal'}});
|
||||
if(privs.includes('setColumn')) items.push({label: kanbanLang.editColumn, icon: '', url: createLink('kanban', 'setColumn', 'columnID=' + column.id + '&executionID=0&from=kanban', '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal'}});
|
||||
if(privs.includes('createColumn'))
|
||||
{
|
||||
items.push({label: kanbanLang.createColumnOnLeft, icon: 'col-add-left', url: createLink('kanban', 'createColumn', 'columnID=' + column.id + '&position=left'), className: 'iframe', attrs: {'data-toggle': 'modal'}});
|
||||
|
||||
@@ -17,6 +17,7 @@ $lang->kanban->deleteRegion = 'Delete Region';
|
||||
$lang->kanban->createLane = 'Create Lane';
|
||||
$lang->kanban->editLane = 'Edit Lane';
|
||||
$lang->kanban->sortLane = 'Sort Lane';
|
||||
$lang->kanban->deleteLane = 'Delete Lane';
|
||||
$lang->kanban->createColumn = 'Create Column';
|
||||
$lang->kanban->editColumn = 'Edit Column';
|
||||
$lang->kanban->sortColumn = 'Sort Column';
|
||||
|
||||
@@ -15,8 +15,9 @@ $lang->kanban->editRegion = '编辑区域';
|
||||
$lang->kanban->sortRegion = '区域排序';
|
||||
$lang->kanban->deleteRegion = '删除区域';
|
||||
$lang->kanban->createLane = '创建泳道';
|
||||
$lang->kanban->editLane = '删除泳道';
|
||||
$lang->kanban->editLane = '编辑泳道';
|
||||
$lang->kanban->sortLane = '泳道排序';
|
||||
$lang->kanban->deleteLane = '删除泳道';
|
||||
$lang->kanban->createColumn = '创建看板列';
|
||||
$lang->kanban->editColumn = '编辑看板列';
|
||||
$lang->kanban->sortColumn = '看板列排序';
|
||||
|
||||
@@ -416,7 +416,7 @@ class kanbanModel extends model
|
||||
->orderBy('order')
|
||||
->fetchGroup('group');
|
||||
|
||||
$actions = array('editLane', 'sortLane', 'deleteLane');
|
||||
$actions = array('setLane', 'sortLane', 'deleteLane');
|
||||
foreach($laneGroup as $lanes)
|
||||
{
|
||||
foreach($lanes as $lane)
|
||||
@@ -835,7 +835,7 @@ class kanbanModel extends model
|
||||
|
||||
return $laneID;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Create a kanban.
|
||||
*
|
||||
|
||||
@@ -27,12 +27,14 @@
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<?php if($from != 'kanban'):?>
|
||||
<tr>
|
||||
<th><?php echo $lang->kanban->WIPType;?></th>
|
||||
<td colspan='2'>
|
||||
<?php echo html::input('type', zget($lang->kanban->laneTypeList, $lane->type), "class='form-control' disabled");?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<tr>
|
||||
<th><?php echo $lang->kanban->laneColor;?></th>
|
||||
<td colspan='3'>
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
</div>
|
||||
<form method='post' class="load-indicator main-form form-ajax" target='hiddenwin' onsubmit='return setWIPLimit();'>
|
||||
<table align='center' class='table table-form'>
|
||||
<?php if($column->parent != -1 and isset($status)):?>
|
||||
<?php if($column->parent != -1 and $from !='kanban'):?>
|
||||
<tr>
|
||||
<th><?php echo $lang->kanban->WIPStatus;?></th>
|
||||
<td colspan='2'>
|
||||
|
||||
Reference in New Issue
Block a user