diff --git a/app/javascript/template_builder/fields.vue b/app/javascript/template_builder/fields.vue
index 434c8f79..63665f8e 100644
--- a/app/javascript/template_builder/fields.vue
+++ b/app/javascript/template_builder/fields.vue
@@ -13,9 +13,10 @@
/>
f.uuid === targetFieldUuid)
-
- const currentIndex = this.fields.indexOf(this.dragField)
- const targetIndex = this.fields.indexOf(field)
+ if (dragField && targetField && targetField !== dragField) {
+ const fields = Array.from(this.$refs.fields.children)
+ const currentIndex = fields.indexOf(dragField)
+ const targetIndex = fields.indexOf(targetField)
if (currentIndex < targetIndex) {
- this.fields.splice(targetIndex + 1, 0, this.dragField)
- this.fields.splice(currentIndex, 1)
+ targetField.after(dragField)
} else {
- this.fields.splice(targetIndex, 0, this.dragField)
- this.fields.splice(currentIndex + 1, 1)
+ targetField.before(dragField)
}
}
},
+ reorderFields () {
+ Array.from(this.$refs.fields.children).forEach((el, index) => {
+ if (el.dataset.uuid !== this.fields[index].uuid) {
+ const field = this.fields.find((f) => f.uuid === el.dataset.uuid)
+
+ this.fields.splice(this.fields.indexOf(field), 1)
+ this.fields.splice(index, 0, field)
+ }
+ })
+
+ this.save()
+ },
removeSubmitter (submitter) {
[...this.fields].forEach((field) => {
if (field.submitter_uuid === submitter.uuid) {