This commit is contained in:
Julien Nahum 2024-01-30 08:59:34 +01:00
commit d0a7c4d2c3
4 changed files with 55 additions and 9 deletions

View File

@ -77,16 +77,22 @@ class FormResource extends JsonResource
return [ return [
'id' => $this->id, 'id' => $this->id,
'title' => $this->title, 'title' => $this->title,
'description' => $this->description,
'slug' => $this->slug, 'slug' => $this->slug,
'custom_code' => $this->custom_code, 'custom_code' => $this->custom_code,
'dark_mode' => $this->dark_mode, 'dark_mode' => $this->dark_mode,
'transparent_background' => $this->transparent_background, 'transparent_background' => $this->transparent_background,
'color' => $this->color, 'color' => $this->color,
'theme' => $this->theme,
'is_password_protected' => true, 'is_password_protected' => true,
'has_password' => $this->has_password, 'has_password' => $this->has_password,
'width' => 'centered', 'width' => 'centered',
'no_branding' => $this->no_branding, 'no_branding' => $this->no_branding,
'properties' => [] 'properties' => [],
'logo_picture' => $this->logo_picture,
'seo_meta' => $this->seo_meta,
'cover_picture' => $this->cover_picture,
]; ];
} }

View File

@ -1,6 +1,8 @@
<template> <template>
<div v-if="form" class="open-complete-form"> <div v-if="form" class="open-complete-form">
<h1 v-if="!isHideTitle" class="mb-4 px-2" :class="{'mt-4':isEmbedPopup}" v-text="form.title" /> <h1 v-if="!isHideTitle" class="mb-4 px-2" :class="{'mt-4':isEmbedPopup}" v-text="form.title" />
<div v-if="form.description" v-html="form.description"
class="form-description mb-4 text-gray-700 dark:text-gray-300 whitespace-pre-wrap px-2"/>
<div v-if="isPublicFormPage && form.is_password_protected"> <div v-if="isPublicFormPage && form.is_password_protected">
<p class="form-description mb-4 text-gray-700 dark:text-gray-300 px-2"> <p class="form-description mb-4 text-gray-700 dark:text-gray-300 px-2">
@ -8,13 +10,13 @@
</p> </p>
<div class="form-group flex flex-wrap w-full"> <div class="form-group flex flex-wrap w-full">
<div class="relative mb-3 w-full px-2"> <div class="relative mb-3 w-full px-2">
<text-input :form="passwordForm" name="password" native-type="password" label="Password" /> <text-input :theme="theme" :form="passwordForm" name="password" native-type="password" label="Password" />
</div> </div>
</div> </div>
<div class="flex flex-wrap justify-center w-full text-center"> <div class="flex flex-wrap justify-center w-full text-center">
<v-button @click="passwordEntered"> <open-form-button :theme="theme" :color="form.color" class="my-4" @click="passwordEntered">
Submit Submit
</v-button> </open-form-button>
</div> </div>
</div> </div>
@ -62,8 +64,6 @@
mode="out-in" mode="out-in"
> >
<div v-if="!submitted" key="form"> <div v-if="!submitted" key="form">
<div v-if="form.description" v-html="form.description"
class="form-description mb-4 text-gray-700 dark:text-gray-300 whitespace-pre-wrap px-2"/>
<open-form v-if="form" <open-form v-if="form"
:form="form" :form="form"
:loading="loading" :loading="loading"

View File

@ -24,7 +24,25 @@
</svg> </svg>
</v-button> </v-button>
</template> </template>
<a v-if="isMainPage && user" v-track.view_form_click="{form_id:form.id, form_slug:form.slug}" :href="form.share_url" <span v-if="form.visibility === 'draft'"
class="block px-4 py-2 text-md text-gray-700 cursor-pointer dark:text-white hover:bg-gray-100 hover:text-gray-900 dark:text-gray-100 dark:hover:text-white dark:hover:bg-gray-600 flex items-center"
@click="showDraftFormWarningNotification"
>
<svg class="w-4 h-4 mr-2" viewBox="0 0 24 24" fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path d="M1 12C1 12 5 4 12 4C19 4 23 12 23 12C23 12 19 20 12 20C5 20 1 12 1 12Z"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
/>
<path
d="M12 15C13.6569 15 15 13.6569 15 12C15 10.3431 13.6569 9 12 9C10.3431 9 9 10.3431 9 12C9 13.6569 10.3431 15 12 15Z"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
/>
</svg>
View form
</span>
<a v-else-if="isMainPage && user" v-track.view_form_click="{form_id:form.id, form_slug:form.slug}" :href="form.share_url"
target="_blank" target="_blank"
class="block px-4 py-2 text-md text-gray-700 dark:text-white hover:bg-gray-100 hover:text-gray-900 dark:text-gray-100 dark:hover:text-white dark:hover:bg-gray-600 flex items-center" class="block px-4 py-2 text-md text-gray-700 dark:text-white hover:bg-gray-100 hover:text-gray-900 dark:text-gray-100 dark:hover:text-white dark:hover:bg-gray-600 flex items-center"
> >
@ -133,7 +151,6 @@
</div> </div>
</div> </div>
</modal> </modal>
<form-template-modal v-if="!isMainPage && user" :form="form" :show="showFormTemplateModal" @close="showFormTemplateModal=false" /> <form-template-modal v-if="!isMainPage && user" :form="form" :show="showFormTemplateModal" @close="showFormTemplateModal=false" />
</div> </div>
</template> </template>
@ -185,4 +202,8 @@ const deleteForm = () => {
loadingDelete.value = false loadingDelete.value = false
}) })
} }
const showDraftFormWarningNotification = () => {
useAlert().warning('This form is currently in Draft mode and is not publicly accessible, You can change the form status on the edit form page.')
}
</script> </script>

View File

@ -22,7 +22,22 @@
<div class="flex"> <div class="flex">
<extra-menu class="mr-2" :form="form"/> <extra-menu class="mr-2" :form="form"/>
<v-button v-track.view_form_click="{form_id:form.id, form_slug:form.slug}" target="_blank" <v-button v-if="form.visibility === 'draft'" color="white"
class="mr-2 text-blue-600 hidden sm:block" @click="showDraftFormWarningNotification"
>
<svg class="w-6 h-6 inline -mt-1" viewBox="0 0 24 24" fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path d="M1 12C1 12 5 4 12 4C19 4 23 12 23 12C23 12 19 20 12 20C5 20 1 12 1 12Z"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
/>
<path
d="M12 15C13.6569 15 15 13.6569 15 12C15 10.3431 13.6569 9 12 9C10.3431 9 9 10.3431 9 12C9 13.6569 10.3431 15 12 15Z"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
/>
</svg>
</v-button>
<v-button v-else v-track.view_form_click="{form_id:form.id, form_slug:form.slug}" target="_blank"
:href="form.share_url" color="white" :href="form.share_url" color="white"
class="mr-2 text-blue-600 hidden sm:block" class="mr-2 text-blue-600 hidden sm:block"
> >
@ -196,4 +211,8 @@ watch(() => form?.value?.id, (id) => {
const goBack = () => { const goBack = () => {
useRouter().push({name: 'home'}) useRouter().push({name: 'home'})
} }
const showDraftFormWarningNotification = () => {
useAlert().warning('This form is currently in Draft mode and is not publicly accessible, You can change the form status on the edit form page.')
}
</script> </script>