From 3cbca376a9d4d8888d16fe8ecdff6d1bfe667623 Mon Sep 17 00:00:00 2001 From: Thibaud Colas Date: Mon, 13 Jan 2025 11:21:29 +0000 Subject: [PATCH] Implement dragndrop for StreamField with sortable.js --- .../StreamField/blocks/BaseSequenceBlock.js | 32 ++- .../StreamField/blocks/ListBlock.js | 2 + .../StreamField/blocks/ListBlock.test.js | 7 + .../StreamField/blocks/StreamBlock.js | 2 + .../StreamField/blocks/StreamBlock.test.js | 9 + .../StreamField/blocks/StructBlock.test.js | 2 + .../__snapshots__/ListBlock.test.js.snap | 252 +++++++++++------- .../__snapshots__/StreamBlock.test.js.snap | 196 +++++++++----- .../typed_table_block.test.js | 2 + wagtail/blocks/list_block.py | 1 + wagtail/blocks/stream_block.py | 1 + wagtail/tests/test_blocks.py | 7 + 12 files changed, 349 insertions(+), 164 deletions(-) diff --git a/client/src/components/StreamField/blocks/BaseSequenceBlock.js b/client/src/components/StreamField/blocks/BaseSequenceBlock.js index be573c2795..40c22d0859 100644 --- a/client/src/components/StreamField/blocks/BaseSequenceBlock.js +++ b/client/src/components/StreamField/blocks/BaseSequenceBlock.js @@ -4,6 +4,7 @@ import EventEmitter from 'events'; import { v4 as uuidv4 } from 'uuid'; +import Sortable from 'sortablejs'; import { escapeHtml as h } from '../../../utils/text'; import { initCollapsiblePanel, @@ -21,9 +22,7 @@ class ActionButton { this.sequenceChild.strings[this.labelIdentifier] || this.labelIdentifier; this.dom = $(` -
+
@@ -38,19 +38,23 @@ exports[`telepath: wagtail.blocks.ListBlock blocks can be duplicated 1`] = `
-
+
@@ -100,19 +104,23 @@ exports[`telepath: wagtail.blocks.ListBlock blocks can be duplicated 1`] = `
-
+
@@ -162,19 +170,23 @@ exports[`telepath: wagtail.blocks.ListBlock blocks can be duplicated 1`] = `
-
+
@@ -238,19 +250,23 @@ exports[`telepath: wagtail.blocks.ListBlock blocks can be reordered downward 1`]
-
+
@@ -300,19 +316,23 @@ exports[`telepath: wagtail.blocks.ListBlock blocks can be reordered downward 1`]
-
+
@@ -376,19 +396,23 @@ exports[`telepath: wagtail.blocks.ListBlock blocks can be reordered upward 1`] =
-
+
@@ -438,19 +462,23 @@ exports[`telepath: wagtail.blocks.ListBlock blocks can be reordered upward 1`] =
-
+
@@ -514,19 +542,23 @@ exports[`telepath: wagtail.blocks.ListBlock blocks can be split 1`] = `
-
+
@@ -576,19 +608,23 @@ exports[`telepath: wagtail.blocks.ListBlock blocks can be split 1`] = `
-
+
@@ -638,19 +674,23 @@ exports[`telepath: wagtail.blocks.ListBlock blocks can be split 1`] = `
-
+
@@ -714,19 +754,23 @@ exports[`telepath: wagtail.blocks.ListBlock deleteBlock() deletes a block 1`] =
-