* Finish task #48004.
This commit is contained in:
@@ -597,6 +597,9 @@ class kanban extends control
|
||||
}
|
||||
else
|
||||
{
|
||||
$column = $this->kanban->getColumnById($columnID);
|
||||
if($column->parent) $this->kanban->processCards($column);
|
||||
|
||||
$this->kanban->archiveColumn($columnID);
|
||||
if(dao::isError()) die(js::error(dao::getError()));
|
||||
|
||||
@@ -678,9 +681,9 @@ class kanban extends control
|
||||
else
|
||||
{
|
||||
$column = $this->kanban->getColumnById($columnID);
|
||||
$this->kanban->delete(TABLE_KANBANCOLUMN, $columnID);
|
||||
if($column->parent) $this->kanban->processCards($column);
|
||||
|
||||
if($column->parent) $this->kanban->processParentColumn($column);
|
||||
$this->dao->delete()->from(TABLE_KANBANCOLUMN)->where('id')->eq($columnID)->exec();
|
||||
|
||||
die(js::reload('parent'));
|
||||
}
|
||||
|
||||
@@ -819,8 +819,8 @@ function createColumnMenu(options)
|
||||
items.push({label: kanbanLang.createColumnOnRight, icon: 'col-add-right', url: createLink('kanban', 'createColumn', 'columnID=' + column.id + '&position=right'), className: 'iframe', attrs: {'data-toggle': 'modal'}});
|
||||
}
|
||||
if(privs.includes('copyColumn')) items.push({label: kanbanLang.copyColumn, icon: 'copy', url: createLink('kanban', 'copyColumn', 'columnID=' + column.id), className: 'iframe', attrs: {'data-toggle': 'modal'}});
|
||||
if(privs.includes('archiveColumn') && kanban.archived == '1' && column.$kanbanData.columns.length > 1) items.push({label: kanbanLang.archiveColumn, icon: 'card-archive', url: createLink('kanban', 'archiveColumn', 'columnID=' + column.id), attrs: {'target': 'hiddenwin'}});
|
||||
if(privs.includes('deleteColumn') && column.$kanbanData.columns.length > 1) items.push({label: kanbanLang.deleteColumn, icon: 'trash', url: createLink('kanban', 'deleteColumn', 'columnID=' + column.id), attrs: {'target': 'hiddenwin'}});
|
||||
if(privs.includes('archiveColumn') && kanban.archived == '1') items.push({label: kanbanLang.archiveColumn, icon: 'card-archive', url: createLink('kanban', 'archiveColumn', 'columnID=' + column.id), attrs: {'target': 'hiddenwin'}});
|
||||
if(privs.includes('deleteColumn')) items.push({label: kanbanLang.deleteColumn, icon: 'trash', url: createLink('kanban', 'deleteColumn', 'columnID=' + column.id), attrs: {'target': 'hiddenwin'}});
|
||||
|
||||
var bounds = options.$trigger[0].getBoundingClientRect();
|
||||
items.$options = {x: bounds.right, y: bounds.top};
|
||||
@@ -844,7 +844,7 @@ function createColumnCreateMenu(options)
|
||||
var laneID = col.$kanbanData.lanes[0].id ? col.$kanbanData.lanes[0].id : 0;
|
||||
var columnID = col.id;
|
||||
|
||||
if(privs.includes('createCard')) items.push({label: kanbanLang.createCard, url: $.createLink('kanban', 'createCard', 'kanbanID=' + kanbanID + '®ionID=' + regionID + '&groupID=' + groupID + '&laneID=' + laneID + '&columnID=' + columnID), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '80%'}});
|
||||
if(privs.includes('createCard')) items.push({label: kanbanLang.createCard, url: $.createLink('kanban', 'createCard', 'kanbanID=' + kanbanID + '®ionID=' + regionID + '&groupID=' + groupID + '&columnID=' + columnID), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '80%'}});
|
||||
if(privs.includes('batchCreateCard')) items.push({label: kanbanLang.batchCreateCard, url: $.createLink('kanban', 'batchCreateCard', 'kanbanID=' + kanbanID + '®ionID=' + regionID + '&groupID=' + groupID + '&laneID=' + laneID + '&columnID=' + columnID), attrs: {'data-width': '80%'}});
|
||||
return items;
|
||||
}
|
||||
|
||||
@@ -260,9 +260,9 @@ $lang->kanbancolumn->childName = '子列名称';
|
||||
$lang->kanbancolumn->childColor = '子状态颜色';
|
||||
$lang->kanbancolumn->empty = '暂时没有看板列';
|
||||
|
||||
$lang->kanbancolumn->confirmArchive = '您确认归档该列吗?归档列后,该列和列中所有卡片将被隐藏,您可以在区域-已归档中查看已归档的列。';
|
||||
$lang->kanbancolumn->confirmDelete = '您确认删除该列吗?删除列后,该列中所有卡片也会被删除。';
|
||||
$lang->kanbancolumn->confirmRestore = '您确定要还原该看板列吗?还原看板列后,该看板列和看板列中所有的任务将同时还原到之前的位置。';
|
||||
$lang->kanbancolumn->confirmArchive = '您确认归档该列吗?归档列后,该列将被隐藏,列中所有卡片移动到兄弟列或父列,您可以在区域-已归档中查看已归档的列。';
|
||||
$lang->kanbancolumn->confirmDelete = '您确认删除该列吗?删除列后,该列中所有卡片会被移动到兄弟列或父列。';
|
||||
$lang->kanbancolumn->confirmRestore = '您确定要还原该看板列吗?还原后,该看板列将回到之前的位置。';
|
||||
|
||||
$lang->kanbanlane = new stdclass();
|
||||
$lang->kanbanlane->name = $lang->kanban->laneName;
|
||||
|
||||
+63
-14
@@ -2789,6 +2789,39 @@ class kanbanModel extends model
|
||||
*/
|
||||
public function restoreColumn($columnID)
|
||||
{
|
||||
$column = $this->getColumnByID($columnID);
|
||||
|
||||
if($column->parent)
|
||||
{
|
||||
$parent = $this->getColumnByID($column->parent);
|
||||
|
||||
/* If the parent column is normal now, put its card into child column. */
|
||||
if($parent->parent != -1)
|
||||
{
|
||||
$parentCells = $this->dao->select('*')->from(TABLE_KANBANCELL)
|
||||
->where('`column`')->eq($column->parent)
|
||||
->andWhere('type')->eq('common')
|
||||
->fetchAll('id');
|
||||
|
||||
foreach($parentCells as $cell)
|
||||
{
|
||||
$this->dao->update(TABLE_KANBANCELL)->set('cards')->eq($cell->cards)
|
||||
->where('lane')->eq($cell->lane)
|
||||
->andWhere('`column`')->eq($columnID)
|
||||
->andWhere('type')->eq('common')
|
||||
->exec();
|
||||
|
||||
$this->dao->update(TABLE_KANBANCELL)->set('cards')->eq('')
|
||||
->where('lane')->eq($cell->lane)
|
||||
->andWhere('`column`')->eq($cell->column)
|
||||
->andWhere('type')->eq('common')
|
||||
->exec();
|
||||
}
|
||||
|
||||
$this->dao->update(TABLE_KANBANCOLUMN)->set('parent')->eq(-1)->where('id')->eq($column->parent)->exec();
|
||||
}
|
||||
}
|
||||
|
||||
$this->dao->update(TABLE_KANBANCOLUMN)
|
||||
->set('archived')->eq(0)
|
||||
->where('id')->eq($columnID)
|
||||
@@ -2841,22 +2874,50 @@ class kanbanModel extends model
|
||||
if(!dao::isError()) return common::createChanges($oldCard, $card);
|
||||
}
|
||||
|
||||
public function processParentColumn($column)
|
||||
/**
|
||||
* Process cards when delete a column.
|
||||
*
|
||||
* @param object $column
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function processCards($column)
|
||||
{
|
||||
$firstColumnID = $this->dao->select('id')->from(TABLE_KANBANCOLUMN)
|
||||
->where('parent')->eq($column->parent)
|
||||
->andWhere('id')->ne($column->id)
|
||||
->andWhere('deleted')->eq('0')
|
||||
->andWhere('archived')->eq('0')
|
||||
->orderBy('`order` asc')
|
||||
->fetch('id');
|
||||
|
||||
$extendID = $firstColumnID ? $firstColumnID : $column->parent;
|
||||
$extendID = $firstColumnID;
|
||||
if(!$firstColumnID)
|
||||
{
|
||||
$extendID = $column->parent;
|
||||
$this->dao->update(TABLE_KANBANCOLUMN)->set('parent')->eq(0)->where('id')->eq($column->parent)->exec();
|
||||
}
|
||||
|
||||
$cells = $this->dao->select('*')->from(TABLE_KANBANCELL)
|
||||
->where('`column`')->eq($column->id)
|
||||
->andWhere('type')->eq('common')
|
||||
->fetchAll('id');
|
||||
|
||||
foreach($cells as $cell)
|
||||
{
|
||||
$extendCards = $this->dao->select('cards')->from(TABLE_KANBANCELL)
|
||||
->where('lane')->eq($cell->lane)
|
||||
->andWhere('`column`')->eq($extendID)
|
||||
->andWhere('type')->eq('common')
|
||||
->fetch('cards');
|
||||
|
||||
$extendCards = $extendCards ? $extendCards . ltrim($cell->cards, ',') : $cell->cards;
|
||||
|
||||
$this->dao->update(TABLE_KANBANCELL)->set('cards')->eq($extendCards)
|
||||
->where('lane')->eq($cell->lane)
|
||||
->andWhere('`column`')->eq($extendID)
|
||||
->andWhere('type')->eq('common')
|
||||
->exec();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3165,18 +3226,6 @@ class kanbanModel extends model
|
||||
case 'deletecolumn' :
|
||||
if($object->deleted != '0') return false;
|
||||
|
||||
if($object->parent > 0)
|
||||
{
|
||||
$childrenCount = $this->dao->select('COUNT(id) AS count')->from(TABLE_KANBANCOLUMN)
|
||||
->where('parent')->eq($object->parent)
|
||||
->andWhere('deleted')->eq('0')
|
||||
->andWhere('archived')->eq('0')
|
||||
->fetch('count');
|
||||
|
||||
return $childrenCount > 2;
|
||||
}
|
||||
|
||||
|
||||
$count = $this->dao->select('COUNT(id) AS count')->from(TABLE_KANBANCOLUMN)
|
||||
->where('region')->eq($object->region)
|
||||
->andWhere('parent')->in('0,-1')
|
||||
|
||||
Reference in New Issue
Block a user