diff --git a/module/kanban/control.php b/module/kanban/control.php index a18e14e40d..158625aa88 100644 --- a/module/kanban/control.php +++ b/module/kanban/control.php @@ -1380,13 +1380,20 @@ class kanban extends control */ public function deleteCard($cardID, $confirm = 'no') { + $card = $this->kanban->getCardByID($cardID); if($confirm == 'no') { - return print(js::confirm($this->lang->kanbancard->confirmDelete, $this->createLink('kanban', 'deleteCard', "cardID=$cardID&confirm=yes"))); + $confirmTip = $card->fromType == '' ? $this->lang->kanbancard->confirmDelete : $this->lang->kanbancard->confirmRemove; + return print(js::confirm($confirmTip, $this->createLink('kanban', 'deleteCard', "cardID=$cardID&confirm=yes"))); } else { - $this->kanban->delete(TABLE_KANBANCARD, $cardID); + if($card->fromType == '') $this->kanban->delete(TABLE_KANBANCARD, $cardID); + if($card->fromType != '') + { + $this->dao->delete()->from(TABLE_KANBANCARD)->where('id')->eq($cardID)->exec(); + $this->loadModel('action')->create('kanbancard', $cardID, 'Deleted', '', $cardID); + } if(isonlybody()) return print(js::reload('parent.parent')); return print(js::reload('parent')); diff --git a/module/kanban/js/view.js b/module/kanban/js/view.js index a7e66e4e40..1ba790454f 100644 --- a/module/kanban/js/view.js +++ b/module/kanban/js/view.js @@ -1086,7 +1086,7 @@ function createCardMenu(options) if(!privs.length) return []; 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('editCard') && card.fromType == '') 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('performable') && kanban.performable == 1) { if(card.status == 'done') @@ -1125,7 +1125,7 @@ function createCardMenu(options) if(privs.includes('setCardColor')) { var cardColoritems = []; - if(!card.color) color = "#fff"; + if(!card.color) card.color = "#fff"; for(let i = 0 ; i < colorList.length ; i ++ ) { var attr = card.color == colorList[i] ? '' : ''; @@ -1135,7 +1135,7 @@ function createCardMenu(options) }; items.push({label: kanbanLang.cardColor, icon: 'color', items: cardColoritems}); } - if(privs.includes('deleteCard')) items.push({label: kanbanLang.deleteCard, icon: 'trash', url: createLink('kanban', 'deleteCard', 'cardID=' + card.id), attrs: {'target': 'hiddenwin'}}); + if(privs.includes('deleteCard')) items.push({label: card.fromType == '' ? kanbanLang.deleteCard : kanbanLang.removeCard, icon: card.fromType == '' ? 'trash' : 'unlink', url: createLink('kanban', 'deleteCard', 'cardID=' + card.id), attrs: {'target': 'hiddenwin'}}); var bounds = options.$trigger[0].getBoundingClientRect(); items.$options = {x: bounds.right, y: bounds.top}; diff --git a/module/kanban/lang/en.php b/module/kanban/lang/en.php index b6d8efb4a2..cce018447c 100644 --- a/module/kanban/lang/en.php +++ b/module/kanban/lang/en.php @@ -40,6 +40,7 @@ $lang->kanban->moveCard = 'Move Card'; $lang->kanban->cardColor = 'Card Color'; $lang->kanban->setCardColor = 'Set Card Color'; $lang->kanban->deleteCard = 'Delete Card'; +$lang->kanban->removeCard = 'Remove Card'; $lang->kanban->assigntoCard = 'Assign'; $lang->kanban->setting = 'Setting'; $lang->kanban->enableArchived = 'Enable Archived'; @@ -365,6 +366,7 @@ $lang->kanbancard->confirmArchive = 'Are you sure to archive this card? After $lang->kanbancard->confirmDelete = 'Are you sure to delete this card? After deleting the card, it will be deleted from the Kanban. You can only view it in the system recycle bin.'; $lang->kanbancard->confirmRestore = "Are you sure you want to restore this card? After the card is restored, the card will be restored to the '%s' Kanban column."; $lang->kanbancard->confirmRestoreTip = "The card's column has been archived or deleted, please restore '%s' column first."; +$lang->kanbancard->confirmRemove = 'Are you sure to remove this card? After removing the card, the original data would not be affected.The card would be removed from the Kanban and counld not be restored.'; $lang->kanbancard->priList[1] = 1; $lang->kanbancard->priList[2] = 2; diff --git a/module/kanban/lang/zh-cn.php b/module/kanban/lang/zh-cn.php index 3b30ccdcdf..00a8305975 100644 --- a/module/kanban/lang/zh-cn.php +++ b/module/kanban/lang/zh-cn.php @@ -40,6 +40,7 @@ $lang->kanban->moveCard = '移动卡片'; $lang->kanban->cardColor = '卡片颜色'; $lang->kanban->setCardColor = '设置卡片颜色'; $lang->kanban->deleteCard = '删除卡片'; +$lang->kanban->removeCard = '移除卡片'; $lang->kanban->assigntoCard = '指派'; $lang->kanban->setting = '设置'; $lang->kanban->enableArchived = '设置归档功能'; @@ -365,6 +366,7 @@ $lang->kanbancard->confirmArchive = '您确认归档该卡片吗?归档卡 $lang->kanbancard->confirmDelete = '您确认删除该卡片吗?删除卡片后,该卡片将从看板中删除,您只能通过系统回收站查看。'; $lang->kanbancard->confirmRestore = '您确定要还原该卡片吗?还原卡片后,该卡片将还原到“%s”看板列中。'; $lang->kanbancard->confirmRestoreTip = '该卡片所属的看板列已被归档或删除,请先还原“%s”看板列。'; +$lang->kanbancard->confirmRemove = '您确认移除该卡片吗?移除卡片后,源数据不会受到影响,卡片将从看板中移除且无法恢复。'; $lang->kanbancard->priList[1] = 1; $lang->kanbancard->priList[2] = 2; diff --git a/module/kanban/view/viewarchivedcard.html.php b/module/kanban/view/viewarchivedcard.html.php index 107abd4988..e5fd50c1f5 100644 --- a/module/kanban/view/viewarchivedcard.html.php +++ b/module/kanban/view/viewarchivedcard.html.php @@ -104,7 +104,7 @@ $app->loadLang('productplan');