diff --git a/client/src/components/Form/Elements/FormData/FormData.vue b/client/src/components/Form/Elements/FormData/FormData.vue
index 0695af21369b..b13dd87ae8e9 100644
--- a/client/src/components/Form/Elements/FormData/FormData.vue
+++ b/client/src/components/Form/Elements/FormData/FormData.vue
@@ -497,13 +497,15 @@ function canAcceptSrc(historyContentType: "dataset" | "dataset_collection", coll
}
}
+const collectionTypesWithBuilders = ["list", "list:paired", "paired"];
+
/** Allowed collection types for collection creation */
const effectiveCollectionTypes = props.collectionTypes?.filter((collectionType) =>
- ["list", "list:paired", "paired"].includes(collectionType)
+ collectionTypesWithBuilders.includes(collectionType)
);
function buildNewCollection(collectionType: string) {
- if (!["list", "list:paired", "paired"].includes(collectionType)) {
+ if (!collectionTypesWithBuilders.includes(collectionType)) {
throw Error(`Unknown collection type: ${collectionType}`);
}
collectionModalType.value = collectionType as "list" | "list:paired" | "paired";
diff --git a/client/src/components/Form/FormListElementOperations.vue b/client/src/components/Form/FormListElementOperations.vue
new file mode 100644
index 000000000000..b2271deaa960
--- /dev/null
+++ b/client/src/components/Form/FormListElementOperations.vue
@@ -0,0 +1,70 @@
+
+
+
+
+
+ emit('swap-up')">
+
+
+ emit('swap-down')">
+
+
+
+
+
+ emit('delete')">
+
+
+
+
+
diff --git a/client/src/components/Form/FormRepeat.vue b/client/src/components/Form/FormRepeat.vue
index b12b85bde084..7d707ae021aa 100644
--- a/client/src/components/Form/FormRepeat.vue
+++ b/client/src/components/Form/FormRepeat.vue
@@ -1,6 +1,6 @@