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