@sowell/quasar-app-extension-auth 1.2.4 → 1.4.0
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/package.json +1 -1
- package/src/assets/Background-logo.svg +9 -0
- package/src/assets/google-logo.svg +6 -0
- package/src/assets/sowell-min.svg +4 -0
- package/src/assets/warning.svg +5 -0
- package/src/components/ErrorMessage.vue +35 -0
- package/src/components/pages/AuthReporter.vue +253 -94
- package/src/i18n/en-US/index.ts +13 -9
- package/src/i18n/fr-FR/index.ts +19 -13
package/package.json
CHANGED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<svg width="363" height="609" viewBox="0 0 363 609" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M253.737 41.1186C242.82 17.5919 227.714 -0.175668 199.279 13.0581C172.748 25.4341 179.349 47.3679 189.124 68.5664C201.31 94.9114 212.608 121.624 226.191 152.625C162.974 145.273 111.816 153.973 67.1331 187.793C45.8069 203.845 33.6205 230.68 48.0918 248.57C62.5632 266.46 90.6172 268.543 113.974 250.163C125.145 241.341 138.982 234.234 152.819 230.067C195.344 217.446 232.792 228.229 261.607 260.088C289.535 290.967 294.612 327.238 274.936 363.998C254.626 401.984 220.351 419.506 176.176 417.178C120.575 414.36 82.8738 376.497 80.7158 318.415C79.5733 289.007 70.1797 270.504 41.237 272.219C12.2943 273.935 2.90064 302.24 1.12346 319.885C-1.28843 343.902 4.93171 373.433 18.6414 393.406C68.6564 465.579 123.368 534.689 178.969 608.7C228.222 546.82 272.524 489.719 318.35 433.72C367.35 374.046 375.601 310.45 344.246 240.85C329.013 206.908 257.672 49.696 253.737 41.1186ZM334.98 195.39C334.98 195.39 328.76 73.8354 326.729 33.7665C323.809 -23.7024 253.61 3.01024 267.574 38.1777C277.729 63.4199 334.98 195.39 334.98 195.39Z" fill="url(#paint0_linear_668_51249)"/>
|
|
3
|
+
<defs>
|
|
4
|
+
<linearGradient id="paint0_linear_668_51249" x1="9.99766" y1="531.332" x2="-55.5835" y2="-268.917" gradientUnits="userSpaceOnUse">
|
|
5
|
+
<stop stop-color="white"/>
|
|
6
|
+
<stop offset="1" stop-color="#41C4FF"/>
|
|
7
|
+
</linearGradient>
|
|
8
|
+
</defs>
|
|
9
|
+
</svg>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="17" viewBox="0 0 16 17" fill="none">
|
|
2
|
+
<path d="M15.754 7.37086H15.1499V7.33777H8.3999V10.5267H12.6385C12.0202 12.383 10.3585 13.7156 8.3999 13.7156C5.91478 13.7156 3.8999 11.5738 3.8999 8.93223C3.8999 6.29062 5.91478 4.14887 8.3999 4.14887C9.54703 4.14887 10.5907 4.60887 11.3853 5.36025L13.5067 3.1053C12.1672 1.77831 10.3754 0.959961 8.3999 0.959961C4.25803 0.959961 0.899902 4.52954 0.899902 8.93223C0.899902 13.3349 4.25803 16.9045 8.3999 16.9045C12.5418 16.9045 15.8999 13.3349 15.8999 8.93223C15.8999 8.39769 15.8482 7.8759 15.754 7.37086Z" fill="#FFC107"/>
|
|
3
|
+
<path d="M8.40002 16.9045C10.3373 16.9045 12.0975 16.1164 13.4284 14.8349L11.1071 12.747C10.3288 13.3761 9.37782 13.7164 8.40002 13.7156C6.44927 13.7156 4.79289 12.3934 4.16889 10.5482L1.72314 12.5512C2.96439 15.1331 5.48515 16.9045 8.40002 16.9045Z" fill="#4CAF50"/>
|
|
4
|
+
<path d="M15.754 7.37085H15.1499V7.33777H8.3999V10.5267H12.6385C12.3427 11.4102 11.8099 12.1822 11.1059 12.7473L11.107 12.7466L13.4283 14.8345C13.264 14.9931 15.8999 12.9184 15.8999 8.93222C15.8999 8.39768 15.8482 7.8759 15.754 7.37085Z" fill="#1976D2"/>
|
|
5
|
+
<path d="M1.76465 5.22154L4.22877 7.14245C4.89552 5.38776 6.51027 4.14887 8.3999 4.14887C9.54702 4.14887 10.5906 4.60887 11.3853 5.36025L13.5066 3.1053C12.1671 1.77831 10.3754 0.959961 8.3999 0.959961C5.51915 0.959961 3.0209 2.68875 1.76465 5.22154Z" fill="#FF3D00"/>
|
|
6
|
+
</svg>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="125" height="30" viewBox="0 0 125 30" fill="none">
|
|
2
|
+
<path d="M12.6499 2.01303C12.1043 0.852947 11.3494 -0.0231562 9.92835 0.62939C8.60246 1.23964 8.93235 2.32118 9.42083 3.36646C10.0299 4.66551 10.5945 5.98268 11.2733 7.51133C8.11398 7.14881 5.55736 7.5778 3.32428 9.24541C2.25849 10.0369 1.64947 11.3601 2.37269 12.2423C3.0959 13.1244 4.49791 13.2272 5.6652 12.3208C6.22347 11.8858 6.91497 11.5354 7.60646 11.3299C9.73169 10.7076 11.6032 11.2393 13.0432 12.8102C14.4389 14.3329 14.6927 16.1213 13.7094 17.9339C12.6943 19.807 10.9814 20.671 8.77375 20.5562C5.99509 20.4172 4.11093 18.5502 4.00308 15.6863C3.94599 14.2362 3.47654 13.3238 2.03011 13.4084C0.583686 13.493 0.114233 14.8887 0.0254171 15.7588C-0.0951182 16.943 0.215736 18.3992 0.900885 19.384C3.40041 22.9428 6.13466 26.3506 8.91332 30C11.3748 26.9487 13.5888 24.1331 15.879 21.3719C18.3278 18.4294 18.7401 15.2935 17.1732 11.8616C16.4119 10.188 12.8466 2.43598 12.6499 2.01303ZM16.7101 9.62002C16.7101 9.62002 16.3992 3.62627 16.2977 1.6505C16.1518 -1.18324 12.6436 0.133938 13.3414 1.86802C13.8489 3.11269 16.7101 9.62002 16.7101 9.62002Z" fill="#40C4FF"/>
|
|
3
|
+
<path d="M124.948 7.89416C125.227 5.35044 124.358 3.24175 122.899 2.7765C121.212 2.23876 119.334 3.35655 118.014 5.85193C115.565 10.4923 114.741 15.483 114.81 20.6249C114.836 22.3952 113.18 24.1897 111.391 24.1957C110.033 24.2018 109.177 23.1082 109.71 21.9722C109.945 21.4707 110.357 21.0478 110.674 20.5765C113.472 16.4437 115.902 12.1538 116.035 7.0966C116.079 5.38065 116.06 3.33842 113.808 2.79463C111.569 2.25688 110.357 3.85804 109.336 5.46524C109.107 5.82172 108.923 6.20237 108.739 6.58302C106.639 10.9756 105.764 15.6341 105.935 20.4013C106.011 22.4254 104.844 23.1142 103.417 23.809C101.812 24.5885 100.162 25.0235 98.5508 23.5613C99.9402 22.8846 101.304 22.3831 102.465 21.6037C104.172 20.4557 104.698 18.1295 103.842 16.5646C103.004 15.042 101.05 14.6432 98.7983 15.2111C97.1108 15.6341 95.3154 15.6945 93.241 15.9543C93.6279 14.4377 93.9324 13.4468 94.1164 12.4318C94.3004 11.4046 94.44 10.3593 94.459 9.32009C94.5161 6.58907 93.4249 5.01812 91.3631 4.71602C88.8636 4.34745 86.6813 5.76734 85.9961 8.32315C85.0636 11.7853 85.7805 14.8124 89.0032 17.199C88.2356 18.4437 87.6012 19.7004 86.7384 20.8001C85.717 22.1052 84.7337 23.9661 82.6782 23.4344C80.5974 22.9027 80.6291 20.8545 80.6609 19.217C80.737 15.187 81.0542 11.1629 81.143 7.1389C81.1557 6.48031 80.8829 4.98791 79.1447 5.01812C77.4064 5.04833 77.2605 7.33224 77.1209 7.79748C75.8902 11.7913 74.8308 15.8516 73.3145 19.7427C72.7436 21.2109 70.9038 23.4526 69.9522 23.3196C67.7826 23.0236 67.8651 20.5584 67.8905 18.8183C67.9412 14.9997 68.3345 11.1871 68.417 7.36245C68.4297 6.61928 68.0744 5.14501 66.6597 5.14501C64.8707 5.14501 64.433 6.74012 64.3949 7.28995C64.1475 10.7521 63.9318 15.3743 63.6908 18.9693C62.4727 19.7367 61.2356 19.8213 59.9859 19.8273C60.0493 16.3168 57.9495 15.1507 55.894 14.9211C53.7498 14.6855 51.9925 15.4528 50.711 17.0721C49.3153 18.8364 48.9093 20.8484 49.3597 23.0054C49.7784 25.0114 50.9077 26.4917 53.0836 26.9509C55.3802 27.4343 57.5815 26.8361 58.5775 24.8422C59.085 23.8332 59.656 22.1898 59.656 22.1898C59.656 22.1898 61.1722 22.4194 62.6123 22.0206C63.4751 21.7789 64.2681 21.3076 64.2681 21.3076C64.2681 21.3076 64.6994 22.794 64.9405 23.4465C66.5202 27.6699 70.1235 28.3648 73.3526 25.0416C73.9934 24.383 74.5453 23.6278 75.0211 22.8483C75.7126 21.7124 76.3026 20.5161 77.0385 19.1445C77.4001 20.7215 77.6094 22.0387 78.0091 23.2955C79.2842 27.3014 82.4562 28.395 85.8756 25.7365C87.8105 24.2259 89.5424 22.2743 90.7732 20.2079C91.8897 18.3349 92.9935 17.9059 95.0046 18.7518C94.4463 21.4224 93.9261 24.3045 96.8063 26.0627C100.334 28.2198 103.664 26.9449 106.709 24.8181C109.418 27.8995 111.271 27.9056 115.603 24.9147C117.995 27.2409 120.431 27.7424 122.525 26.2923C123.705 25.4706 124.282 24.4797 123.191 23.1082C122.861 23.223 122.569 23.2713 122.341 23.4103C121.256 24.0809 120.114 24.7335 118.978 23.6519C117.703 22.4314 118.953 21.501 119.594 20.5584C122.246 16.6612 124.428 12.5949 124.948 7.89416ZM55.6085 23.8876C55.2596 24.2199 53.8639 24.1051 53.4072 23.7063C51.6562 22.1837 52.6396 18.6551 54.7204 17.8878C54.5174 19.072 54.8726 20.2805 56.4967 21.217C56.8139 22.1233 56.1858 23.3377 55.6085 23.8876ZM90.3544 14.613C88.1721 12.6372 88.2736 10.7823 88.7114 8.95757C88.8319 8.45607 89.295 7.53767 90.1514 7.68873C91.0142 7.83978 91.1221 8.66755 91.0967 9.12675C90.9952 10.8064 90.6653 12.468 90.3544 14.613ZM98.0497 18.8485C98.4747 17.7609 99.9402 16.9271 100.962 17.3923C101.983 17.8576 101.215 19.3318 100.435 20.0871C99.6547 20.8424 97.8023 21.6097 97.8023 21.6097C97.8023 21.6097 97.5231 20.1959 98.0497 18.8485ZM112.698 5.36252C114.963 5.38669 111.854 13.9665 109.501 17.8455C109.672 13.4771 110.896 5.33835 112.698 5.36252ZM118.357 17.8757C117.805 15.5918 119.759 5.35648 121.56 5.38669C123.362 5.41086 120.729 13.9846 118.357 17.8757ZM42.0198 26.7515C45.1917 25.9963 47.0188 24.1172 47.2535 21.5493C47.5009 18.8847 46.34 17.2232 43.1617 15.8033C41.4425 15.0359 39.6535 14.3955 37.966 13.5677C36.3229 12.7641 35.6504 11.4288 36.3736 9.72491C37.0017 8.23856 39.8121 7.51351 42.2672 7.97875C44.2465 8.35336 44.8492 9.41072 44.7096 11.2717C44.6588 11.9122 45.528 12.613 45.9847 13.2837C46.7016 12.7399 47.8245 12.317 48.0592 11.6221C48.9664 8.92736 47.6913 6.48031 44.7794 5.70088C42.8635 5.1873 40.7256 5.09063 38.7336 5.25376C35.2317 5.54378 32.8147 7.6706 32.3579 10.3956C31.8631 13.2958 33.2968 15.3803 36.8938 16.9513C38.5559 17.6763 40.2815 18.2866 41.8929 19.0962C43.3774 19.8454 43.9483 21.0961 43.1426 22.6127C42.3306 24.1474 39.2157 24.7274 36.2721 24.1293C34.2103 23.7124 33.8424 22.5402 33.9566 20.7578C33.9946 20.2019 33.1509 19.1385 32.6497 19.1083C32.0026 19.066 30.9686 19.6642 30.6641 20.2502C29.6427 22.226 30.6514 25.0235 32.8147 25.9842C34.4324 26.7032 36.2721 26.9811 37.6234 27.3557C39.4251 27.1201 40.751 27.0536 42.0198 26.7515Z" fill="#40C4FF"/>
|
|
4
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
|
|
2
|
+
<path d="M4.01096 20.918H19.9888C20.2483 20.9179 20.5033 20.8506 20.729 20.7224C20.9547 20.5943 21.1433 20.4099 21.2763 20.1871C21.4094 19.9643 21.4824 19.7108 21.4881 19.4513C21.4939 19.1919 21.4323 18.9354 21.3092 18.7069L13.3208 3.87094C12.7541 2.81906 11.2456 2.81906 10.6789 3.87094L2.69049 18.7069C2.56747 18.9354 2.50583 19.1919 2.5116 19.4513C2.51737 19.7108 2.59035 19.9643 2.7234 20.1871C2.85646 20.4099 3.04504 20.5943 3.27072 20.7224C3.4964 20.8506 3.75146 20.9179 4.01096 20.918V20.918Z" stroke="#EF476F" stroke-linecap="round" stroke-linejoin="round"/>
|
|
3
|
+
<path d="M11.7306 9.15929L11.9997 14.878L12.2683 9.16163C12.27 9.12509 12.2642 9.08859 12.2512 9.05437C12.2383 9.02015 12.2185 8.98892 12.1931 8.9626C12.1677 8.93627 12.1372 8.9154 12.1035 8.90127C12.0698 8.88713 12.0335 8.88003 11.9969 8.88038V8.88038C11.961 8.88074 11.9255 8.88828 11.8925 8.90258C11.8595 8.91688 11.8297 8.93765 11.8049 8.96364C11.7801 8.98964 11.7607 9.02035 11.748 9.05395C11.7352 9.08755 11.7293 9.12337 11.7306 9.15929V9.15929Z" stroke="#EF476F" stroke-linecap="round" stroke-linejoin="round"/>
|
|
4
|
+
<path d="M12 18.6211C11.8146 18.6211 11.6333 18.5661 11.4792 18.4631C11.325 18.3601 11.2048 18.2137 11.1339 18.0424C11.0629 17.8711 11.0443 17.6826 11.0805 17.5007C11.1167 17.3188 11.206 17.1518 11.3371 17.0207C11.4682 16.8896 11.6352 16.8003 11.8171 16.7641C11.999 16.7279 12.1875 16.7465 12.3588 16.8175C12.5301 16.8884 12.6765 17.0086 12.7795 17.1627C12.8825 17.3169 12.9375 17.4982 12.9375 17.6836C12.9375 17.9322 12.8387 18.1707 12.6629 18.3465C12.4871 18.5223 12.2486 18.6211 12 18.6211Z" fill="#EF476F"/>
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="error-message-item">
|
|
3
|
+
<q-icon :name="icon" class="q-mr-xs" size="16px"/>
|
|
4
|
+
{{ message }}
|
|
5
|
+
</div>
|
|
6
|
+
</template>
|
|
7
|
+
|
|
8
|
+
<script lang="ts">
|
|
9
|
+
import { ionWarningOutline } from "@quasar/extras/ionicons-v5"
|
|
10
|
+
import { defineComponent } from "vue"
|
|
11
|
+
|
|
12
|
+
export default defineComponent({
|
|
13
|
+
name: "ErrorMessage",
|
|
14
|
+
props: {
|
|
15
|
+
message: {
|
|
16
|
+
type: String,
|
|
17
|
+
required: true
|
|
18
|
+
},
|
|
19
|
+
icon: {
|
|
20
|
+
type: String,
|
|
21
|
+
default: ionWarningOutline
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
})
|
|
25
|
+
</script>
|
|
26
|
+
|
|
27
|
+
<style scoped>
|
|
28
|
+
.error-message-item {
|
|
29
|
+
display: flex;
|
|
30
|
+
align-items: center;
|
|
31
|
+
font-size: 12px;
|
|
32
|
+
font-weight: 500;
|
|
33
|
+
color: #EF476F;
|
|
34
|
+
}
|
|
35
|
+
</style>
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<q-layout
|
|
3
|
-
|
|
2
|
+
<q-layout
|
|
3
|
+
class="column justify-start items-center q-pb-lg bg-white"
|
|
4
|
+
style="min-height: 100vh; max-width: 100vw; overflow-x: hidden">
|
|
5
|
+
<div class="background-logo-container">
|
|
6
|
+
<img
|
|
7
|
+
src="../../assets/Background-logo.svg"
|
|
8
|
+
class="background-logo"
|
|
9
|
+
alt="Background logo" />
|
|
10
|
+
</div>
|
|
11
|
+
<div class="row self-start">
|
|
12
|
+
<img src="../../assets/sowell-min.svg" class="sowell-logo" />
|
|
13
|
+
</div>
|
|
14
|
+
<div class="title text-uppercase self-start q-mx-lg">
|
|
15
|
+
{{ $t("auth.subtitle") }}
|
|
16
|
+
</div>
|
|
17
|
+
<div class="full-width">
|
|
4
18
|
<div class="column">
|
|
5
|
-
<div class="column justify-center" style="height: 35vh">
|
|
6
|
-
<div class="row justify-center">
|
|
7
|
-
<img
|
|
8
|
-
src="../../assets/Logo.svg"
|
|
9
|
-
class="q-mb-sm q-mr-md"
|
|
10
|
-
style="width: 27px; height: 47px" />
|
|
11
|
-
<img
|
|
12
|
-
src="../../assets/Sowell.svg"
|
|
13
|
-
class="q-mb-sm"
|
|
14
|
-
style="width: 146px; height: 38px" />
|
|
15
|
-
</div>
|
|
16
|
-
</div>
|
|
17
19
|
<div class="login-page">
|
|
18
20
|
<q-form @submit="handleSubmit">
|
|
19
|
-
<div>
|
|
20
|
-
<div
|
|
21
|
-
class="q-ml-xs q-mb-xs"
|
|
22
|
-
style="font-size: 14px; font-weight: 600">
|
|
21
|
+
<div style="margin-top: 20px" class="q-mx-lg input-container">
|
|
22
|
+
<div class="input-label">
|
|
23
23
|
{{ $t("auth.email") }}
|
|
24
24
|
</div>
|
|
25
25
|
<q-input
|
|
@@ -27,18 +27,20 @@
|
|
|
27
27
|
v-model.trim="email"
|
|
28
28
|
type="email"
|
|
29
29
|
borderless
|
|
30
|
+
dense
|
|
30
31
|
:rules="validations['email']"
|
|
32
|
+
placeholder="Yourname@gmail.com"
|
|
31
33
|
lazy-rules
|
|
32
|
-
|
|
34
|
+
class="q-px-none q-mt-sm"
|
|
35
|
+
:class="{ 'input-error': errorEmailMessage }"
|
|
36
|
+
:input-style="{ fontSize: '13px', fontWeight: '500' }">
|
|
33
37
|
<template #prepend>
|
|
34
|
-
<q-icon :name="icons.ionMailOutline" />
|
|
38
|
+
<q-icon :name="icons.ionMailOutline" color="#7E868E" />
|
|
35
39
|
</template>
|
|
36
40
|
</q-input>
|
|
37
41
|
</div>
|
|
38
|
-
<div>
|
|
39
|
-
<div
|
|
40
|
-
class="q-ml-xs q-mb-xs"
|
|
41
|
-
style="font-size: 14px; font-weight: 600">
|
|
42
|
+
<div class="q-mx-lg q-mt-md input-container">
|
|
43
|
+
<div class="input-label">
|
|
42
44
|
{{ $t("auth.password") }}
|
|
43
45
|
</div>
|
|
44
46
|
<q-input
|
|
@@ -46,10 +48,13 @@
|
|
|
46
48
|
v-model="password"
|
|
47
49
|
:type="showPassword ? 'text' : 'password'"
|
|
48
50
|
:rules="validations['password']"
|
|
51
|
+
placeholder="********"
|
|
49
52
|
lazy-rules
|
|
50
53
|
borderless
|
|
51
54
|
dense
|
|
52
|
-
|
|
55
|
+
class="q-px-none q-mt-sm"
|
|
56
|
+
:class="{ 'input-error': errorPasswordMessage }"
|
|
57
|
+
:input-style="{ fontSize: '13px', fontWeight: '500' }">
|
|
53
58
|
<template #prepend>
|
|
54
59
|
<q-icon :name="icons.ionLockClosedOutline" />
|
|
55
60
|
</template>
|
|
@@ -65,72 +70,82 @@
|
|
|
65
70
|
</template>
|
|
66
71
|
</q-input>
|
|
67
72
|
</div>
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
class="q-pl-sm text-red column justify-center error_input">
|
|
71
|
-
<div>{{ errorEmailMessage }}</div>
|
|
72
|
-
<div>{{ errorPasswordMessage }}</div>
|
|
73
|
-
</div>
|
|
74
|
-
<div class="column items-center q-mt-lg">
|
|
73
|
+
|
|
74
|
+
<div class="column items-center q-mx-lg button-container">
|
|
75
75
|
<div class="full-width">
|
|
76
76
|
<q-btn
|
|
77
77
|
data-cy="submit-login"
|
|
78
78
|
color="primary"
|
|
79
79
|
unelevated
|
|
80
|
+
no-caps
|
|
80
81
|
text-color="white"
|
|
81
82
|
:loading="loading"
|
|
82
83
|
type="submit"
|
|
83
|
-
class="full-width q-mt-
|
|
84
|
+
class="full-width q-mt-md login-button"
|
|
84
85
|
:disable="isSubmitBtnDisabled()">
|
|
85
|
-
<div style="font-weight:
|
|
86
|
+
<div style="font-weight: 500; font-size: 18px">
|
|
86
87
|
{{ $t("auth.login") }}
|
|
87
88
|
</div>
|
|
88
89
|
</q-btn>
|
|
89
90
|
</div>
|
|
90
91
|
<div
|
|
91
|
-
class="
|
|
92
|
+
class="forgot-password-link self-start"
|
|
93
|
+
style="font-weight: 500; margin: 12px 0"
|
|
92
94
|
@click="forgottenPassword = true"
|
|
93
95
|
data-testid="ask-password-change-btn"
|
|
94
|
-
data-cy="forgot-password"
|
|
95
|
-
style="font-size: 14px; cursor: pointer; width: 350px">
|
|
96
|
+
data-cy="forgot-password">
|
|
96
97
|
{{ $t("auth.forgottenPassword") }}
|
|
97
98
|
</div>
|
|
98
|
-
<div
|
|
99
|
-
<
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
"></div>
|
|
111
|
-
<div class="text-weight-bold">{{ $t("common.or") }}</div>
|
|
112
|
-
<div
|
|
113
|
-
style="
|
|
114
|
-
width: 35%;
|
|
115
|
-
border: 1px solid #bcc3c7;
|
|
116
|
-
height: 1px;
|
|
117
|
-
"></div>
|
|
118
|
-
</div>
|
|
119
|
-
<q-btn
|
|
120
|
-
data-cy="submit-sso-login"
|
|
121
|
-
:label="$t('auth.msalLogin')"
|
|
122
|
-
color="primary"
|
|
99
|
+
<div class="full-width">
|
|
100
|
+
<q-separator color="#727272" />
|
|
101
|
+
</div>
|
|
102
|
+
<div
|
|
103
|
+
class="q-mb-sm q-mt-md forgot-password-link self-start text-weight-medium">
|
|
104
|
+
{{ $t("auth.continueWith") }}
|
|
105
|
+
</div>
|
|
106
|
+
|
|
107
|
+
<div class="row justify-between full-width items-center">
|
|
108
|
+
<!-- <q-btn
|
|
109
|
+
data-testid="google-btn"
|
|
110
|
+
unelevated
|
|
123
111
|
no-caps
|
|
112
|
+
dense
|
|
113
|
+
class="col sso-btn btn-label"
|
|
114
|
+
style="margin-right: 4px !important;">
|
|
115
|
+
<img src="../../assets/google-logo.svg" class="btn-icon" />
|
|
116
|
+
Google
|
|
117
|
+
</q-btn> -->
|
|
118
|
+
<q-btn
|
|
119
|
+
data-testid="microsoft-button"
|
|
124
120
|
unelevated
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
121
|
+
no-caps
|
|
122
|
+
dense
|
|
123
|
+
class="col sso-btn btn-label"
|
|
124
|
+
@click="msalAuth">
|
|
125
|
+
<img src="../../assets/logo-microsoft.svg" class="btn-icon" />
|
|
126
|
+
Microsoft
|
|
127
|
+
</q-btn>
|
|
132
128
|
</div>
|
|
133
129
|
</div>
|
|
130
|
+
<div class="error-message-container">
|
|
131
|
+
<div
|
|
132
|
+
v-if="errorEmailMessage || errorPasswordMessage"
|
|
133
|
+
class="text-red column justify-center error_input">
|
|
134
|
+
<ErrorMessage
|
|
135
|
+
v-if="errorEmailMessage && !errorPasswordMessage"
|
|
136
|
+
:message="errorEmailMessage"
|
|
137
|
+
class="error-message-item" />
|
|
138
|
+
<ErrorMessage
|
|
139
|
+
v-if="errorPasswordMessage && !errorEmailMessage"
|
|
140
|
+
:message="errorPasswordMessage"
|
|
141
|
+
class="error-message-item" />
|
|
142
|
+
<ErrorMessage
|
|
143
|
+
v-if="errorEmailMessage && errorPasswordMessage"
|
|
144
|
+
:message="$t('auth.emailOrPasswordIncorrect')"
|
|
145
|
+
class="error-message-item" />
|
|
146
|
+
</div>
|
|
147
|
+
<div v-else class="error-placeholder q-mt-sm"></div>
|
|
148
|
+
</div>
|
|
134
149
|
</q-form>
|
|
135
150
|
</div>
|
|
136
151
|
</div>
|
|
@@ -170,15 +185,14 @@
|
|
|
170
185
|
</q-dialog>
|
|
171
186
|
</div>
|
|
172
187
|
</div>
|
|
173
|
-
<
|
|
174
|
-
<
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
</q-footer>
|
|
188
|
+
<div class="row justify-between full-width items-center q-px-md q-mt-auto">
|
|
189
|
+
<div class="row justify-end footer-text" @click="goToPrivacyPolicy" style="cursor: pointer">
|
|
190
|
+
{{ $t("common.privacyPolicy") }}
|
|
191
|
+
</div>
|
|
192
|
+
<div class="row justify-end footer-text">
|
|
193
|
+
{{ `VERSION ${appVersion.versionNumber}` }}
|
|
194
|
+
</div>
|
|
195
|
+
</div>
|
|
182
196
|
</q-layout>
|
|
183
197
|
</template>
|
|
184
198
|
|
|
@@ -187,14 +201,13 @@ import { defineComponent, reactive, onMounted, computed } from "vue"
|
|
|
187
201
|
import * as packageInfo from "app/package.json"
|
|
188
202
|
import SendEmail from "../dialogs/SendEmail.vue"
|
|
189
203
|
import SowellMessage from "../dialogs/Message.vue"
|
|
204
|
+
import ErrorMessage from "../ErrorMessage.vue"
|
|
190
205
|
import { useAuth } from "composables/auth"
|
|
191
206
|
import { AxiosError } from "axios"
|
|
192
|
-
import MicrosoftLogo from "../../assets/logo-microsoft.svg"
|
|
193
|
-
import { useQuasar } from "quasar"
|
|
194
207
|
|
|
195
208
|
export default defineComponent({
|
|
196
209
|
name: "Auth",
|
|
197
|
-
components: { SendEmail, SowellMessage },
|
|
210
|
+
components: { SendEmail, SowellMessage, ErrorMessage },
|
|
198
211
|
setup() {
|
|
199
212
|
const {
|
|
200
213
|
email,
|
|
@@ -221,8 +234,6 @@ export default defineComponent({
|
|
|
221
234
|
goToOtpValidation
|
|
222
235
|
} = useAuth()
|
|
223
236
|
|
|
224
|
-
const { localStorage } = useQuasar()
|
|
225
|
-
|
|
226
237
|
const handleSubmit = () => {
|
|
227
238
|
onSubmit()
|
|
228
239
|
}
|
|
@@ -258,12 +269,14 @@ export default defineComponent({
|
|
|
258
269
|
}
|
|
259
270
|
}
|
|
260
271
|
|
|
272
|
+
const goToPrivacyPolicy = () => {
|
|
273
|
+
window.open("https://sowell.app/privacy-policy-sowell/", "_blank")
|
|
274
|
+
}
|
|
275
|
+
|
|
261
276
|
onMounted(() => {
|
|
262
277
|
appVersion.versionNumber = packageInfo.version
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
email.value = lastUserEmail
|
|
266
|
-
}
|
|
278
|
+
const lastUserEmail = localStorage.getItem("lastUser")
|
|
279
|
+
if (lastUserEmail) email.value = lastUserEmail
|
|
267
280
|
})
|
|
268
281
|
|
|
269
282
|
return {
|
|
@@ -287,25 +300,171 @@ export default defineComponent({
|
|
|
287
300
|
msalLoading,
|
|
288
301
|
USE_SSO,
|
|
289
302
|
msalAuth,
|
|
290
|
-
MicrosoftLogo,
|
|
291
303
|
handleSubmit,
|
|
292
|
-
resetPassword
|
|
304
|
+
resetPassword,
|
|
305
|
+
goToPrivacyPolicy
|
|
293
306
|
}
|
|
294
307
|
}
|
|
295
308
|
})
|
|
296
309
|
</script>
|
|
297
310
|
|
|
298
311
|
<style>
|
|
299
|
-
.
|
|
300
|
-
|
|
312
|
+
.background-logo-container {
|
|
313
|
+
position: fixed;
|
|
314
|
+
top: -53px;
|
|
315
|
+
left: 0;
|
|
316
|
+
width: 100%;
|
|
317
|
+
height: 100vh;
|
|
318
|
+
display: flex;
|
|
319
|
+
justify-content: center;
|
|
320
|
+
align-items: center;
|
|
321
|
+
opacity: 0.25;
|
|
322
|
+
overflow: hidden;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
.background-logo {
|
|
326
|
+
width: 100%;
|
|
327
|
+
height: 100%;
|
|
328
|
+
object-fit: cover;
|
|
329
|
+
max-width: 100%;
|
|
330
|
+
max-height: 100vh;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
.sowell-logo {
|
|
334
|
+
padding: 40px 0 0 20px;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
.title {
|
|
338
|
+
margin-top: 120px;
|
|
339
|
+
font-size: 36px;
|
|
340
|
+
font-weight: 700;
|
|
341
|
+
|
|
342
|
+
color: #41c4ff;
|
|
343
|
+
line-height: normal;
|
|
344
|
+
z-index: 1;
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
div.q-field__control {
|
|
348
|
+
padding: 0;
|
|
349
|
+
border: 1px solid #d5d7da;
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
.q-field--with-bottom {
|
|
353
|
+
padding-bottom: 0;
|
|
301
354
|
}
|
|
355
|
+
|
|
356
|
+
.login-button {
|
|
357
|
+
border-radius: 15px;
|
|
358
|
+
height: 50px;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
.forgot-password-link {
|
|
362
|
+
font-size: 10px;
|
|
363
|
+
cursor: pointer;
|
|
364
|
+
color: #001d3d;
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
.q-separator {
|
|
368
|
+
height: 1px;
|
|
369
|
+
background-color: #e5e7eb;
|
|
370
|
+
opacity: 1;
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
.btn-label {
|
|
374
|
+
font-size: 12px;
|
|
375
|
+
font-weight: 600;
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
.btn-icon {
|
|
379
|
+
width: 16px;
|
|
380
|
+
height: 16px;
|
|
381
|
+
margin-right: 8px;
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
.sso-btn {
|
|
385
|
+
background: #ebeeef;
|
|
386
|
+
color: #112240;
|
|
387
|
+
height: 36px;
|
|
388
|
+
}
|
|
389
|
+
|
|
302
390
|
.error_input {
|
|
303
|
-
height:
|
|
304
|
-
border-radius:
|
|
305
|
-
background: #
|
|
391
|
+
min-height: 50px;
|
|
392
|
+
border-radius: 11px;
|
|
393
|
+
background: #fbd9e1;
|
|
394
|
+
padding: 6px 16px;
|
|
395
|
+
display: flex;
|
|
396
|
+
flex-direction: column;
|
|
397
|
+
gap: 6px;
|
|
306
398
|
}
|
|
307
399
|
|
|
308
400
|
.login-page .q-field__messages {
|
|
309
401
|
display: none;
|
|
310
402
|
}
|
|
403
|
+
|
|
404
|
+
.login-page .q-field--error .q-field__append .q-icon:not(.cursor-pointer) {
|
|
405
|
+
display: none;
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
.input-error .q-field__control {
|
|
409
|
+
border: 1px solid #ff8b87 !important;
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
.error-placeholder {
|
|
413
|
+
min-height: 50px;
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
.error-message-container {
|
|
417
|
+
margin: 24px;
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
.footer-text {
|
|
421
|
+
font-size: 10px;
|
|
422
|
+
font-weight: 500;
|
|
423
|
+
color: #4d616a;
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
.input-label {
|
|
427
|
+
font-size: 12px;
|
|
428
|
+
font-weight: 700;
|
|
429
|
+
margin-bottom: 4px;
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
@media (max-width: 389px) {
|
|
433
|
+
.title {
|
|
434
|
+
margin-top: 80px;
|
|
435
|
+
font-size: 28px;
|
|
436
|
+
margin-left: 16px;
|
|
437
|
+
margin-right: 16px;
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
.sowell-logo {
|
|
441
|
+
padding: 12px 0 0 16px;
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
.login-page .input-container, .login-page .button-container {
|
|
445
|
+
margin-left: 16px !important;
|
|
446
|
+
margin-right: 16px !important;
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
.error-message-container {
|
|
450
|
+
margin: 16px;
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
.login-button {
|
|
454
|
+
height: 40px;
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
.login-button div {
|
|
458
|
+
font-size: 14px !important;
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
.error_input {
|
|
462
|
+
min-height: 50px;
|
|
463
|
+
padding: 4px 12px;
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
.error-placeholder {
|
|
467
|
+
min-height: 25px;
|
|
468
|
+
}
|
|
469
|
+
}
|
|
311
470
|
</style>
|
package/src/i18n/en-US/index.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
auth: {
|
|
3
3
|
title: "Log in to access the management interface",
|
|
4
|
+
subtitle: "Login",
|
|
4
5
|
email: "Email",
|
|
5
6
|
password: "Password",
|
|
6
7
|
forgottenPassword: "Forgotten password",
|
|
@@ -16,18 +17,21 @@ export default {
|
|
|
16
17
|
tapEmail: "Please enter your email",
|
|
17
18
|
404: "No user found with the provided credentials",
|
|
18
19
|
403: "Insufficient rights, your account does not allow access to this interface",
|
|
19
|
-
passwordRecovery:
|
|
20
|
-
newPassword:
|
|
20
|
+
passwordRecovery: "Password recovery",
|
|
21
|
+
newPassword: "New password",
|
|
21
22
|
newPasswordConfirmationFailed: "The passwords you typed don't match",
|
|
22
|
-
passwordRecoverySuccess:
|
|
23
|
-
passwordRecoveryFailed:
|
|
24
|
-
passwordRecoveryExpiredLink:
|
|
25
|
-
passwordRecoveryInvalidLink:
|
|
23
|
+
passwordRecoverySuccess: "Your password has been updated",
|
|
24
|
+
passwordRecoveryFailed: "An error occured while updating your password",
|
|
25
|
+
passwordRecoveryExpiredLink: "The link expired",
|
|
26
|
+
passwordRecoveryInvalidLink: "the link is invalid",
|
|
27
|
+
continueWith: "Or continue with",
|
|
28
|
+
emailOrPasswordIncorrect: "Email or password incorrect"
|
|
26
29
|
},
|
|
27
30
|
common: {
|
|
28
31
|
register: "Save",
|
|
29
32
|
send: "Send",
|
|
30
33
|
cancel: "Cancel",
|
|
31
|
-
or: "or"
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
+
or: "or",
|
|
35
|
+
privacyPolicy: "Privacy policy"
|
|
36
|
+
}
|
|
37
|
+
}
|
package/src/i18n/fr-FR/index.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
auth: {
|
|
3
|
-
title: "Connectez vous",
|
|
4
|
-
|
|
3
|
+
title: "Connectez vous extension",
|
|
4
|
+
subtitle: "Connexion",
|
|
5
|
+
email: "Email extension",
|
|
5
6
|
password: "Mot de passe",
|
|
6
7
|
forgottenPassword: "Mot de passe oublié",
|
|
7
|
-
login: "
|
|
8
|
+
login: "Se connecter",
|
|
8
9
|
msalLogin: "Se connecter avec Microsoft",
|
|
9
10
|
emailPresenceError: "L'adresse email doit être fournie",
|
|
10
11
|
emailValidationError: "L'adresse email fournie est invalide",
|
|
@@ -16,18 +17,23 @@ export default {
|
|
|
16
17
|
tapEmail: "Entrer votre email",
|
|
17
18
|
404: "Aucun utilisateur trouvé avec les identifiants donnés",
|
|
18
19
|
403: "Droits insuffisants, votre compte ne permet pas d'acceder à cette interface",
|
|
19
|
-
passwordRecovery:
|
|
20
|
-
newPassword:
|
|
21
|
-
newPasswordConfirmationFailed:
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
passwordRecovery: "Récupération de mot de passe",
|
|
21
|
+
newPassword: "Nouveau mot de passe",
|
|
22
|
+
newPasswordConfirmationFailed:
|
|
23
|
+
"Les mot de passes que vous avez saisi ne correspondent pas",
|
|
24
|
+
passwordRecoverySuccess: "Votre mot de passe a été mis à jour",
|
|
25
|
+
passwordRecoveryFailed:
|
|
26
|
+
"Une erreur s'est produite lors de la mise à jour de votre mot de passe",
|
|
27
|
+
passwordRecoveryExpiredLink: "Lien de récupération expiré",
|
|
28
|
+
passwordRecoveryInvalidLink: "Lien de récupération invalide",
|
|
29
|
+
continueWith: "Ou continuer avec",
|
|
30
|
+
emailOrPasswordIncorrect: "Email ou mot de passe incorrect"
|
|
26
31
|
},
|
|
27
32
|
common: {
|
|
28
33
|
register: "Enregistrer",
|
|
29
34
|
send: "Envoyer",
|
|
30
35
|
cancel: "Annuler",
|
|
31
|
-
or: "ou"
|
|
32
|
-
|
|
33
|
-
}
|
|
36
|
+
or: "ou",
|
|
37
|
+
privacyPolicy: "Politique de confidentialité"
|
|
38
|
+
}
|
|
39
|
+
}
|