@live-change/user-frontend 0.9.32 → 0.9.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/front/locales/en.json +3 -1
- package/front/src/App.vue +32 -1
- package/front/src/Index.vue +3 -3
- package/front/src/NavBar.vue +8 -8
- package/front/src/SettingsTabs.vue +1 -1
- package/front/src/config.js +19 -0
- package/front/src/connected/ConnectEmail.vue +13 -10
- package/front/src/connected/ConnectFinished.vue +4 -4
- package/front/src/connected/ConnectPhone.vue +13 -9
- package/front/src/connected/Connected.vue +13 -13
- package/front/src/delete/Delete.vue +5 -5
- package/front/src/delete/DeleteFeedbackSent.vue +4 -4
- package/front/src/delete/DeleteFinished.vue +6 -6
- package/front/src/google-access/GoogleAccess.vue +4 -4
- package/front/src/google-access/GoogleAccessGained.vue +6 -6
- package/front/src/identification/IdentificationSettings.vue +16 -13
- package/front/src/identification/UserIdentification.vue +8 -8
- package/front/src/locale/LocaleSettings.vue +9 -7
- package/front/src/message-auth/MessageLink.vue +12 -12
- package/front/src/message-auth/MessageSent.vue +20 -17
- package/front/src/message-auth/email/ConnectEmail.vue +1 -1
- package/front/src/message-auth/email/ResetPasswordEmail.vue +1 -1
- package/front/src/message-auth/email/SignInEmail.vue +1 -1
- package/front/src/message-auth/email/SignUpEmail.vue +1 -1
- package/front/src/nav/UserIcon.vue +11 -12
- package/front/src/nav/UserMenu.vue +20 -15
- package/front/src/notifications/NotificationButtons.vue +3 -3
- package/front/src/notifications/NotificationListPage.vue +2 -2
- package/front/src/notifications/NotificationsIcon.vue +12 -10
- package/front/src/notifications/NotificationsList.vue +4 -4
- package/front/src/notifications/NotificationsSettings.vue +4 -4
- package/front/src/notifications/SimpleNotification.vue +3 -3
- package/front/src/password/ChangePassword.vue +19 -14
- package/front/src/password/ChangePasswordFinished.vue +4 -4
- package/front/src/password/Password.vue +406 -449
- package/front/src/password/ResetPassword.vue +11 -8
- package/front/src/password/ResetPasswordFinished.vue +4 -4
- package/front/src/password/ResetPasswordForm.vue +22 -19
- package/front/src/phone/CountryInput.vue +13 -15
- package/front/src/phone/PhoneInput.vue +3 -3
- package/front/src/settings/Settings.vue +5 -5
- package/front/src/settings/SettingsIndex.vue +4 -4
- package/front/src/settings/SettingsMenu.vue +10 -10
- package/front/src/sign/GoogleAuth.vue +4 -4
- package/front/src/sign/GoogleAuthReturn.vue +4 -4
- package/front/src/sign/LinkedinAuth.vue +4 -4
- package/front/src/sign/LinkedinAuthReturn.vue +4 -4
- package/front/src/sign/SignInEmail.vue +22 -21
- package/front/src/sign/SignInFinished.vue +6 -6
- package/front/src/sign/SignOut.vue +5 -5
- package/front/src/sign/SignOutFinished.vue +4 -4
- package/front/src/sign/SignUpEmail.vue +14 -13
- package/front/src/sign/SignUpFinished.vue +19 -16
- package/package.json +26 -26
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="w-full lg:w-6 md:w-9" v-shared-element:form="{ duration: '300ms', includeChildren: true }">
|
|
3
|
-
<div class="surface-
|
|
4
|
-
<div class="text-center mb-
|
|
5
|
-
<div class="text-900 text-3xl font-medium mb-
|
|
2
|
+
<div class="w-full lg:w-6/12 md:w-9/12" v-shared-element:form="{ duration: '300ms', includeChildren: true }">
|
|
3
|
+
<div class="bg-surface-0 dark:bg-surface-900 p-6 shadow rounded-border">
|
|
4
|
+
<div class="text-center mb-8">
|
|
5
|
+
<div class="text-surface-900 dark:text-surface-0 text-3xl font-medium mb-4">Reset password</div>
|
|
6
6
|
</div>
|
|
7
7
|
|
|
8
8
|
<command-form service="passwordAuthentication" action="resetPasswordEmail" v-slot="{ data }"
|
|
9
9
|
@done="handleDone" keepOnDone v-if="isMounted">
|
|
10
10
|
|
|
11
|
-
<div class="p-field mb-
|
|
12
|
-
<label for="email" class="block text-900 font-medium mb-2">
|
|
11
|
+
<div class="p-field mb-4">
|
|
12
|
+
<label for="email" class="block text-surface-900 dark:text-surface-0 font-medium mb-2">
|
|
13
13
|
Email address
|
|
14
14
|
</label>
|
|
15
15
|
<InputText id="email" type="text" class="w-full"
|
|
16
|
-
v-model="data.email" :
|
|
16
|
+
v-model="data.email" :invalid="!!data.emailError"
|
|
17
17
|
aria-describedby="email-help" />
|
|
18
|
-
<
|
|
18
|
+
<Message v-if="data.emailError" severity="error" variant="simple" size="small">
|
|
19
|
+
{{ t(`errors.${data.emailError}`) }}
|
|
20
|
+
</Message>
|
|
19
21
|
</div>
|
|
20
22
|
|
|
21
23
|
<Button type="submit" label="Reset password" icon="pi pi-key" class="w-full"></Button>
|
|
@@ -28,6 +30,7 @@
|
|
|
28
30
|
<script setup>
|
|
29
31
|
import InputText from "primevue/inputtext"
|
|
30
32
|
import Button from "primevue/button"
|
|
33
|
+
import Message from "primevue/message"
|
|
31
34
|
|
|
32
35
|
import { onMounted, ref } from "vue"
|
|
33
36
|
const isMounted = ref(false)
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="w-full lg:w-6 md:w-9" v-shared-element:form="{ duration: '300ms', includeChildren: true }">
|
|
3
|
-
<div class="surface-
|
|
4
|
-
<div class="text-900 font-medium mb-
|
|
5
|
-
<p class="mt-0 p-0
|
|
2
|
+
<div class="w-full lg:w-6/12 md:w-9/12" v-shared-element:form="{ duration: '300ms', includeChildren: true }">
|
|
3
|
+
<div class="bg-surface-0 dark:bg-surface-900 rounded-border shadow p-6">
|
|
4
|
+
<div class="text-surface-900 dark:text-surface-0 font-medium mb-4 text-xl mb-6">Password changed</div>
|
|
5
|
+
<p class="mt-0 p-0 leading-normal">You have successfully changed your password.</p>
|
|
6
6
|
</div>
|
|
7
7
|
</div>
|
|
8
8
|
</template>
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="w-full lg:w-6 md:w-9" v-shared-element:form="{ duration: '300ms', includeChildren: true }">
|
|
3
|
-
<div class="surface-
|
|
4
|
-
<div class="text-900 font-medium mb-
|
|
5
|
-
<p class="mt-0 mb-2 p-0
|
|
2
|
+
<div class="w-full lg:w-6/12 md:w-9/12" v-shared-element:form="{ duration: '300ms', includeChildren: true }">
|
|
3
|
+
<div class="bg-surface-0 dark:bg-surface-900 rounded-border shadow p-6" v-if="isUnknown">
|
|
4
|
+
<div class="text-surface-900 dark:text-surface-0 font-medium mb-4 text-xl">Unknown link</div>
|
|
5
|
+
<p class="mt-0 mb-2 p-0 leading-normal">We can't find your secret link. Check if you copied the address correctly.</p>
|
|
6
6
|
</div>
|
|
7
7
|
|
|
8
|
-
<div class="surface-
|
|
9
|
-
<div class="text-900 font-medium mb-
|
|
10
|
-
<p class="mt-0 mb-2 p-0
|
|
8
|
+
<div class="bg-surface-0 dark:bg-surface-900 rounded-border shadow p-6" v-if="isUsed">
|
|
9
|
+
<div class="text-surface-900 dark:text-surface-0 font-medium mb-4 text-xl">Link used</div>
|
|
10
|
+
<p class="mt-0 mb-2 p-0 leading-normal">This link was already used.</p>
|
|
11
11
|
</div>
|
|
12
12
|
|
|
13
|
-
<div class="surface-
|
|
14
|
-
<div class="text-900 font-medium mb-
|
|
15
|
-
<p class="mt-0 mb-
|
|
13
|
+
<div class="bg-surface-0 dark:bg-surface-900 rounded-border shadow p-6" v-if="isExpired && !isUsed">
|
|
14
|
+
<div class="text-surface-900 dark:text-surface-0 font-medium mb-4 text-xl">Link expired</div>
|
|
15
|
+
<p class="mt-0 mb-6 p-0 leading-normal">Your password reset authentication already expired.</p>
|
|
16
16
|
</div>
|
|
17
17
|
|
|
18
|
-
<div class="surface-
|
|
19
|
-
<div class="text-center mb-
|
|
20
|
-
<div class="text-900 text-3xl font-medium mb-
|
|
18
|
+
<div class="bg-surface-0 dark:bg-surface-900 p-6 shadow rounded-border" v-if="isReady">
|
|
19
|
+
<div class="text-center mb-8">
|
|
20
|
+
<div class="text-surface-900 dark:text-surface-0 text-3xl font-medium mb-4">Reset password</div>
|
|
21
21
|
</div>
|
|
22
22
|
|
|
23
23
|
<command-form service="passwordAuthentication" action="finishResetPassword" v-slot="{ data }"
|
|
@@ -25,10 +25,10 @@
|
|
|
25
25
|
@done="handleDone" keepOnDone>
|
|
26
26
|
|
|
27
27
|
<template v-if="isMounted">
|
|
28
|
-
<div class="p-field mb-
|
|
29
|
-
<label for="newPassword" class="block text-900 font-medium mb-2">New password</label>
|
|
28
|
+
<div class="p-field mb-4">
|
|
29
|
+
<label for="newPassword" class="block text-surface-900 dark:text-surface-0 font-medium mb-2">New password</label>
|
|
30
30
|
<Password id="newPassword" class="w-full" inputClass="w-full" toggleMask
|
|
31
|
-
:
|
|
31
|
+
:invalid="!!data.passwordHashError"
|
|
32
32
|
v-model="data.passwordHash">
|
|
33
33
|
<template #footer>
|
|
34
34
|
<Divider />
|
|
@@ -41,11 +41,13 @@
|
|
|
41
41
|
</ul>
|
|
42
42
|
</template>
|
|
43
43
|
</Password>
|
|
44
|
-
<
|
|
44
|
+
<Message v-if="data.passwordHashError" severity="error" variant="simple" size="small">
|
|
45
|
+
{{ t(`errors.${data.passwordHashError}`) }}
|
|
46
|
+
</Message>
|
|
45
47
|
</div>
|
|
46
48
|
|
|
47
|
-
<div class="p-field mb-
|
|
48
|
-
<label for="reenterPassword" class="block text-900 font-medium mb-2">Re-enter password</label>
|
|
49
|
+
<div class="p-field mb-4">
|
|
50
|
+
<label for="reenterPassword" class="block text-surface-900 dark:text-surface-0 font-medium mb-2">Re-enter password</label>
|
|
49
51
|
<Password id="reenterPassword" class="w-full" inputClass="w-full"
|
|
50
52
|
v-model="secondPassword"
|
|
51
53
|
:feedback="false" toggleMask />
|
|
@@ -66,6 +68,7 @@
|
|
|
66
68
|
import Button from "primevue/button"
|
|
67
69
|
import Divider from "primevue/divider"
|
|
68
70
|
import Password from "primevue/password"
|
|
71
|
+
import Message from "primevue/message"
|
|
69
72
|
|
|
70
73
|
const { resetKey } = defineProps({
|
|
71
74
|
resetKey: {
|
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
<
|
|
7
|
-
<
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
</AutoComplete>
|
|
16
|
-
</div>
|
|
2
|
+
<AutoComplete v-model="selectedCountry" dropdown optionLabel="name"
|
|
3
|
+
:suggestions="filteredCountries" @complete="searchCountry"
|
|
4
|
+
class="mr-2">
|
|
5
|
+
<template #option="slotProps">
|
|
6
|
+
<div class="flex items-center">
|
|
7
|
+
<img :alt="slotProps.option.name"
|
|
8
|
+
src="../../public/images/flag_placeholder.png"
|
|
9
|
+
:class="`flag flag-${slotProps.option.code.toLowerCase()} mr-2`"
|
|
10
|
+
style="width: 18px; height: 12.27px" />
|
|
11
|
+
<div>{{ slotProps.option.name }}</div>
|
|
12
|
+
</div>
|
|
13
|
+
</template>
|
|
14
|
+
</AutoComplete>
|
|
17
15
|
</template>
|
|
18
16
|
|
|
19
17
|
<script setup>
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="flex flex-row
|
|
2
|
+
<div class="flex flex-row items-center">
|
|
3
3
|
<AutoComplete v-model="selectedCountry" dropdown optionLabel="dial_code" placeholder="+XX"
|
|
4
4
|
:suggestions="filteredCountries" @complete="searchCountry"
|
|
5
|
-
class="mr-2 w-
|
|
5
|
+
class="mr-2 w-56">
|
|
6
6
|
<template #option="slotProps">
|
|
7
|
-
<div class="flex
|
|
7
|
+
<div class="flex items-center">
|
|
8
8
|
<img :alt="slotProps.option.name"
|
|
9
9
|
src="../../public/images/flag_placeholder.png"
|
|
10
10
|
:class="`flag flag-${slotProps.option.code.toLowerCase()} mr-2`"
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="flex relative lg:static surface-
|
|
3
|
-
<div id="settings-menu" class="surface-
|
|
4
|
-
top-0 z-1 border-
|
|
2
|
+
<div class="flex relative lg:static bg-surface-50 dark:bg-surface-950" style="height: calc(100vh - 88px)">
|
|
3
|
+
<div id="settings-menu" class="bg-surface-0 hidden flex-shrink-0 absolute left-0 h-full
|
|
4
|
+
top-0 z-1 border-r-1 border-r-surface-300 dark:border-r-surface-750 select-none md:static md:block" style="width:280px">
|
|
5
5
|
<SettingsMenu />
|
|
6
6
|
</div>
|
|
7
7
|
|
|
8
|
-
<div class="flex flex-
|
|
9
|
-
<div v-if="viewType === 'simple'" class="p-
|
|
8
|
+
<div class="flex flex-col relative flex-auto">
|
|
9
|
+
<div v-if="viewType === 'simple'" class="p-8 flex flex-col flex-auto items-center">
|
|
10
10
|
<router-view></router-view>
|
|
11
11
|
</div>
|
|
12
12
|
<template v-if="viewType === 'wide'">
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
|
|
3
|
-
<SettingsMenu class="h-full block md:hidden surface-
|
|
3
|
+
<SettingsMenu class="h-full block md:hidden bg-surface-0 dark:bg-surface-950" />
|
|
4
4
|
|
|
5
|
-
<div class="flex-
|
|
6
|
-
<!-- <LocaleSettings class="mb-
|
|
7
|
-
<Connected class="mb-
|
|
5
|
+
<div class="flex-col flex-auto items-center p-8 hidden md:flex">
|
|
6
|
+
<!-- <LocaleSettings class="mb-8" />-->
|
|
7
|
+
<Connected class="mb-8" />
|
|
8
8
|
<ChangePassword />
|
|
9
9
|
</div>
|
|
10
10
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="flex flex-
|
|
2
|
+
<div class="flex flex-col h-full">
|
|
3
3
|
<div class="overflow-y-auto">
|
|
4
4
|
<ul class="list-none p-2 m-0">
|
|
5
5
|
<li>
|
|
6
|
-
<div class="p-
|
|
6
|
+
<div class="p-4 text-surface-500 dark:text-surface-300 font-medium">SETTINGS</div>
|
|
7
7
|
</li>
|
|
8
8
|
|
|
9
9
|
<SettingsMenuItem name="user:identification" icon="id-card" label="Identification" class="hidden md:block" />
|
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
|
|
17
17
|
</ul>
|
|
18
18
|
|
|
19
|
-
<ul v-if="client.user" class="list-none p-2 m-0 border-
|
|
19
|
+
<ul v-if="client.user" class="list-none p-2 m-0 border-t border-surface">
|
|
20
20
|
<li>
|
|
21
|
-
<div class="p-
|
|
21
|
+
<div class="p-4 text-surface-500 dark:text-surface-300 font-medium">AUTHORIZATION</div>
|
|
22
22
|
</li>
|
|
23
23
|
|
|
24
24
|
<SettingsMenuItem v-if="client.user" name="user:connected" icon="users" label="Connected Accounts" />
|
|
@@ -27,15 +27,15 @@
|
|
|
27
27
|
|
|
28
28
|
</ul>
|
|
29
29
|
|
|
30
|
-
<ul v-if="client.user" class="list-none p-2 m-0 border-
|
|
30
|
+
<ul v-if="client.user" class="list-none p-2 m-0 border-t border-surface">
|
|
31
31
|
|
|
32
32
|
<SettingsMenuItem v-if="client.user" name="user:delete" icon="trash" label="Delete Account" />
|
|
33
33
|
|
|
34
34
|
</ul>
|
|
35
35
|
</div>
|
|
36
36
|
|
|
37
|
-
<!-- <div class="p-2 mt-auto border-
|
|
38
|
-
<ul class="list-none p-2 m-0 hidden origin-bottom
|
|
37
|
+
<!-- <div class="p-2 mt-auto border-t border-surface">
|
|
38
|
+
<ul class="list-none p-2 m-0 hidden origin-bottom animate-duration-150">
|
|
39
39
|
<li>
|
|
40
40
|
<a v-ripple class="flex align-items-center cursor-pointer p-3 text-700 hover:surface-100
|
|
41
41
|
border-round transition-colors transition-duration-150 p-ripple">
|
|
@@ -60,9 +60,9 @@
|
|
|
60
60
|
</ul>
|
|
61
61
|
<a v-ripple class="p-3 flex align-items-center cursor-pointer text-700 hover:surface-100
|
|
62
62
|
border-round transition-colors transition-duration-150 p-ripple"
|
|
63
|
-
v-styleclass="{ selector: '@prev',
|
|
64
|
-
leaveToClass: 'hidden', leaveActiveClass: 'fadeout' }">
|
|
65
|
-
<img src="/images/empty-user-photo.svg" class="mr-2
|
|
63
|
+
v-styleclass="{ selector: '@prev', enterFromClass: 'hidden', enterActiveClass: 'animate-scalein',
|
|
64
|
+
leaveToClass: 'hidden', leaveActiveClass: 'animate-fadeout' }">
|
|
65
|
+
<img src="/images/empty-user-photo.svg" class="mr-2 rounded-full" style="width: 28px; height: 28px"/>
|
|
66
66
|
<span class="font-medium">Amy Elsner</span>
|
|
67
67
|
<i class="pi pi-chevron-up ml-auto"></i>
|
|
68
68
|
</a>
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="w-full lg:w-6 md:w-9" v-shared-element:form="{ duration: '300ms', includeChildren: true }">
|
|
3
|
-
<div class="surface-
|
|
2
|
+
<div class="w-full lg:w-6/12 md:w-9/12" v-shared-element:form="{ duration: '300ms', includeChildren: true }">
|
|
3
|
+
<div class="bg-surface-0 dark:bg-surface-900 p-6 shadow rounded-border">
|
|
4
4
|
|
|
5
|
-
<div class="text-center mb-
|
|
6
|
-
<div class="text-900 text-3xl font-medium mb-
|
|
5
|
+
<div class="text-center mb-8">
|
|
6
|
+
<div class="text-surface-900 dark:text-surface-0 text-3xl font-medium mb-4">Google authentication</div>
|
|
7
7
|
</div>
|
|
8
8
|
|
|
9
9
|
<div v-if="state === 'canceled'" class="text-center">
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="w-full lg:w-6 md:w-9" v-shared-element:form="{ duration: '300ms', includeChildren: true }">
|
|
3
|
-
<div class="surface-
|
|
2
|
+
<div class="w-full lg:w-6/12 md:w-9/12" v-shared-element:form="{ duration: '300ms', includeChildren: true }">
|
|
3
|
+
<div class="bg-surface-0 dark:bg-surface-900 p-6 shadow rounded-border">
|
|
4
4
|
|
|
5
|
-
<div class="text-center mb-
|
|
6
|
-
<div class="text-900 text-3xl font-medium mb-
|
|
5
|
+
<div class="text-center mb-8">
|
|
6
|
+
<div class="text-surface-900 dark:text-surface-0 text-3xl font-medium mb-4">Google authentication</div>
|
|
7
7
|
</div>
|
|
8
8
|
|
|
9
9
|
<div v-if="state === 'canceled'" class="text-center">
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="w-full lg:w-6 md:w-9" v-shared-element:form="{ duration: '300ms', includeChildren: true }">
|
|
3
|
-
<div class="surface-
|
|
2
|
+
<div class="w-full lg:w-6/12 md:w-9/12" v-shared-element:form="{ duration: '300ms', includeChildren: true }">
|
|
3
|
+
<div class="bg-surface-0 dark:bg-surface-900 p-6 shadow rounded-border">
|
|
4
4
|
|
|
5
|
-
<div class="text-center mb-
|
|
6
|
-
<div class="text-900 text-3xl font-medium mb-
|
|
5
|
+
<div class="text-center mb-8">
|
|
6
|
+
<div class="text-surface-900 dark:text-surface-0 text-3xl font-medium mb-4">Linkedin authentication</div>
|
|
7
7
|
</div>
|
|
8
8
|
|
|
9
9
|
<div v-if="state === 'canceled'" class="text-center">
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="w-full lg:w-6 md:w-9" v-shared-element:form="{ duration: '300ms', includeChildren: true }">
|
|
3
|
-
<div class="surface-
|
|
2
|
+
<div class="w-full lg:w-6/12 md:w-9/12" v-shared-element:form="{ duration: '300ms', includeChildren: true }">
|
|
3
|
+
<div class="bg-surface-0 dark:bg-surface-900 p-6 shadow rounded-border">
|
|
4
4
|
|
|
5
|
-
<div class="text-center mb-
|
|
6
|
-
<div class="text-900 text-3xl font-medium mb-
|
|
5
|
+
<div class="text-center mb-8">
|
|
6
|
+
<div class="text-surface-900 dark:text-surface-0 text-3xl font-medium mb-4">Linkedin authentication</div>
|
|
7
7
|
</div>
|
|
8
8
|
|
|
9
9
|
<div v-if="state === 'canceled'" class="text-center">
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="w-full lg:w-6 md:w-9" v-shared-element:form="{ duration: '300ms', includeChildren: true }">
|
|
3
|
-
<div class="surface-
|
|
2
|
+
<div class="w-full lg:w-6/12 md:w-9/12" v-shared-element:form="{ duration: '300ms', includeChildren: true }">
|
|
3
|
+
<div class="bg-surface-0 dark:bg-surface-900 p-6 shadow rounded-border">
|
|
4
4
|
|
|
5
|
-
<div class="text-center mb-
|
|
6
|
-
<div class="text-900 text-3xl font-medium mb-
|
|
7
|
-
<span class="text-600 font-medium
|
|
5
|
+
<div class="text-center mb-8">
|
|
6
|
+
<div class="text-surface-900 dark:text-surface-0 text-3xl font-medium mb-4">Welcome Back</div>
|
|
7
|
+
<span class="text-surface-600 dark:text-surface-200 font-medium leading-normal">Don't have an account?</span>
|
|
8
8
|
<router-link :to="{ name: 'user:signUpEmail' }"
|
|
9
9
|
class="font-medium no-underline ml-2 text-blue-500 cursor-pointer">
|
|
10
10
|
Create today!</router-link>
|
|
@@ -13,31 +13,31 @@
|
|
|
13
13
|
<command-form service="passwordAuthentication" action="signInEmail" v-slot="{ data }"
|
|
14
14
|
@done="handleDone" keepOnDone v-if="isMounted">
|
|
15
15
|
|
|
16
|
-
<div class="p-field mb-
|
|
17
|
-
<label for="email" class="block text-900 font-medium mb-2">
|
|
16
|
+
<div class="p-field mb-4">
|
|
17
|
+
<label for="email" class="block text-surface-900 dark:text-surface-0 font-medium mb-2">
|
|
18
18
|
Email address
|
|
19
19
|
</label>
|
|
20
20
|
<InputText id="email" type="text" class="w-full"
|
|
21
|
-
aria-describedby="email-help" :
|
|
22
|
-
v-model="data.email" />
|
|
23
|
-
<
|
|
21
|
+
aria-describedby="email-help" :invalid="data.emailError"
|
|
22
|
+
v-model="data.email" />
|
|
23
|
+
<Message v-if="data.emailError" severity="error" variant="simple" size="small">
|
|
24
24
|
{{ t(`errors.${data.emailError}`) }}
|
|
25
|
-
</
|
|
25
|
+
</Message>
|
|
26
26
|
</div>
|
|
27
27
|
|
|
28
|
-
<div class="p-field mb-
|
|
29
|
-
<label for="password" class="block text-900 font-medium mb-2">Password (optional)</label>
|
|
28
|
+
<div class="p-field mb-4">
|
|
29
|
+
<label for="password" class="block text-surface-900 dark:text-surface-0 font-medium mb-2">Password (optional)</label>
|
|
30
30
|
<Password id="password" class="w-full" inputClass="w-full" toggleMask :feedback="false"
|
|
31
|
-
aria-describedby="password-help" :
|
|
32
|
-
v-model="data.passwordHash" />
|
|
33
|
-
<
|
|
31
|
+
aria-describedby="password-help" :invalid="data.passwordHashError"
|
|
32
|
+
v-model="data.passwordHash" />
|
|
33
|
+
<Message v-if="data.passwordHashError" severity="error" variant="simple" size="small">
|
|
34
34
|
{{ t(`errors.${data.passwordHashError}`) }}
|
|
35
|
-
</
|
|
35
|
+
</Message>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
|
-
<div class="flex
|
|
38
|
+
<div class="flex items-center justify-between mb-12">
|
|
39
39
|
<div></div>
|
|
40
|
-
<!-- <div class="flex
|
|
40
|
+
<!-- <div class="flex items-center">
|
|
41
41
|
<Checkbox id="rememberme" :binary="true" class="mr-2" />
|
|
42
42
|
<label for="rememberme">Remember me</label>
|
|
43
43
|
</div>-->
|
|
@@ -51,8 +51,8 @@
|
|
|
51
51
|
|
|
52
52
|
</command-form>
|
|
53
53
|
|
|
54
|
-
<Divider v-if="accountTypes.length > 0" align="center" class="my-
|
|
55
|
-
<span class="text-600 font-normal text-sm">OR</span>
|
|
54
|
+
<Divider v-if="accountTypes.length > 0" align="center" class="my-6">
|
|
55
|
+
<span class="text-surface-600 dark:text-surface-200 font-normal text-sm">OR</span>
|
|
56
56
|
</Divider>
|
|
57
57
|
|
|
58
58
|
<router-link v-for="accountType in accountTypes"
|
|
@@ -76,6 +76,7 @@
|
|
|
76
76
|
import Button from "primevue/button"
|
|
77
77
|
import Divider from "primevue/divider"
|
|
78
78
|
import Password from "../password/Password.vue"
|
|
79
|
+
import Message from "primevue/message"
|
|
79
80
|
|
|
80
81
|
import { onMounted, ref } from 'vue'
|
|
81
82
|
const isMounted = ref(false)
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="w-full lg:w-6 md:w-9" v-shared-element:form="{ duration: '300ms', includeChildren: true }">
|
|
3
|
-
<div class="surface-
|
|
4
|
-
<div class="text-900 font-medium mb-
|
|
5
|
-
<p class="mt-0 p-0
|
|
6
|
-
<div v-if="afterSignIn" class="flex flex-row justify-
|
|
2
|
+
<div class="w-full lg:w-6/12 md:w-9/12" v-shared-element:form="{ duration: '300ms', includeChildren: true }">
|
|
3
|
+
<div class="bg-surface-0 dark:bg-surface-900 rounded-border shadow p-6">
|
|
4
|
+
<div class="text-surface-900 dark:text-surface-0 font-medium mb-4 text-xl mb-6">Signed In</div>
|
|
5
|
+
<p class="mt-0 p-0 leading-normal">Congratulations! You have successfully logged in to your account.</p>
|
|
6
|
+
<div v-if="afterSignIn" class="flex flex-row justify-center items-center">
|
|
7
7
|
<router-link :to="afterSignIn" class="no-underline">
|
|
8
8
|
<Button label="Next" v-ripple />
|
|
9
9
|
</router-link>
|
|
10
|
-
<p class="ml-
|
|
10
|
+
<p class="ml-6" v-if="isMounted && redirectTime">
|
|
11
11
|
Redirect in {{ pluralize('second', Math.ceil((redirectTime - currentTime) / 1000), true) }}...
|
|
12
12
|
</p>
|
|
13
13
|
</div>
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="w-full lg:w-6 md:w-9" v-shared-element:form="{ duration: '300ms', includeChildren: true }">
|
|
3
|
-
<div class="surface-
|
|
4
|
-
<div class="text-900 font-medium mb-
|
|
5
|
-
<p class="mt-0 p-0
|
|
6
|
-
<ProgressSpinner v-if="isMounted" class="m-
|
|
2
|
+
<div class="w-full lg:w-6/12 md:w-9/12" v-shared-element:form="{ duration: '300ms', includeChildren: true }">
|
|
3
|
+
<div class="bg-surface-0 dark:bg-surface-900 rounded-border shadow p-6">
|
|
4
|
+
<div class="text-surface-900 dark:text-surface-0 font-medium mb-4 text-xl mb-6">Sign Out</div>
|
|
5
|
+
<p class="mt-0 p-0 leading-normal">Signing out</p>
|
|
6
|
+
<ProgressSpinner v-if="isMounted" class="m-4" />
|
|
7
7
|
</div>
|
|
8
8
|
</div>
|
|
9
9
|
</template>
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="w-full lg:w-6 md:w-9" v-shared-element:form="{ duration: '300ms', includeChildren: true }">
|
|
3
|
-
<div class="surface-
|
|
4
|
-
<div class="text-900 font-medium mb-
|
|
5
|
-
<p class="mt-0 p-0
|
|
2
|
+
<div class="w-full lg:w-6/12 md:w-9/12" v-shared-element:form="{ duration: '300ms', includeChildren: true }">
|
|
3
|
+
<div class="bg-surface-0 dark:bg-surface-900 rounded-border shadow p-6">
|
|
4
|
+
<div class="text-surface-900 dark:text-surface-0 font-medium mb-4 text-xl mb-6">Signed Out</div>
|
|
5
|
+
<p class="mt-0 p-0 leading-normal">You have successfully signed from your account.</p>
|
|
6
6
|
</div>
|
|
7
7
|
</div>
|
|
8
8
|
</template>
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="w-full lg:w-6 md:w-9" v-shared-element:form="{ duration: '300ms', includeChildren: true }">
|
|
3
|
-
<div class="surface-
|
|
4
|
-
<div class="text-center mb-
|
|
5
|
-
<div class="text-900 text-3xl font-medium mb-
|
|
6
|
-
<span class="text-600 font-medium
|
|
2
|
+
<div class="w-full lg:w-6/12 md:w-9/12" v-shared-element:form="{ duration: '300ms', includeChildren: true }">
|
|
3
|
+
<div class="bg-surface-0 dark:bg-surface-900 p-6 shadow rounded-border">
|
|
4
|
+
<div class="text-center mb-8">
|
|
5
|
+
<div class="text-surface-900 dark:text-surface-0 text-3xl font-medium mb-4">Sign Up</div>
|
|
6
|
+
<span class="text-surface-600 dark:text-surface-200 font-medium leading-normal">Already have an account?</span>
|
|
7
7
|
<router-link :to="{ name: 'user:signInEmail' }"
|
|
8
8
|
class="font-medium no-underline ml-2 text-blue-500 cursor-pointer">
|
|
9
9
|
Sign in</router-link>
|
|
@@ -12,23 +12,23 @@
|
|
|
12
12
|
<command-form service="messageAuthentication" action="signUpEmail" v-slot="{ data, submit }"
|
|
13
13
|
@done="handleSent" keepOnDone>
|
|
14
14
|
|
|
15
|
-
<div class="p-field mb-
|
|
16
|
-
<label for="email" class="block text-900 font-medium mb-2">
|
|
15
|
+
<div class="p-field mb-4">
|
|
16
|
+
<label for="email" class="block text-surface-900 dark:text-surface-0 font-medium mb-2">
|
|
17
17
|
Email address
|
|
18
18
|
</label>
|
|
19
19
|
<InputText id="email" type="text" class="w-full"
|
|
20
|
-
aria-describedby="email-help" :
|
|
20
|
+
aria-describedby="email-help" :invalid="!!data.emailError"
|
|
21
21
|
v-model="data.email" />
|
|
22
|
-
<
|
|
22
|
+
<Message v-if="data.emailError" severity="error" variant="simple" size="small">
|
|
23
23
|
{{ t(`errors.${data.emailError}`) }}
|
|
24
|
-
</
|
|
24
|
+
</Message>
|
|
25
25
|
</div>
|
|
26
26
|
|
|
27
27
|
<Button label="Sign Up with email" icon="pi pi-user" class="w-full" type="submit" />
|
|
28
28
|
</command-form>
|
|
29
29
|
|
|
30
|
-
<Divider v-if="accountTypes.length > 0" align="center" class="my-
|
|
31
|
-
<
|
|
30
|
+
<Divider v-if="accountTypes.length > 0" align="center" class="my-6">
|
|
31
|
+
<b>OR</b>
|
|
32
32
|
</Divider>
|
|
33
33
|
|
|
34
34
|
<router-link v-for="accountType in accountTypes"
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
/>
|
|
42
42
|
</router-link>
|
|
43
43
|
|
|
44
|
-
<div class="mt-
|
|
44
|
+
<div class="mt-4">
|
|
45
45
|
By providing your email address or google account, you consent to its processing solely
|
|
46
46
|
for registration and account verification purposes, in accordance with our
|
|
47
47
|
<router-link to="/privacy-policy">Privacy Policy</router-link>.
|
|
@@ -55,6 +55,7 @@
|
|
|
55
55
|
import InputText from "primevue/inputtext"
|
|
56
56
|
import Button from "primevue/button"
|
|
57
57
|
import Divider from "primevue/divider"
|
|
58
|
+
import Message from "primevue/message"
|
|
58
59
|
|
|
59
60
|
import { useRouter } from 'vue-router'
|
|
60
61
|
const router = useRouter()
|