WIP
This commit is contained in:
parent
6ee56ac4cc
commit
5c4dc2a3d6
|
@ -19,7 +19,7 @@
|
||||||
v-if="loading"
|
v-if="loading"
|
||||||
class="text-gray-600 dark:text-gray-400"
|
class="text-gray-600 dark:text-gray-400"
|
||||||
>
|
>
|
||||||
<loader class="mx-auto h-6 w-6" />
|
<Loader class="mx-auto h-6 w-6" />
|
||||||
<p class="mt-2 text-center text-sm text-gray-500">
|
<p class="mt-2 text-center text-sm text-gray-500">
|
||||||
Uploading your file...
|
Uploading your file...
|
||||||
</p>
|
</p>
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<slot name="label" />
|
<slot name="label" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<loader v-if="loading" key="loader" class="h-6 w-6 text-nt-blue mx-auto" />
|
<Loader v-if="loading" key="loader" class="h-6 w-6 text-nt-blue mx-auto" />
|
||||||
<div v-for="(option, index) in options" v-else :key="option[optionKey]" role="button"
|
<div v-for="(option, index) in options" v-else :key="option[optionKey]" role="button"
|
||||||
:class="[theme.default.input,'cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-900 flex',{ 'mb-2': index !== options.length,'!ring-red-500 !ring-2': hasValidation && form.errors.has(name), '!cursor-not-allowed !bg-gray-200':disabled }]"
|
:class="[theme.default.input,'cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-900 flex',{ 'mb-2': index !== options.length,'!ring-red-500 !ring-2': hasValidation && form.errors.has(name), '!cursor-not-allowed !bg-gray-200':disabled }]"
|
||||||
@click="onSelect(option[optionKey])"
|
@click="onSelect(option[optionKey])"
|
||||||
|
|
|
@ -59,7 +59,7 @@
|
||||||
@drop.prevent="onUploadDropEvent($event)"
|
@drop.prevent="onUploadDropEvent($event)"
|
||||||
>
|
>
|
||||||
<div v-if="loading" class="text-gray-600 dark:text-gray-400">
|
<div v-if="loading" class="text-gray-600 dark:text-gray-400">
|
||||||
<loader class="h-6 w-6 mx-auto m-10" />
|
<Loader class="h-6 w-6 mx-auto m-10" />
|
||||||
<p class="text-center mt-6">
|
<p class="text-center mt-6">
|
||||||
Uploading your file...
|
Uploading your file...
|
||||||
</p>
|
</p>
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
>
|
>
|
||||||
<div :class="{'h-6': !multiple, 'min-h-8': multiple && !loading}">
|
<div :class="{'h-6': !multiple, 'min-h-8': multiple && !loading}">
|
||||||
<transition name="fade" mode="out-in">
|
<transition name="fade" mode="out-in">
|
||||||
<loader v-if="loading" key="loader" class="h-6 w-6 text-nt-blue mx-auto" />
|
<Loader v-if="loading" key="loader" class="h-6 w-6 text-nt-blue mx-auto" />
|
||||||
<div v-else-if="modelValue" key="value" class="flex" :class="{'min-h-8': multiple}">
|
<div v-else-if="modelValue" key="value" class="flex" :class="{'min-h-8': multiple}">
|
||||||
<slot name="selected" :option="modelValue" />
|
<slot name="selected" :option="modelValue" />
|
||||||
</div>
|
</div>
|
||||||
|
@ -45,7 +45,7 @@
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="loading" class="w-full py-2 flex justify-center">
|
<div v-if="loading" class="w-full py-2 flex justify-center">
|
||||||
<loader class="h-6 w-6 text-nt-blue mx-auto" />
|
<Loader class="h-6 w-6 text-nt-blue mx-auto" />
|
||||||
</div>
|
</div>
|
||||||
<template v-if="filteredOptions.length > 0">
|
<template v-if="filteredOptions.length > 0">
|
||||||
<li v-for="item in filteredOptions" :key="item[optionKey]" role="option" :style="optionStyle"
|
<li v-for="item in filteredOptions" :key="item[optionKey]" role="option" :style="optionStyle"
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<div class="px-4 mx-auto sm:px-6 lg:px-8 max-w-7xl">
|
<div class="px-4 mx-auto sm:px-6 lg:px-8 max-w-7xl">
|
||||||
<div class="flex items-center justify-center space-x-4">
|
<div class="flex items-center justify-center space-x-4">
|
||||||
<div v-if="displayHome" class="flex items-center">
|
<div v-if="displayHome" class="flex items-center">
|
||||||
<router-link class="text-gray-400 hover:text-gray-500" :to="{ name: (authenticated) ? 'home' : 'index' }">
|
<NuxtLink class="text-gray-400 hover:text-gray-500" :to="{ name: (authenticated) ? 'home' : 'index' }">
|
||||||
<svg class="flex-shrink-0 w-5 h-5" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
|
<svg class="flex-shrink-0 w-5 h-5" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
|
||||||
<path fill-rule="evenodd"
|
<path fill-rule="evenodd"
|
||||||
d="M9.293 2.293a1 1 0 011.414 0l7 7A1 1 0 0117 11h-1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-3a1 1 0 00-1-1H9a1 1 0 00-1 1v3a1 1 0 01-1 1H5a1 1 0 01-1-1v-6H3a1 1 0 01-.707-1.707l7-7z"
|
d="M9.293 2.293a1 1 0 011.414 0l7 7A1 1 0 0117 11h-1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-3a1 1 0 00-1-1H9a1 1 0 00-1 1v3a1 1 0 01-1 1H5a1 1 0 01-1-1v-6H3a1 1 0 01-.707-1.707l7-7z"
|
||||||
|
@ -14,7 +14,7 @@
|
||||||
/>
|
/>
|
||||||
</svg>
|
</svg>
|
||||||
<span class="sr-only">Home</span>
|
<span class="sr-only">Home</span>
|
||||||
</router-link>
|
</NuxtLink>
|
||||||
<svg class="flex-shrink-0 w-5 h-5 text-gray-400 ml-4" viewBox="0 0 20 20" fill="currentColor"
|
<svg class="flex-shrink-0 w-5 h-5 text-gray-400 ml-4" viewBox="0 0 20 20" fill="currentColor"
|
||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
>
|
>
|
||||||
|
@ -26,11 +26,11 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-for="(item,index) in path" :key="index" class="flex items-center">
|
<div v-for="(item,index) in path" :key="index" class="flex items-center">
|
||||||
<router-link v-if="item.route" class="text-sm font-semibold text-gray-500 hover:text-gray-700 truncate"
|
<NuxtLink v-if="item.route" class="text-sm font-semibold text-gray-500 hover:text-gray-700 truncate"
|
||||||
:to="item.route"
|
:to="item.route"
|
||||||
>
|
>
|
||||||
{{ item.label }}
|
{{ item.label }}
|
||||||
</router-link>
|
</NuxtLink>
|
||||||
<div v-else class="text-sm font-semibold sm:w-full w-36 text-blue-500 truncate">
|
<div v-else class="text-sm font-semibold sm:w-full w-36 text-blue-500 truncate">
|
||||||
{{ item.label }}
|
{{ item.label }}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -3,43 +3,43 @@
|
||||||
<div class="max-w-7xl mx-auto px-8">
|
<div class="max-w-7xl mx-auto px-8">
|
||||||
<div class="flex items-center justify-between h-16">
|
<div class="flex items-center justify-between h-16">
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
<router-link :to="{ name: user ? 'home' : 'index' }" class="flex-shrink-0 font-semibold hover:no-underline flex items-center">
|
<NuxtLink :to="{ name: user ? 'home' : 'index' }" class="flex-shrink-0 font-semibold hover:no-underline flex items-center">
|
||||||
<img src="/img/logo.svg" alt="notion tools logo" class="w-8 h-8">
|
<img src="/img/logo.svg" alt="notion tools logo" class="w-8 h-8">
|
||||||
|
|
||||||
<span
|
<span
|
||||||
class="ml-2 text-md hidden sm:inline text-black dark:text-white"
|
class="ml-2 text-md hidden sm:inline text-black dark:text-white"
|
||||||
>
|
>
|
||||||
OpnForm</span>
|
OpnForm</span>
|
||||||
</router-link>
|
</NuxtLink>
|
||||||
<workspace-dropdown class="ml-6" />
|
<workspace-dropdown class="ml-6" />
|
||||||
</div>
|
</div>
|
||||||
<div v-if="showAuth" class="hidden md:block ml-auto relative">
|
<div v-if="showAuth" class="hidden md:block ml-auto relative">
|
||||||
<router-link v-if="$route.name !== 'templates'" :to="{name:'templates'}"
|
<NuxtLink v-if="$route.name !== 'templates'" :to="{name:'templates'}"
|
||||||
class="text-sm text-gray-600 dark:text-white hover:text-gray-800 cursor-pointer mt-1 mr-8"
|
class="text-sm text-gray-600 dark:text-white hover:text-gray-800 cursor-pointer mt-1 mr-8"
|
||||||
>
|
>
|
||||||
Templates
|
Templates
|
||||||
</router-link>
|
</NuxtLink>
|
||||||
<router-link v-if="$route.name !== 'ai-form-builder'" :to="{name:'ai-form-builder'}"
|
<NuxtLink v-if="$route.name !== 'ai-form-builder'" :to="{name:'ai-form-builder'}"
|
||||||
class="text-sm text-gray-600 dark:text-white hidden lg:inline hover:text-gray-800 cursor-pointer mt-1 mr-8"
|
class="text-sm text-gray-600 dark:text-white hidden lg:inline hover:text-gray-800 cursor-pointer mt-1 mr-8"
|
||||||
>
|
>
|
||||||
AI Form Builder
|
AI Form Builder
|
||||||
</router-link>
|
</NuxtLink>
|
||||||
<router-link v-if="paidPlansEnabled && (user===null || (user && workspace && !workspace.is_pro)) && $route.name !== 'pricing'" :to="{name:'pricing'}"
|
<NuxtLink v-if="paidPlansEnabled && (user===null || (user && workspace && !workspace.is_pro)) && $route.name !== 'pricing'" :to="{name:'pricing'}"
|
||||||
class="text-sm text-gray-600 dark:text-white hover:text-gray-800 cursor-pointer mt-1 mr-8"
|
class="text-sm text-gray-600 dark:text-white hover:text-gray-800 cursor-pointer mt-1 mr-8"
|
||||||
>
|
>
|
||||||
<span v-if="user">Upgrade</span>
|
<span v-if="user">Upgrade</span>
|
||||||
<span v-else>Pricing</span>
|
<span v-else>Pricing</span>
|
||||||
</router-link>
|
</NuxtLink>
|
||||||
<a v-if="hasCrisp" href="#"
|
<a v-if="hasCrisp" href="#"
|
||||||
class="text-sm text-gray-600 dark:text-white hover:text-gray-800 cursor-pointer mt-1" @click.prevent="openCrisp"
|
class="text-sm text-gray-600 dark:text-white hover:text-gray-800 cursor-pointer mt-1" @click.prevent="openCrisp"
|
||||||
>
|
>
|
||||||
Help
|
Help
|
||||||
</a>
|
</a>
|
||||||
<a v-else :href="helpUrl"
|
<NuxtLink v-else :href="helpUrl"
|
||||||
class="text-sm text-gray-600 dark:text-white hover:text-gray-800 cursor-pointer mt-1" target="_blank"
|
class="text-sm text-gray-600 dark:text-white hover:text-gray-800 cursor-pointer mt-1" target="_blank"
|
||||||
>
|
>
|
||||||
Help
|
Help
|
||||||
</a>
|
</NuxtLink>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="showAuth" class="hidden md:block pl-5 border-gray-300 border-r h-5" />
|
<div v-if="showAuth" class="hidden md:block pl-5 border-gray-300 border-r h-5" />
|
||||||
<div v-if="showAuth" class="block">
|
<div v-if="showAuth" class="block">
|
||||||
|
@ -59,7 +59,7 @@
|
||||||
</button>
|
</button>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<router-link v-if="userOnboarded" :to="{ name: 'home' }"
|
<NuxtLink v-if="userOnboarded" :to="{ name: 'home' }"
|
||||||
class="block block px-4 py-2 text-md text-gray-700 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 block px-4 py-2 text-md text-gray-700 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-100 dark:hover:text-white dark:hover:bg-gray-600 flex items-center"
|
||||||
>
|
>
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4 mr-2" fill="none" viewBox="0 0 24 24"
|
<svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4 mr-2" fill="none" viewBox="0 0 24 24"
|
||||||
|
@ -70,18 +70,18 @@
|
||||||
/>
|
/>
|
||||||
</svg>
|
</svg>
|
||||||
My Forms
|
My Forms
|
||||||
</router-link>
|
</NuxtLink>
|
||||||
|
|
||||||
<router-link v-if="userOnboarded" :to="{ name: 'my_templates' }"
|
<NuxtLink v-if="userOnboarded" :to="{ name: 'my_templates' }"
|
||||||
class="block block px-4 py-2 text-md text-gray-700 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 block px-4 py-2 text-md text-gray-700 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-100 dark:hover:text-white dark:hover:bg-gray-600 flex items-center"
|
||||||
>
|
>
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4 mr-2" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
|
<svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4 mr-2" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
|
||||||
<path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z" />
|
<path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z" />
|
||||||
</svg>
|
</svg>
|
||||||
My Templates
|
My Templates
|
||||||
</router-link>
|
</NuxtLink>
|
||||||
|
|
||||||
<router-link :to="{ name: 'settings.profile' }"
|
<NuxtLink :to="{ name: 'settings.profile' }"
|
||||||
class="block block px-4 py-2 text-md text-gray-700 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 block px-4 py-2 text-md text-gray-700 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-100 dark:hover:text-white dark:hover:bg-gray-600 flex items-center"
|
||||||
>
|
>
|
||||||
<svg class="w-4 h-4 mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"
|
<svg class="w-4 h-4 mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"
|
||||||
|
@ -95,7 +95,7 @@
|
||||||
/>
|
/>
|
||||||
</svg>
|
</svg>
|
||||||
Settings
|
Settings
|
||||||
</router-link>
|
</NuxtLink>
|
||||||
|
|
||||||
<a href="#"
|
<a href="#"
|
||||||
class="block 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 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"
|
||||||
|
@ -112,12 +112,12 @@
|
||||||
</a>
|
</a>
|
||||||
</dropdown>
|
</dropdown>
|
||||||
<div v-else class="flex gap-2">
|
<div v-else class="flex gap-2">
|
||||||
<router-link v-if="$route.name !== 'login'" :to="{ name: 'login' }"
|
<NuxtLink v-if="$route.name !== 'login'" :to="{ name: 'login' }"
|
||||||
class="text-gray-600 dark:text-white hover:text-gray-800 dark:hover:text-white px-0 sm:px-3 py-2 rounded-md text-sm"
|
class="text-gray-600 dark:text-white hover:text-gray-800 dark:hover:text-white px-0 sm:px-3 py-2 rounded-md text-sm"
|
||||||
active-class="text-gray-800 dark:text-white"
|
active-class="text-gray-800 dark:text-white"
|
||||||
>
|
>
|
||||||
Login
|
Login
|
||||||
</router-link>
|
</NuxtLink>
|
||||||
|
|
||||||
<v-button v-track.nav_create_form_click size="small" :to="{ name: 'forms-create-guest' }" color="outline-blue" :arrow="true">
|
<v-button v-track.nav_create_form_click size="small" :to="{ name: 'forms-create-guest' }" color="outline-blue" :arrow="true">
|
||||||
Create a form
|
Create a form
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<a v-if="href" :class="btnClasses" :href="href" :target="target">
|
<NuxtLink v-if="href" :class="btnClasses" :href="href" :target="target">
|
||||||
<slot />
|
<slot />
|
||||||
</a>
|
</NuxtLink>
|
||||||
<button v-else-if="!to" :type="nativeType" :disabled="loading?true:null" :class="btnClasses"
|
<button v-else-if="!to" :type="nativeType" :disabled="loading?true:null" :class="btnClasses"
|
||||||
@click="onClick($event)"
|
@click="onClick($event)"
|
||||||
>
|
>
|
||||||
|
@ -15,9 +15,9 @@
|
||||||
/>
|
/>
|
||||||
</svg>
|
</svg>
|
||||||
</template>
|
</template>
|
||||||
<loader v-else class="h-6 w-6 mx-auto" :class="`text-${colorShades['text']}`" />
|
<Loader v-else class="h-6 w-6 mx-auto" :class="`text-${colorShades['text']}`" />
|
||||||
</button>
|
</button>
|
||||||
<router-link v-else :class="btnClasses" :to="to" :target="target">
|
<NuxtLink v-else :class="btnClasses" :to="to" :target="target">
|
||||||
<span class="no-underline mx-auto">
|
<span class="no-underline mx-auto">
|
||||||
<slot />
|
<slot />
|
||||||
</span>
|
</span>
|
||||||
|
@ -26,7 +26,7 @@
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
/>
|
/>
|
||||||
</svg>
|
</svg>
|
||||||
</router-link>
|
</NuxtLink>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div v-if="isAutoSubmit">
|
<div v-if="isAutoSubmit">
|
||||||
<p class="text-center p-4">
|
<p class="text-center p-4">
|
||||||
<loader class="h-6 w-6 text-nt-blue mx-auto" />
|
<Loader class="h-6 w-6 text-nt-blue mx-auto" />
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<form v-else-if="dataForm" @submit.prevent="">
|
<form v-else-if="dataForm" @submit.prevent="">
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<template v-if="!loading">
|
<template v-if="!loading">
|
||||||
<slot />
|
<slot />
|
||||||
</template>
|
</template>
|
||||||
<loader v-else class="h-6 w-6 text-white mx-auto" />
|
<Loader v-else class="h-6 w-6 text-white mx-auto" />
|
||||||
</button>
|
</button>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -78,7 +78,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else class="flex justify-center items-center">
|
<div v-else class="flex justify-center items-center">
|
||||||
<loader class="w-6 h-6" />
|
<Loader class="w-6 h-6" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
>
|
>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<loader v-else-if="isLoading" class="h-6 w-6 text-nt-blue mx-auto" />
|
<Loader v-else-if="isLoading" class="h-6 w-6 text-nt-blue mx-auto" />
|
||||||
<LineChart v-else
|
<LineChart v-else
|
||||||
:options="chartOptions"
|
:options="chartOptions"
|
||||||
:data="chartData"
|
:data="chartData"
|
||||||
|
|
|
@ -40,7 +40,7 @@
|
||||||
</div>
|
</div>
|
||||||
</modal>
|
</modal>
|
||||||
|
|
||||||
<loader v-if="!form || !formInitDone" class="h-6 w-6 text-nt-blue mx-auto" />
|
<Loader v-if="!form || !formInitDone" class="h-6 w-6 text-nt-blue mx-auto" />
|
||||||
<div v-else>
|
<div v-else>
|
||||||
<div v-if="form && tableData.length > 0" class="flex flex-wrap items-end">
|
<div v-if="form && tableData.length > 0" class="flex flex-wrap items-end">
|
||||||
<div class="flex-grow">
|
<div class="flex-grow">
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<span v-if="required" class="text-red-500 required-dot">*</span>
|
<span v-if="required" class="text-red-500 required-dot">*</span>
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<loader v-if="loading" key="loader" class="h-6 w-6 text-nt-blue mx-auto" />
|
<Loader v-if="loading" key="loader" class="h-6 w-6 text-nt-blue mx-auto" />
|
||||||
<div v-else class="my-3">
|
<div v-else class="my-3">
|
||||||
<div v-for="(questionForm, quesKey) in allQuestions" :key="quesKey" class="bg-gray-100 p-2 mb-4">
|
<div v-for="(questionForm, quesKey) in allQuestions" :key="quesKey" class="bg-gray-100 p-2 mb-4">
|
||||||
<v-button color="red" size="small" class="mb-2" @click.prevent="onRemove(quesKey)">
|
<v-button color="red" size="small" class="mb-2" @click.prevent="onRemove(quesKey)">
|
||||||
|
@ -64,7 +64,7 @@ export default {
|
||||||
watch: { },
|
watch: { },
|
||||||
|
|
||||||
computed: { },
|
computed: { },
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
onAdd() {
|
onAdd() {
|
||||||
this.allQuestions.push(this.newQuestion)
|
this.allQuestions.push(this.newQuestion)
|
||||||
|
|
|
@ -60,14 +60,14 @@
|
||||||
</tr>
|
</tr>
|
||||||
<tr v-if="loading" class="n-table-row border-t bg-gray-50 dark:bg-gray-900">
|
<tr v-if="loading" class="n-table-row border-t bg-gray-50 dark:bg-gray-900">
|
||||||
<td :colspan="form.properties.length" class="p-8 w-full">
|
<td :colspan="form.properties.length" class="p-8 w-full">
|
||||||
<loader class="w-4 h-4 mx-auto" />
|
<Loader class="w-4 h-4 mx-auto" />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
<tbody v-else key="body-content" class="n-table-body">
|
<tbody v-else key="body-content" class="n-table-body">
|
||||||
<tr class="n-table-row loader w-full">
|
<tr class="n-table-row loader w-full">
|
||||||
<td :colspan="form.properties.length" class="n-table-cell w-full p-8">
|
<td :colspan="form.properties.length" class="n-table-cell w-full p-8">
|
||||||
<loader v-if="loading" class="w-4 h-4 mx-auto" />
|
<Loader v-if="loading" class="w-4 h-4 mx-auto" />
|
||||||
<p v-else class="text-gray-500 text-center">
|
<p v-else class="text-gray-500 text-center">
|
||||||
No data found.
|
No data found.
|
||||||
</p>
|
</p>
|
||||||
|
|
|
@ -7,24 +7,24 @@
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex justify-center mt-5 md:mt-0">
|
<div class="flex justify-center mt-5 md:mt-0">
|
||||||
<router-link :to="{ name: user ? 'home' : 'index' }" class="flex-shrink-0 font-semibold flex items-center">
|
<NuxtLink :to="{ name: user ? 'home' : 'index' }" class="flex-shrink-0 font-semibold flex items-center">
|
||||||
<img src="/img/logo.svg" alt="notion tools logo" class="w-10 h-10">
|
<img src="/img/logo.svg" alt="notion tools logo" class="w-10 h-10">
|
||||||
|
|
||||||
<span class="ml-2 text-xl text-black dark:text-white">
|
<span class="ml-2 text-xl text-black dark:text-white">
|
||||||
OpnForm
|
OpnForm
|
||||||
</span>
|
</span>
|
||||||
</router-link>
|
</NuxtLink>
|
||||||
</div>
|
</div>
|
||||||
<ul class="flex justify-center mt-5 md:mt-1">
|
<ul class="flex justify-center mt-5 md:mt-1">
|
||||||
<li class="mr-10">
|
<li class="mr-10">
|
||||||
<router-link :to="{name:'privacy-policy'}" class="text-gray-600 dark:text-gray-400 transition-colors duration-300 hover:text-nt-blue">
|
<NuxtLink :to="{name:'privacy-policy'}" class="text-gray-600 dark:text-gray-400 transition-colors duration-300 hover:text-nt-blue">
|
||||||
Privacy Policy
|
Privacy Policy
|
||||||
</router-link>
|
</NuxtLink>
|
||||||
</li>
|
</li>
|
||||||
<li class="list-disc pl-3">
|
<li class="list-disc pl-3">
|
||||||
<router-link :to="{name:'terms-conditions'}" class="text-gray-600 dark:text-gray-400 transition-colors duration-300 hover:text-nt-blue">
|
<NuxtLink :to="{name:'terms-conditions'}" class="text-gray-600 dark:text-gray-400 transition-colors duration-300 hover:text-nt-blue">
|
||||||
Terms & Conditions
|
Terms & Conditions
|
||||||
</router-link>
|
</NuxtLink>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -48,10 +48,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { computed } from 'vue'
|
|
||||||
import Form from 'vform'
|
import Form from 'vform'
|
||||||
import { useAuthStore } from '../../../../stores/auth.js'
|
|
||||||
import { initCrisp } from '../../../middleware/check-auth.js'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'RegisterForm',
|
name: 'RegisterForm',
|
||||||
|
@ -66,8 +63,10 @@ export default {
|
||||||
|
|
||||||
setup () {
|
setup () {
|
||||||
const authStore = useAuthStore()
|
const authStore = useAuthStore()
|
||||||
|
const amplitude = useAmplitude()
|
||||||
return {
|
return {
|
||||||
authStore
|
authStore,
|
||||||
|
logEvent: amplitude.logEvent
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -127,10 +126,8 @@ export default {
|
||||||
await this.authStore.updateUser(data)
|
await this.authStore.updateUser(data)
|
||||||
|
|
||||||
// Track event
|
// Track event
|
||||||
this.$logEvent('register', { source: this.form.hear_about_us })
|
|
||||||
|
|
||||||
initCrisp(data)
|
logEvent('register', { source: this.form.hear_about_us })
|
||||||
this.$crisp.push(['set', 'session:event', [[['register', {}, 'blue']]]])
|
|
||||||
|
|
||||||
// AppSumo License
|
// AppSumo License
|
||||||
if (data.appsumo_license === false) {
|
if (data.appsumo_license === false) {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div v-if="loadingDuplicate || loadingDelete" class="pr-4 pt-2">
|
<div v-if="loadingDuplicate || loadingDelete" class="pr-4 pt-2">
|
||||||
<loader class="h-6 w-6 mx-auto" />
|
<Loader class="h-6 w-6 mx-auto" />
|
||||||
</div>
|
</div>
|
||||||
<dropdown v-else class="inline" dusk="nav-dropdown">
|
<dropdown v-else class="inline" dusk="nav-dropdown">
|
||||||
<template #trigger="{toggle}">
|
<template #trigger="{toggle}">
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="templatesLoading" class="text-center mt-4">
|
<div v-if="templatesLoading" class="text-center mt-4">
|
||||||
<loader class="h-6 w-6 text-nt-blue mx-auto" />
|
<Loader class="h-6 w-6 text-nt-blue mx-auto" />
|
||||||
</div>
|
</div>
|
||||||
<p v-else-if="enrichedTemplates.length === 0" class="text-center mt-4">
|
<p v-else-if="enrichedTemplates.length === 0" class="text-center mt-4">
|
||||||
No templates found.
|
No templates found.
|
||||||
|
@ -44,8 +44,8 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="grid grid-cols-1 gap-8 mt-8 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4">
|
<div class="grid grid-cols-1 gap-8 mt-8 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4">
|
||||||
<router-link v-for="row in types" :key="row.slug"
|
<router-link v-for="row in types" :key="row.slug"
|
||||||
:to="{params:{slug:row.slug}, name:'templates.types.show'}"
|
:to="{params:{slug:row.slug}, name:'templates.types.show'}"
|
||||||
:title="row.name"
|
:title="row.name"
|
||||||
class="text-gray-600 dark:text-gray-400 transition-colors duration-300 hover:text-nt-blue"
|
class="text-gray-600 dark:text-gray-400 transition-colors duration-300 hover:text-nt-blue"
|
||||||
>
|
>
|
||||||
|
@ -64,8 +64,8 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="grid grid-cols-1 gap-8 mt-8 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4">
|
<div class="grid grid-cols-1 gap-8 mt-8 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4">
|
||||||
<router-link v-for="row in industries" :key="row.slug"
|
<router-link v-for="row in industries" :key="row.slug"
|
||||||
:to="{params:{slug:row.slug}, name:'templates.industries.show'}"
|
:to="{params:{slug:row.slug}, name:'templates.industries.show'}"
|
||||||
:title="row.name"
|
:title="row.name"
|
||||||
class="text-gray-600 dark:text-gray-400 transition-colors duration-300 hover:text-nt-blue"
|
class="text-gray-600 dark:text-gray-400 transition-colors duration-300 hover:text-nt-blue"
|
||||||
>
|
>
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<div class="px-6">
|
<div class="px-6">
|
||||||
<loader class="h-4 w-4 inline" />
|
<Loader class="h-4 w-4 inline" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</button>
|
</button>
|
||||||
|
|
|
@ -30,15 +30,26 @@ export default defineNuxtConfig({
|
||||||
sentry: {
|
sentry: {
|
||||||
dsn: opnformConfig.sentry_dsn,
|
dsn: opnformConfig.sentry_dsn,
|
||||||
},
|
},
|
||||||
|
components: [
|
||||||
|
{
|
||||||
|
path: '~/components/forms',
|
||||||
|
pathPrefix: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '~/components/global',
|
||||||
|
pathPrefix: false,
|
||||||
|
},
|
||||||
|
'~/components',
|
||||||
|
],
|
||||||
routeRules: {
|
routeRules: {
|
||||||
'/ai-form-builder': {
|
'/ai-form-builder': {
|
||||||
swr: 60*60
|
swr: 60 * 60
|
||||||
},
|
},
|
||||||
'/privacy-policy': {
|
'/privacy-policy': {
|
||||||
swr: 60*60
|
swr: 60 * 60
|
||||||
},
|
},
|
||||||
'/terms-conditions': {
|
'/terms-conditions': {
|
||||||
swr: 60*60
|
swr: 60 * 60
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
@on-save="formInitialHash=null"
|
@on-save="formInitialHash=null"
|
||||||
/>
|
/>
|
||||||
<div v-else class="text-center mt-4 py-6">
|
<div v-else class="text-center mt-4 py-6">
|
||||||
<loader class="h-6 w-6 text-nt-blue mx-auto" />
|
<Loader class="h-6 w-6 text-nt-blue mx-auto" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</transition>
|
</transition>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
@openRegister="openRegister"
|
@openRegister="openRegister"
|
||||||
/>
|
/>
|
||||||
<div v-else class="text-center mt-4 py-6">
|
<div v-else class="text-center mt-4 py-6">
|
||||||
<loader class="h-6 w-6 text-nt-blue mx-auto" />
|
<Loader class="h-6 w-6 text-nt-blue mx-auto" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</transition>
|
</transition>
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
{{ error }}
|
{{ error }}
|
||||||
</div>
|
</div>
|
||||||
<div v-else class="text-center mt-4 py-6">
|
<div v-else class="text-center mt-4 py-6">
|
||||||
<loader class="h-6 w-6 text-nt-blue mx-auto" />
|
<Loader class="h-6 w-6 text-nt-blue mx-auto" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -31,13 +31,13 @@
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="formLoading">
|
<div v-else-if="formLoading">
|
||||||
<p class="text-center mt-6 p-4">
|
<p class="text-center mt-6 p-4">
|
||||||
<loader class="h-6 w-6 text-nt-blue mx-auto" />
|
<Loader class="h-6 w-6 text-nt-blue mx-auto" />
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<div v-if="recordLoading">
|
<div v-if="recordLoading">
|
||||||
<p class="text-center mt-6 p-4">
|
<p class="text-center mt-6 p-4">
|
||||||
<loader class="h-6 w-6 text-nt-blue mx-auto" />
|
<Loader class="h-6 w-6 text-nt-blue mx-auto" />
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<open-complete-form v-show="!recordLoading" ref="open-complete-form" :form="form" class="mb-10"
|
<open-complete-form v-show="!recordLoading" ref="open-complete-form" :form="form" class="mb-10"
|
||||||
|
|
|
@ -122,7 +122,7 @@
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<div v-else-if="loading" class="text-center w-full p-5">
|
<div v-else-if="loading" class="text-center w-full p-5">
|
||||||
<loader class="h-6 w-6 mx-auto" />
|
<Loader class="h-6 w-6 mx-auto" />
|
||||||
</div>
|
</div>
|
||||||
<div v-else class="text-center w-full p-5">
|
<div v-else class="text-center w-full p-5">
|
||||||
Form not found.
|
Form not found.
|
||||||
|
|
|
@ -95,7 +95,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="formsLoading" class="text-center">
|
<div v-if="formsLoading" class="text-center">
|
||||||
<loader class="h-6 w-6 text-nt-blue mx-auto" />
|
<Loader class="h-6 w-6 text-nt-blue mx-auto" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -45,9 +45,6 @@
|
||||||
Unlimited submissions
|
Unlimited submissions
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="mt-3 p-6">-->
|
|
||||||
<!-- <testimonials />-->
|
|
||||||
<!-- </div>-->
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -56,22 +53,17 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import OpenFormFooter from '../../components/pages/OpenFormFooter.vue'
|
import OpenFormFooter from '~/components/pages/OpenFormFooter.vue'
|
||||||
import Testimonials from '../../components/pages/welcome/Testimonials.vue'
|
import LoginForm from "~/components/pages/auth/components/LoginForm.vue"
|
||||||
import LoginForm from './components/LoginForm.vue'
|
|
||||||
import SeoMeta from '../../mixins/seo-meta.js'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
OpenFormFooter,
|
OpenFormFooter,
|
||||||
Testimonials,
|
|
||||||
LoginForm
|
LoginForm
|
||||||
},
|
},
|
||||||
|
|
||||||
middleware: 'guest',
|
middleware: 'guest',
|
||||||
|
|
||||||
mixins: [SeoMeta],
|
|
||||||
|
|
||||||
data: () => ({
|
data: () => ({
|
||||||
metaTitle: 'Login',
|
metaTitle: 'Login',
|
||||||
}),
|
}),
|
||||||
|
|
|
@ -46,9 +46,6 @@
|
||||||
Unlimited submissions
|
Unlimited submissions
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="mt-3 p-6">-->
|
|
||||||
<!-- <testimonials />-->
|
|
||||||
<!-- </div>-->
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -57,10 +54,9 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import OpenFormFooter from '../../components/pages/OpenFormFooter.vue'
|
import OpenFormFooter from '~/components/pages/OpenFormFooter.vue'
|
||||||
import RegisterForm from './components/RegisterForm.vue'
|
import RegisterForm from "~/components/pages/auth/components/RegisterForm.vue"
|
||||||
import SeoMeta from '../../mixins/seo-meta.js'
|
import AppSumoRegister from "~/components/vendor/appsumo/AppSumoRegister.vue"
|
||||||
import AppSumoRegister from '../../components/vendor/appsumo/AppSumoRegister.vue'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
|
@ -69,7 +65,6 @@ export default {
|
||||||
RegisterForm
|
RegisterForm
|
||||||
},
|
},
|
||||||
|
|
||||||
mixins: [SeoMeta],
|
|
||||||
|
|
||||||
middleware: 'guest',
|
middleware: 'guest',
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="loading" class="w-full text-blue-500 text-center">
|
<div v-if="loading" class="w-full text-blue-500 text-center">
|
||||||
<loader class="h-10 w-10 p-5" />
|
<Loader class="h-10 w-10 p-5" />
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="workspace">
|
<div v-else-if="workspace">
|
||||||
<div class="mt-4 flex group bg-white items-center">
|
<div class="mt-4 flex group bg-white items-center">
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
We're checking the status of your subscription please wait a moment...
|
We're checking the status of your subscription please wait a moment...
|
||||||
</h4>
|
</h4>
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<loader class="h-6 w-6 text-nt-blue mx-auto mt-20" />
|
<Loader class="h-6 w-6 text-nt-blue mx-auto mt-20" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<open-form-footer />
|
<open-form-footer />
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<breadcrumb :path="breadcrumbs" />
|
<breadcrumb :path="breadcrumbs" />
|
||||||
|
|
||||||
<div v-if="templatesLoading" class="text-center my-4">
|
<div v-if="templatesLoading" class="text-center my-4">
|
||||||
<loader class="h-6 w-6 text-nt-blue mx-auto" />
|
<Loader class="h-6 w-6 text-nt-blue mx-auto" />
|
||||||
</div>
|
</div>
|
||||||
<p v-else-if="industry === null || !industry" class="text-center my-4">
|
<p v-else-if="industry === null || !industry" class="text-center my-4">
|
||||||
We could not find this industry.
|
We could not find this industry.
|
||||||
|
@ -41,7 +41,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="templatesLoading" class="text-center mt-4">
|
<div v-if="templatesLoading" class="text-center mt-4">
|
||||||
<loader class="h-6 w-6 text-nt-blue mx-auto" />
|
<Loader class="h-6 w-6 text-nt-blue mx-auto" />
|
||||||
</div>
|
</div>
|
||||||
<p v-else-if="enrichedTemplates.length === 0" class="text-center mt-4">
|
<p v-else-if="enrichedTemplates.length === 0" class="text-center mt-4">
|
||||||
No templates found.
|
No templates found.
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
</breadcrumb>
|
</breadcrumb>
|
||||||
|
|
||||||
<div v-if="templatesLoading" class="text-center my-4">
|
<div v-if="templatesLoading" class="text-center my-4">
|
||||||
<loader class="h-6 w-6 text-nt-blue mx-auto" />
|
<Loader class="h-6 w-6 text-nt-blue mx-auto" />
|
||||||
</div>
|
</div>
|
||||||
<p v-else-if="template === null || !template" class="text-center my-4">
|
<p v-else-if="template === null || !template" class="text-center my-4">
|
||||||
We could not find this template.
|
We could not find this template.
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<breadcrumb :path="breadcrumbs" />
|
<breadcrumb :path="breadcrumbs" />
|
||||||
|
|
||||||
<div v-if="templatesLoading" class="text-center my-4">
|
<div v-if="templatesLoading" class="text-center my-4">
|
||||||
<loader class="h-6 w-6 text-nt-blue mx-auto" />
|
<Loader class="h-6 w-6 text-nt-blue mx-auto" />
|
||||||
</div>
|
</div>
|
||||||
<p v-else-if="type === null || !type" class="text-center my-4">
|
<p v-else-if="type === null || !type" class="text-center my-4">
|
||||||
We could not find this type.
|
We could not find this type.
|
||||||
|
@ -41,7 +41,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="templatesLoading" class="text-center mt-4">
|
<div v-if="templatesLoading" class="text-center mt-4">
|
||||||
<loader class="h-6 w-6 text-nt-blue mx-auto" />
|
<Loader class="h-6 w-6 text-nt-blue mx-auto" />
|
||||||
</div>
|
</div>
|
||||||
<p v-else-if="enrichedTemplates.length === 0" class="text-center mt-4">
|
<p v-else-if="enrichedTemplates.length === 0" class="text-center mt-4">
|
||||||
No templates found.
|
No templates found.
|
||||||
|
|
|
@ -49,6 +49,7 @@ export const useAuthStore = defineStore('auth', {
|
||||||
|
|
||||||
updateUser (payload) {
|
updateUser (payload) {
|
||||||
this.user = payload
|
this.user = payload
|
||||||
|
this.initServiceClients()
|
||||||
},
|
},
|
||||||
|
|
||||||
initServiceClients() {
|
initServiceClients() {
|
||||||
|
|
Loading…
Reference in New Issue