diff --git a/module/kanban/js/view.js b/module/kanban/js/view.js index 5aa4017a8b..a4f57403a2 100644 --- a/module/kanban/js/view.js +++ b/module/kanban/js/view.js @@ -867,6 +867,10 @@ function createColumnCreateMenu(options) 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%'}}); + if(privs.includes('import') && kanban.importObject.indexOf('cards') != -1) items.push({label: kanbanLang.importCard, url: $.createLink('kanban', 'importCard', 'kanbanID=' + kanbanID + '®ionID=' + regionID + '&groupID=' + groupID + '&laneID=' + laneID + '&columnID=' + columnID), attrs: {'data-width': '80%'}}); + if(privs.includes('import') && kanban.importObject) items.push({className: 'parentDivider'}); + if(privs.includes('import') && kanban.importObject) items.push({label: kanbanLang.importAB, className: 'import'}); + return items; } @@ -984,6 +988,22 @@ $(function() if(!items || !items.length) return; $.zui.ContextMenu.show(items, items.$options || {event: event}); + + $('.parentDivider').parent().addClass('divider'); + $('.import').parent().addClass('dropdown-submenu top'); + + /* The submenu of import. */ + var importPlanLink = createLink('kanban', 'importPlan'); + var importReleaseLink = createLink('kanban', 'importRelease'); + var importExecutionLink = createLink('kanban', 'importExecution'); + var importBuildLink = createLink('kanban', 'importBuild'); + var importPlanLink = kanban.importObject.indexOf('plan') != -1 ? '
  • ' + kanbanLang.importPlan + '
  • ' : ''; + var importReleaseLink = kanban.importObject.indexOf('release') != -1 ? '
  • ' + kanbanLang.importRelease + '
  • ' : ''; + var importExecutionLink = kanban.importObject.indexOf('execution') != -1 ? '
  • ' + kanbanLang.importExecution + '
  • ' : ''; + var importBuildLink = kanban.importObject.indexOf('build') != -1 ? '
  • ' + kanbanLang.importBuild + '
  • ' : ''; + var importSubmenu = ''; + $('.import').parent().append(importSubmenu); + }); /* Adjust the add button position on window resize */ diff --git a/module/kanban/lang/en.php b/module/kanban/lang/en.php index 05fd40ec65..2c437638b1 100644 --- a/module/kanban/lang/en.php +++ b/module/kanban/lang/en.php @@ -63,6 +63,7 @@ $lang->kanban->restore = 'Restore'; $lang->kanban->child = 'Child'; $lang->kanban->batchCreateCard = 'Batchcreate Card'; $lang->kanban->import = 'Import'; +$lang->kanban->importAB = 'Import'; $lang->kanban->showClosed = 'Closed'; /* Fields. */ diff --git a/module/kanban/lang/zh-cn.php b/module/kanban/lang/zh-cn.php index 5a013d06a8..cf134f06dd 100644 --- a/module/kanban/lang/zh-cn.php +++ b/module/kanban/lang/zh-cn.php @@ -63,6 +63,7 @@ $lang->kanban->restore = '还原'; $lang->kanban->child = '子'; $lang->kanban->batchCreateCard = '批量创建卡片'; $lang->kanban->import = '导入功能'; +$lang->kanban->importAB = '导入'; $lang->kanban->showClosed = '显示已关闭'; /* Fields. */ diff --git a/module/kanban/model.php b/module/kanban/model.php index aa0a7c581f..eba6660470 100644 --- a/module/kanban/model.php +++ b/module/kanban/model.php @@ -886,7 +886,7 @@ class kanbanModel extends model ->orderBy($order) ->fetchGroup('group'); - $actions = array('createColumn', 'setColumn', 'setWIP', 'archiveColumn', 'restoreColumn', 'deleteColumn', 'createCard', 'batchCreateCard', 'splitColumn', 'sortColumn'); + $actions = array('createColumn', 'setColumn', 'setWIP', 'archiveColumn', 'restoreColumn', 'deleteColumn', 'createCard', 'batchCreateCard', 'splitColumn', 'import', 'sortColumn'); /* Group by parent. */ $parentColumnGroup = array(); diff --git a/module/todo/model.php b/module/todo/model.php index 5473018c90..f565eb985b 100644 --- a/module/todo/model.php +++ b/module/todo/model.php @@ -51,7 +51,7 @@ class todoModel extends model if($todo->pri == 'low') $todo->pri = 3; } - if($todo->type != 'custom') + if($todo->type != 'custom' and $todo->idvalue) { $type = $todo->type; $object = $this->loadModel($type)->getByID($this->post->$type);