diff --git a/api/app/Http/Controllers/Forms/PublicFormController.php b/api/app/Http/Controllers/Forms/PublicFormController.php
index 67e1134a1..3e0c656d7 100644
--- a/api/app/Http/Controllers/Forms/PublicFormController.php
+++ b/api/app/Http/Controllers/Forms/PublicFormController.php
@@ -87,6 +87,7 @@ public function showAsset($assetFileName)
public function answer(AnswerFormRequest $request)
{
$form = $request->form;
+ $isFirstSubmission = ($form->submissions_count === 0);
$submissionId = false;
$submissionData = $request->validated();
@@ -104,6 +105,7 @@ public function answer(AnswerFormRequest $request)
return $this->success(array_merge([
'message' => 'Form submission saved.',
'submission_id' => $submissionId,
+ 'is_first_submission' => $isFirstSubmission
], $request->form->is_pro && $request->form->redirect_url ? [
'redirect' => true,
'redirect_url' => $request->form->redirect_url,
diff --git a/client/components/open/forms/OpenCompleteForm.vue b/client/components/open/forms/OpenCompleteForm.vue
index d0eb36516..99caf30d9 100644
--- a/client/components/open/forms/OpenCompleteForm.vue
+++ b/client/components/open/forms/OpenCompleteForm.vue
@@ -179,6 +179,11 @@
+
@@ -191,9 +196,10 @@ import VTransition from '~/components/global/transitions/VTransition.vue'
import {pendingSubmission} from "~/composables/forms/pendingSubmission.js"
import clonedeep from "clone-deep"
import ThemeBuilder from "~/lib/forms/themes/ThemeBuilder.js"
+import FirstSubmissionModal from '~/components/open/forms/components/FirstSubmissionModal.vue'
export default {
- components: { VTransition, OpenFormButton, OpenForm, FormCleanings, FormTimer },
+ components: { VTransition, OpenFormButton, OpenForm, FormCleanings, FormTimer, FirstSubmissionModal },
props: {
form: { type: Object, required: true },
@@ -207,7 +213,10 @@ export default {
},
setup(props) {
+ const authStore = useAuthStore()
return {
+ authStore,
+ authenticated: computed(() => authStore.check),
isIframe: useIsIframe(),
pendingSubmission: pendingSubmission(props.form),
confetti: useConfetti()
@@ -222,7 +231,8 @@ export default {
password: null
}),
hidePasswordDisabledMsg: false,
- submissionId: false
+ submissionId: false,
+ showFirstSubmissionModal: false
}
},
@@ -246,6 +256,9 @@ export default {
if(!this.form || !this.form.font_family) return null
const family = this.form?.font_family.replace(/ /g, '+')
return `https://fonts.googleapis.com/css?family=${family}:wght@400,500,700,800,900&display=swap`
+ },
+ isFormOwner() {
+ return this.authenticated && this.form && this.form.creator_id === this.authStore.user.id
}
},
@@ -291,7 +304,9 @@ export default {
if (data.submission_id) {
this.submissionId = data.submission_id
}
-
+ if (this.isFormOwner && !this.isIframe && data?.is_first_submission) {
+ this.showFirstSubmissionModal = true
+ }
this.loading = false
this.submitted = true
this.$emit('submitted', true)
diff --git a/client/components/open/forms/components/FirstSubmissionModal.vue b/client/components/open/forms/components/FirstSubmissionModal.vue
index 25fbbf990..530b6eefe 100644
--- a/client/components/open/forms/components/FirstSubmissionModal.vue
+++ b/client/components/open/forms/components/FirstSubmissionModal.vue
@@ -12,7 +12,7 @@
- Congratulations on creating your form and receiving your first submission! Your form is now live and ready for action. You can now share your form with others, or open your Notion database to view the submitted data.
+ Congratulations on creating your form and receiving your first submission! Your form is now live and ready for action. You can now share your form with others, or open your Form submission page to view the submitted data.
@@ -23,11 +23,13 @@
- See Notion database
+ See Submissions
@@ -39,11 +41,11 @@
v-for="(item, i) in helpLinks"
:key="i"
role="button"
- class="bg-white shadow border border-gray-200 rounded-lg p-4 pb-2 items-center justify-center flex flex-col relative hover:bg-gray-50 group transition-colors"
+ class="bg-white shadow border border-gray-200 rounded-lg p-4 pb-2 items-center justify-center flex flex-col relative hover:bg-gray-50 dark:hover:bg-gray-800 group transition-colors"
@click="item.action"
>
-
-
+
{{ item.label }}
@@ -62,35 +64,26 @@
+
\ No newline at end of file
diff --git a/client/components/open/forms/components/ShareFormUrl.vue b/client/components/open/forms/components/ShareFormUrl.vue
new file mode 100644
index 000000000..3afd4b4cb
--- /dev/null
+++ b/client/components/open/forms/components/ShareFormUrl.vue
@@ -0,0 +1,69 @@
+
+
+
+
+
+
\ No newline at end of file