bfg-common 1.5.727 → 1.5.729

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.
Files changed (112) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  3. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  4. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  5. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  6. package/assets/localization/local_be.json +2 -0
  7. package/assets/localization/local_en.json +2 -0
  8. package/assets/localization/local_hy.json +2 -0
  9. package/assets/localization/local_kk.json +2 -0
  10. package/assets/localization/local_ru.json +2 -0
  11. package/assets/localization/local_zh.json +2 -0
  12. package/components/atoms/TheIcon3.vue +50 -50
  13. package/components/atoms/collapse/CollapseNav.vue +170 -170
  14. package/components/atoms/perPage/PerPage.vue +58 -58
  15. package/components/atoms/table/dataGrid/DataGrid.vue +1718 -1718
  16. package/components/atoms/table/dataGrid/DataGridPagination.vue +97 -97
  17. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  18. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  19. package/components/common/backup/storage/actions/add/lib/utils.ts +51 -51
  20. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  21. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  22. package/components/common/diagramMain/port/Port.vue +580 -580
  23. package/components/common/layout/console/Console.vue +70 -70
  24. package/components/common/layout/theHeader/New.vue +301 -301
  25. package/components/common/layout/theHeader/Old.vue +252 -252
  26. package/components/common/layout/theHeader/TheHeader.vue +152 -152
  27. package/components/common/layout/theHeader/userMenu/UserMenu.vue +104 -104
  28. package/components/common/layout/theHeader/userMenu/modals/preferences/lib/models/types.ts +7 -7
  29. package/components/common/pages/backups/DetailView.vue +52 -52
  30. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  31. package/components/common/pages/backups/modals/Modals.vue +243 -243
  32. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  33. package/components/common/pages/backups/modals/createBackup/lib/config/readyToCompleteOptions.ts +69 -69
  34. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  35. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  36. package/components/common/pages/backups/modals/restore/Restore.vue +289 -303
  37. package/components/common/pages/backups/modals/restore/lib/config/readyToCompleteOptions.ts +85 -84
  38. package/components/common/pages/backups/modals/restore/lib/config/restoreCodes.ts +2 -1
  39. package/components/common/pages/backups/modals/restore/lib/config/steps.ts +121 -113
  40. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  41. package/components/common/pages/backups/modals/restore/types/{TypesNew.vue → New.vue} +95 -95
  42. package/components/common/pages/backups/modals/restore/types/{TypesOld.vue → Old.vue} +62 -61
  43. package/components/common/pages/backups/modals/restore/types/Types.vue +31 -19
  44. package/components/common/pages/backups/modals/restore/types/lib/config/descriptions.ts +1 -0
  45. package/components/common/pages/backups/modals/restore/types/lib/config/typeOptions.ts +5 -0
  46. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  47. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  48. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  49. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  50. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  51. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  52. package/components/common/pages/tasks/Tasks.vue +125 -125
  53. package/components/common/pages/tasks/table/Table.vue +373 -373
  54. package/components/common/pages/tasks/table/lib/config/config.ts +279 -279
  55. package/components/common/pages/tasks/table/lib/models/interfaces.ts +9 -9
  56. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  57. package/components/common/select/radio/RadioGroup.vue +137 -137
  58. package/components/common/spiceConsole/Drawer.vue +420 -420
  59. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  60. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  61. package/components/common/tools/Actions.vue +207 -207
  62. package/components/common/treeView/TreeView.vue +52 -52
  63. package/components/common/vm/actions/clone/lib/config/steps.ts +295 -295
  64. package/components/common/vm/actions/clone/new/New.vue +438 -438
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +283 -283
  67. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +156 -156
  68. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  69. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  70. package/components/common/vm/actions/common/select/options/New.vue +264 -264
  71. package/components/common/vm/actions/common/select/options/Options.vue +58 -58
  72. package/components/common/vm/actions/common/select/storage/Old.vue +125 -125
  73. package/components/common/vm/actions/common/select/storage/new/New.vue +311 -311
  74. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  75. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  76. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  77. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  78. package/components/common/wizards/common/compatibility/Compatibility.vue +35 -35
  79. package/components/common/wizards/common/steps/computeResource/New.vue +93 -93
  80. package/components/common/wizards/common/steps/name/Name.vue +178 -178
  81. package/components/common/wizards/common/steps/name/New.vue +221 -221
  82. package/components/common/wizards/common/steps/name/Old.vue +121 -121
  83. package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
  84. package/components/common/wizards/common/steps/name/location/New.vue +40 -40
  85. package/components/common/wizards/datastore/add/Add.vue +228 -228
  86. package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
  87. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  88. package/composables/useAppVersion.ts +21 -21
  89. package/composables/useBrowse.ts +24 -24
  90. package/composables/useLocal.ts +6 -6
  91. package/composables/useLocalCommon.ts +39 -39
  92. package/lib/models/types.ts +59 -59
  93. package/package.json +2 -2
  94. package/plugins/console.ts +21 -21
  95. package/plugins/mouse.ts +21 -21
  96. package/plugins/panelStates.ts +70 -70
  97. package/plugins/text.ts +59 -59
  98. package/public/spice-console/application/clientgui.js +854 -854
  99. package/public/spice-console/application/packetfactory.js +211 -211
  100. package/public/spice-console/application/virtualmouse.js +147 -147
  101. package/public/spice-console/lib/images/bitmap.js +203 -203
  102. package/public/spice-console/network/spicechannel.js +440 -440
  103. package/public/spice-console/process/cursorprocess.js +128 -128
  104. package/public/spice-console/process/inputprocess.js +227 -227
  105. package/public/spice-console/process/mainprocess.js +212 -212
  106. package/public/spice-console/run.js +210 -210
  107. package/store/main/mutations.ts +7 -7
  108. package/store/main/state.ts +7 -7
  109. package/store/tasks/mappers/recentTasks.ts +123 -123
  110. package/store/tasks/mutations.ts +82 -82
  111. /package/components/common/pages/backups/modals/restore/{RestoreNew.vue → New.vue} +0 -0
  112. /package/components/common/pages/backups/modals/restore/{RestoreOld.vue → Old.vue} +0 -0
@@ -1,152 +1,152 @@
1
- <template>
2
- <component
3
- :is="currentComponent"
4
- v-model:security="security"
5
- v-model:new-view-local="newViewLocal"
6
- v-model:time-format="timeFormat"
7
- v-model:console-value="consoleValue"
8
- v-model:vm-in-hosts-clusters="vmInHostsClusters"
9
- v-model:is-dark-theme="isDarkTheme"
10
- :is-show-main-menu="props.isShowMainMenu"
11
- :company-name="props.companyName"
12
- :beta-text="props.betaText"
13
- :global-refresh-loading="props.globalRefreshLoading"
14
- :hostname="props.hostname"
15
- :project-name="props.projectName"
16
- :is-preference="props.isPreference"
17
- :selected-language-type="props.selectedLanguageType"
18
- :selected-lang="props.selectedLang"
19
- :new-view="props.newView"
20
- :project="props.project"
21
- :security-loader="props.securityLoader"
22
- :recovery="props.recovery"
23
- @toggle-main-menu="emits('toggle-main-menu')"
24
- @show-preference="emits('show-preference')"
25
- @reset-preference="emits('reset-preference')"
26
- @hide-preference="emits('hide-preference')"
27
- @global-refresh="emits('global-refresh')"
28
- @update-language="emits('update-language', $event)"
29
- @update-is-browser="emits('update-is-browser', $event)"
30
- @security-confirm="emits('security-confirm', $event)"
31
- @submit-preferences="emits('submit-preferences')"
32
- />
33
-
34
- <common-layout-the-header-modals-reconnect />
35
- <common-layout-the-header-modals-redirect-login />
36
- </template>
37
-
38
- <script setup lang="ts">
39
- import type { UI_I_Dropdown } from '~/node_modules/bfg-uikit/components/ui/dropdown/models/interfaces'
40
- import type { UI_T_Project } from '~/lib/models/types'
41
- import type { UI_T_TimeValue } from '~/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/models/types'
42
- import type { UI_I_Recovery } from '~/components/common/layout/theHeader/userMenu/modals/preferences/security/lib/models/interfaces'
43
- import { checkIsTokenExpired } from '~/lib/utils/token'
44
-
45
- const security = defineModel<boolean>('security')
46
- const newViewLocal = defineModel<boolean>('newViewLocal')
47
- const timeFormat = defineModel<UI_T_TimeValue>('timeFormat')
48
- const consoleValue = defineModel<string>('consoleValue')
49
- const vmInHostsClusters = defineModel<boolean>('vmInHostsClusters')
50
- const isDarkTheme = defineModel<boolean>('isDarkTheme')
51
-
52
- const props = withDefaults(
53
- defineProps<{
54
- isShowMainMenu: boolean
55
- companyName: string
56
- betaText: string
57
- globalRefreshLoading: boolean
58
- project: UI_T_Project
59
- projectName: string
60
- hostname: string
61
- isPreference: boolean
62
- selectedLanguageType: string
63
- selectedLang: UI_I_Dropdown
64
- newView: boolean
65
- isPauseReconnect: boolean
66
- expireTimeFromState: number
67
- isShowReconnectModal: boolean
68
- isShowRedirectLoginModal: boolean
69
- securityLoader?: boolean // для Сферы
70
- recovery?: UI_I_Recovery | null // для Сферы
71
- }>(),
72
- {
73
- securityLoader: false,
74
- recovery: null,
75
- }
76
- )
77
-
78
- const emits = defineEmits<{
79
- (event: 'toggle-main-menu'): void
80
- (event: 'global-refresh'): void
81
- (event: 'show-preference'): void
82
- (event: 'reset-preference'): void
83
- (event: 'hide-preference'): void
84
- (event: 'update-language', value: UI_I_Dropdown): void
85
- (event: 'update-is-browser', value: string): void
86
- (event: 'security-confirm', value: boolean): void
87
- (event: 'submit-preferences'): void
88
- (event: 'show-redirect-login-modal', value: boolean): void
89
- (event: 'show-reconnect-modal', value: boolean): void
90
- }>()
91
-
92
- const currentComponent = computed(() =>
93
- props.newView
94
- ? defineAsyncComponent(() => import('./New.vue'))
95
- : defineAsyncComponent(() => import('./Old.vue'))
96
- )
97
-
98
- const inactivityTimer = ref<NodeJS.Timeout | undefined>(undefined)
99
- const inactivityTimeout = ref<number>(10 * 60 * 1000)
100
-
101
- const startInactivityTimer = (): void => {
102
- inactivityTimer.value = setTimeout(() => {
103
- // Проверяем если isPauseReconnect истина то не показываем модальное окно переподключения,
104
- // к примеру если загружаем файл и он загружается дольше чем срабатывает таймаут
105
-
106
- if (props.isPauseReconnect) {
107
- startInactivityTimer()
108
- return
109
- }
110
-
111
- const expireTime =
112
- props.expireTimeFromState || useCookie('token-expired-time').value
113
-
114
- const isExpiredToken = checkIsTokenExpired(expireTime)
115
-
116
- if (isExpiredToken) {
117
- emits('show-redirect-login-modal', true)
118
-
119
- if (props.isShowReconnectModal) {
120
- emits('show-reconnect-modal', false)
121
- }
122
- }
123
-
124
- if (!isExpiredToken && !props.isShowRedirectLoginModal) {
125
- emits('show-reconnect-modal', true)
126
- startInactivityTimer()
127
- }
128
-
129
- console.log('Пользователь бездействует!')
130
- }, inactivityTimeout.value)
131
- }
132
-
133
- const resetInactivityTimer = (): void => {
134
- // Сброс таймера бездействия при каждом действии пользователя
135
- inactivityTimer.value !== null && clearTimeout(inactivityTimer.value)
136
- startInactivityTimer()
137
- }
138
-
139
- onMounted(() => {
140
- document.addEventListener('mousemove', resetInactivityTimer)
141
-
142
- startInactivityTimer()
143
- })
144
-
145
- onBeforeUnmount(() => {
146
- document.removeEventListener('mousemove', resetInactivityTimer)
147
-
148
- inactivityTimer.value !== null && clearTimeout(inactivityTimer.value)
149
- })
150
- </script>
151
-
152
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <component
3
+ :is="currentComponent"
4
+ v-model:security="security"
5
+ v-model:new-view-local="newViewLocal"
6
+ v-model:time-format="timeFormat"
7
+ v-model:console-value="consoleValue"
8
+ v-model:vm-in-hosts-clusters="vmInHostsClusters"
9
+ v-model:is-dark-theme="isDarkTheme"
10
+ :is-show-main-menu="props.isShowMainMenu"
11
+ :company-name="props.companyName"
12
+ :beta-text="props.betaText"
13
+ :global-refresh-loading="props.globalRefreshLoading"
14
+ :hostname="props.hostname"
15
+ :project-name="props.projectName"
16
+ :is-preference="props.isPreference"
17
+ :selected-language-type="props.selectedLanguageType"
18
+ :selected-lang="props.selectedLang"
19
+ :new-view="props.newView"
20
+ :project="props.project"
21
+ :security-loader="props.securityLoader"
22
+ :recovery="props.recovery"
23
+ @toggle-main-menu="emits('toggle-main-menu')"
24
+ @show-preference="emits('show-preference')"
25
+ @reset-preference="emits('reset-preference')"
26
+ @hide-preference="emits('hide-preference')"
27
+ @global-refresh="emits('global-refresh')"
28
+ @update-language="emits('update-language', $event)"
29
+ @update-is-browser="emits('update-is-browser', $event)"
30
+ @security-confirm="emits('security-confirm', $event)"
31
+ @submit-preferences="emits('submit-preferences')"
32
+ />
33
+
34
+ <common-layout-the-header-modals-reconnect />
35
+ <common-layout-the-header-modals-redirect-login />
36
+ </template>
37
+
38
+ <script setup lang="ts">
39
+ import type { UI_I_Dropdown } from '~/node_modules/bfg-uikit/components/ui/dropdown/models/interfaces'
40
+ import type { UI_T_Project } from '~/lib/models/types'
41
+ import type { UI_T_TimeValue } from '~/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/models/types'
42
+ import type { UI_I_Recovery } from '~/components/common/layout/theHeader/userMenu/modals/preferences/security/lib/models/interfaces'
43
+ import { checkIsTokenExpired } from '~/lib/utils/token'
44
+
45
+ const security = defineModel<boolean>('security')
46
+ const newViewLocal = defineModel<boolean>('newViewLocal')
47
+ const timeFormat = defineModel<UI_T_TimeValue>('timeFormat')
48
+ const consoleValue = defineModel<string>('consoleValue')
49
+ const vmInHostsClusters = defineModel<boolean>('vmInHostsClusters')
50
+ const isDarkTheme = defineModel<boolean>('isDarkTheme')
51
+
52
+ const props = withDefaults(
53
+ defineProps<{
54
+ isShowMainMenu: boolean
55
+ companyName: string
56
+ betaText: string
57
+ globalRefreshLoading: boolean
58
+ project: UI_T_Project
59
+ projectName: string
60
+ hostname: string
61
+ isPreference: boolean
62
+ selectedLanguageType: string
63
+ selectedLang: UI_I_Dropdown
64
+ newView: boolean
65
+ isPauseReconnect: boolean
66
+ expireTimeFromState: number
67
+ isShowReconnectModal: boolean
68
+ isShowRedirectLoginModal: boolean
69
+ securityLoader?: boolean // для Сферы
70
+ recovery?: UI_I_Recovery | null // для Сферы
71
+ }>(),
72
+ {
73
+ securityLoader: false,
74
+ recovery: null,
75
+ }
76
+ )
77
+
78
+ const emits = defineEmits<{
79
+ (event: 'toggle-main-menu'): void
80
+ (event: 'global-refresh'): void
81
+ (event: 'show-preference'): void
82
+ (event: 'reset-preference'): void
83
+ (event: 'hide-preference'): void
84
+ (event: 'update-language', value: UI_I_Dropdown): void
85
+ (event: 'update-is-browser', value: string): void
86
+ (event: 'security-confirm', value: boolean): void
87
+ (event: 'submit-preferences'): void
88
+ (event: 'show-redirect-login-modal', value: boolean): void
89
+ (event: 'show-reconnect-modal', value: boolean): void
90
+ }>()
91
+
92
+ const currentComponent = computed(() =>
93
+ props.newView
94
+ ? defineAsyncComponent(() => import('./New.vue'))
95
+ : defineAsyncComponent(() => import('./Old.vue'))
96
+ )
97
+
98
+ const inactivityTimer = ref<NodeJS.Timeout | undefined>(undefined)
99
+ const inactivityTimeout = ref<number>(10 * 60 * 1000)
100
+
101
+ const startInactivityTimer = (): void => {
102
+ inactivityTimer.value = setTimeout(() => {
103
+ // Проверяем если isPauseReconnect истина то не показываем модальное окно переподключения,
104
+ // к примеру если загружаем файл и он загружается дольше чем срабатывает таймаут
105
+
106
+ if (props.isPauseReconnect) {
107
+ startInactivityTimer()
108
+ return
109
+ }
110
+
111
+ const expireTime =
112
+ props.expireTimeFromState || useCookie('token-expired-time').value
113
+
114
+ const isExpiredToken = checkIsTokenExpired(expireTime)
115
+
116
+ if (isExpiredToken) {
117
+ emits('show-redirect-login-modal', true)
118
+
119
+ if (props.isShowReconnectModal) {
120
+ emits('show-reconnect-modal', false)
121
+ }
122
+ }
123
+
124
+ if (!isExpiredToken && !props.isShowRedirectLoginModal) {
125
+ emits('show-reconnect-modal', true)
126
+ startInactivityTimer()
127
+ }
128
+
129
+ console.log('Пользователь бездействует!')
130
+ }, inactivityTimeout.value)
131
+ }
132
+
133
+ const resetInactivityTimer = (): void => {
134
+ // Сброс таймера бездействия при каждом действии пользователя
135
+ inactivityTimer.value !== null && clearTimeout(inactivityTimer.value)
136
+ startInactivityTimer()
137
+ }
138
+
139
+ onMounted(() => {
140
+ document.addEventListener('mousemove', resetInactivityTimer)
141
+
142
+ startInactivityTimer()
143
+ })
144
+
145
+ onBeforeUnmount(() => {
146
+ document.removeEventListener('mousemove', resetInactivityTimer)
147
+
148
+ inactivityTimer.value !== null && clearTimeout(inactivityTimer.value)
149
+ })
150
+ </script>
151
+
152
+ <style scoped lang="scss"></style>
@@ -1,104 +1,104 @@
1
- <template>
2
- <component
3
- :is="currentComponent"
4
- :hostname="props.hostname"
5
- @select-dropdown="onSelectDropdown"
6
- />
7
-
8
- <Teleport to="body">
9
- <common-layout-the-header-user-menu-modals-change-password
10
- v-if="isShowChangePasswordModal"
11
- v-model="isShowChangePasswordModal"
12
- :hostname="props.hostname"
13
- :project="props.project"
14
- />
15
-
16
- <common-layout-the-header-user-menu-modals-preferences
17
- v-if="props.isPreference"
18
- v-model:security="security"
19
- v-model:new-view-local="newViewLocal"
20
- v-model:time-format="timeFormat"
21
- v-model:console-value="consoleValue"
22
- v-model:vm-in-hosts-clusters="vmInHostsClusters"
23
- :new-view="props.newView"
24
- :selected-language-type="props.selectedLanguageType"
25
- :selected-language="props.selectedLanguage"
26
- :project="props.project"
27
- :security-loader="props.securityLoader"
28
- :recovery="props.recovery"
29
- @hide="emits('hide-preference')"
30
- @reset="emits('reset-preference')"
31
- @update-language="emits('update-language', $event)"
32
- @update-is-browser="emits('update-is-browser', $event)"
33
- @security-confirm="emits('security-confirm', $event)"
34
- @submit="emits('submit-preferences')"
35
- />
36
- </Teleport>
37
- </template>
38
-
39
- <script setup lang="ts">
40
- import type { UI_I_Dropdown } from '~/node_modules/bfg-uikit/components/ui/dropdown/models/interfaces'
41
- import type { UI_T_LangValue, UI_T_Project } from '~/lib/models/types'
42
- import type { UI_T_TimeValue } from '~/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/models/types'
43
- import type { UI_I_Recovery } from '~/components/common/layout/theHeader/userMenu/modals/preferences/security/lib/models/interfaces'
44
-
45
- const security = defineModel<boolean>('security')
46
- const newViewLocal = defineModel<boolean>('newViewLocal')
47
- const timeFormat = defineModel<UI_T_TimeValue>('timeFormat')
48
- const consoleValue = defineModel<string>('consoleValue')
49
- const vmInHostsClusters = defineModel<boolean>('vmInHostsClusters')
50
- const isDarkTheme = defineModel<boolean>('isDarkTheme')
51
-
52
- const props = defineProps<{
53
- hostname: string
54
- project: UI_T_Project
55
- isPreference: boolean
56
- newView: boolean
57
- selectedLanguageType: UI_T_LangValue
58
- selectedLanguage: UI_I_Dropdown | string
59
- securityLoader: boolean // для Сферы
60
- recovery: UI_I_Recovery | null // для Сферы
61
- }>()
62
- const emits = defineEmits<{
63
- (event: 'show-preference'): void
64
- (event: 'reset-preference'): void
65
- (event: 'hide-preference'): void
66
- (event: 'update-language', value: UI_I_Dropdown): void
67
- (event: 'update-is-browser', value: string): void
68
- (event: 'security-confirm', value: boolean): void
69
- (event: 'submit-preferences'): void
70
- }>()
71
-
72
- const { $store }: any = useNuxtApp()
73
-
74
- const currentComponent = computed(() =>
75
- props.newView
76
- ? defineAsyncComponent(() => import('./new/New.vue'))
77
- : defineAsyncComponent(() => import('./old/Old.vue'))
78
- )
79
-
80
- const isShowChangePasswordModal = ref<boolean>(false)
81
-
82
- const onLogout = async (): Promise<void> => {
83
- await $store.dispatch('auth/A_LOGOUT', null)
84
- }
85
-
86
- const onSelectDropdown = (value: string): void => {
87
- switch (value) {
88
- case 'changePassword':
89
- isShowChangePasswordModal.value = true
90
- break
91
- case 'preferences':
92
- emits('show-preference')
93
- break
94
- case 'themeMode':
95
- isDarkTheme.value = !isDarkTheme.value
96
- break
97
- case 'logout':
98
- onLogout()
99
- break
100
- }
101
- }
102
- </script>
103
-
104
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <component
3
+ :is="currentComponent"
4
+ :hostname="props.hostname"
5
+ @select-dropdown="onSelectDropdown"
6
+ />
7
+
8
+ <Teleport to="body">
9
+ <common-layout-the-header-user-menu-modals-change-password
10
+ v-if="isShowChangePasswordModal"
11
+ v-model="isShowChangePasswordModal"
12
+ :hostname="props.hostname"
13
+ :project="props.project"
14
+ />
15
+
16
+ <common-layout-the-header-user-menu-modals-preferences
17
+ v-if="props.isPreference"
18
+ v-model:security="security"
19
+ v-model:new-view-local="newViewLocal"
20
+ v-model:time-format="timeFormat"
21
+ v-model:console-value="consoleValue"
22
+ v-model:vm-in-hosts-clusters="vmInHostsClusters"
23
+ :new-view="props.newView"
24
+ :selected-language-type="props.selectedLanguageType"
25
+ :selected-language="props.selectedLanguage"
26
+ :project="props.project"
27
+ :security-loader="props.securityLoader"
28
+ :recovery="props.recovery"
29
+ @hide="emits('hide-preference')"
30
+ @reset="emits('reset-preference')"
31
+ @update-language="emits('update-language', $event)"
32
+ @update-is-browser="emits('update-is-browser', $event)"
33
+ @security-confirm="emits('security-confirm', $event)"
34
+ @submit="emits('submit-preferences')"
35
+ />
36
+ </Teleport>
37
+ </template>
38
+
39
+ <script setup lang="ts">
40
+ import type { UI_I_Dropdown } from '~/node_modules/bfg-uikit/components/ui/dropdown/models/interfaces'
41
+ import type { UI_T_LangValue, UI_T_Project } from '~/lib/models/types'
42
+ import type { UI_T_TimeValue } from '~/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/models/types'
43
+ import type { UI_I_Recovery } from '~/components/common/layout/theHeader/userMenu/modals/preferences/security/lib/models/interfaces'
44
+
45
+ const security = defineModel<boolean>('security')
46
+ const newViewLocal = defineModel<boolean>('newViewLocal')
47
+ const timeFormat = defineModel<UI_T_TimeValue>('timeFormat')
48
+ const consoleValue = defineModel<string>('consoleValue')
49
+ const vmInHostsClusters = defineModel<boolean>('vmInHostsClusters')
50
+ const isDarkTheme = defineModel<boolean>('isDarkTheme')
51
+
52
+ const props = defineProps<{
53
+ hostname: string
54
+ project: UI_T_Project
55
+ isPreference: boolean
56
+ newView: boolean
57
+ selectedLanguageType: UI_T_LangValue
58
+ selectedLanguage: UI_I_Dropdown | string
59
+ securityLoader: boolean // для Сферы
60
+ recovery: UI_I_Recovery | null // для Сферы
61
+ }>()
62
+ const emits = defineEmits<{
63
+ (event: 'show-preference'): void
64
+ (event: 'reset-preference'): void
65
+ (event: 'hide-preference'): void
66
+ (event: 'update-language', value: UI_I_Dropdown): void
67
+ (event: 'update-is-browser', value: string): void
68
+ (event: 'security-confirm', value: boolean): void
69
+ (event: 'submit-preferences'): void
70
+ }>()
71
+
72
+ const { $store }: any = useNuxtApp()
73
+
74
+ const currentComponent = computed(() =>
75
+ props.newView
76
+ ? defineAsyncComponent(() => import('./new/New.vue'))
77
+ : defineAsyncComponent(() => import('./old/Old.vue'))
78
+ )
79
+
80
+ const isShowChangePasswordModal = ref<boolean>(false)
81
+
82
+ const onLogout = async (): Promise<void> => {
83
+ await $store.dispatch('auth/A_LOGOUT', null)
84
+ }
85
+
86
+ const onSelectDropdown = (value: string): void => {
87
+ switch (value) {
88
+ case 'changePassword':
89
+ isShowChangePasswordModal.value = true
90
+ break
91
+ case 'preferences':
92
+ emits('show-preference')
93
+ break
94
+ case 'themeMode':
95
+ isDarkTheme.value = !isDarkTheme.value
96
+ break
97
+ case 'logout':
98
+ onLogout()
99
+ break
100
+ }
101
+ }
102
+ </script>
103
+
104
+ <style scoped lang="scss"></style>
@@ -1,7 +1,7 @@
1
- export type UI_T_UserPreferenceTab =
2
- | 'time-tab'
3
- | 'language-tab'
4
- | 'console-tab'
5
- | 'inventory-tab'
6
- | 'security-tab'
7
- | 'view-tab'
1
+ export type UI_T_UserPreferenceTab =
2
+ | 'time-tab'
3
+ | 'language-tab'
4
+ | 'console-tab'
5
+ | 'inventory-tab'
6
+ | 'security-tab'
7
+ | 'view-tab'
@@ -1,52 +1,52 @@
1
- <template>
2
- <div class="detail-view overflow-auto py-0 px-6">
3
- <table v-if="detailData" class="table table-noborder">
4
- <tbody>
5
- <tr>
6
- <td class="left">{{ localization.common.name }}</td>
7
- <td class="left backup-name-label">{{ detailData.name }}</td>
8
- </tr>
9
- <tr>
10
- <td class="left">{{ localization.common.description }}</td>
11
- <td class="left backup-name-label">{{ detailData.description }}</td>
12
- </tr>
13
- <tr>
14
- <td class="left">{{ localization.common.timestamp }}</td>
15
- <td class="left backup-name-label">{{ detailData.timestamp }}</td>
16
- </tr>
17
- </tbody>
18
- </table>
19
- </div>
20
- </template>
21
-
22
- <script setup lang="ts">
23
- import type { UI_I_Localization } from '~/lib/models/interfaces'
24
- import type { UI_I_BackupsTreeNode } from '~/components/common/pages/backups/lib/models/interfaces'
25
-
26
- const props = defineProps<{
27
- detail: UI_I_BackupsTreeNode | null
28
- }>()
29
-
30
- const localization = computed<UI_I_Localization>(() => useLocal())
31
-
32
- const detailData = ref<UI_I_BackupsTreeNode | null>(null)
33
- watch(
34
- () => props.detail,
35
- (newValue) => {
36
- detailData.value = newValue
37
- },
38
- { immediate: true, deep: true }
39
- )
40
- </script>
41
-
42
- <style scoped lang="scss">
43
- .detail-view {
44
- width: 50%;
45
-
46
- .table {
47
- .left:not(.backup-name-label) {
48
- width: 320px;
49
- }
50
- }
51
- }
52
- </style>
1
+ <template>
2
+ <div class="detail-view overflow-auto py-0 px-6">
3
+ <table v-if="detailData" class="table table-noborder">
4
+ <tbody>
5
+ <tr>
6
+ <td class="left">{{ localization.common.name }}</td>
7
+ <td class="left backup-name-label">{{ detailData.name }}</td>
8
+ </tr>
9
+ <tr>
10
+ <td class="left">{{ localization.common.description }}</td>
11
+ <td class="left backup-name-label">{{ detailData.description }}</td>
12
+ </tr>
13
+ <tr>
14
+ <td class="left">{{ localization.common.timestamp }}</td>
15
+ <td class="left backup-name-label">{{ detailData.timestamp }}</td>
16
+ </tr>
17
+ </tbody>
18
+ </table>
19
+ </div>
20
+ </template>
21
+
22
+ <script setup lang="ts">
23
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
24
+ import type { UI_I_BackupsTreeNode } from '~/components/common/pages/backups/lib/models/interfaces'
25
+
26
+ const props = defineProps<{
27
+ detail: UI_I_BackupsTreeNode | null
28
+ }>()
29
+
30
+ const localization = computed<UI_I_Localization>(() => useLocal())
31
+
32
+ const detailData = ref<UI_I_BackupsTreeNode | null>(null)
33
+ watch(
34
+ () => props.detail,
35
+ (newValue) => {
36
+ detailData.value = newValue
37
+ },
38
+ { immediate: true, deep: true }
39
+ )
40
+ </script>
41
+
42
+ <style scoped lang="scss">
43
+ .detail-view {
44
+ width: 50%;
45
+
46
+ .table {
47
+ .left:not(.backup-name-label) {
48
+ width: 320px;
49
+ }
50
+ }
51
+ }
52
+ </style>