* Finish task #46157.
This commit is contained in:
+5
-12
@@ -8,6 +8,7 @@ CREATE TABLE `zt_kanbanspace` (
|
||||
`acl` char(30) NOT NULL DEFAULT 'open',
|
||||
`whitelist` text NOT NULL,
|
||||
`status` enum('active','closed') NOT NULL default 'active',
|
||||
`order` smallint(6) NOT NULL DEFAULT '0',
|
||||
`createdBy` char(30) NOT NULL,
|
||||
`createdDate` datetime NOT NULL,
|
||||
`lastEditedBy` char(30) NOT NULL,
|
||||
@@ -30,6 +31,7 @@ CREATE TABLE `zt_kanban` (
|
||||
`whitelist` text NOT NULL,
|
||||
`archived` enum('0', '1') NOT NULL DEFAULT '0',
|
||||
`status` enum('active','closed') NOT NULL default 'active',
|
||||
`order` smallint(6) NOT NULL DEFAULT '0',
|
||||
`createdBy` char(30) NOT NULL,
|
||||
`createdDate` datetime NOT NULL,
|
||||
`lastEditedBy` char(30) NOT NULL,
|
||||
@@ -46,6 +48,7 @@ CREATE TABLE `zt_kanbanregion` (
|
||||
`space` mediumint(8) unsigned NOT NULL,
|
||||
`kanban` mediumint(8) unsigned NOT NULL,
|
||||
`name` varchar(255) NOT NULL,
|
||||
`order` smallint(6) NOT NULL DEFAULT '0',
|
||||
`createdBy` char(30) NOT NULL,
|
||||
`createdDate` datetime NOT NULL,
|
||||
`lastEditedBy` char(30) NOT NULL,
|
||||
@@ -72,6 +75,7 @@ CREATE TABLE `zt_kanbancard` (
|
||||
`color` char(7) NOT NULL,
|
||||
`acl` char(30) NOT NULL DEFAULT 'open',
|
||||
`whitelist` text NOT NULL,
|
||||
`order` smallint(6) NOT NULL DEFAULT '0',
|
||||
`archived` enum('0', '1') NOT NULL DEFAULT '0',
|
||||
`createdBy` char(30) NOT NULL,
|
||||
`createdDate` datetime NOT NULL,
|
||||
@@ -90,18 +94,7 @@ CREATE TABLE `zt_kanbangroup` (
|
||||
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`kanban` mediumint(8) unsigned NOT NULL,
|
||||
`region` mediumint(8) unsigned NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
-- DROP TABLE IF EXISTS `zt_kanbanorder`;
|
||||
CREATE TABLE `zt_kanbanorder` (
|
||||
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`parentID` mediumint(8) unsigned NOT NULL,
|
||||
`parentType` varchar(20) NOT NULL,
|
||||
`objectID` mediumint(8) unsigned NOT NULL,
|
||||
`objectType` varchar(20) NOT NULL,
|
||||
`account` varchar(30) NOT NULL,
|
||||
`order` int NOT NULL,
|
||||
`order` smallint(6) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
|
||||
+5
-11
@@ -654,6 +654,7 @@ CREATE TABLE `zt_kanbanspace` (
|
||||
`acl` char(30) NOT NULL DEFAULT 'open',
|
||||
`whitelist` text NOT NULL,
|
||||
`status` enum('active','closed') NOT NULL default 'active',
|
||||
`order` mediumint(8) NOT NULL DEFAULT '0',
|
||||
`createdBy` char(30) NOT NULL,
|
||||
`createdDate` datetime NOT NULL,
|
||||
`lastEditedBy` char(30) NOT NULL,
|
||||
@@ -675,6 +676,7 @@ CREATE TABLE `zt_kanban` (
|
||||
`whitelist` text NOT NULL,
|
||||
`archived` enum('0', '1') NOT NULL DEFAULT '0',
|
||||
`status` enum('active','closed') NOT NULL default 'active',
|
||||
`order` mediumint(8) NOT NULL DEFAULT '0',
|
||||
`createdBy` char(30) NOT NULL,
|
||||
`createdDate` datetime NOT NULL,
|
||||
`lastEditedBy` char(30) NOT NULL,
|
||||
@@ -690,6 +692,7 @@ CREATE TABLE `zt_kanbanregion` (
|
||||
`space` mediumint(8) unsigned NOT NULL,
|
||||
`kanban` mediumint(8) unsigned NOT NULL,
|
||||
`name` varchar(255) NOT NULL,
|
||||
`order` mediumint(8) NOT NULL DEFAULT '0',
|
||||
`createdBy` char(30) NOT NULL,
|
||||
`createdDate` datetime NOT NULL,
|
||||
`lastEditedBy` char(30) NOT NULL,
|
||||
@@ -715,6 +718,7 @@ CREATE TABLE `zt_kanbancard` (
|
||||
`color` char(7) NOT NULL,
|
||||
`acl` char(30) NOT NULL DEFAULT 'open',
|
||||
`whitelist` text NOT NULL,
|
||||
`order` mediumint(8) NOT NULL DEFAULT '0',
|
||||
`archived` enum('0', '1') NOT NULL DEFAULT '0',
|
||||
`createdBy` char(30) NOT NULL,
|
||||
`createdDate` datetime NOT NULL,
|
||||
@@ -732,17 +736,7 @@ CREATE TABLE `zt_kanbangroup` (
|
||||
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`kanban` mediumint(8) unsigned NOT NULL,
|
||||
`region` mediumint(8) unsigned NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
-- DROP TABLE IF EXISTS `zt_kanbanorder`;
|
||||
CREATE TABLE `zt_kanbanorder` (
|
||||
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`parentID` mediumint(8) unsigned NOT NULL,
|
||||
`parentType` varchar(20) NOT NULL,
|
||||
`objectID` mediumint(8) NOT NULL,
|
||||
`objectType` varchar(20) NOT NULL,
|
||||
`account` varchar(30) NOT NULL,
|
||||
`order` int NOT NULL,
|
||||
`order` smallint(6) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
-- DROP TABLE IF EXISTS `zt_kanbanlane`;
|
||||
|
||||
@@ -654,6 +654,7 @@ $lang->resource->kanban->moveCard = 'moveCard';
|
||||
$lang->resource->kanban->setCardColor = 'setCardColor';
|
||||
$lang->resource->kanban->laneMove = 'laneMove';
|
||||
$lang->resource->kanban->cardsSort = 'cardsSort';
|
||||
$lang->resource->kanban->splitColumn = 'splitColumn';
|
||||
|
||||
$lang->kanban->methodOrder[5] = 'space';
|
||||
$lang->kanban->methodOrder[10] = 'createSpace';
|
||||
@@ -690,7 +691,8 @@ $lang->kanban->methodOrder[160] = 'assigntoCard';
|
||||
$lang->kanban->methodOrder[165] = 'moveCard';
|
||||
$lang->kanban->methodOrder[170] = 'setCardColor';
|
||||
$lang->kanban->methodOrder[175] = 'laneMove';
|
||||
$lang->kanban->methodOrder[180] = 'cardsSort';
|
||||
$lang->kanban->methodorder[180] = 'cardsSort';
|
||||
$lang->kanban->methodorder[185] = 'splitColumn';
|
||||
|
||||
/* Execution. */
|
||||
$lang->resource->execution = new stdclass();
|
||||
|
||||
@@ -348,6 +348,29 @@ class kanban extends control
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Sort regions.
|
||||
*
|
||||
* @param string $regions
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function sortRegion($regions = '')
|
||||
{
|
||||
if(empty($regions)) return;
|
||||
$regionIdList = explode(',', trim($regions, ','));
|
||||
|
||||
$order = 1;
|
||||
foreach($regionIdList as $regionID)
|
||||
{
|
||||
$this->dao->update(TABLE_KANBANREGION)->set('`order`')->eq($order)->where('id')->eq($regionID)->exec();
|
||||
$order++;
|
||||
}
|
||||
|
||||
if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError()));
|
||||
return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess));
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a region
|
||||
*
|
||||
|
||||
@@ -883,6 +883,7 @@ $(function()
|
||||
{
|
||||
$('.icon-double-angle-down').attr('class', 'icon-double-angle-up');
|
||||
$('.region').find('.kanban').show();
|
||||
url = createLink('kanban', 'sortRegion', 'regions=' + orders.join(','));
|
||||
}
|
||||
if(sortType == 'board')
|
||||
{
|
||||
@@ -911,7 +912,7 @@ $(function()
|
||||
},
|
||||
always: function(e)
|
||||
{
|
||||
$cards.show();
|
||||
if(sortType == 'lane') $cards.show();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
+21
-50
@@ -23,11 +23,8 @@ class kanbanModel extends model
|
||||
*/
|
||||
public function createGroup($kanbanID, $regionID)
|
||||
{
|
||||
$maxOrder = $this->dao->select('MAX(`order`) AS maxOrder')->from(TABLE_KANBANORDER)
|
||||
->where('objectType')->eq('group')
|
||||
->andWhere('parentID')->eq($regionID)
|
||||
->andWhere('parentType')->eq('region')
|
||||
->andWhere('account')->eq('')
|
||||
$maxOrder = $this->dao->select('MAX(`order`) AS maxOrder')->from(TABLE_KANBANGROUP)
|
||||
->where('region')->eq($regionID)
|
||||
->fetch('maxOrder');
|
||||
|
||||
$order = $maxOrder ? $maxOrder + 1 : 1;
|
||||
@@ -35,14 +32,12 @@ class kanbanModel extends model
|
||||
$group = new stdclass();
|
||||
$group->kanban = $kanbanID;
|
||||
$group->region = $regionID;
|
||||
$group->order = $order;
|
||||
|
||||
$this->dao->insert(TABLE_KANBANGROUP)->data($group)->autoCheck()->exec();
|
||||
if(dao::isError()) return false;
|
||||
|
||||
$groupID = $this->dao->lastInsertID();
|
||||
$this->saveOrder($regionID, 'region', $groupID, 'group', '', $order);
|
||||
|
||||
return $groupID;
|
||||
return $this->dao->lastInsertID();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -80,15 +75,11 @@ class kanbanModel extends model
|
||||
|
||||
if(!$region)
|
||||
{
|
||||
$maxOrder = $this->dao->select('MAX(`order`) AS maxOrder')->from(TABLE_KANBANORDER)
|
||||
->where('objectType')->eq('region')
|
||||
->andWhere('parentID')->eq($kanban->id)
|
||||
->andWhere('parentType')->eq('kanban')
|
||||
->andWhere('account')->eq('')
|
||||
$maxOrder = $this->dao->select('MAX(`order`) AS maxOrder')->from(TABLE_KANBANREGION)
|
||||
->where('kanban')->eq($kanban->id)
|
||||
->fetch('maxOrder');
|
||||
|
||||
$order = $maxOrder + 1;
|
||||
|
||||
$order = $maxOrder + 1;
|
||||
$region = fixer::input('post')
|
||||
->add('kanban', $kanban->id)
|
||||
->add('space', $kanban->space)
|
||||
@@ -98,6 +89,7 @@ class kanbanModel extends model
|
||||
->get();
|
||||
}
|
||||
|
||||
$region->order = $order;
|
||||
$this->dao->insert(TABLE_KANBANREGION)->data($region)
|
||||
->batchCheck($this->config->kanban->require->createregion, 'notempty')
|
||||
->check('name', 'unique', "kanban = {$kanban->id} AND deleted = '0'")
|
||||
@@ -108,7 +100,6 @@ class kanbanModel extends model
|
||||
if(dao::isError()) return false;
|
||||
|
||||
$this->loadModel('action')->create('kanbanRegion', $regionID, 'Created');
|
||||
$this->saveOrder($kanban->id, 'kanban', $regionID, 'region', $account, $order);
|
||||
|
||||
if($copyRegionID)
|
||||
{
|
||||
@@ -181,11 +172,11 @@ class kanbanModel extends model
|
||||
$lane->type = 'common';
|
||||
$lane->lastEditedTime = helper::now();
|
||||
$lane->color = '#7ec5ff';
|
||||
$lane->order = 1;
|
||||
|
||||
$this->dao->insert(TABLE_KANBANLANE)->data($lane)->exec();
|
||||
$laneID = $this->dao->lastInsertId();
|
||||
|
||||
$this->saveOrder($regionID, 'region', $laneID, 'lane', '', 1);
|
||||
return $laneID;
|
||||
}
|
||||
|
||||
@@ -213,7 +204,6 @@ class kanbanModel extends model
|
||||
|
||||
$this->createColumn($regionID, $column);
|
||||
$order ++;
|
||||
//$this->saveOrder($regionID, 'region', $this->dao->lastInsertID(), 'column', '', $index);
|
||||
}
|
||||
|
||||
return !dao::isError();
|
||||
@@ -376,6 +366,7 @@ class kanbanModel extends model
|
||||
if(!dao::isError())
|
||||
{
|
||||
$childColumnID = $this->dao->lastInsertID();
|
||||
if($i == 1) $this->dao->update(TABLE_KANBANCARD)->set('`column`')->eq($childColumnID)->where('`column`')->eq($columnID)->exec();
|
||||
$this->dao->update(TABLE_KANBANCOLUMN)->set('type')->eq("column{$childColumnID}")->where('id')->eq($childColumnID)->exec();
|
||||
$this->action->create('kanbanColumn', $childColumnID, 'created');
|
||||
}
|
||||
@@ -445,33 +436,6 @@ class kanbanModel extends model
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Save kanban object order.
|
||||
*
|
||||
* @param int $parentID
|
||||
* @param string $parentType
|
||||
* @param int $objectID
|
||||
* @param string $objectType
|
||||
* @param string $account
|
||||
* @param int $order
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function saveOrder($parentID, $parentType, $objectID, $objectType, $account, $order)
|
||||
{
|
||||
$kanbanOrder = new stdclass();
|
||||
$kanbanOrder->parentID = $parentID;
|
||||
$kanbanOrder->parentType = $parentType;
|
||||
$kanbanOrder->objectID = $objectID;
|
||||
$kanbanOrder->objectType = $objectType;
|
||||
$kanbanOrder->account = $account;
|
||||
$kanbanOrder->order = $order;
|
||||
|
||||
$this->dao->insert(TABLE_KANBANORDER)->data($kanbanOrder)->exec();
|
||||
return !dao::isError();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get kanban by id.
|
||||
*
|
||||
@@ -562,7 +526,7 @@ class kanbanModel extends model
|
||||
return $this->dao->select('id,name')->from(TABLE_KANBANREGION)
|
||||
->where('kanban')->eq($kanbanID)
|
||||
->andWhere('deleted')->eq('0')
|
||||
->orderBy('id_asc')
|
||||
->orderBy('order_asc')
|
||||
->fetchPairs();
|
||||
}
|
||||
|
||||
@@ -950,7 +914,7 @@ class kanbanModel extends model
|
||||
if(!dao::isError())
|
||||
{
|
||||
$spaceID = $this->dao->lastInsertID();
|
||||
$this->saveOrder(0, '', $spaceID, 'space', '', $spaceID);
|
||||
$this->dao->update(TABLE_KANBANSPACE)->set('`order`')->eq($spaceID)->where('id')->eq($spaceID)->exec();
|
||||
$this->file->saveUpload('kanbanspace', $spaceID);
|
||||
$this->file->updateObjectID($this->post->uid, $spaceID, 'kanbanspace');
|
||||
|
||||
@@ -1114,6 +1078,14 @@ class kanbanModel extends model
|
||||
|
||||
$kanban = $this->loadModel('file')->processImgURL($kanban, $this->config->kanban->editor->create['id'], $this->post->uid);
|
||||
|
||||
if(!empty($kanban->space))
|
||||
{
|
||||
$maxOrder = $this->dao->select('MAX(`order`) AS maxOrder')->from(TABLE_KANBAN)
|
||||
->where('space')->eq($kanban->space)
|
||||
->fetch('maxOrder');
|
||||
$kanban->order = $maxOrder + 1;
|
||||
}
|
||||
|
||||
$this->dao->insert(TABLE_KANBAN)->data($kanban)
|
||||
->autoCheck()
|
||||
->batchCheck($this->config->kanban->create->requiredFields, 'notempty')
|
||||
@@ -1124,7 +1096,6 @@ class kanbanModel extends model
|
||||
$kanbanID = $this->dao->lastInsertID();
|
||||
$kanban = $this->getByID($kanbanID);
|
||||
|
||||
$this->saveOrder(0, '', $kanbanID, 'kanban', '', $kanbanID);
|
||||
$this->createDefaultRegion($kanban);
|
||||
$this->file->saveUpload('kanban', $kanbanID);
|
||||
$this->file->updateObjectID($this->post->uid, $kanbanID, 'kanban');
|
||||
@@ -1728,7 +1699,7 @@ class kanbanModel extends model
|
||||
}
|
||||
|
||||
$cardID = (int)$cardID;
|
||||
$oldCard = $this->getCardById($cardID);
|
||||
$oldCard = $this->getCardByID($cardID);
|
||||
|
||||
$now = helper::now();
|
||||
$card = fixer::input('post')
|
||||
|
||||
@@ -58,6 +58,10 @@
|
||||
<th><?php echo $lang->kanbancard->end;?></th>
|
||||
<td><?php echo html::input('end', helper::isZeroDate($card->end) ? '' : $card->end, "class='form-control form-date'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->kanbancard->estimate;?></th>
|
||||
<td><?php echo html::input('estimate', $card->estimate, "class='form-control' placeholder='{$lang->kanbancard->lblHour}'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->kanbancard->pri;?></th>
|
||||
<td><?php echo html::select('pri', $lang->kanbancard->priList, $card->pri, "class='form-control'");?></td>
|
||||
|
||||
Reference in New Issue
Block a user