From 5b92ac2633d467921e472725588c1171ebddfaf7 Mon Sep 17 00:00:00 2001
From: Chirag <103994754+chiragnotionforms@users.noreply.github.com>
Date: Mon, 3 Oct 2022 00:29:30 +0530
Subject: [PATCH] New Feature: Duplicate block (#8)
---
.../open/forms/components/FormFieldsEditor.vue | 11 ++++++++++-
.../open/forms/fields/FormBlockOptionsModal.vue | 9 ++++++++-
.../open/forms/fields/FormFieldOptionsModal.vue | 12 ++++++++----
3 files changed, 26 insertions(+), 6 deletions(-)
diff --git a/resources/js/components/open/forms/components/FormFieldsEditor.vue b/resources/js/components/open/forms/components/FormFieldsEditor.vue
index d3db48c..782290f 100644
--- a/resources/js/components/open/forms/components/FormFieldsEditor.vue
+++ b/resources/js/components/open/forms/components/FormFieldsEditor.vue
@@ -11,11 +11,13 @@
:show="!isNotAFormField(formFields[selectedFieldIndex]) && showEditFieldModal"
:form="form" @close="closeInputOptionModal"
@remove-block="removeBlock(selectedFieldIndex)"
+ @duplicate-block="duplicateBlock(selectedFieldIndex)"
/>
@@ -281,6 +283,13 @@ export default {
newFields.splice(blockIndex, 1)
this.$set(this, 'formFields', newFields)
},
+ duplicateBlock(blockIndex) {
+ this.closeInputOptionModal()
+ this.selectedFieldIndex = null
+ const newField = clonedeep(this.formFields[blockIndex])
+ newField.id = this.generateUUID()
+ this.formFields.push(newField)
+ },
closeInputOptionModal() {
this.showEditFieldModal = false
}
diff --git a/resources/js/components/open/forms/fields/FormBlockOptionsModal.vue b/resources/js/components/open/forms/fields/FormBlockOptionsModal.vue
index 1b5f112..70e2259 100644
--- a/resources/js/components/open/forms/fields/FormBlockOptionsModal.vue
+++ b/resources/js/components/open/forms/fields/FormBlockOptionsModal.vue
@@ -7,7 +7,10 @@
- Remove Block
+ Remove
+
+
+ Duplicate
@@ -161,6 +164,10 @@ export default {
this.close()
this.$emit('remove-block', this.field)
},
+ duplicateBlock(){
+ this.close()
+ this.$emit('duplicate-block', this.field)
+ },
onFieldRequiredChange(val) {
this.$set(this.field, 'required', val)
if (this.field.required) {
diff --git a/resources/js/components/open/forms/fields/FormFieldOptionsModal.vue b/resources/js/components/open/forms/fields/FormFieldOptionsModal.vue
index 9908b15..c0cf6f0 100644
--- a/resources/js/components/open/forms/fields/FormFieldOptionsModal.vue
+++ b/resources/js/components/open/forms/fields/FormFieldOptionsModal.vue
@@ -7,7 +7,10 @@
- Remove Block
+ Remove
+
+
+ Duplicate
@@ -290,9 +293,6 @@
-
- Remove Field
-
Close
@@ -388,6 +388,10 @@ export default {
this.close()
this.$emit('remove-block', this.field)
},
+ duplicateBlock(){
+ this.close()
+ this.$emit('duplicate-block', this.field)
+ },
onFieldRequiredChange (val) {
this.$set(this.field, 'required', val)
if (this.field.required) {