bfg-common 1.5.440 → 1.5.442
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/assets/localization/local_be.json +1 -0
- package/assets/localization/local_en.json +1 -0
- package/assets/localization/local_hy.json +1 -0
- package/assets/localization/local_kk.json +1 -0
- package/assets/localization/local_ru.json +1 -0
- package/assets/localization/local_zh.json +1 -0
- package/components/common/countdownTimer/CountdownTimer.vue +15 -26
- package/components/common/countdownTimer/CountdownTimerNew.vue +53 -0
- package/components/common/countdownTimer/CountdownTimerOld.vue +33 -0
- package/components/common/layout/theHeader/modals/{Reconnect.vue → reconnect/Reconnect.vue} +43 -56
- package/components/common/layout/theHeader/modals/reconnect/ReconnectNew.vue +74 -0
- package/components/common/layout/theHeader/modals/reconnect/ReconnectOld.vue +67 -0
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSize.vue +23 -23
- package/package.json +1 -1
@@ -1233,6 +1233,7 @@
|
|
1233
1233
|
"recommendations": "Рэкамендацыі",
|
1234
1234
|
"recommended": "рэкамендуецца",
|
1235
1235
|
"reconnect": "Паўторна падлучыцца",
|
1236
|
+
"reconnectDesc": "Ваша сесія скончыцца праз:",
|
1236
1237
|
"redirectUrls": "URL-адрасы перанакіравання",
|
1237
1238
|
"reduceEnergyConsumptionAtTheRisk": "Скароціце спажыванне энергіі з рызыкай зніжэння прадукцыйнасці",
|
1238
1239
|
"reduceEnergyConsumptionWithMin": "Паменшыце спажыванне энергіі з мінімальным кампрамісам у прадукцыйнасці",
|
@@ -1232,6 +1232,7 @@
|
|
1232
1232
|
"recommendations": "Recommendations",
|
1233
1233
|
"recommended": "recommended",
|
1234
1234
|
"reconnect": "Reconnect",
|
1235
|
+
"reconnectDesc": "Your session is about to expire after:",
|
1235
1236
|
"redirectUrls": "Redirect URLs",
|
1236
1237
|
"reduceEnergyConsumptionAtTheRisk": "Reduce energy consumption at the risk of lower performance",
|
1237
1238
|
"reduceEnergyConsumptionWithMin": "Reduce energy consumption with minimal performance compromise",
|
@@ -1232,6 +1232,7 @@
|
|
1232
1232
|
"recommendations": "Առաջարկություններ",
|
1233
1233
|
"recommended": "խորհուրդ է տրվում",
|
1234
1234
|
"reconnect": "Կրկին Միացեք",
|
1235
|
+
"reconnectDesc": "Ձեր սեսիան կավարտվի հետո՝",
|
1235
1236
|
"redirectUrls": "Վերահղման URL-ներ",
|
1236
1237
|
"reduceEnergyConsumptionAtTheRisk": "Նվազեցնել էներգիայի սպառումը ցածր արդյունավետության վտանգի դեպքում",
|
1237
1238
|
"reduceEnergyConsumptionWithMin": "Նվազեցնել էներգիայի սպառումը նվազագույն կատարողականի փոխզիջումով",
|
@@ -1232,6 +1232,7 @@
|
|
1232
1232
|
"recommendations": "Ұсыныстар",
|
1233
1233
|
"recommended": "ұсынылады",
|
1234
1234
|
"reconnect": "Қайта қосылу",
|
1235
|
+
"reconnectDesc": "Сіздің сессияңыз мына уақыттан кейін аяқталады:",
|
1235
1236
|
"redirectUrls": "Қайта бағыттау URL мекенжайлары",
|
1236
1237
|
"reduceEnergyConsumptionAtTheRisk": "Төмен өнімділік қаупімен қуат тұтынуды азайтыңыз",
|
1237
1238
|
"reduceEnergyConsumptionWithMin": "Өнімділіктің ең аз төмендеуімен қуат тұтынуды азайтыңыз",
|
@@ -1232,6 +1232,7 @@
|
|
1232
1232
|
"recommendations": "Рекомендации",
|
1233
1233
|
"recommended": "рекомендуемый",
|
1234
1234
|
"reconnect": "Повторно подключиться",
|
1235
|
+
"reconnectDesc": "Ваша сессия завершится через:",
|
1235
1236
|
"redirectUrls": "URL-адреса перенаправления",
|
1236
1237
|
"reduceEnergyConsumptionAtTheRisk": "Снижение энергопотребления с риском снижения производительности",
|
1237
1238
|
"reduceEnergyConsumptionWithMin": "Снижение энергопотребления с минимальным снижением производительности",
|
@@ -1231,6 +1231,7 @@
|
|
1231
1231
|
"recommendations": "建议",
|
1232
1232
|
"recommended": "受到推崇的",
|
1233
1233
|
"reconnect": "重新连接",
|
1234
|
+
"reconnectDesc": "您的会话将在以下时间后过期:",
|
1234
1235
|
"redirectUrls": "重定向 URL",
|
1235
1236
|
"reduceEnergyConsumptionAtTheRisk": "以降低性能的風險降低能耗",
|
1236
1237
|
"reduceEnergyConsumptionWithMin": "以最小的性能妥協降低能耗",
|
@@ -1,26 +1,28 @@
|
|
1
1
|
<template>
|
2
|
-
<
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
>
|
9
|
-
</h3>
|
10
|
-
</div>
|
2
|
+
<common-countdown-timer-new
|
3
|
+
v-if="isNewView"
|
4
|
+
:minutes="minutes"
|
5
|
+
:seconds="seconds"
|
6
|
+
/>
|
7
|
+
<common-countdown-timer-old v-else :minutes="minutes" :seconds="seconds" />
|
11
8
|
</template>
|
12
9
|
|
13
10
|
<script lang="ts" setup>
|
14
|
-
import type { UI_I_Localization } from '~/lib/models/interfaces'
|
15
|
-
|
16
11
|
const props = defineProps<{
|
17
12
|
timer: number
|
18
13
|
totalTime: number
|
19
14
|
}>()
|
20
15
|
|
21
|
-
const
|
16
|
+
const { $store }: any = useNuxtApp()
|
17
|
+
|
18
|
+
const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
|
22
19
|
|
23
20
|
const secondsInMinute = 60
|
21
|
+
|
22
|
+
const formatTime = (time: number): string => {
|
23
|
+
return (time < 10 ? '0' : '') + time
|
24
|
+
}
|
25
|
+
|
24
26
|
const minutes = computed<string>(() => {
|
25
27
|
if (!props.timer) return '00'
|
26
28
|
const minutes = Math.floor(props.totalTime / secondsInMinute)
|
@@ -32,19 +34,6 @@ const seconds = computed<string>(() => {
|
|
32
34
|
const seconds = props.totalTime - +minutes.value * secondsInMinute
|
33
35
|
return formatTime(seconds)
|
34
36
|
})
|
35
|
-
|
36
|
-
const formatTime = (time: number): string => {
|
37
|
-
return (time < 10 ? '0' : '') + time
|
38
|
-
}
|
39
37
|
</script>
|
40
38
|
|
41
|
-
<style lang="scss" scoped>
|
42
|
-
.countdown-timer {
|
43
|
-
&__inner {
|
44
|
-
padding-top: 12px;
|
45
|
-
& > span {
|
46
|
-
font-size: 40px;
|
47
|
-
}
|
48
|
-
}
|
49
|
-
}
|
50
|
-
</style>
|
39
|
+
<style lang="scss" scoped></style>
|
@@ -0,0 +1,53 @@
|
|
1
|
+
<template>
|
2
|
+
<div class="countdown-timer-container flex items-center justify-center">
|
3
|
+
<div class="inner-block">
|
4
|
+
<span class="value">{{ props.minutes }}:{{ props.seconds }}</span>
|
5
|
+
<span class="seconds-text">{{ localization.common.seconds }}</span>
|
6
|
+
</div>
|
7
|
+
</div>
|
8
|
+
</template>
|
9
|
+
|
10
|
+
<script lang="ts" setup>
|
11
|
+
import type { UI_I_Localization } from '~/lib/models/interfaces'
|
12
|
+
|
13
|
+
const props = defineProps<{
|
14
|
+
minutes: string
|
15
|
+
seconds: string
|
16
|
+
}>()
|
17
|
+
|
18
|
+
const localization = computed<UI_I_Localization>(() => useLocal())
|
19
|
+
</script>
|
20
|
+
|
21
|
+
<style>
|
22
|
+
:root {
|
23
|
+
--countdown-time-block-bg: #e9ebed66;
|
24
|
+
--countdown-time-value-color: #182531;
|
25
|
+
}
|
26
|
+
:root.dark-theme {
|
27
|
+
--countdown-time-block-bg: #e9ebed0f;
|
28
|
+
--countdown-time-value-color: #e9eaec;
|
29
|
+
}
|
30
|
+
</style>
|
31
|
+
|
32
|
+
<style lang="scss" scoped>
|
33
|
+
.countdown-timer-container {
|
34
|
+
border-radius: 8px;
|
35
|
+
background-color: var(--countdown-time-block-bg);
|
36
|
+
|
37
|
+
.inner-block {
|
38
|
+
margin: 16px 0;
|
39
|
+
|
40
|
+
.value {
|
41
|
+
font-weight: 500;
|
42
|
+
font-size: 40px;
|
43
|
+
color: var(--countdown-time-value-color);
|
44
|
+
}
|
45
|
+
.seconds-text {
|
46
|
+
font-weight: 400;
|
47
|
+
font-size: 16px;
|
48
|
+
color: #9da6ad;
|
49
|
+
margin-left: 6px;
|
50
|
+
}
|
51
|
+
}
|
52
|
+
}
|
53
|
+
</style>
|
@@ -0,0 +1,33 @@
|
|
1
|
+
<template>
|
2
|
+
<div class="countdown-timer">
|
3
|
+
<h3 class="countdown-timer__inner">
|
4
|
+
<span class="countdown-timer__minutes">{{ props.minutes }}</span>
|
5
|
+
<span class="countdown-timer__separator">:</span>
|
6
|
+
<span class="countdown-timer__seconds"
|
7
|
+
>{{ props.seconds }} {{ localization.common.seconds }}</span
|
8
|
+
>
|
9
|
+
</h3>
|
10
|
+
</div>
|
11
|
+
</template>
|
12
|
+
|
13
|
+
<script lang="ts" setup>
|
14
|
+
import type { UI_I_Localization } from '~/lib/models/interfaces'
|
15
|
+
|
16
|
+
const props = defineProps<{
|
17
|
+
minutes: string
|
18
|
+
seconds: string
|
19
|
+
}>()
|
20
|
+
|
21
|
+
const localization = computed<UI_I_Localization>(() => useLocal())
|
22
|
+
</script>
|
23
|
+
|
24
|
+
<style lang="scss" scoped>
|
25
|
+
.countdown-timer {
|
26
|
+
&__inner {
|
27
|
+
padding-top: 12px;
|
28
|
+
& > span {
|
29
|
+
font-size: 40px;
|
30
|
+
}
|
31
|
+
}
|
32
|
+
}
|
33
|
+
</style>
|
@@ -1,73 +1,71 @@
|
|
1
1
|
<template>
|
2
|
-
<
|
3
|
-
|
4
|
-
:
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
data-id="logout-button"
|
21
|
-
class="btn btn-outline"
|
22
|
-
@click="onLogout"
|
23
|
-
>
|
24
|
-
{{ localization.common.logout }}
|
25
|
-
</button>
|
26
|
-
|
27
|
-
<button
|
28
|
-
id="reconnect-button"
|
29
|
-
data-id="reconnect-button"
|
30
|
-
class="btn btn-primary"
|
31
|
-
@click="onReconnect"
|
32
|
-
>
|
33
|
-
{{ localization.common.reconnect }}
|
34
|
-
</button>
|
35
|
-
</template>
|
36
|
-
</atoms-modal>
|
2
|
+
<common-layout-the-header-modals-reconnect-new
|
3
|
+
v-if="isNewView"
|
4
|
+
:is-show="isShow"
|
5
|
+
:title="title"
|
6
|
+
:timer="timer"
|
7
|
+
:total-time="totalTime"
|
8
|
+
@logout="onLogout"
|
9
|
+
@reconnect="onReconnect"
|
10
|
+
/>
|
11
|
+
<common-layout-the-header-modals-reconnect-old
|
12
|
+
v-else
|
13
|
+
:is-show="isShow"
|
14
|
+
:title="title"
|
15
|
+
:timer="timer"
|
16
|
+
:total-time="totalTime"
|
17
|
+
@logout="onLogout"
|
18
|
+
@reconnect="onReconnect"
|
19
|
+
/>
|
37
20
|
</template>
|
38
21
|
|
39
22
|
<script lang="ts" setup>
|
40
23
|
import type { UI_I_Localization } from '~/lib/models/interfaces'
|
41
24
|
|
42
|
-
const localization = computed<UI_I_Localization>(() => useLocal())
|
43
25
|
const { $store }: any = useNuxtApp()
|
44
26
|
|
27
|
+
const localization = computed<UI_I_Localization>(() => useLocal())
|
28
|
+
|
29
|
+
const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
|
30
|
+
|
45
31
|
const isShow = computed<boolean>(
|
46
32
|
() => $store.getters['main/isShowReconnectModal']
|
47
33
|
)
|
48
|
-
const hideModal = (): void => {
|
49
|
-
$store.dispatch('main/A_SHOW_RECONNECT_MODAL', false)
|
50
|
-
}
|
51
34
|
|
52
|
-
const
|
35
|
+
const title = ref<string>(localization.value.common.connectionTimeout)
|
36
|
+
|
53
37
|
const timer = ref<NodeJS.Timer | null>(null)
|
38
|
+
const totalTime = ref<number>(60)
|
54
39
|
const countdown = (): void => {
|
55
40
|
totalTime.value--
|
56
41
|
if (totalTime.value === 0) {
|
57
42
|
endTimer()
|
58
43
|
}
|
59
44
|
}
|
60
|
-
|
61
|
-
|
45
|
+
|
46
|
+
const resetTimer = (): void => {
|
47
|
+
timer.value !== null && clearInterval(timer.value)
|
48
|
+
totalTime.value = 60
|
62
49
|
}
|
63
|
-
|
64
|
-
|
50
|
+
|
51
|
+
const hideModal = (): void => {
|
52
|
+
$store.dispatch('main/A_SHOW_RECONNECT_MODAL', false)
|
65
53
|
}
|
54
|
+
|
66
55
|
const onLogout = async (): Promise<void> => {
|
67
56
|
await $store.dispatch('auth/A_LOGOUT')
|
68
57
|
resetTimer()
|
69
58
|
hideModal()
|
70
59
|
}
|
60
|
+
|
61
|
+
const endTimer = (): void => {
|
62
|
+
onLogout()
|
63
|
+
}
|
64
|
+
|
65
|
+
const startTimer = (): void => {
|
66
|
+
timer.value = setInterval(() => countdown(), 1000)
|
67
|
+
}
|
68
|
+
|
71
69
|
const onReconnect = async (): Promise<void> => {
|
72
70
|
location.reload()
|
73
71
|
// await $store.dispatch('auth/A_REFRESH')
|
@@ -75,10 +73,6 @@ const onReconnect = async (): Promise<void> => {
|
|
75
73
|
hideModal()
|
76
74
|
}
|
77
75
|
|
78
|
-
const resetTimer = (): void => {
|
79
|
-
timer.value !== null && clearInterval(timer.value)
|
80
|
-
totalTime.value = 60
|
81
|
-
}
|
82
76
|
watch(
|
83
77
|
isShow,
|
84
78
|
(newValue) => {
|
@@ -88,11 +82,4 @@ watch(
|
|
88
82
|
)
|
89
83
|
</script>
|
90
84
|
|
91
|
-
<style lang="scss" scoped>
|
92
|
-
.connection-timeout {
|
93
|
-
&__body {
|
94
|
-
text-align: center;
|
95
|
-
margin: 15px 0;
|
96
|
-
}
|
97
|
-
}
|
98
|
-
</style>
|
85
|
+
<style lang="scss" scoped></style>
|
@@ -0,0 +1,74 @@
|
|
1
|
+
<template>
|
2
|
+
<ui-modal
|
3
|
+
:show="props.isShow"
|
4
|
+
:title="props.title"
|
5
|
+
:texts="modalTexts"
|
6
|
+
test-id="reconnect-modal"
|
7
|
+
size="sm"
|
8
|
+
width="560px"
|
9
|
+
@hide="emits('logout')"
|
10
|
+
@submit="emits('reconnect')"
|
11
|
+
>
|
12
|
+
<template #content>
|
13
|
+
<div class="reconnect-content">
|
14
|
+
<div class="icon-content flex items-center gap-2">
|
15
|
+
<span class="icon-sessions"></span>
|
16
|
+
<span class="description-text">{{
|
17
|
+
localization.common.reconnectDesc
|
18
|
+
}}</span>
|
19
|
+
</div>
|
20
|
+
<div class="timer-block mt-4">
|
21
|
+
<common-countdown-timer
|
22
|
+
:timer="props.timer"
|
23
|
+
:total-time="props.totalTime"
|
24
|
+
/>
|
25
|
+
</div>
|
26
|
+
</div>
|
27
|
+
</template>
|
28
|
+
<template #footerLeftContent>
|
29
|
+
<span></span>
|
30
|
+
</template>
|
31
|
+
</ui-modal>
|
32
|
+
</template>
|
33
|
+
|
34
|
+
<script lang="ts" setup>
|
35
|
+
import type { UI_I_ModalTexts } from '~/node_modules/bfg-uikit/components/ui/modal/models/interfaces'
|
36
|
+
import type { UI_I_Localization } from '~/lib/models/interfaces'
|
37
|
+
|
38
|
+
const props = defineProps<{
|
39
|
+
isShow: boolean
|
40
|
+
title: string
|
41
|
+
timer: NodeJS.Timer | null
|
42
|
+
totalTime: number
|
43
|
+
}>()
|
44
|
+
|
45
|
+
const emits = defineEmits<{
|
46
|
+
(event: 'logout'): void
|
47
|
+
(event: 'reconnect'): void
|
48
|
+
}>()
|
49
|
+
|
50
|
+
const localization = computed<UI_I_Localization>(() => useLocal())
|
51
|
+
|
52
|
+
const modalTexts = ref<UI_I_ModalTexts>({
|
53
|
+
button1: localization.value.auth.logout,
|
54
|
+
button2: localization.value.common.reconnect,
|
55
|
+
})
|
56
|
+
</script>
|
57
|
+
|
58
|
+
<style lang="scss" scoped>
|
59
|
+
.reconnect-content {
|
60
|
+
padding: 16px 32px 8px 32px;
|
61
|
+
|
62
|
+
.icon-content {
|
63
|
+
.icon-sessions {
|
64
|
+
width: 24px;
|
65
|
+
height: 24px;
|
66
|
+
}
|
67
|
+
.description-text {
|
68
|
+
font-size: 14px;
|
69
|
+
font-weight: 400;
|
70
|
+
color: #9da6ad;
|
71
|
+
}
|
72
|
+
}
|
73
|
+
}
|
74
|
+
</style>
|
@@ -0,0 +1,67 @@
|
|
1
|
+
<template>
|
2
|
+
<atoms-modal
|
3
|
+
:show="props.isShow"
|
4
|
+
:title="props.title"
|
5
|
+
test-id="connection-timeout-reconnect-modal"
|
6
|
+
width="580px"
|
7
|
+
class="connection-timeout"
|
8
|
+
is-hide-close-icon
|
9
|
+
>
|
10
|
+
<template #modalBody>
|
11
|
+
<div class="connection-timeout__body">
|
12
|
+
<span>{{ localization.common.yourSessionExpireAfter }}:</span>
|
13
|
+
<common-countdown-timer
|
14
|
+
:timer="props.timer"
|
15
|
+
:total-time="props.totalTime"
|
16
|
+
/>
|
17
|
+
</div>
|
18
|
+
</template>
|
19
|
+
|
20
|
+
<template #modalFooter>
|
21
|
+
<button
|
22
|
+
id="logout-button"
|
23
|
+
data-id="logout-button"
|
24
|
+
class="btn btn-outline"
|
25
|
+
@click="emits('logout')"
|
26
|
+
>
|
27
|
+
{{ localization.common.logout }}
|
28
|
+
</button>
|
29
|
+
|
30
|
+
<button
|
31
|
+
id="reconnect-button"
|
32
|
+
data-id="reconnect-button"
|
33
|
+
class="btn btn-primary"
|
34
|
+
@click="emits('reconnect')"
|
35
|
+
>
|
36
|
+
{{ localization.common.reconnect }}
|
37
|
+
</button>
|
38
|
+
</template>
|
39
|
+
</atoms-modal>
|
40
|
+
</template>
|
41
|
+
|
42
|
+
<script lang="ts" setup>
|
43
|
+
import type { UI_I_Localization } from '~/lib/models/interfaces'
|
44
|
+
|
45
|
+
const props = defineProps<{
|
46
|
+
isShow: boolean
|
47
|
+
title: string
|
48
|
+
timer: NodeJS.Timer | null
|
49
|
+
totalTime: number
|
50
|
+
}>()
|
51
|
+
|
52
|
+
const emits = defineEmits<{
|
53
|
+
(event: 'logout'): void
|
54
|
+
(event: 'reconnect'): void
|
55
|
+
}>()
|
56
|
+
|
57
|
+
const localization = computed<UI_I_Localization>(() => useLocal())
|
58
|
+
</script>
|
59
|
+
|
60
|
+
<style lang="scss" scoped>
|
61
|
+
.connection-timeout {
|
62
|
+
&__body {
|
63
|
+
text-align: center;
|
64
|
+
margin: 15px 0;
|
65
|
+
}
|
66
|
+
}
|
67
|
+
</style>
|
@@ -1,23 +1,23 @@
|
|
1
|
-
<template>
|
2
|
-
<common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-maximum-size-new
|
3
|
-
v-if="isNewView"
|
4
|
-
:free-gb="freeGb"
|
5
|
-
/>
|
6
|
-
<common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-maximum-size-old
|
7
|
-
v-else
|
8
|
-
:free-gb="freeGb"
|
9
|
-
/>
|
10
|
-
</template>
|
11
|
-
|
12
|
-
<script setup lang="ts">
|
13
|
-
const props = defineProps<{
|
14
|
-
freeMb: number
|
15
|
-
}>()
|
16
|
-
|
17
|
-
const { $store, $binary }: any = useNuxtApp()
|
18
|
-
const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
|
19
|
-
|
20
|
-
const freeGb = computed<number>(() => $binary.round(props.freeMb))
|
21
|
-
</script>
|
22
|
-
|
23
|
-
<style scoped></style>
|
1
|
+
<template>
|
2
|
+
<common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-maximum-size-new
|
3
|
+
v-if="isNewView"
|
4
|
+
:free-gb="freeGb"
|
5
|
+
/>
|
6
|
+
<common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-maximum-size-old
|
7
|
+
v-else
|
8
|
+
:free-gb="freeGb"
|
9
|
+
/>
|
10
|
+
</template>
|
11
|
+
|
12
|
+
<script setup lang="ts">
|
13
|
+
const props = defineProps<{
|
14
|
+
freeMb: number
|
15
|
+
}>()
|
16
|
+
|
17
|
+
const { $store, $binary }: any = useNuxtApp()
|
18
|
+
const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
|
19
|
+
|
20
|
+
const freeGb = computed<number>(() => $binary.round(props.freeMb))
|
21
|
+
</script>
|
22
|
+
|
23
|
+
<style scoped></style>
|