@fishawack/lab-velocity 1.11.0 → 2.0.0-beta.1
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/README.md +13 -7
- package/_base.scss +1 -1
- package/_defaults.scss +2 -3
- package/_variables.scss +16 -18
- package/components/_alert.scss +2 -2
- package/components/_basic.scss +5 -4
- package/components/_breadcrumbs.scss +7 -8
- package/components/_button.scss +11 -12
- package/components/_cascader.scss +1 -1
- package/components/_checkbox.scss +27 -26
- package/components/_chip.scss +24 -0
- package/components/_collapse.scss +2 -3
- package/components/_datepicker.scss +7 -6
- package/components/_footer.scss +1 -1
- package/components/_form.scss +6 -4
- package/components/_header.scss +4 -5
- package/components/_icon.scss +4 -3
- package/components/_inputNumber.scss +4 -3
- package/components/_link.scss +7 -7
- package/components/_loader.scss +3 -4
- package/components/_menu.scss +22 -22
- package/components/_pageTitle.scss +3 -3
- package/components/_permissionLegend.scss +18 -0
- package/components/_select.scss +3 -2
- package/components/_sidebar.scss +5 -6
- package/components/_switch.scss +2 -2
- package/components/_table.scss +3 -3
- package/components/_tooltip.scss +2 -2
- package/components/_typography.scss +71 -62
- package/components/_upload.scss +1 -1
- package/components/_wysiwyg.scss +3 -2
- package/components/_wysiwyg2.scss +37 -31
- package/general.scss +1 -2
- package/index.js +38 -30
- package/modules/_AuthModule.scss +32 -29
- package/modules/_AuthVariables.scss +3 -3
- package/modules/_modal.scss +3 -3
- package/package.json +109 -102
- package/vendor.scss +2 -2
- package/AuthModule/components/AuthModal.vue +0 -110
- package/AuthModule/components/VPasswordValidation.vue +0 -66
- package/AuthModule/js/AuthAxios.js +0 -59
- package/AuthModule/js/AuthRoutes.js +0 -186
- package/AuthModule/js/AuthStore.js +0 -99
- package/AuthModule/js/FakeAPI.js +0 -84
- package/AuthModule/routes/account-exists.vue +0 -35
- package/AuthModule/routes/change-password.vue +0 -162
- package/AuthModule/routes/container.vue +0 -38
- package/AuthModule/routes/expired-reset.vue +0 -76
- package/AuthModule/routes/expired-verification.vue +0 -100
- package/AuthModule/routes/force-reset.vue +0 -142
- package/AuthModule/routes/forgot.vue +0 -87
- package/AuthModule/routes/login.vue +0 -138
- package/AuthModule/routes/logincallback.vue +0 -46
- package/AuthModule/routes/loginheadless.vue +0 -16
- package/AuthModule/routes/loginsso.vue +0 -127
- package/AuthModule/routes/logout.vue +0 -21
- package/AuthModule/routes/register.vue +0 -151
- package/AuthModule/routes/reset.vue +0 -123
- package/AuthModule/routes/success-forgot.vue +0 -117
- package/AuthModule/routes/success-reset.vue +0 -35
- package/AuthModule/routes/success-verify.vue +0 -29
- package/AuthModule/routes/verify.vue +0 -110
- package/Icon.vue +0 -33
- package/Svg.vue +0 -40
- package/basic/Button.vue +0 -111
- package/basic/link.vue +0 -63
- package/form/Cascader.vue +0 -85
- package/form/Checkbox.vue +0 -39
- package/form/CheckboxGroup.vue +0 -69
- package/form/DatePicker.vue +0 -100
- package/form/InputNumber.vue +0 -90
- package/form/Select.vue +0 -110
- package/form/Switch.vue +0 -63
- package/form/Upload.vue +0 -103
- package/form/Wysiwyg.vue +0 -127
- package/form/Wysiwyg2.vue +0 -278
- package/form/basic.vue +0 -88
- package/form/color.vue +0 -22
- package/form/file.vue +0 -89
- package/form/input.js +0 -79
- package/form/input.vue +0 -85
- package/layout/Alert.vue +0 -38
- package/layout/Footer.vue +0 -35
- package/layout/Header.vue +0 -15
- package/layout/Loader.vue +0 -39
- package/layout/Tooltip.vue +0 -46
- package/layout/pageTitle.vue +0 -18
- package/layout/sideBar.vue +0 -27
- package/navigation/Breadcrumbs.vue +0 -32
- package/navigation/BreadcrumbsItem.vue +0 -19
- package/navigation/Menu.vue +0 -16
- package/navigation/MenuItem.vue +0 -20
- package/navigation/MenuItemGroup.vue +0 -20
- package/navigation/SubMenu.vue +0 -20
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<h1 class="h2 h2--small">Register</h1>
|
|
3
|
-
<p class="AM-mb-3 AM-mt-2">Please enter your personal details to complete your registration.</p>
|
|
4
|
-
|
|
5
|
-
<form @submit.prevent="submit" :class="form.errors && form.errors.any() ? 'form error' : 'form'" id="memberLoginForm">
|
|
6
|
-
<el-input
|
|
7
|
-
class="AM-mb-2"
|
|
8
|
-
label="Full name"
|
|
9
|
-
placeholder="Enter your full name"
|
|
10
|
-
name="name"
|
|
11
|
-
required
|
|
12
|
-
v-model="form.name"
|
|
13
|
-
:error="form.errors"
|
|
14
|
-
/>
|
|
15
|
-
|
|
16
|
-
<el-input
|
|
17
|
-
class="AM-mb-2"
|
|
18
|
-
label="Email"
|
|
19
|
-
placeholder="Enter your email address"
|
|
20
|
-
name="email"
|
|
21
|
-
type="email"
|
|
22
|
-
required
|
|
23
|
-
v-model="form.email"
|
|
24
|
-
:error="form.errors"
|
|
25
|
-
/>
|
|
26
|
-
|
|
27
|
-
<el-input
|
|
28
|
-
class="AM-mb-2"
|
|
29
|
-
label="Password"
|
|
30
|
-
name="password"
|
|
31
|
-
placeholder="Create a unique password"
|
|
32
|
-
autocomplete="new-password"
|
|
33
|
-
type="password"
|
|
34
|
-
required
|
|
35
|
-
v-model="form.password"
|
|
36
|
-
:error="form.errors"
|
|
37
|
-
/>
|
|
38
|
-
|
|
39
|
-
<VPasswordValidation :password="form.password" @passwordValid="updatePasswordValidity" />
|
|
40
|
-
|
|
41
|
-
<!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
|
|
42
|
-
<div style="position: absolute; left: -5000px" aria-hidden="true">
|
|
43
|
-
<input
|
|
44
|
-
ref="honeypot"
|
|
45
|
-
type="text"
|
|
46
|
-
name="b_0e1715593ad9366bc5d3ad8be_7aca058f12"
|
|
47
|
-
tabindex="-1"
|
|
48
|
-
value=""
|
|
49
|
-
/>
|
|
50
|
-
</div>
|
|
51
|
-
|
|
52
|
-
<elButton
|
|
53
|
-
type="primary"
|
|
54
|
-
:disabled="loading || (form.name?.length < 1 || form.email?.length < 5 || !isPasswordValid)"
|
|
55
|
-
@click="onSubmit"
|
|
56
|
-
>
|
|
57
|
-
Register
|
|
58
|
-
</elButton>
|
|
59
|
-
|
|
60
|
-
<p class="disclaimer AM-mt-3">
|
|
61
|
-
Having trouble registering?
|
|
62
|
-
<a :href="contact" class="underline">Contact us</a>
|
|
63
|
-
</p>
|
|
64
|
-
</form>
|
|
65
|
-
</template>
|
|
66
|
-
|
|
67
|
-
<script>
|
|
68
|
-
import Form from "form-backend-validation";
|
|
69
|
-
|
|
70
|
-
export default {
|
|
71
|
-
data() {
|
|
72
|
-
return {
|
|
73
|
-
form: new Form(
|
|
74
|
-
{
|
|
75
|
-
name: '',
|
|
76
|
-
email: '',
|
|
77
|
-
password: '',
|
|
78
|
-
},
|
|
79
|
-
{ resetOnSuccess: false }
|
|
80
|
-
),
|
|
81
|
-
loading: false,
|
|
82
|
-
isPasswordValid: false,
|
|
83
|
-
contact: process.env.HYDRATE_CONTACT ?? 'mailto:EP@avalerehealth.com',
|
|
84
|
-
};
|
|
85
|
-
},
|
|
86
|
-
|
|
87
|
-
methods: {
|
|
88
|
-
async onSubmit() {
|
|
89
|
-
if (this.loading) return;
|
|
90
|
-
|
|
91
|
-
this.loading = true;
|
|
92
|
-
|
|
93
|
-
try {
|
|
94
|
-
const res = await this.form.post("/register");
|
|
95
|
-
|
|
96
|
-
if (res["logged-in"]) {
|
|
97
|
-
try {
|
|
98
|
-
await this.$store.dispatch("logout", {
|
|
99
|
-
errors: this.$root.errors,
|
|
100
|
-
});
|
|
101
|
-
} catch (e) {}
|
|
102
|
-
|
|
103
|
-
await this.form.post("/register");
|
|
104
|
-
|
|
105
|
-
}
|
|
106
|
-
if(res['redirect']) {
|
|
107
|
-
// Redirect here
|
|
108
|
-
this.$router.push({ name: `${this.$store.state.auth.authBase}.account-exists`, query: {company:res['company']} });
|
|
109
|
-
} else {
|
|
110
|
-
await this.postLogin();
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
} catch (e) {
|
|
114
|
-
this.$root.errors(e);
|
|
115
|
-
} finally {
|
|
116
|
-
this.loading = false;
|
|
117
|
-
}
|
|
118
|
-
},
|
|
119
|
-
|
|
120
|
-
async postLogin() {
|
|
121
|
-
this.$store.commit("setAuth", true);
|
|
122
|
-
|
|
123
|
-
const { data: user } = await this.$store.dispatch("getUser", {
|
|
124
|
-
errors: this.$root.errors,
|
|
125
|
-
});
|
|
126
|
-
|
|
127
|
-
if (window.dataLayer) {
|
|
128
|
-
window.dataLayer.push({ event: "login", user });
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
if (this.$store.state.auth.intended) {
|
|
132
|
-
this.$router.push(this.$store.state.auth.intended);
|
|
133
|
-
} else {
|
|
134
|
-
this.$router.push({ name: `${this.$store.state.auth.authBase}.verify` });
|
|
135
|
-
// Problem Here
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
this.$store.commit("setIntended", null);
|
|
139
|
-
},
|
|
140
|
-
updatePasswordValidity(isValid) {
|
|
141
|
-
this.isPasswordValid = isValid;
|
|
142
|
-
},
|
|
143
|
-
},
|
|
144
|
-
|
|
145
|
-
components: {
|
|
146
|
-
VPasswordValidation: require("./../components/VPasswordValidation.vue").default,
|
|
147
|
-
elInput: require('../../form/basic.vue').default,
|
|
148
|
-
elButton: require('../../basic/Button.vue').default,
|
|
149
|
-
},
|
|
150
|
-
};
|
|
151
|
-
</script>
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="relative">
|
|
3
|
-
<section id="resetPasswordForm">
|
|
4
|
-
<h1 class="h2 h2--small">Reset password</h1>
|
|
5
|
-
<form class="form" @submit.prevent="submit">
|
|
6
|
-
<div v-if="!form.successful">
|
|
7
|
-
<p class="AM-mt-2 AM-mb-0 AM-color-highlight">
|
|
8
|
-
<strong class="">Email: {{ form?.email }}</strong>
|
|
9
|
-
</p>
|
|
10
|
-
<p class="AM-mt-0.5">
|
|
11
|
-
Please create a new password. Passwords you have used previously aren’t permitted.
|
|
12
|
-
</p>
|
|
13
|
-
<el-input
|
|
14
|
-
v-model="form.password"
|
|
15
|
-
class="AM-mt-3"
|
|
16
|
-
label="New Password"
|
|
17
|
-
placeholder="Enter new password"
|
|
18
|
-
name="password"
|
|
19
|
-
:error="form.errors"
|
|
20
|
-
type="password"
|
|
21
|
-
autocomplete="new-password"
|
|
22
|
-
required
|
|
23
|
-
/>
|
|
24
|
-
|
|
25
|
-
<VPasswordValidation :password="form.password" @passwordValid="updatePasswordValidity" />
|
|
26
|
-
|
|
27
|
-
<el-input
|
|
28
|
-
class="hidden"
|
|
29
|
-
v-model="form.token"
|
|
30
|
-
name="token"
|
|
31
|
-
:error="form.errors"
|
|
32
|
-
type="hidden"
|
|
33
|
-
required
|
|
34
|
-
/>
|
|
35
|
-
|
|
36
|
-
<elButton
|
|
37
|
-
type="primary"
|
|
38
|
-
:disabled="form.processing || !isPasswordValid"
|
|
39
|
-
:loading="form.processing"
|
|
40
|
-
@click="onSubmit"
|
|
41
|
-
|
|
42
|
-
>
|
|
43
|
-
<span v-text="'Reset password'" />
|
|
44
|
-
</elButton>
|
|
45
|
-
</div>
|
|
46
|
-
<div v-else>
|
|
47
|
-
<h4 class="mt" v-text="`Success!`" />
|
|
48
|
-
<p v-text="`Your password has been reset.`" />
|
|
49
|
-
</div>
|
|
50
|
-
<p class="disclaimer AM-mt-3">
|
|
51
|
-
<router-link
|
|
52
|
-
class="color-1 underline"
|
|
53
|
-
:to="{ name: `${$store.state.auth.authBase}.login` }"
|
|
54
|
-
>
|
|
55
|
-
Back to Sign in
|
|
56
|
-
</router-link>
|
|
57
|
-
</p>
|
|
58
|
-
</form>
|
|
59
|
-
</section>
|
|
60
|
-
</div>
|
|
61
|
-
</template>
|
|
62
|
-
|
|
63
|
-
<script>
|
|
64
|
-
import Form from "form-backend-validation";
|
|
65
|
-
|
|
66
|
-
export default {
|
|
67
|
-
data() {
|
|
68
|
-
return {
|
|
69
|
-
form: new Form(
|
|
70
|
-
{
|
|
71
|
-
email: '',
|
|
72
|
-
password: '',
|
|
73
|
-
token: '',
|
|
74
|
-
},
|
|
75
|
-
{ resetOnSuccess: false }
|
|
76
|
-
),
|
|
77
|
-
isPasswordValid: false,
|
|
78
|
-
};
|
|
79
|
-
},
|
|
80
|
-
|
|
81
|
-
mounted() {
|
|
82
|
-
this.form.email = this.$route.query.email;
|
|
83
|
-
this.form.token = this.$route.query.token;
|
|
84
|
-
},
|
|
85
|
-
|
|
86
|
-
methods: {
|
|
87
|
-
async onSubmit() {
|
|
88
|
-
try {
|
|
89
|
-
const res = await this.form.post("/reset-password");
|
|
90
|
-
|
|
91
|
-
this.$router.push({
|
|
92
|
-
name: `${this.$store.state.auth.authBase}.success-reset`,
|
|
93
|
-
query: { email: this.form.email },
|
|
94
|
-
});
|
|
95
|
-
} catch (e) {
|
|
96
|
-
if (e.response && e.response.status === 422 && e.response.data.message === "This password reset token is invalid.") {
|
|
97
|
-
this.$router.push({
|
|
98
|
-
name: `${this.$store.state.auth.authBase}.expired-reset`,
|
|
99
|
-
query: { email: this.form.email },
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
this.$root.errors(e);
|
|
103
|
-
}
|
|
104
|
-
},
|
|
105
|
-
|
|
106
|
-
updatePasswordValidity(isValid) {
|
|
107
|
-
this.isPasswordValid = isValid;
|
|
108
|
-
},
|
|
109
|
-
},
|
|
110
|
-
|
|
111
|
-
metaInfo() {
|
|
112
|
-
return {
|
|
113
|
-
title: "Reset Password",
|
|
114
|
-
};
|
|
115
|
-
},
|
|
116
|
-
|
|
117
|
-
components: {
|
|
118
|
-
VPasswordValidation: require("./../components/VPasswordValidation.vue").default,
|
|
119
|
-
elInput: require('../../form/basic.vue').default,
|
|
120
|
-
elButton: require('../../basic/Button.vue').default,
|
|
121
|
-
},
|
|
122
|
-
};
|
|
123
|
-
</script>
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="relative">
|
|
3
|
-
<section id="forgotPasswordForm">
|
|
4
|
-
<h1 class="h2 h2--small">Reset password</h1>
|
|
5
|
-
|
|
6
|
-
<form class="form" @submit.prevent="submit">
|
|
7
|
-
<p class="AM-mt-2 AM-mb-0 AM-color-highlight">
|
|
8
|
-
<strong class="">Email: {{ form?.email }}</strong>
|
|
9
|
-
</p>
|
|
10
|
-
<p class="AM-mt">
|
|
11
|
-
If this account exists we have sent an email containing instructions for resetting the password. <strong>Please check your inbox.</strong>
|
|
12
|
-
</p>
|
|
13
|
-
<p class="AM-mt-3 AM-mb">
|
|
14
|
-
Haven’t received the email after 10 minutes?
|
|
15
|
-
</p>
|
|
16
|
-
|
|
17
|
-
<el-input
|
|
18
|
-
class="hidden"
|
|
19
|
-
v-model="form.email"
|
|
20
|
-
label="Email address"
|
|
21
|
-
name="email"
|
|
22
|
-
:error="form.errors"
|
|
23
|
-
type="email"
|
|
24
|
-
placeholder="Email"
|
|
25
|
-
required
|
|
26
|
-
/>
|
|
27
|
-
|
|
28
|
-
<elButton
|
|
29
|
-
type="primary"
|
|
30
|
-
:disabled="form.processing"
|
|
31
|
-
:loading="form.processing"
|
|
32
|
-
@click="onSubmit"
|
|
33
|
-
>
|
|
34
|
-
Re-send instructions
|
|
35
|
-
</elButton>
|
|
36
|
-
|
|
37
|
-
<p class="disclaimer AM-mt-3">
|
|
38
|
-
<router-link
|
|
39
|
-
class="color-1 underline"
|
|
40
|
-
:to="{ name: `${$store.state.auth.authBase}.login` }"
|
|
41
|
-
>
|
|
42
|
-
Back to Sign in
|
|
43
|
-
</router-link>
|
|
44
|
-
</p>
|
|
45
|
-
</form>
|
|
46
|
-
</section>
|
|
47
|
-
</div>
|
|
48
|
-
</template>
|
|
49
|
-
|
|
50
|
-
<script>
|
|
51
|
-
import Form from "form-backend-validation";
|
|
52
|
-
|
|
53
|
-
export default {
|
|
54
|
-
components: {
|
|
55
|
-
elInput: require('../../form/basic.vue').default,
|
|
56
|
-
elButton: require('../../basic/Button.vue').default,
|
|
57
|
-
},
|
|
58
|
-
data: () => ({
|
|
59
|
-
form: new Form(
|
|
60
|
-
{
|
|
61
|
-
email: "",
|
|
62
|
-
},
|
|
63
|
-
{ resetOnSuccess: false }
|
|
64
|
-
),
|
|
65
|
-
notification: null,
|
|
66
|
-
}),
|
|
67
|
-
|
|
68
|
-
methods: {
|
|
69
|
-
async onSubmit() {
|
|
70
|
-
try {
|
|
71
|
-
if (this.notification) {
|
|
72
|
-
this.notification.close();
|
|
73
|
-
this.notification = null;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
await this.form.post("/forgot-password");
|
|
77
|
-
|
|
78
|
-
this.$notify({
|
|
79
|
-
type: "success",
|
|
80
|
-
message: "Email has been re-sent",
|
|
81
|
-
duration: 10000,
|
|
82
|
-
class: 'el-notification--success el-notification--right-override'
|
|
83
|
-
});
|
|
84
|
-
} catch (e) {
|
|
85
|
-
if (e.response && e.response.status === 422) {
|
|
86
|
-
this.notification = this.$notify({
|
|
87
|
-
type: "warning",
|
|
88
|
-
message: 'Please allow 10 minutes before re-requesting',
|
|
89
|
-
duration: 0,
|
|
90
|
-
class: 'el-notification--warning el-notification--right-override'
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
this.$root.errors(e);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
},
|
|
98
|
-
},
|
|
99
|
-
|
|
100
|
-
mounted() {
|
|
101
|
-
this.form.email = this.$route.query.email;
|
|
102
|
-
|
|
103
|
-
// If a user has come here directly then send them off to the original forgot screen to enter an email
|
|
104
|
-
if (!this.form.email) {
|
|
105
|
-
this.$router.push({
|
|
106
|
-
name: `${this.$store.state.auth.authBase}.forgot`,
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
},
|
|
110
|
-
|
|
111
|
-
metaInfo() {
|
|
112
|
-
return {
|
|
113
|
-
title: "Forgot Password | Success",
|
|
114
|
-
};
|
|
115
|
-
},
|
|
116
|
-
};
|
|
117
|
-
</script>
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="relative">
|
|
3
|
-
<section id="resetPasswordForm">
|
|
4
|
-
<h1 class="h2 h2--small">Success</h1>
|
|
5
|
-
|
|
6
|
-
<p class="AM-mt-2 AM-mb-0 AM-color-highlight">
|
|
7
|
-
<strong class="">Email: {{ $route.query.email }}</strong>
|
|
8
|
-
</p>
|
|
9
|
-
<p class="AM-mt">
|
|
10
|
-
Your password has been reset. Please sign in to continue.
|
|
11
|
-
</p>
|
|
12
|
-
|
|
13
|
-
<elButton
|
|
14
|
-
tag="router-link"
|
|
15
|
-
type="primary"
|
|
16
|
-
:to="{name: `${$store.state.auth.authBase}.login`}"
|
|
17
|
-
>
|
|
18
|
-
<span v-text="'Sign in'" />
|
|
19
|
-
</elButton>
|
|
20
|
-
</section>
|
|
21
|
-
</div>
|
|
22
|
-
</template>
|
|
23
|
-
|
|
24
|
-
<script>
|
|
25
|
-
export default {
|
|
26
|
-
metaInfo() {
|
|
27
|
-
return {
|
|
28
|
-
title: "Reset Password | Success",
|
|
29
|
-
};
|
|
30
|
-
},
|
|
31
|
-
components: {
|
|
32
|
-
elButton: require('../../basic/Button.vue').default,
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
</script>
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<h1 class="h2 h2--small">Verification complete</h1>
|
|
3
|
-
<p class="mb-0"><strong>Welcome to {{ $store.state?.auth?.platformName }}, {{ $store.state?.auth?.user?.name }}!</strong></p>
|
|
4
|
-
<p>Your account has been verified successfully.</p>
|
|
5
|
-
|
|
6
|
-
<elButton
|
|
7
|
-
tag="router-link"
|
|
8
|
-
type="primary"
|
|
9
|
-
:to="{name: $store.state.auth.redirect}"
|
|
10
|
-
>
|
|
11
|
-
<span v-text="'Continue'" />
|
|
12
|
-
</elButton>
|
|
13
|
-
</template>
|
|
14
|
-
|
|
15
|
-
<script>
|
|
16
|
-
export default {
|
|
17
|
-
mounted(){
|
|
18
|
-
this.$store.commit("setAuth", true);
|
|
19
|
-
|
|
20
|
-
this.$store.dispatch("getUser", {
|
|
21
|
-
errors: this.$root.errors,
|
|
22
|
-
});
|
|
23
|
-
},
|
|
24
|
-
components: {
|
|
25
|
-
elButton: require('../../basic/Button.vue').default,
|
|
26
|
-
}
|
|
27
|
-
// Problem in this file
|
|
28
|
-
};
|
|
29
|
-
</script>
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<h1 class="h2 h2--small">Verify your email address</h1>
|
|
3
|
-
|
|
4
|
-
<form class="form" @submit.prevent="submit">
|
|
5
|
-
<p class="AM-mt-2 AM-mb-0 AM-color-highlight">
|
|
6
|
-
<strong class="">Email: {{ user?.email }}</strong>
|
|
7
|
-
</p>
|
|
8
|
-
<p class="AM-mt-0.5">
|
|
9
|
-
<strong>Please check your inbox</strong> for a Verification email from {{ $store.state?.auth?.platformName }}. Click the link in that email to verify your email address and complete your registration.
|
|
10
|
-
</p>
|
|
11
|
-
<p class="AM-mt-0.5 AM-mb-0">
|
|
12
|
-
Haven’t received the email after 10 minutes?
|
|
13
|
-
</p>
|
|
14
|
-
|
|
15
|
-
<el-input
|
|
16
|
-
class="hidden"
|
|
17
|
-
v-model="form.email"
|
|
18
|
-
label="Email address"
|
|
19
|
-
name="email"
|
|
20
|
-
:error="form.errors"
|
|
21
|
-
type="email"
|
|
22
|
-
placeholder="Email "
|
|
23
|
-
required
|
|
24
|
-
/>
|
|
25
|
-
|
|
26
|
-
<elButton
|
|
27
|
-
class="AM-mt AM-mb-3"
|
|
28
|
-
type="primary"
|
|
29
|
-
:disabled="form.processing"
|
|
30
|
-
:loading="form.processing"
|
|
31
|
-
@click="onSubmit"
|
|
32
|
-
>
|
|
33
|
-
Re-send verification link
|
|
34
|
-
</elButton>
|
|
35
|
-
|
|
36
|
-
<p class="disclaimer AM-mt-1.5">
|
|
37
|
-
Having trouble singing in?
|
|
38
|
-
<a :href="contact" class="underline">Contact us</a>
|
|
39
|
-
</p>
|
|
40
|
-
</form>
|
|
41
|
-
</template>
|
|
42
|
-
|
|
43
|
-
<script>
|
|
44
|
-
import Form from "form-backend-validation";
|
|
45
|
-
|
|
46
|
-
export default {
|
|
47
|
-
components: {
|
|
48
|
-
elInput: require('../../form/basic.vue').default,
|
|
49
|
-
elButton: require('../../basic/Button.vue').default,
|
|
50
|
-
},
|
|
51
|
-
data: () => ({
|
|
52
|
-
user: null,
|
|
53
|
-
form: new Form(
|
|
54
|
-
{
|
|
55
|
-
email: "",
|
|
56
|
-
},
|
|
57
|
-
{ resetOnSuccess: false }
|
|
58
|
-
),
|
|
59
|
-
notification: null,
|
|
60
|
-
contact: process.env.HYDRATE_CONTACT ?? 'mailto:EP@avalerehealth.com',
|
|
61
|
-
}),
|
|
62
|
-
|
|
63
|
-
methods: {
|
|
64
|
-
async onSubmit() {
|
|
65
|
-
try {
|
|
66
|
-
if (this.notification) {
|
|
67
|
-
this.notification.close();
|
|
68
|
-
this.notification = null;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
await this.form.post("/email/verification-notification");
|
|
72
|
-
|
|
73
|
-
this.$notify({
|
|
74
|
-
type: "success",
|
|
75
|
-
message: "Email has been re-sent",
|
|
76
|
-
duration: 10000,
|
|
77
|
-
class: 'el-notification--success el-notification--right-override'
|
|
78
|
-
});
|
|
79
|
-
} catch (e) {
|
|
80
|
-
if (e.response && e.response.status === 429) {
|
|
81
|
-
this.notification = this.$notify({
|
|
82
|
-
type: "warning",
|
|
83
|
-
message: 'Please allow 10 minutes before re-requesting',
|
|
84
|
-
duration: 0,
|
|
85
|
-
class: 'el-notification--warning el-notification--right-override'
|
|
86
|
-
});
|
|
87
|
-
} else if (e.response && e.response.status === 422) {
|
|
88
|
-
this.notification = this.$notify({
|
|
89
|
-
type: "error",
|
|
90
|
-
message: e.response.data.message,
|
|
91
|
-
duration: 0,
|
|
92
|
-
class: 'el-notification--error el-notification--right-override'
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
this.$root.errors(e);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
},
|
|
100
|
-
},
|
|
101
|
-
|
|
102
|
-
async mounted() {
|
|
103
|
-
this.user = await this.$store.dispatch("getUser", {
|
|
104
|
-
errors: this.$root.errors,
|
|
105
|
-
});
|
|
106
|
-
|
|
107
|
-
this.form.email = this.user.email;
|
|
108
|
-
},
|
|
109
|
-
};
|
|
110
|
-
</script>
|
package/Icon.vue
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="vel-icon">
|
|
3
|
-
<VSvg v-bind="$props" />
|
|
4
|
-
</div>
|
|
5
|
-
</template>
|
|
6
|
-
|
|
7
|
-
<script>
|
|
8
|
-
import VSvg from "./Svg.vue";
|
|
9
|
-
|
|
10
|
-
export default {
|
|
11
|
-
props: {
|
|
12
|
-
name: {
|
|
13
|
-
type: String,
|
|
14
|
-
required: true,
|
|
15
|
-
},
|
|
16
|
-
embed: {
|
|
17
|
-
type: Boolean,
|
|
18
|
-
default: false,
|
|
19
|
-
},
|
|
20
|
-
asis: {
|
|
21
|
-
type: Boolean,
|
|
22
|
-
default: false,
|
|
23
|
-
},
|
|
24
|
-
artboard: {
|
|
25
|
-
type: Boolean,
|
|
26
|
-
default: false,
|
|
27
|
-
},
|
|
28
|
-
},
|
|
29
|
-
components: {
|
|
30
|
-
VSvg
|
|
31
|
-
},
|
|
32
|
-
}
|
|
33
|
-
</script>
|
package/Svg.vue
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div
|
|
3
|
-
v-if="embed">
|
|
4
|
-
<component v-if="embed" :is="icon" class="vel-svg"/>
|
|
5
|
-
</div>
|
|
6
|
-
<svg v-else class="vel-svg">
|
|
7
|
-
<use :xlink:href="'#' + name" />
|
|
8
|
-
</svg>
|
|
9
|
-
</template>
|
|
10
|
-
|
|
11
|
-
<script>
|
|
12
|
-
import { defineAsyncComponent } from 'vue';
|
|
13
|
-
export default {
|
|
14
|
-
|
|
15
|
-
props: {
|
|
16
|
-
name: {
|
|
17
|
-
type: String,
|
|
18
|
-
required: true,
|
|
19
|
-
},
|
|
20
|
-
embed: {
|
|
21
|
-
type: Boolean,
|
|
22
|
-
default: false,
|
|
23
|
-
},
|
|
24
|
-
asis: {
|
|
25
|
-
type: Boolean,
|
|
26
|
-
default: false,
|
|
27
|
-
},
|
|
28
|
-
},
|
|
29
|
-
data() {
|
|
30
|
-
return {
|
|
31
|
-
icons: import.meta.glob(`../../handlebars/generated/embed/**/*.svg`, { query: '?component' })
|
|
32
|
-
}
|
|
33
|
-
},
|
|
34
|
-
computed: {
|
|
35
|
-
icon() {
|
|
36
|
-
return defineAsyncComponent(() => this.icons[`../../handlebars/generated/embed/svg${this.asis ? '--asis' : ''}--${this.name}.svg`]())
|
|
37
|
-
},
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
</script>
|