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) {