-
-
- Display columns
-
-
-
-
- Form Fields
-
- {{ field.name }}
-
-
-
-
- Removed Fields
-
- {{ field.name }}
-
-
-
-
-
- Close
-
+
+
+
+
+ Display columns
+
+
+
+
+ Form Fields
+
+ {{ field.name }}
+
+
+
+
+ Removed Fields
+
+ {{ field.name }}
+
+
+
@@ -87,8 +89,8 @@ export default {
this.getSubmissionsData()
},
watch: {
- form () {
- if(!this.form){
+ form() {
+ if (this.form === null) {
return
}
this.initFormStructure()
@@ -117,28 +119,38 @@ export default {
return
}
- // Add a "created at" column
- const columns = clonedeep(this.form.properties)
- columns.push({
- "name": "Created at",
- "id": "created_at",
- "type": "date",
- "width": 140,
+ // check if form properties already has a created_at column
+ let hasCreatedAt = false
+ this.form.properties.forEach((property) => {
+ if (property.id === 'created_at') {
+ hasCreatedAt = true
+ }
})
- this.$set(this.form, 'properties', columns)
+
+ if (!hasCreatedAt) {
+ // Add a "created at" column
+ const columns = clonedeep(this.form.properties)
+ columns.push({
+ "name": "Created at",
+ "id": "created_at",
+ "type": "date",
+ "width": 140,
+ })
+ this.$set(this.form, 'properties', columns)
+ }
this.formInitDone = true
this.properties = clonedeep(this.form.properties)
this.removed_properties = (this.form.removed_properties) ? clonedeep(this.form.removed_properties) : []
// Get display columns from local storage
- const tmpColumns = window.localStorage.getItem('display-columns-formid-'+this.form.id)
- if(tmpColumns !== null && tmpColumns){
+ const tmpColumns = window.localStorage.getItem('display-columns-formid-' + this.form.id)
+ if (tmpColumns !== null && tmpColumns) {
this.displayColumns = JSON.parse(tmpColumns)
this.onChangeDisplayColumns()
- }else{
- this.form.properties.forEach((field) => {
- this.displayColumns[field.id] = true
+ } else {
+ this.form.properties.forEach((field) => {
+ this.displayColumns[field.id] = true
})
}
},
@@ -148,7 +160,7 @@ export default {
}
this.isLoading = true
axios.get('/api/open/forms/' + this.form.id + '/submissions?page=' + this.currentPage).then((response) => {
- const resData = response.data;
+ const resData = response.data
this.tableData = this.tableData.concat(resData.data.map((record) => record.data))
@@ -168,8 +180,8 @@ export default {
this.$refs.shadows.toggleShadow()
this.$refs.shadows.calcDimensions()
},
- onChangeDisplayColumns(){
- window.localStorage.setItem('display-columns-formid-'+this.form.id, JSON.stringify(this.displayColumns))
+ onChangeDisplayColumns() {
+ window.localStorage.setItem('display-columns-formid-' + this.form.id, JSON.stringify(this.displayColumns))
const final_properties = this.properties.concat(this.removed_properties).filter((field) => {
return this.displayColumns[field.id] === true
})
diff --git a/resources/js/components/open/forms/components/ShareFormUrl.vue b/resources/js/components/open/forms/components/ShareFormUrl.vue
deleted file mode 100644
index 981bede..0000000
--- a/resources/js/components/open/forms/components/ShareFormUrl.vue
+++ /dev/null
@@ -1,60 +0,0 @@
-
-
-
-
-
diff --git a/resources/js/components/open/tables/OpenTable.vue b/resources/js/components/open/tables/OpenTable.vue
index 02562ba..d4f3a7e 100644
--- a/resources/js/components/open/tables/OpenTable.vue
+++ b/resources/js/components/open/tables/OpenTable.vue
@@ -172,7 +172,9 @@ export default {
beforeDestroy() {
const parent = document.getElementById('table-page')
- parent.removeEventListener('scroll', this.handleScroll)
+ if (parent) {
+ parent.removeEventListener('scroll', this.handleScroll)
+ }
window.removeEventListener('resize', this.handleScroll)
},
diff --git a/resources/js/components/pages/forms/CreateTemplateModal.vue b/resources/js/components/pages/forms/CreateTemplateModal.vue
index 0181043..09a191a 100644
--- a/resources/js/components/pages/forms/CreateTemplateModal.vue
+++ b/resources/js/components/pages/forms/CreateTemplateModal.vue
@@ -1,29 +1,35 @@
-
+
+
+
+
+ Create template
+
+
+
+ New template will be create from your form {{form.title}}.
+ Template will be public for all to create form quickly.
+
+
+
+
diff --git a/resources/js/components/pages/forms/UrlFormPrefillModal.vue b/resources/js/components/pages/forms/UrlFormPrefillModal.vue
deleted file mode 100644
index dd9b157..0000000
--- a/resources/js/components/pages/forms/UrlFormPrefillModal.vue
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
-
- Url Form Prefill
-
-
-
-
- Create dynamic links when sharing your form (whether it's embedded or not), that allows you to prefill
- your form fields. You can use this to personalize the form when sending it to multiple contacts for instance.
-
-
-
- How does it work?
-
-
-
- Complete your form below and fill only the fields you want to prefill. You can even leave the required fields empty.
-
-
-
-
-
-
- Generate Pre-filled URL
-
-
-
-
-
-
-
- Your Prefill url
-
-
-
-
-
-
- Close
-
-
-
-
-
-
-
diff --git a/resources/js/components/pages/forms/show/EmbedCode.vue b/resources/js/components/pages/forms/show/EmbedCode.vue
new file mode 100644
index 0000000..197c0e1
--- /dev/null
+++ b/resources/js/components/pages/forms/show/EmbedCode.vue
@@ -0,0 +1,53 @@
+
+
+
Embed
+
Embed your form on your website by copying the HTML code below.
+
+
+
+
+ Copy Code
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/js/components/pages/forms/show/ExtraMenu.vue b/resources/js/components/pages/forms/show/ExtraMenu.vue
new file mode 100644
index 0000000..668c7aa
--- /dev/null
+++ b/resources/js/components/pages/forms/show/ExtraMenu.vue
@@ -0,0 +1,130 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/js/components/pages/forms/show/RegenerateFormLink.vue b/resources/js/components/pages/forms/show/RegenerateFormLink.vue
new file mode 100644
index 0000000..d967a6a
--- /dev/null
+++ b/resources/js/components/pages/forms/show/RegenerateFormLink.vue
@@ -0,0 +1,108 @@
+
+
+
+
+ Regenerate form link
+
+
+
+
+
+
+
+
+ Generate new form link
+
+
+
+ You can choose between two different URL formats for your form.
+ Be careful, changing your form URL is not a reversible operation.
+ Make sure to udpate your form URL everywhere where it's used.
+
+
+
+ Human Readable URL
+
+
If your users are going to see this url, you might want to make nice and readable. Example:
+
+ https://opnform.com/forms/contact
+
+
+
+ Generate a Human Readable URL
+
+
+
+
+
+ Random ID URL
+
+
+ If your user are not going to see your form url (if it's embedded), and if you prefer to have a random
+ non-guessable URL. Example:
+
+
+ https://opnform.com/forms/b4417f9c-34ae-4421-8006-832ee47786e7
+
+
+
+ Generate a Random ID URL
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/components/pages/forms/show/ShareLink.vue b/resources/js/components/pages/forms/show/ShareLink.vue
new file mode 100644
index 0000000..1bc8f98
--- /dev/null
+++ b/resources/js/components/pages/forms/show/ShareLink.vue
@@ -0,0 +1,39 @@
+
+
+
Share Link
+
Your form is now published and ready to be shared with the world! Copy this link to share your form
+ on social media, messaging apps or via email.
+
+
+
+
+ Copy Link
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/js/components/pages/forms/show/UrlFormPrefill.vue b/resources/js/components/pages/forms/show/UrlFormPrefill.vue
new file mode 100644
index 0000000..83fa316
--- /dev/null
+++ b/resources/js/components/pages/forms/show/UrlFormPrefill.vue
@@ -0,0 +1,98 @@
+
+
+
+
+ Url form pre-fill
+
+
+
+
+
+
+
+
+ Url Form Prefill
+
+
+
+
+
+ Create dynamic links when sharing your form (whether it's embedded or not), that allows you to prefill
+ your form fields. You can use this to personalize the form when sending it to multiple contacts for instance.
+
+
+
+ How does it work?
+
+
+
+ Complete your form below and fill only the fields you want to prefill. You can even leave the required fields empty.
+
+
+
+
+
+
+ Generate Pre-filled URL
+
+
+
+
+
+
+
+ Your Prefill url
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/components/templates/QuestionsEditor.vue b/resources/js/components/templates/QuestionsEditor.vue
index c81702f..5b1d3b2 100644
--- a/resources/js/components/templates/QuestionsEditor.vue
+++ b/resources/js/components/templates/QuestionsEditor.vue
@@ -10,16 +10,17 @@
-