From 38d97b647f3dc1b00190ac53aca5a64b890810c7 Mon Sep 17 00:00:00 2001 From: daria Date: Tue, 5 Nov 2024 15:14:24 +0200 Subject: [PATCH 1/4] fix focus order on kanban boards #1640 --- www/kanban/app-kanban.less | 3 +++ www/kanban/jkanban_cp.js | 11 +++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/www/kanban/app-kanban.less b/www/kanban/app-kanban.less index 86e1052b5..86e0f00c8 100644 --- a/www/kanban/app-kanban.less +++ b/www/kanban/app-kanban.less @@ -576,6 +576,9 @@ display: flex; max-height: 100%; } + .kanban-boards-container{ + display: flex; + } } #kanban-trash { height: 1px; diff --git a/www/kanban/jkanban_cp.js b/www/kanban/jkanban_cp.js index 1b3a9967b..ee7d33ea0 100644 --- a/www/kanban/jkanban_cp.js +++ b/www/kanban/jkanban_cp.js @@ -109,16 +109,19 @@ define([ //create container var boardContainerOuter = document.createElement('div'); boardContainerOuter.classList.add('kanban-container-outer'); + var kanbanContainer = document.createElement('div'); + kanbanContainer.classList.add('kanban-container'); + boardContainerOuter.appendChild(kanbanContainer); var boardContainer = document.createElement('div'); - boardContainer.classList.add('kanban-container'); - boardContainerOuter.appendChild(boardContainer); + boardContainer.classList.add('kanban-boards-container'); + kanbanContainer.appendChild(boardContainer); self.container = boardContainer; //add boards self.addBoards(); var addBoard = document.createElement('div'); addBoard.id = 'kanban-addboard'; addBoard.innerHTML = ''; - boardContainer.appendChild(addBoard); + kanbanContainer.appendChild(addBoard); var trash = self.trashContainer = document.createElement('div'); trash.setAttribute('id', 'kanban-trash'); trash.setAttribute('class', 'kanban-trash'); @@ -131,7 +134,7 @@ define([ //appends to container self.element.appendChild(boardContainerOuter); - self.element.appendChild(trash); + boardContainerOuter.appendChild(trash); // send event that board has changed self.onChange(); From d6db1948e82bfc61930b8cb0a6735f539dd55b61 Mon Sep 17 00:00:00 2001 From: daria Date: Tue, 5 Nov 2024 15:27:56 +0200 Subject: [PATCH 2/4] fix trash position --- www/kanban/jkanban_cp.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/kanban/jkanban_cp.js b/www/kanban/jkanban_cp.js index ee7d33ea0..95e92325a 100644 --- a/www/kanban/jkanban_cp.js +++ b/www/kanban/jkanban_cp.js @@ -134,7 +134,7 @@ define([ //appends to container self.element.appendChild(boardContainerOuter); - boardContainerOuter.appendChild(trash); + self.element.appendChild(trash); // send event that board has changed self.onChange(); From 6c4fa5fbefa35d778743c58db1ae136723a450b8 Mon Sep 17 00:00:00 2001 From: daria Date: Tue, 10 Dec 2024 14:45:34 +0200 Subject: [PATCH 3/4] fix bug preventing kanban board movement --- www/kanban/jkanban_cp.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/kanban/jkanban_cp.js b/www/kanban/jkanban_cp.js index 95e92325a..47ea2a2ba 100644 --- a/www/kanban/jkanban_cp.js +++ b/www/kanban/jkanban_cp.js @@ -254,7 +254,7 @@ define([ accepts: function (el, target, source, sibling) { if (self.options.readOnly) { return false; } if (sibling && sibling.getAttribute('id') === "kanban-addboard") { return false; } - return target.classList.contains('kanban-container') || + return target.classList.contains('kanban-boards-container') || target.classList.contains('kanban-trash'); }, revertOnSpill: true, From a5b2fe7a68d14b901576b57c952772aa90b219ab Mon Sep 17 00:00:00 2001 From: yflory Date: Tue, 10 Dec 2024 17:43:55 +0100 Subject: [PATCH 4/4] Reorder DOM when updating kanban boards --- www/kanban/app-kanban.less | 3 --- www/kanban/jkanban_cp.js | 23 ++++++++++++++++------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/www/kanban/app-kanban.less b/www/kanban/app-kanban.less index 86e0f00c8..86e1052b5 100644 --- a/www/kanban/app-kanban.less +++ b/www/kanban/app-kanban.less @@ -576,9 +576,6 @@ display: flex; max-height: 100%; } - .kanban-boards-container{ - display: flex; - } } #kanban-trash { height: 1px; diff --git a/www/kanban/jkanban_cp.js b/www/kanban/jkanban_cp.js index 47ea2a2ba..f6411e36e 100644 --- a/www/kanban/jkanban_cp.js +++ b/www/kanban/jkanban_cp.js @@ -109,19 +109,17 @@ define([ //create container var boardContainerOuter = document.createElement('div'); boardContainerOuter.classList.add('kanban-container-outer'); - var kanbanContainer = document.createElement('div'); - kanbanContainer.classList.add('kanban-container'); - boardContainerOuter.appendChild(kanbanContainer); var boardContainer = document.createElement('div'); - boardContainer.classList.add('kanban-boards-container'); - kanbanContainer.appendChild(boardContainer); + boardContainer.setAttribute('id', 'kanban-container'); + boardContainer.classList.add('kanban-container'); + boardContainerOuter.appendChild(boardContainer); self.container = boardContainer; //add boards self.addBoards(); var addBoard = document.createElement('div'); addBoard.id = 'kanban-addboard'; addBoard.innerHTML = ''; - kanbanContainer.appendChild(addBoard); + boardContainer.appendChild(addBoard); var trash = self.trashContainer = document.createElement('div'); trash.setAttribute('id', 'kanban-trash'); trash.setAttribute('class', 'kanban-trash'); @@ -254,7 +252,7 @@ define([ accepts: function (el, target, source, sibling) { if (self.options.readOnly) { return false; } if (sibling && sibling.getAttribute('id') === "kanban-addboard") { return false; } - return target.classList.contains('kanban-boards-container') || + return target.classList.contains('kanban-container') || target.classList.contains('kanban-trash'); }, revertOnSpill: true, @@ -740,6 +738,15 @@ define([ return boardNode; }; + + let reorder = () => { + // Push "add" button to the end of the list + let add = document.getElementById('kanban-addboard'); + let list = document.getElementById('kanban-container'); + if (!add || !list) { return; } + list.appendChild(add); + }; + this.addBoard = function (board) { if (!board || !board.id) { return; } // We need to store all the columns in _boards too because it's used to @@ -760,6 +767,7 @@ define([ _boards.list.push(board.id); var boardNode = getBoardNode(board); self.container.appendChild(boardNode); + reorder(); }; this.addBoards = function() { @@ -827,6 +835,7 @@ define([ $('.kanban-board[data-id="'+id+'"] .kanban-drag').scrollTop(scroll[id]); }); $el.scrollLeft(scrollLeft); + reorder(); }; // If the tab is not focused, redraw on focus