@live-change/user-frontend 0.8.21 → 0.8.23
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/.nx/cache/file-map.json +77 -57
- package/.nx/cache/nx_files.nxt +0 -0
- package/LICENSE.md +11 -0
- package/front/src/App.vue +4 -0
- package/front/src/identification/UserIdentification.vue +7 -1
- package/front/src/locale/LocaleSettings.vue +72 -0
- package/front/src/locale/routes.js +12 -0
- package/front/src/router.js +3 -1
- package/front/src/settings/SettingsIndex.vue +2 -0
- package/front/src/settings/SettingsMenu.vue +2 -0
- package/front/src/utils/countries.js +1212 -0
- package/package.json +26 -26
package/.nx/cache/file-map.json
CHANGED
|
@@ -2,30 +2,30 @@
|
|
|
2
2
|
"version": "6.0",
|
|
3
3
|
"nxVersion": "18.0.6",
|
|
4
4
|
"deps": {
|
|
5
|
-
"@live-change/cli": "0.8.
|
|
6
|
-
"@live-change/dao": "0.8.
|
|
7
|
-
"@live-change/dao-vue3": "0.8.
|
|
8
|
-
"@live-change/dao-websocket": "0.8.
|
|
9
|
-
"@live-change/email-service": "0.8.
|
|
10
|
-
"@live-change/framework": "0.8.
|
|
11
|
-
"@live-change/identicon-service": "0.8.
|
|
12
|
-
"@live-change/image-frontend": "0.8.
|
|
13
|
-
"@live-change/message-authentication-service": "0.8.
|
|
14
|
-
"@live-change/notification-service": "0.8.
|
|
15
|
-
"@live-change/password-authentication-service": "0.8.
|
|
16
|
-
"@live-change/pattern": "0.8.
|
|
17
|
-
"@live-change/secret-code-service": "0.8.
|
|
18
|
-
"@live-change/secret-link-service": "0.8.
|
|
19
|
-
"@live-change/security-frontend": "0.8.
|
|
20
|
-
"@live-change/security-service": "0.8.
|
|
21
|
-
"@live-change/session-service": "0.8.
|
|
22
|
-
"@live-change/timer-service": "0.8.
|
|
23
|
-
"@live-change/upload-service": "0.8.
|
|
24
|
-
"@live-change/user-identification-service": "0.8.
|
|
25
|
-
"@live-change/user-service": "0.8.
|
|
26
|
-
"@live-change/vue3-components": "0.8.
|
|
27
|
-
"@live-change/vue3-ssr": "0.8.
|
|
28
|
-
"@vueuse/core": "^10.
|
|
5
|
+
"@live-change/cli": "0.8.22",
|
|
6
|
+
"@live-change/dao": "0.8.22",
|
|
7
|
+
"@live-change/dao-vue3": "0.8.22",
|
|
8
|
+
"@live-change/dao-websocket": "0.8.22",
|
|
9
|
+
"@live-change/email-service": "0.8.22",
|
|
10
|
+
"@live-change/framework": "0.8.22",
|
|
11
|
+
"@live-change/identicon-service": "0.8.22",
|
|
12
|
+
"@live-change/image-frontend": "0.8.22",
|
|
13
|
+
"@live-change/message-authentication-service": "0.8.22",
|
|
14
|
+
"@live-change/notification-service": "0.8.22",
|
|
15
|
+
"@live-change/password-authentication-service": "0.8.22",
|
|
16
|
+
"@live-change/pattern": "0.8.22",
|
|
17
|
+
"@live-change/secret-code-service": "0.8.22",
|
|
18
|
+
"@live-change/secret-link-service": "0.8.22",
|
|
19
|
+
"@live-change/security-frontend": "0.8.22",
|
|
20
|
+
"@live-change/security-service": "0.8.22",
|
|
21
|
+
"@live-change/session-service": "0.8.22",
|
|
22
|
+
"@live-change/timer-service": "0.8.22",
|
|
23
|
+
"@live-change/upload-service": "0.8.22",
|
|
24
|
+
"@live-change/user-identification-service": "0.8.22",
|
|
25
|
+
"@live-change/user-service": "0.8.22",
|
|
26
|
+
"@live-change/vue3-components": "0.8.22",
|
|
27
|
+
"@live-change/vue3-ssr": "0.8.22",
|
|
28
|
+
"@vueuse/core": "^10.9.0",
|
|
29
29
|
"codeceptjs-assert": "^0.0.5",
|
|
30
30
|
"codeceptjs-video-helper": "0.1.3",
|
|
31
31
|
"compression": "^1.7.4",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"vue-router": "^4.2.5",
|
|
44
44
|
"vue3-scroll-border": "0.1.6",
|
|
45
45
|
"wtfnode": "^0.9.1",
|
|
46
|
-
"@live-change/codeceptjs-helper": "0.8.
|
|
46
|
+
"@live-change/codeceptjs-helper": "0.8.22",
|
|
47
47
|
"codeceptjs": "^3.5.12",
|
|
48
48
|
"generate-password": "1.7.1",
|
|
49
49
|
"playwright": "^1.41.2",
|
|
@@ -62,11 +62,11 @@
|
|
|
62
62
|
},
|
|
63
63
|
{
|
|
64
64
|
"file": "build-stats/ssr-srcentryserverjs-outDir-distserver.html",
|
|
65
|
-
"hash": "
|
|
65
|
+
"hash": "17084642017258807740"
|
|
66
66
|
},
|
|
67
67
|
{
|
|
68
68
|
"file": "build-stats/ssrManifest-outDir-distclient.html",
|
|
69
|
-
"hash": "
|
|
69
|
+
"hash": "3717210539203410457"
|
|
70
70
|
},
|
|
71
71
|
{
|
|
72
72
|
"file": "e2e/codecept.conf.js",
|
|
@@ -134,7 +134,7 @@
|
|
|
134
134
|
},
|
|
135
135
|
{
|
|
136
136
|
"file": "front/components.d.ts",
|
|
137
|
-
"hash": "
|
|
137
|
+
"hash": "16126346593933999340"
|
|
138
138
|
},
|
|
139
139
|
{
|
|
140
140
|
"file": "front/index.html",
|
|
@@ -162,15 +162,15 @@
|
|
|
162
162
|
},
|
|
163
163
|
{
|
|
164
164
|
"file": "front/src/App.vue",
|
|
165
|
-
"hash": "
|
|
165
|
+
"hash": "9444669136274040524"
|
|
166
166
|
},
|
|
167
167
|
{
|
|
168
168
|
"file": "front/src/Index.vue",
|
|
169
|
-
"hash": "
|
|
169
|
+
"hash": "16358144147744436235"
|
|
170
170
|
},
|
|
171
171
|
{
|
|
172
172
|
"file": "front/src/NavBar.vue",
|
|
173
|
-
"hash": "
|
|
173
|
+
"hash": "9986696538250863687"
|
|
174
174
|
},
|
|
175
175
|
{
|
|
176
176
|
"file": "front/src/SettingsTabs.vue",
|
|
@@ -190,11 +190,11 @@
|
|
|
190
190
|
},
|
|
191
191
|
{
|
|
192
192
|
"file": "front/src/connected/Connected.vue",
|
|
193
|
-
"hash": "
|
|
193
|
+
"hash": "9003743983857262137"
|
|
194
194
|
},
|
|
195
195
|
{
|
|
196
196
|
"file": "front/src/connected/routes.js",
|
|
197
|
-
"hash": "
|
|
197
|
+
"hash": "3520804499341680062"
|
|
198
198
|
},
|
|
199
199
|
{
|
|
200
200
|
"file": "front/src/delete/Delete.vue",
|
|
@@ -222,7 +222,7 @@
|
|
|
222
222
|
},
|
|
223
223
|
{
|
|
224
224
|
"file": "front/src/identification/IdentificationSettings.vue",
|
|
225
|
-
"hash": "
|
|
225
|
+
"hash": "15002414951607988030"
|
|
226
226
|
},
|
|
227
227
|
{
|
|
228
228
|
"file": "front/src/identification/ObjectIdentification.vue",
|
|
@@ -230,12 +230,20 @@
|
|
|
230
230
|
},
|
|
231
231
|
{
|
|
232
232
|
"file": "front/src/identification/UserIdentification.vue",
|
|
233
|
-
"hash": "
|
|
233
|
+
"hash": "315380535873476393"
|
|
234
234
|
},
|
|
235
235
|
{
|
|
236
236
|
"file": "front/src/identification/routes.js",
|
|
237
237
|
"hash": "4602874923691672825"
|
|
238
238
|
},
|
|
239
|
+
{
|
|
240
|
+
"file": "front/src/locale/LocaleSettings.vue",
|
|
241
|
+
"hash": "8043550231211679672"
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
"file": "front/src/locale/routes.js",
|
|
245
|
+
"hash": "5875032803261464977"
|
|
246
|
+
},
|
|
239
247
|
{
|
|
240
248
|
"file": "front/src/message-auth/MessageLink.vue",
|
|
241
249
|
"hash": "10909658230086475069"
|
|
@@ -286,7 +294,7 @@
|
|
|
286
294
|
},
|
|
287
295
|
{
|
|
288
296
|
"file": "front/src/nav/UserMenu.vue",
|
|
289
|
-
"hash": "
|
|
297
|
+
"hash": "10869451801798490799"
|
|
290
298
|
},
|
|
291
299
|
{
|
|
292
300
|
"file": "front/src/notifications/NotificationButtons.vue",
|
|
@@ -298,7 +306,7 @@
|
|
|
298
306
|
},
|
|
299
307
|
{
|
|
300
308
|
"file": "front/src/notifications/NotificationsIcon.vue",
|
|
301
|
-
"hash": "
|
|
309
|
+
"hash": "4283053980969744770"
|
|
302
310
|
},
|
|
303
311
|
{
|
|
304
312
|
"file": "front/src/notifications/NotificationsList.vue",
|
|
@@ -306,7 +314,7 @@
|
|
|
306
314
|
},
|
|
307
315
|
{
|
|
308
316
|
"file": "front/src/notifications/NotificationsSettings.vue",
|
|
309
|
-
"hash": "
|
|
317
|
+
"hash": "7726744805095021051"
|
|
310
318
|
},
|
|
311
319
|
{
|
|
312
320
|
"file": "front/src/notifications/SimpleNotification.vue",
|
|
@@ -358,27 +366,35 @@
|
|
|
358
366
|
},
|
|
359
367
|
{
|
|
360
368
|
"file": "front/src/router.js",
|
|
361
|
-
"hash": "
|
|
369
|
+
"hash": "4992800822957455657"
|
|
362
370
|
},
|
|
363
371
|
{
|
|
364
372
|
"file": "front/src/settings/Settings.vue",
|
|
365
|
-
"hash": "
|
|
373
|
+
"hash": "4210271156015156233"
|
|
366
374
|
},
|
|
367
375
|
{
|
|
368
376
|
"file": "front/src/settings/SettingsIndex.vue",
|
|
369
|
-
"hash": "
|
|
377
|
+
"hash": "9952663497590369291"
|
|
370
378
|
},
|
|
371
379
|
{
|
|
372
380
|
"file": "front/src/settings/SettingsMenu.vue",
|
|
373
|
-
"hash": "
|
|
381
|
+
"hash": "11085205607791562405"
|
|
374
382
|
},
|
|
375
383
|
{
|
|
376
384
|
"file": "front/src/settings/SettingsMenuItem.vue",
|
|
377
385
|
"hash": "2209428044778557264"
|
|
378
386
|
},
|
|
379
387
|
{
|
|
380
|
-
"file": "front/src/sign/
|
|
381
|
-
"hash": "
|
|
388
|
+
"file": "front/src/sign/GoogleAuth.vue",
|
|
389
|
+
"hash": "339885639525588130"
|
|
390
|
+
},
|
|
391
|
+
{
|
|
392
|
+
"file": "front/src/sign/GoogleAuthReturn.vue",
|
|
393
|
+
"hash": "16033219181863400422"
|
|
394
|
+
},
|
|
395
|
+
{
|
|
396
|
+
"file": "front/src/sign/SignInEmail.vue",
|
|
397
|
+
"hash": "1815095713448644951"
|
|
382
398
|
},
|
|
383
399
|
{
|
|
384
400
|
"file": "front/src/sign/SignInFinished.vue",
|
|
@@ -386,31 +402,35 @@
|
|
|
386
402
|
},
|
|
387
403
|
{
|
|
388
404
|
"file": "front/src/sign/SignOut.vue",
|
|
389
|
-
"hash": "
|
|
405
|
+
"hash": "10076038879944742081"
|
|
390
406
|
},
|
|
391
407
|
{
|
|
392
408
|
"file": "front/src/sign/SignOutFinished.vue",
|
|
393
409
|
"hash": "15351856180816255084"
|
|
394
410
|
},
|
|
395
411
|
{
|
|
396
|
-
"file": "front/src/sign/
|
|
397
|
-
"hash": "
|
|
412
|
+
"file": "front/src/sign/SignUpEmail.vue",
|
|
413
|
+
"hash": "7973900439696159950"
|
|
398
414
|
},
|
|
399
415
|
{
|
|
400
416
|
"file": "front/src/sign/SignUpFinished.vue",
|
|
401
|
-
"hash": "
|
|
417
|
+
"hash": "15083286059095236347"
|
|
402
418
|
},
|
|
403
419
|
{
|
|
404
420
|
"file": "front/src/sign/routes.js",
|
|
405
|
-
"hash": "
|
|
421
|
+
"hash": "13520340671954201795"
|
|
406
422
|
},
|
|
407
423
|
{
|
|
408
|
-
"file": "front/
|
|
409
|
-
"hash": "
|
|
424
|
+
"file": "front/src/utils/countries.js",
|
|
425
|
+
"hash": "6201169448865628496"
|
|
410
426
|
},
|
|
411
427
|
{
|
|
412
|
-
"file": "front/
|
|
413
|
-
"hash": "
|
|
428
|
+
"file": "front/src/utils/googleApi.js",
|
|
429
|
+
"hash": "6876031073201770248"
|
|
430
|
+
},
|
|
431
|
+
{
|
|
432
|
+
"file": "front/vite.config.js",
|
|
433
|
+
"hash": "4207480426880236517"
|
|
414
434
|
},
|
|
415
435
|
{
|
|
416
436
|
"file": "index.js",
|
|
@@ -418,11 +438,11 @@
|
|
|
418
438
|
},
|
|
419
439
|
{
|
|
420
440
|
"file": "package.json",
|
|
421
|
-
"hash": "
|
|
441
|
+
"hash": "4486716430883503029"
|
|
422
442
|
},
|
|
423
443
|
{
|
|
424
444
|
"file": "server/app.config.js",
|
|
425
|
-
"hash": "
|
|
445
|
+
"hash": "6845178030219464653"
|
|
426
446
|
},
|
|
427
447
|
{
|
|
428
448
|
"file": "server/init-functions.js",
|
|
@@ -438,11 +458,11 @@
|
|
|
438
458
|
},
|
|
439
459
|
{
|
|
440
460
|
"file": "server/services.list.js",
|
|
441
|
-
"hash": "
|
|
461
|
+
"hash": "16537572580698486843"
|
|
442
462
|
},
|
|
443
463
|
{
|
|
444
464
|
"file": "server/start.js",
|
|
445
|
-
"hash": "
|
|
465
|
+
"hash": "8389694059221215231"
|
|
446
466
|
}
|
|
447
467
|
]
|
|
448
468
|
}
|
package/.nx/cache/nx_files.nxt
CHANGED
|
Binary file
|
package/LICENSE.md
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
Copyright 2019-2024 Michał Łaszczewski
|
|
2
|
+
|
|
3
|
+
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
|
4
|
+
|
|
5
|
+
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
|
6
|
+
|
|
7
|
+
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
|
8
|
+
|
|
9
|
+
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
|
|
10
|
+
|
|
11
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
package/front/src/App.vue
CHANGED
|
@@ -9,6 +9,10 @@
|
|
|
9
9
|
<script setup>
|
|
10
10
|
import 'primevue/resources/themes/lara-light-blue/theme.css'
|
|
11
11
|
|
|
12
|
+
import { useLocale } from '@live-change/vue3-components'
|
|
13
|
+
const locale = useLocale()
|
|
14
|
+
locale.captureLocale()
|
|
15
|
+
|
|
12
16
|
import NavBar from "./NavBar.vue"
|
|
13
17
|
import ViewRoot from "@live-change/frontend-base/ViewRoot.vue"
|
|
14
18
|
|
|
@@ -52,6 +52,10 @@
|
|
|
52
52
|
inline: {
|
|
53
53
|
type: Boolean,
|
|
54
54
|
default: false
|
|
55
|
+
},
|
|
56
|
+
anonymous: {
|
|
57
|
+
type: String,
|
|
58
|
+
default: ''
|
|
55
59
|
}
|
|
56
60
|
})
|
|
57
61
|
|
|
@@ -95,7 +99,9 @@
|
|
|
95
99
|
seed: ownerType + '_' + owner
|
|
96
100
|
}
|
|
97
101
|
|
|
98
|
-
const name = computed(() => userData.value?.name
|
|
102
|
+
const name = computed(() => userData.value?.name
|
|
103
|
+
|| props.anonymous
|
|
104
|
+
|| uniqueNamesGenerator(nameGeneratorConfig))
|
|
99
105
|
|
|
100
106
|
</script>
|
|
101
107
|
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="w-full lg:w-6 md:w-9">
|
|
3
|
+
|
|
4
|
+
<div class="surface-card border-round shadow-2 p-4">
|
|
5
|
+
<div class="text-900 font-medium mb-3 text-xl">Locale settings</div>
|
|
6
|
+
|
|
7
|
+
<command-form service="localeSettings" action="setOrUpdateMyLocaleSettings"
|
|
8
|
+
:initialValues="{
|
|
9
|
+
language: localeSettings.language,
|
|
10
|
+
dataTime: localeSettings.dataTime,
|
|
11
|
+
number: localeSettings.number,
|
|
12
|
+
plural: localeSettings.plural,
|
|
13
|
+
list: localeSettings.list,
|
|
14
|
+
relativeTime: localeSettings.relativeTime,
|
|
15
|
+
}"
|
|
16
|
+
v-slot="{ data }" keepOnDone @done="handleSettingsUpdated">
|
|
17
|
+
|
|
18
|
+
<div class="p-field mb-3">
|
|
19
|
+
<label for="title" class="block text-900 font-medium mb-2">
|
|
20
|
+
Language
|
|
21
|
+
</label>
|
|
22
|
+
<Dropdown v-model="data.language" :options="availableLocales"
|
|
23
|
+
:optionLabel="languageLabel" showClear
|
|
24
|
+
:filter="availableLocales.length > 10"
|
|
25
|
+
placeholder="Auto-detect"
|
|
26
|
+
class="w-full" />
|
|
27
|
+
<small v-if="data.languageError" id="language-help" class="p-error">{{ data.languageError }}</small>
|
|
28
|
+
</div>
|
|
29
|
+
|
|
30
|
+
<Button type="submit" label="Apply" class="mt-1" icon="pi pi-save" />
|
|
31
|
+
|
|
32
|
+
</command-form>
|
|
33
|
+
|
|
34
|
+
</div>
|
|
35
|
+
|
|
36
|
+
<!-- <p>available: {{ availableLocales }}</p>
|
|
37
|
+
<p>current: {{ locale }}</p>
|
|
38
|
+
<pre>{{ localeSettings }}</pre>-->
|
|
39
|
+
</div>
|
|
40
|
+
</template>
|
|
41
|
+
|
|
42
|
+
<script setup>
|
|
43
|
+
import { usePath, live, useApi } from '@live-change/vue3-ssr'
|
|
44
|
+
const api = useApi()
|
|
45
|
+
const path = usePath()
|
|
46
|
+
|
|
47
|
+
import { useToast } from 'primevue/usetoast'
|
|
48
|
+
import { useConfirm } from 'primevue/useconfirm'
|
|
49
|
+
const confirm = useConfirm()
|
|
50
|
+
const toast = useToast()
|
|
51
|
+
|
|
52
|
+
import { useI18n } from 'vue-i18n'
|
|
53
|
+
const { t, availableLocales, locale, getLocaleMessage } = useI18n()
|
|
54
|
+
|
|
55
|
+
function languageLabel(option) {
|
|
56
|
+
if(!option) return `Auto-detect (${navigator.language})`
|
|
57
|
+
return getLocaleMessage(option).languageName
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const localePath = path.localeSettings.myLocaleSettings({})
|
|
61
|
+
|
|
62
|
+
const [localeSettings] = await Promise.all([live(localePath)])
|
|
63
|
+
|
|
64
|
+
function handleSettingsUpdated({ parameters, result }) {
|
|
65
|
+
toast.add({ severity: 'success', summary: 'Settings updated', detail: 'Your locale settings have been saved' })
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
</script>
|
|
69
|
+
|
|
70
|
+
<style scoped>
|
|
71
|
+
|
|
72
|
+
</style>
|
package/front/src/router.js
CHANGED
|
@@ -11,6 +11,7 @@ import identificationRoutes from "./identification/routes.js"
|
|
|
11
11
|
import deleteRoutes from "./delete/routes.js"
|
|
12
12
|
import { passwordResetRoutes, passwordChangeRoutes } from "./password/routes.js"
|
|
13
13
|
import { notificationsSettingsRoutes, notificationsRoutes } from "./notifications/routes.js"
|
|
14
|
+
import localeSettingsRoutes from "./locale/routes.js"
|
|
14
15
|
|
|
15
16
|
import { dbAdminRoutes } from "@live-change/db-admin"
|
|
16
17
|
|
|
@@ -35,7 +36,8 @@ export function userRoutes(config = {}) {
|
|
|
35
36
|
...passwordChangeRoutes({ ...config, prefix: '' }),
|
|
36
37
|
...connectedRoutes({ ...config, prefix: '' }),
|
|
37
38
|
...identificationRoutes({ ...config, prefix: '' }),
|
|
38
|
-
...notificationsSettingsRoutes({ ...config, prefix: '' })
|
|
39
|
+
...notificationsSettingsRoutes({ ...config, prefix: '' }),
|
|
40
|
+
...localeSettingsRoutes({ ...config, prefix: '' })
|
|
39
41
|
]
|
|
40
42
|
})
|
|
41
43
|
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
<SettingsMenu class="h-full block md:hidden surface-section" />
|
|
4
4
|
|
|
5
5
|
<div class="flex-column flex-auto align-items-center p-5 hidden md:flex">
|
|
6
|
+
<LocaleSettings class="mb-5" />
|
|
6
7
|
<Connected class="mb-5" />
|
|
7
8
|
<ChangePassword />
|
|
8
9
|
</div>
|
|
@@ -14,6 +15,7 @@
|
|
|
14
15
|
|
|
15
16
|
import ChangePassword from "../password/ChangePassword.vue"
|
|
16
17
|
import Connected from "../connected/Connected.vue"
|
|
18
|
+
import LocaleSettings from '../locale/LocaleSettings.vue'
|
|
17
19
|
|
|
18
20
|
</script>
|
|
19
21
|
|
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
|
|
11
11
|
<SettingsMenuItem v-if="client.user" name="user:settings" icon="id-card" label="General Settings" class="hidden md:block" />
|
|
12
12
|
|
|
13
|
+
<SettingsMenuItem name="user:locale" icon="id-card" label="Language and Locale" class="hidden md:block" />
|
|
14
|
+
|
|
13
15
|
<!-- <SettingsMenuItem name="user:notificationsSettings" icon="exclamation-circle" label="Notifications" />-->
|
|
14
16
|
|
|
15
17
|
</ul>
|