diff --git a/module/execution/js/executionkanban.ui.js b/module/execution/js/executionkanban.ui.js index b3629b7c8d..78dd820f31 100644 --- a/module/execution/js/executionkanban.ui.js +++ b/module/execution/js/executionkanban.ui.js @@ -28,7 +28,6 @@ window.canDrop = function(dragInfo, dropInfo) const lane = this.getLane(dropInfo.lane); if(!column || !lane) return false; - console.log(dropInfo); if(dropInfo.type == 'item') return false; if(dragInfo.item.lane != lane.name) return false; if(dragInfo.item.status == 'wait' && dropInfo.col == 'doing') return privs.canStartExecution; diff --git a/module/kanban/css/view.ui.css b/module/kanban/css/view.ui.css index 5abbe16b23..d8ec675b0d 100644 --- a/module/kanban/css/view.ui.css +++ b/module/kanban/css/view.ui.css @@ -19,3 +19,13 @@ .regionMenu li.active > a:before {background: #fff} .regionMenu li a:hover {color: rgba(var(--color-primary-500-rgb),var(--tw-text-opacity));} .regionMenu li a span {vertical-align: bottom; overflow: hidden; max-width: 6em; white-space: nowrap; display: inline-block;} +.card-suffix.label {min-width: 46px;} + +.label-wait {background-color: rgba(var(--color-gray-100-rgb),var(--tw-bg-opacity)); color: rgba(var(--color-gray-500-rgb),var(--tw-text-opacity)); --tw-ring-color: rgba(var(--color-gray-500-rgb),var(--tw-ring-opacity));} +.label-doing {background-color: rgba(var(--color-danger-100-rgb),var(--tw-bg-opacity)); color: rgba(var(--color-danger-500-rgb),var(--tw-text-opacity)); --tw-ring-color: rgba(var(--color-danger-500-rgb),var(--tw-ring-opacity));} +.label-suspended {background-color: rgba(var(--color-warning-100-rgb),var(--tw-bg-opacity)); color: rgba(var(--color-warning-500-rgb),var(--tw-text-opacity)); --tw-ring-color: rgba(var(--color-warning-500-rgb),var(--tw-ring-opacity));} +.label-future {background-color: rgba(var(--color-gray-100-rgb),var(--tw-bg-opacity)); color: rgba(var(--color-gray-500-rgb),var(--tw-text-opacity)); --tw-ring-color: rgba(var(--color-gray-500-rgb),var(--tw-ring-opacity));} +.label-done {background-color: rgba(var(--color-success-100-rgb),var(--tw-bg-opacity)); color: rgba(var(--color-success-500-rgb),var(--tw-text-opacity)); --tw-ring-color: rgba(var(--color-success-500-rgb),var(--tw-ring-opacity));} +.label-closed {background-color: rgba(var(--color-gray-100-rgb),var(--tw-bg-opacity)); color: rgba(var(--color-gray-500-rgb),var(--tw-text-opacity)); --tw-ring-color: rgba(var(--color-gray-500-rgb),var(--tw-ring-opacity));} +.label-normal {background-color: rgba(var(--color-success-100-rgb),var(--tw-bg-opacity)); color: rgba(var(--color-success-500-rgb),var(--tw-text-opacity)); --tw-ring-color: rgba(var(--color-success-500-rgb),var(--tw-ring-opacity));} +.label-deleted {background-color: rgba(var(--color-danger-100-rgb),var(--tw-bg-opacity)); color: rgba(var(--color-danger-500-rgb),var(--tw-text-opacity)); --tw-ring-color: rgba(var(--color-danger-500-rgb),var(--tw-ring-opacity));} diff --git a/module/kanban/js/view.ui.js b/module/kanban/js/view.ui.js index 7b23a3667c..92ac40114d 100644 --- a/module/kanban/js/view.ui.js +++ b/module/kanban/js/view.ui.js @@ -127,6 +127,34 @@ window.buildColActions = function(col) * Render card content. */ window.getItem = function(info) +{ + if(info.item.fromType == 'execution') + { + renderExecutionItem(info); + } + else if(info.item.fromType == 'release') + { + renderReleaseItem(info); + } + else if(info.item.fromType == 'build') + { + renderBuildItem(info); + } + else if(info.item.fromType == 'productplan') + { + renderProductplanItem(info); + } + else if(info.item.fromType == 'ticket') + { + renderTicketItem(info); + } + else + { + renderGeneralItem(info) + } +} + +window.renderGeneralItem = function(info) { let begin = info.item.begin; let end = info.item.end; @@ -160,12 +188,52 @@ window.getItem = function(info) info.item.content = {html: content}; if(info.item.color && info.item.color != '#fff') info.item.className = 'color-' + info.item.color.replace('#', ''); - if(kanban.performable == 1 && (info.item.fromType == '' || info.item.fromType == 'execution')) + if(kanban.performable == 1) { - info.item.footer = {html: "