From 7b0694844cd92b8973a3fedb693f7a825ae6fd53 Mon Sep 17 00:00:00 2001 From: mayue Date: Fri, 21 Jan 2022 08:32:21 +0800 Subject: [PATCH 1/4] * Finish task #47998. --- db/update16.2.sql | 3 ++- module/group/lang/resource.php | 2 ++ module/kanban/control.php | 20 ++++++++++++++++ module/kanban/js/view.js | 44 ++++++++++++++++++++++++++++++++-- module/kanban/lang/en.php | 2 ++ module/kanban/lang/zh-cn.php | 2 ++ module/kanban/model.php | 2 +- 7 files changed, 71 insertions(+), 4 deletions(-) diff --git a/db/update16.2.sql b/db/update16.2.sql index 75c4536ef7..c6ffc46d79 100644 --- a/db/update16.2.sql +++ b/db/update16.2.sql @@ -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`; \ No newline at end of file +ALTER TABLE `zt_job` ADD `projectKey` varchar(255) NOT NULL AFTER `sonarqubeServer`; diff --git a/module/group/lang/resource.php b/module/group/lang/resource.php index 0a0706d26a..dabeb585e3 100644 --- a/module/group/lang/resource.php +++ b/module/group/lang/resource.php @@ -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'; diff --git a/module/kanban/control.php b/module/kanban/control.php index 0e2ce2cccd..b30c9c46ea 100644 --- a/module/kanban/control.php +++ b/module/kanban/control.php @@ -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. * diff --git a/module/kanban/js/view.js b/module/kanban/js/view.js index 246d4696c6..6254102e2c 100644 --- a/module/kanban/js/view.js +++ b/module/kanban/js/view.js @@ -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'}}); diff --git a/module/kanban/lang/en.php b/module/kanban/lang/en.php index 8570d1359f..2cc8d684f4 100644 --- a/module/kanban/lang/en.php +++ b/module/kanban/lang/en.php @@ -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'; diff --git a/module/kanban/lang/zh-cn.php b/module/kanban/lang/zh-cn.php index 048e6a91fb..88abfbd07a 100644 --- a/module/kanban/lang/zh-cn.php +++ b/module/kanban/lang/zh-cn.php @@ -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 = '卡片排序'; diff --git a/module/kanban/model.php b/module/kanban/model.php index b24674dfb9..b653ea8bd7 100644 --- a/module/kanban/model.php +++ b/module/kanban/model.php @@ -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) { From aaaefa509ce9228c7d82782d09ee358e16555185 Mon Sep 17 00:00:00 2001 From: mayue Date: Fri, 21 Jan 2022 13:32:58 +0800 Subject: [PATCH 2/4] * Optimize code. --- db/update16.2.sql | 2 +- module/group/lang/resource.php | 3 +- module/kanban/control.php | 30 +++++++++++++---- module/kanban/js/view.js | 48 ++++++++++++++++++++-------- module/kanban/model.php | 2 +- module/kanban/view/viewcard.html.php | 9 +++++- 6 files changed, 70 insertions(+), 24 deletions(-) diff --git a/db/update16.2.sql b/db/update16.2.sql index c6ffc46d79..150331a5bf 100644 --- a/db/update16.2.sql +++ b/db/update16.2.sql @@ -1,7 +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_kanbancard` ADD `status` varchar(30) NOT NULL 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`; diff --git a/module/group/lang/resource.php b/module/group/lang/resource.php index dabeb585e3..e0a6e1816f 100644 --- a/module/group/lang/resource.php +++ b/module/group/lang/resource.php @@ -669,7 +669,8 @@ $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->finishCard = 'finishCard'; +$lang->resource->kanban->activeCard = 'activeCard'; $lang->resource->kanban->setCardColor = 'setCardColor'; $lang->resource->kanban->laneMove = 'laneMove'; $lang->resource->kanban->viewArchivedColumn = 'viewArchivedColumn'; diff --git a/module/kanban/control.php b/module/kanban/control.php index b30c9c46ea..bde75c8692 100644 --- a/module/kanban/control.php +++ b/module/kanban/control.php @@ -733,21 +733,39 @@ class kanban extends control } /** - * Update card status. + * Finish a card. * * @param int $cardID * @param int $kanbanID * @access public * @return void */ - public function editCardStatus($cardID, $kanbanID) + public function finishCard($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(); + $this->dao->update(TABLE_KANBANCARD)->set('status')->eq('done')->where('id')->eq($cardID)->exec(); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); + if(isonlybody()) return print(js::reload('parent.parent')); + + $kanbanGroup = $this->kanban->getKanbanData($kanbanID); + return print(json_encode($kanbanGroup)); + } + + /** + * Active a card. + * + * @param int $cardID + * @param int $kanbanID + * @access public + * @return void + */ + public function activeCard($cardID, $kanbanID) + { + $this->dao->update(TABLE_KANBANCARD)->set('status')->eq('doing')->where('id')->eq($cardID)->exec(); + if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); + + if(isonlybody()) return print(js::reload('parent.parent')); + $kanbanGroup = $this->kanban->getKanbanData($kanbanID); return print(json_encode($kanbanGroup)); } diff --git a/module/kanban/js/view.js b/module/kanban/js/view.js index 6254102e2c..5e298ae439 100644 --- a/module/kanban/js/view.js +++ b/module/kanban/js/view.js @@ -257,7 +257,7 @@ function renderKanbanItem(item, $item) { var $title = $item.children('.title'); var privs = item.actions; - var printMoreBtn = (privs.includes('editCard') || privs.includes('editCardStatus') ||privs.includes('archiveCard') || privs.includes('copyCard') || privs.includes('deleteCard') || privs.includes('moveCard') || privs.includes('setCardColor')); + var printMoreBtn = (privs.includes('editCard') || privs.includes('finishCard') || privs.includes('activeCard') ||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) @@ -447,17 +447,43 @@ function setCardColor(cardID, color, kanbanID, regionID) } /** - * Update card status. + * Finish a card. * * @param int $cardID * @param int $kanbanID + * @param int $regionID * @access public * @return void */ -function editCardStatus(cardID, kanbanID, regionID) +function finishCard(cardID, kanbanID, regionID) { if(!cardID) return false; - var url = createLink('kanban', 'editCardStatus', 'cardID=' + cardID + '&kanbanID=' + kanbanID); + var url = createLink('kanban', 'finishCard', 'cardID=' + cardID + '&kanbanID=' + kanbanID); + return $.ajax( + { + method: 'post', + dataType: 'json', + url: url, + success: function(data) + { + updateRegion(regionID, data[regionID]); + } + }); +} + +/** + * Active a card. + * + * @param int $cardID + * @param int $kanbanID + * @param int $regionID + * @access public + * @return void + */ +function activeCard(cardID, kanbanID, regionID) +{ + if(!cardID) return false; + var url = createLink('kanban', 'activeCard', 'cardID=' + cardID + '&kanbanID=' + kanbanID); return $.ajax( { method: 'post', @@ -722,22 +748,16 @@ 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) + if(kanban.performable == 1) { - var statusLang = ''; - var statusIcon = ''; - if(card.status == 'doing') + if(privs.includes('activeCard') && card.status != 'doing') { - statusLang = kanbanLang.finishCard; - statusIcon = 'checked'; + items.push({label: kanbanLang.activeCard, icon: 'magic', onClick: function(){activeCard(card.id, card.kanban, card.region);}}); } else { - statusLang = kanbanLang.activeCard; - statusIcon = 'magic'; + items.push({label: kanbanLang.finishCard, icon: 'checked', onClick: function(){finishCard(card.id, card.kanban, card.region);}}); } - - 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'}}); diff --git a/module/kanban/model.php b/module/kanban/model.php index b653ea8bd7..140289a6b0 100644 --- a/module/kanban/model.php +++ b/module/kanban/model.php @@ -872,7 +872,7 @@ class kanbanModel extends model ->andWhere('type')->eq('common') ->fetchAll(); - $actions = array('editCard', 'editCardStatus', 'archiveCard', 'deleteCard', 'moveCard', 'setCardColor', 'viewCard', 'sortCard'); + $actions = array('editCard', 'finishCard', 'activeCard', 'archiveCard', 'deleteCard', 'moveCard', 'setCardColor', 'viewCard', 'sortCard'); $cardGroup = array(); foreach($cellList as $cell) { diff --git a/module/kanban/view/viewcard.html.php b/module/kanban/view/viewcard.html.php index 7de50aaf78..2d9b94fb30 100644 --- a/module/kanban/view/viewcard.html.php +++ b/module/kanban/view/viewcard.html.php @@ -39,12 +39,19 @@ //common::printLink('kanban', 'assigntoCard', "cardID=$card->id", "{$lang->kanbancard->assign}", '', "class='btn btn-link iframe' title='{$lang->kanbancard->assign}'", true, true); if($kanban->archived) { - common::printLink('kanban', 'archiveCard', "cardID=$card->id", "{$lang->kanbancard->archive}", 'hiddenwin', "class='btn btn-link' title='{$lang->kanbancard->archive}'", true, true); + common::printLink('kanban', 'archiveCard', "cardID=$card->id", "{$lang->kanbancard->archive}", 'hiddenwin', "class='btn btn-link' title='{$lang->kanbancard->archive}'", true, true); echo "
"; } common::printLink('kanban', 'editCard', "cardID=$card->id", '', '', "class='btn btn-link iframe' data-width='80%' title='{$lang->kanbancard->edit}'", true, true); + + if($kanban->performable) + { + if($card->status == 'done') common::printLink('kanban', 'activeCard', "cardID={$card->id}&kanbanID={$kanban->id}", '', '', "class='btn btn-link iframe' title='{$lang->kanban->activeCard}'", true, true); + if($card->status == 'doing') common::printLink('kanban', 'finishCard', "cardID={$card->id}&kanbanID={$kanban->id}", '', '', "class='btn btn-link iframe' title='{$lang->kanban->finishCard}'", true, true); + } + common::printLink('kanban', 'copyCard', "cardID=$card->id", '', '', "class='btn btn-link iframe' title='{$lang->kanbancard->copy}'", true, true); common::printLink('kanban', 'deleteCard', "cardID=$card->id", '', 'hiddenwin', "class='btn btn-link' title='{$lang->kanbancard->delete}'",true, true); ?> From 6ba1e7212d3a2b3dda2f8a588d0d20719fe5968d Mon Sep 17 00:00:00 2001 From: mayue Date: Fri, 21 Jan 2022 13:50:56 +0800 Subject: [PATCH 3/4] * Optimize code. --- module/group/lang/resource.php | 4 +-- module/kanban/control.php | 8 ++--- module/kanban/js/view.js | 12 ++++---- module/kanban/lang/en.php | 4 +-- module/kanban/lang/zh-cn.php | 4 +-- module/kanban/model.php | 8 ++--- module/kanban/view/setdonefunction.html.php | 34 --------------------- module/kanban/view/viewcard.html.php | 2 +- 8 files changed, 21 insertions(+), 55 deletions(-) delete mode 100644 module/kanban/view/setdonefunction.html.php diff --git a/module/group/lang/resource.php b/module/group/lang/resource.php index e0a6e1816f..f9ede55dc2 100644 --- a/module/group/lang/resource.php +++ b/module/group/lang/resource.php @@ -644,7 +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->performable = 'performable'; $lang->resource->kanban->sortRegion = 'sortRegion'; $lang->resource->kanban->sortGroup = 'sortGroup'; $lang->resource->kanban->deleteRegion = 'deleteRegion'; @@ -670,7 +670,7 @@ $lang->resource->kanban->assigntoCard = 'assigntoCard'; $lang->resource->kanban->deleteCard = 'deleteCard'; $lang->resource->kanban->moveCard = 'moveCard'; $lang->resource->kanban->finishCard = 'finishCard'; -$lang->resource->kanban->activeCard = 'activeCard'; +$lang->resource->kanban->activateCard = 'activateCard'; $lang->resource->kanban->setCardColor = 'setCardColor'; $lang->resource->kanban->laneMove = 'laneMove'; $lang->resource->kanban->viewArchivedColumn = 'viewArchivedColumn'; diff --git a/module/kanban/control.php b/module/kanban/control.php index bde75c8692..0f75d68324 100644 --- a/module/kanban/control.php +++ b/module/kanban/control.php @@ -752,14 +752,14 @@ class kanban extends control } /** - * Active a card. + * Activate a card. * * @param int $cardID * @param int $kanbanID * @access public * @return void */ - public function activeCard($cardID, $kanbanID) + public function activate($cardID, $kanbanID) { $this->dao->update(TABLE_KANBANCARD)->set('status')->eq('doing')->where('id')->eq($cardID)->exec(); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); @@ -1069,13 +1069,13 @@ class kanban extends control } /** - * Set done function. + * Setup done function. * * @param int $kanbanID * @access public * @return void */ - public function setDoneFunction($kanbanID) + public function performable($kanbanID) { if(!empty($_POST)) { diff --git a/module/kanban/js/view.js b/module/kanban/js/view.js index 5e298ae439..f6472f1932 100644 --- a/module/kanban/js/view.js +++ b/module/kanban/js/view.js @@ -257,7 +257,7 @@ function renderKanbanItem(item, $item) { var $title = $item.children('.title'); var privs = item.actions; - var printMoreBtn = (privs.includes('editCard') || privs.includes('finishCard') || privs.includes('activeCard') ||privs.includes('archiveCard') || privs.includes('copyCard') || privs.includes('deleteCard') || privs.includes('moveCard') || privs.includes('setCardColor')); + var printMoreBtn = (privs.includes('editCard') || privs.includes('finishCard') || privs.includes('activateCard') ||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) @@ -472,7 +472,7 @@ function finishCard(cardID, kanbanID, regionID) } /** - * Active a card. + * Activate a card. * * @param int $cardID * @param int $kanbanID @@ -480,10 +480,10 @@ function finishCard(cardID, kanbanID, regionID) * @access public * @return void */ -function activeCard(cardID, kanbanID, regionID) +function activateCard(cardID, kanbanID, regionID) { if(!cardID) return false; - var url = createLink('kanban', 'activeCard', 'cardID=' + cardID + '&kanbanID=' + kanbanID); + var url = createLink('kanban', 'activateCard', 'cardID=' + cardID + '&kanbanID=' + kanbanID); return $.ajax( { method: 'post', @@ -750,9 +750,9 @@ function createCardMenu(options) 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(kanban.performable == 1) { - if(privs.includes('activeCard') && card.status != 'doing') + if(privs.includes('activateCard') && card.status != 'doing') { - items.push({label: kanbanLang.activeCard, icon: 'magic', onClick: function(){activeCard(card.id, card.kanban, card.region);}}); + items.push({label: kanbanLang.activateCard, icon: 'magic', onClick: function(){activateCard(card.id, card.kanban, card.region);}}); } else { diff --git a/module/kanban/lang/en.php b/module/kanban/lang/en.php index 2cc8d684f4..08cadf01c1 100644 --- a/module/kanban/lang/en.php +++ b/module/kanban/lang/en.php @@ -28,7 +28,7 @@ $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->activateCard = 'Activate Card'; $lang->kanban->viewCard = 'View Card'; $lang->kanban->archiveCard = 'Archive Card'; $lang->kanban->sortCard = 'Sort Card'; @@ -39,7 +39,7 @@ $lang->kanban->setCardColor = 'Set Card Color'; $lang->kanban->deleteCard = 'Delete Card'; $lang->kanban->assigntoCard = 'Assign'; $lang->kanban->setting = 'Setting'; -$lang->kanban->setDoneFunction = 'Set done function'; +$lang->kanban->performable = 'Set done function'; $lang->kanban->doneFunction = 'Done function'; $lang->kanban->splitColumn = 'Split Column'; $lang->kanban->createColumnOnLeft = 'Create Column On Left'; diff --git a/module/kanban/lang/zh-cn.php b/module/kanban/lang/zh-cn.php index 88abfbd07a..40e8a61fb3 100644 --- a/module/kanban/lang/zh-cn.php +++ b/module/kanban/lang/zh-cn.php @@ -28,7 +28,7 @@ $lang->kanban->deleteColumn = '删除看板列'; $lang->kanban->createCard = '创建卡片'; $lang->kanban->editCard = '编辑卡片'; $lang->kanban->finishCard = '完成卡片'; -$lang->kanban->activeCard = '激活卡片'; +$lang->kanban->activateCard = '激活卡片'; $lang->kanban->viewCard = '查看卡片'; $lang->kanban->archiveCard = '归档卡片'; $lang->kanban->sortCard = '卡片排序'; @@ -39,7 +39,7 @@ $lang->kanban->setCardColor = '设置卡片颜色'; $lang->kanban->deleteCard = '删除卡片'; $lang->kanban->assigntoCard = '指派'; $lang->kanban->setting = '设置'; -$lang->kanban->setDoneFunction = '设置完成功能'; +$lang->kanban->performable = '设置完成功能'; $lang->kanban->doneFunction = '完成功能'; $lang->kanban->splitColumn = '新增子看板列'; $lang->kanban->createColumnOnLeft = '左侧新增看板列'; diff --git a/module/kanban/model.php b/module/kanban/model.php index 140289a6b0..67c02813c5 100644 --- a/module/kanban/model.php +++ b/module/kanban/model.php @@ -872,7 +872,7 @@ class kanbanModel extends model ->andWhere('type')->eq('common') ->fetchAll(); - $actions = array('editCard', 'finishCard', 'activeCard', 'archiveCard', 'deleteCard', 'moveCard', 'setCardColor', 'viewCard', 'sortCard'); + $actions = array('editCard', 'finishCard', 'activateCard', 'archiveCard', 'deleteCard', 'moveCard', 'setCardColor', 'viewCard', 'sortCard'); $cardGroup = array(); foreach($cellList as $cell) { @@ -2533,7 +2533,7 @@ class kanbanModel extends model $actions .= "
"; $actions .= " {$this->lang->kanban->fullScreen}"; - $printSettingBtn = (common::hasPriv('kanban', 'createRegion') or $printSetHeight or common::hasPriv('kanban', 'setDoneFunction') or common::hasPriv('kanban', 'edit') or common::hasPriv('kanban', 'close') or common::hasPriv('kanban', 'delete')); + $printSettingBtn = (common::hasPriv('kanban', 'createRegion') or $printSetHeight or common::hasPriv('kanban', 'performable') or common::hasPriv('kanban', 'edit') or common::hasPriv('kanban', 'close') or common::hasPriv('kanban', 'delete')); if($printSettingBtn) { @@ -2546,7 +2546,7 @@ class kanbanModel extends model $actions .= '
  • ' . html::a(helper::createLink('kanban', 'setLaneHeight', "kanbanID=$kanban->id", '', true), '' . $this->lang->kanban->laneHeight, '', "class='iframe btn btn-link' data-width='$width'") . '
  • '; } - if(common::hasPriv('kanban', 'setDoneFunction')) $actions .= '
  • ' . html::a(helper::createLink('kanban', 'setDoneFunction', "kanbanID=$kanban->id", '', true), '' . $this->lang->kanban->doneFunction, '', "class='iframe btn btn-link'") . '
  • '; + if(common::hasPriv('kanban', 'performable')) $actions .= '
  • ' . html::a(helper::createLink('kanban', 'performable', "kanbanID=$kanban->id", '', true), '' . $this->lang->kanban->doneFunction, '', "class='iframe btn btn-link'") . '
  • '; $kanbanActions = ''; $attr = $kanban->status == 'closed' ? "disabled='disabled'" : ''; @@ -2555,7 +2555,7 @@ class kanbanModel extends model if(common::hasPriv('kanban', 'delete')) $kanbanActions .= '
  • ' . html::a(helper::createLink('kanban', 'delete', "kanbanID=$kanban->id"), '' . $this->lang->kanban->delete, 'hiddenwin', "class='btn btn-link'") . '
  • '; if($kanbanActions) { - $actions .= ((common::hasPriv('kanban', 'createRegion') or $printSetHeight or common::hasPriv('kanban', 'setDoneFunction')) and (common::hasPriv('kanban', 'edit') or common::hasPriv('kanban', 'close') or common::hasPriv('kanban', 'delete'))) ? "
    " . $kanbanActions : $kanbanActions; + $actions .= ((common::hasPriv('kanban', 'createRegion') or $printSetHeight or common::hasPriv('kanban', 'performable')) and (common::hasPriv('kanban', 'edit') or common::hasPriv('kanban', 'close') or common::hasPriv('kanban', 'delete'))) ? "
    " . $kanbanActions : $kanbanActions; } $actions .= ""; } diff --git a/module/kanban/view/setdonefunction.html.php b/module/kanban/view/setdonefunction.html.php deleted file mode 100644 index 869c57feba..0000000000 --- a/module/kanban/view/setdonefunction.html.php +++ /dev/null @@ -1,34 +0,0 @@ - - * @package kanban - * @version $Id: setdonefunction.html.php 935 2022-01-1 14:20:24Z $ - * @link https://www.zentao.net - */ -?> - -
    -
    -
    -

    kanban->setDoneFunction;?>

    -
    -
    - - - - - - - - -
    kanban->doneFunction;?>kanban->enableFinished, $kanban->performable));?>
    - -
    -
    -
    -
    - diff --git a/module/kanban/view/viewcard.html.php b/module/kanban/view/viewcard.html.php index 2d9b94fb30..663f2527ca 100644 --- a/module/kanban/view/viewcard.html.php +++ b/module/kanban/view/viewcard.html.php @@ -48,7 +48,7 @@ if($kanban->performable) { - if($card->status == 'done') common::printLink('kanban', 'activeCard', "cardID={$card->id}&kanbanID={$kanban->id}", '', '', "class='btn btn-link iframe' title='{$lang->kanban->activeCard}'", true, true); + if($card->status == 'done') common::printLink('kanban', 'activateCard', "cardID={$card->id}&kanbanID={$kanban->id}", '', '', "class='btn btn-link iframe' title='{$lang->kanban->activateCard}'", true, true); if($card->status == 'doing') common::printLink('kanban', 'finishCard', "cardID={$card->id}&kanbanID={$kanban->id}", '', '', "class='btn btn-link iframe' title='{$lang->kanban->finishCard}'", true, true); } From ecef85b7f7395871adca092598079e83d217e2b8 Mon Sep 17 00:00:00 2001 From: mayue Date: Fri, 21 Jan 2022 13:54:33 +0800 Subject: [PATCH 4/4] * Add a file. --- module/kanban/view/performable.html.php | 34 +++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 module/kanban/view/performable.html.php diff --git a/module/kanban/view/performable.html.php b/module/kanban/view/performable.html.php new file mode 100644 index 0000000000..f6391b1a8b --- /dev/null +++ b/module/kanban/view/performable.html.php @@ -0,0 +1,34 @@ + + * @package kanban + * @version $Id: performable.html.php 935 2022-01-1 14:20:24Z $ + * @link https://www.zentao.net + */ +?> + +
    +
    +
    +

    kanban->performable;?>

    +
    +
    + + + + + + + + +
    kanban->doneFunction;?>kanban->enableFinished, $kanban->performable));?>
    + +
    +
    +
    +
    +