From 6dbbabe92fea88c22102f969afe4bb8fe7e524b1 Mon Sep 17 00:00:00 2001 From: Garvit Singhal Date: Wed, 31 Jan 2024 18:17:38 +0530 Subject: [PATCH 1/4] sorting in channels added --- .../channelEdit/views/CurrentTopicView.vue | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/contentcuration/contentcuration/frontend/channelEdit/views/CurrentTopicView.vue b/contentcuration/contentcuration/frontend/channelEdit/views/CurrentTopicView.vue index 6ec4ffee47..ca0bfb6e94 100644 --- a/contentcuration/contentcuration/frontend/channelEdit/views/CurrentTopicView.vue +++ b/contentcuration/contentcuration/frontend/channelEdit/views/CurrentTopicView.vue @@ -68,6 +68,11 @@ data-test="duplicate-selected-btn" @click="duplicateNodes(selected)" /> + this.getContentNode(id)); + const orderedNodes = selectedNodes.sort(this.compareNodeTitles); + + const nodeX = this.findNodeBeforeFirstSelected(orderedNodes); + + const targetParent = this.node.id; + const targetPosition = nodeX + ? RELATIVE_TREE_POSITIONS.RIGHT + : RELATIVE_TREE_POSITIONS.FIRST_CHILD; + + orderedNodes.forEach(node => { + const position = + targetPosition === RELATIVE_TREE_POSITIONS.RIGHT + ? targetPosition + : RELATIVE_TREE_POSITIONS.LAST_CHILD; + this.moveContentNodes({ + id__in: [String(node.id)], + parent: targetParent, + position, + }); + }); + }, + + findNodeBeforeFirstSelected(nodes) { + for (let i = 1; i < nodes.length; i++) { + if (this.compareNodeTitles(nodes[i - 1], nodes[i]) > 0) { + return nodes[i - 1]; + } + } + return null; + }, + compareNodeTitles(nodeA, nodeB) { + const titleA = nodeA.title.toLowerCase(); + const titleB = nodeB.title.toLowerCase(); + return titleA.localeCompare(titleB); + }, updateTitleForPage() { let detailTitle; const topicTitle = this.getTitle(this.getContentNode(this.topicId)); From b20b754126f7fefcdc3b3039775cff22415c1153 Mon Sep 17 00:00:00 2001 From: Garvit Singhal Date: Fri, 2 Feb 2024 21:42:25 +0530 Subject: [PATCH 2/4] suggested changes done --- .../channelEdit/views/CurrentTopicView.vue | 30 ++++++++++--------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/contentcuration/contentcuration/frontend/channelEdit/views/CurrentTopicView.vue b/contentcuration/contentcuration/frontend/channelEdit/views/CurrentTopicView.vue index ca0bfb6e94..c86337c7d2 100644 --- a/contentcuration/contentcuration/frontend/channelEdit/views/CurrentTopicView.vue +++ b/contentcuration/contentcuration/frontend/channelEdit/views/CurrentTopicView.vue @@ -69,8 +69,9 @@ @click="duplicateNodes(selected)" /> this.getContentNode(id)); const orderedNodes = selectedNodes.sort(this.compareNodeTitles); - const nodeX = this.findNodeBeforeFirstSelected(orderedNodes); + const reversedNodes = orderedNodes.reverse(); + + const nodeX = this.findNodeBeforeFirstSelected(orderedNodes, selected); const targetParent = this.node.id; + const targetNode = nodeX || targetParent; const targetPosition = nodeX ? RELATIVE_TREE_POSITIONS.RIGHT : RELATIVE_TREE_POSITIONS.FIRST_CHILD; - orderedNodes.forEach(node => { - const position = - targetPosition === RELATIVE_TREE_POSITIONS.RIGHT - ? targetPosition - : RELATIVE_TREE_POSITIONS.LAST_CHILD; - this.moveContentNodes({ - id__in: [String(node.id)], - parent: targetParent, - position, - }); + const nodeIdsToMove = reversedNodes.map(node => String(node.id)); + + this.moveContentNodes({ + id__in: nodeIdsToMove, + target: targetNode, + position: targetPosition, }); }, - findNodeBeforeFirstSelected(nodes) { + findNodeBeforeFirstSelected(nodes, selected) { for (let i = 1; i < nodes.length; i++) { - if (this.compareNodeTitles(nodes[i - 1], nodes[i]) > 0) { + if (selected.includes(nodes[i])) { return nodes[i - 1]; } } return null; }, + compareNodeTitles(nodeA, nodeB) { const titleA = nodeA.title.toLowerCase(); const titleB = nodeB.title.toLowerCase(); @@ -750,6 +751,7 @@ }, $trs: { addTopic: 'New folder', + SortAlphabetically: 'Sort alphabetically', addExercise: 'New exercise', uploadFiles: 'Upload files', importFromChannels: 'Import from channels', From 566084219e5ed13ce273eb8dcf975568c4f84257 Mon Sep 17 00:00:00 2001 From: Garvit Singhal Date: Sat, 3 Feb 2024 10:23:26 +0530 Subject: [PATCH 3/4] icon added --- .../frontend/channelEdit/views/CurrentTopicView.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contentcuration/contentcuration/frontend/channelEdit/views/CurrentTopicView.vue b/contentcuration/contentcuration/frontend/channelEdit/views/CurrentTopicView.vue index c86337c7d2..9ed1f21af2 100644 --- a/contentcuration/contentcuration/frontend/channelEdit/views/CurrentTopicView.vue +++ b/contentcuration/contentcuration/frontend/channelEdit/views/CurrentTopicView.vue @@ -70,7 +70,7 @@ /> From 33e8fce99be6684b12dc04797c99c6e51fdd84c7 Mon Sep 17 00:00:00 2001 From: Blaine Jester Date: Wed, 13 Mar 2024 12:11:33 -0700 Subject: [PATCH 4/4] Update to KIconButton --- .../channelEdit/views/CurrentTopicView.vue | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/contentcuration/contentcuration/frontend/channelEdit/views/CurrentTopicView.vue b/contentcuration/contentcuration/frontend/channelEdit/views/CurrentTopicView.vue index 9ed1f21af2..b696b1ae4e 100644 --- a/contentcuration/contentcuration/frontend/channelEdit/views/CurrentTopicView.vue +++ b/contentcuration/contentcuration/frontend/channelEdit/views/CurrentTopicView.vue @@ -41,40 +41,40 @@
- - - - - -