* Finish task #47998.
This commit is contained in:
+2
-1
@@ -1,6 +1,7 @@
|
||||
ALTER TABLE `zt_kanbanspace` ADD `type` varchar(50) NOT NULL AFTER `name`;
|
||||
UPDATE `zt_kanbanspace` SET `type` = 'cooperation';
|
||||
ALTER TABLE `zt_kanban` ADD `performable` enum ('0', '1') NOT NULL DEFAULT '0' AFTER `archived`;
|
||||
ALTER TABLE `zt_kanbancard` ADD `status` enum ('doing', 'done') NOT NULL DEFAULT 'doing' AFTER `name`;
|
||||
|
||||
ALTER TABLE `zt_job` ADD `sonarqubeServer` mediumint(8) unsigned NOT NULL AFTER `triggerType`;
|
||||
ALTER TABLE `zt_job` ADD `projectKey` varchar(255) NOT NULL AFTER `sonarqubeServer`;
|
||||
ALTER TABLE `zt_job` ADD `projectKey` varchar(255) NOT NULL AFTER `sonarqubeServer`;
|
||||
|
||||
@@ -644,6 +644,7 @@ $lang->resource->kanban->close = 'close';
|
||||
$lang->resource->kanban->delete = 'delete';
|
||||
$lang->resource->kanban->createRegion = 'createRegion';
|
||||
$lang->resource->kanban->editRegion = 'editRegion';
|
||||
$lang->resource->kanban->setDoneFunction = 'setDoneFunction';
|
||||
$lang->resource->kanban->sortRegion = 'sortRegion';
|
||||
$lang->resource->kanban->sortGroup = 'sortGroup';
|
||||
$lang->resource->kanban->deleteRegion = 'deleteRegion';
|
||||
@@ -668,6 +669,7 @@ $lang->resource->kanban->assigntoCard = 'assigntoCard';
|
||||
//$lang->resource->kanban->copyCard = 'copyCard';
|
||||
$lang->resource->kanban->deleteCard = 'deleteCard';
|
||||
$lang->resource->kanban->moveCard = 'moveCard';
|
||||
$lang->resource->kanban->editCardStatus = 'editCardStatus';
|
||||
$lang->resource->kanban->setCardColor = 'setCardColor';
|
||||
$lang->resource->kanban->laneMove = 'laneMove';
|
||||
$lang->resource->kanban->viewArchivedColumn = 'viewArchivedColumn';
|
||||
|
||||
@@ -732,6 +732,26 @@ class kanban extends control
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Update card status.
|
||||
*
|
||||
* @param int $cardID
|
||||
* @param int $kanbanID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function editCardStatus($cardID, $kanbanID)
|
||||
{
|
||||
$card = $this->kanban->getCardByID($cardID);
|
||||
$card->status = $card->status == 'doing' ? 'done' : 'doing';
|
||||
|
||||
$this->dao->update(TABLE_KANBANCARD)->set('status')->eq($card->status)->where('id')->eq($cardID)->exec();
|
||||
if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError()));
|
||||
|
||||
$kanbanGroup = $this->kanban->getKanbanData($kanbanID);
|
||||
return print(json_encode($kanbanGroup));
|
||||
}
|
||||
|
||||
/**
|
||||
* View a card.
|
||||
*
|
||||
|
||||
@@ -257,7 +257,7 @@ function renderKanbanItem(item, $item)
|
||||
{
|
||||
var $title = $item.children('.title');
|
||||
var privs = item.actions;
|
||||
var printMoreBtn = (privs.includes('editCard') || privs.includes('archiveCard') || privs.includes('copyCard') || privs.includes('deleteCard') || privs.includes('moveCard') || privs.includes('setCardColor'));
|
||||
var printMoreBtn = (privs.includes('editCard') || privs.includes('editCardStatus') ||privs.includes('archiveCard') || privs.includes('copyCard') || privs.includes('deleteCard') || privs.includes('moveCard') || privs.includes('setCardColor'));
|
||||
|
||||
if(privs.includes('sortCard')) $item.parent().addClass('sort');
|
||||
if(!$title.length)
|
||||
@@ -437,7 +437,6 @@ function setCardColor(cardID, color, kanbanID, regionID)
|
||||
url: url,
|
||||
success: function(data)
|
||||
{
|
||||
regions = data;
|
||||
updateRegion(regionID, data[regionID]);
|
||||
},
|
||||
error: function(xhr, status, error)
|
||||
@@ -447,6 +446,30 @@ function setCardColor(cardID, color, kanbanID, regionID)
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Update card status.
|
||||
*
|
||||
* @param int $cardID
|
||||
* @param int $kanbanID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
function editCardStatus(cardID, kanbanID, regionID)
|
||||
{
|
||||
if(!cardID) return false;
|
||||
var url = createLink('kanban', 'editCardStatus', 'cardID=' + cardID + '&kanbanID=' + kanbanID);
|
||||
return $.ajax(
|
||||
{
|
||||
method: 'post',
|
||||
dataType: 'json',
|
||||
url: url,
|
||||
success: function(data)
|
||||
{
|
||||
updateRegion(regionID, data[regionID]);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Update a region.
|
||||
*
|
||||
@@ -699,6 +722,23 @@ function createCardMenu(options)
|
||||
|
||||
var items = [];
|
||||
if(privs.includes('editCard')) items.push({label: kanbanLang.editCard, icon: 'edit', url: createLink('kanban', 'editCard', 'cardID=' + card.id, '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '80%'}});
|
||||
if(privs.includes('editCardStatus') && kanban.performable == 1)
|
||||
{
|
||||
var statusLang = '';
|
||||
var statusIcon = '';
|
||||
if(card.status == 'doing')
|
||||
{
|
||||
statusLang = kanbanLang.finishCard;
|
||||
statusIcon = 'checked';
|
||||
}
|
||||
else
|
||||
{
|
||||
statusLang = kanbanLang.activeCard;
|
||||
statusIcon = 'magic';
|
||||
}
|
||||
|
||||
items.push({label: statusLang, icon: statusIcon, onClick: function(){editCardStatus(card.id, card.kanban, card.region);}});
|
||||
}
|
||||
if(privs.includes('archiveCard') && kanban.archived == '1') items.push({label: kanbanLang.archiveCard, icon: 'card-archive', url: createLink('kanban', 'archiveCard', 'cardID=' + card.id), attrs: {'target': 'hiddenwin'}});
|
||||
if(privs.includes('copyCard')) items.push({label: kanbanLang.copyCard, icon: 'copy', url: createLink('kanban', 'copyCard', 'cardID=' + card.id, '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal'}});
|
||||
if(privs.includes('deleteCard')) items.push({label: kanbanLang.deleteCard, icon: 'trash', url: createLink('kanban', 'deleteCard', 'cardID=' + card.id), attrs: {'target': 'hiddenwin'}});
|
||||
|
||||
@@ -27,6 +27,8 @@ $lang->kanban->sortColumn = 'Sort Column';
|
||||
$lang->kanban->deleteColumn = 'Delete Column';
|
||||
$lang->kanban->createCard = 'Create Card';
|
||||
$lang->kanban->editCard = 'Edit Card';
|
||||
$lang->kanban->finishCard = 'Finish Card';
|
||||
$lang->kanban->activeCard = 'Active Card';
|
||||
$lang->kanban->viewCard = 'View Card';
|
||||
$lang->kanban->archiveCard = 'Archive Card';
|
||||
$lang->kanban->sortCard = 'Sort Card';
|
||||
|
||||
@@ -27,6 +27,8 @@ $lang->kanban->sortColumn = '看板列排序';
|
||||
$lang->kanban->deleteColumn = '删除看板列';
|
||||
$lang->kanban->createCard = '创建卡片';
|
||||
$lang->kanban->editCard = '编辑卡片';
|
||||
$lang->kanban->finishCard = '完成卡片';
|
||||
$lang->kanban->activeCard = '激活卡片';
|
||||
$lang->kanban->viewCard = '查看卡片';
|
||||
$lang->kanban->archiveCard = '归档卡片';
|
||||
$lang->kanban->sortCard = '卡片排序';
|
||||
|
||||
@@ -872,7 +872,7 @@ class kanbanModel extends model
|
||||
->andWhere('type')->eq('common')
|
||||
->fetchAll();
|
||||
|
||||
$actions = array('editCard', 'archiveCard', 'deleteCard', 'moveCard', 'setCardColor', 'viewCard', 'sortCard');
|
||||
$actions = array('editCard', 'editCardStatus', 'archiveCard', 'deleteCard', 'moveCard', 'setCardColor', 'viewCard', 'sortCard');
|
||||
$cardGroup = array();
|
||||
foreach($cellList as $cell)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user