bfg-common 1.5.654 → 1.5.656

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 (103) 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 +20 -0
  7. package/assets/localization/local_en.json +20 -0
  8. package/assets/localization/local_hy.json +20 -0
  9. package/assets/localization/local_kk.json +20 -0
  10. package/assets/localization/local_ru.json +20 -0
  11. package/assets/localization/local_zh.json +20 -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/theHeader/TheHeaderNew.vue +310 -310
  24. package/components/common/layout/theHeader/TheHeaderOld.vue +257 -257
  25. package/components/common/layout/theHeader/helpMenu/About.vue +79 -79
  26. package/components/common/layout/theHeader/helpMenu/aboutOld/AboutOld.vue +79 -79
  27. package/components/common/layout/theHeader/userMenu/modals/changePassword/ChangePassword.vue +99 -99
  28. package/components/common/layout/theHeader/userMenu/modals/changePassword/New.vue +193 -193
  29. package/components/common/layout/theHeader/userMenu/modals/preferences/lib/models/types.ts +7 -7
  30. package/components/common/layout/theHeader/userMenu/modals/preferences/security/Old.vue +120 -120
  31. package/components/common/layout/theHeader/userMenu/modals/preferences/security/Security.vue +23 -23
  32. package/components/common/pages/backups/DetailView.vue +52 -52
  33. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  34. package/components/common/pages/backups/modals/Modals.vue +243 -243
  35. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  36. package/components/common/pages/backups/modals/createBackup/lib/config/readyToCompleteOptions.ts +69 -69
  37. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  38. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  39. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  40. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  41. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  42. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  43. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  44. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  45. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  46. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  47. package/components/common/select/radio/RadioGroup.vue +137 -137
  48. package/components/common/spiceConsole/Drawer.vue +420 -420
  49. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  50. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  51. package/components/common/tools/Actions.vue +207 -207
  52. package/components/common/treeView/TreeView.vue +52 -52
  53. package/components/common/vm/actions/clone/lib/config/steps.ts +295 -295
  54. package/components/common/vm/actions/clone/new/New.vue +438 -438
  55. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  56. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +283 -283
  57. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +156 -156
  58. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  59. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  60. package/components/common/vm/actions/common/select/options/New.vue +264 -263
  61. package/components/common/vm/actions/common/select/options/Old.vue +110 -109
  62. package/components/common/vm/actions/common/select/options/Options.vue +58 -58
  63. package/components/common/vm/actions/common/select/storage/Old.vue +125 -125
  64. package/components/common/vm/actions/common/select/storage/new/New.vue +311 -311
  65. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  66. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  67. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  68. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  69. package/components/common/wizards/common/compatibility/Compatibility.vue +35 -35
  70. package/components/common/wizards/common/compatibility/New.vue +99 -99
  71. package/components/common/wizards/common/compatibility/Old.vue +53 -53
  72. package/components/common/wizards/common/steps/computeResource/New.vue +93 -93
  73. package/components/common/wizards/common/steps/name/Name.vue +178 -178
  74. package/components/common/wizards/common/steps/name/New.vue +221 -221
  75. package/components/common/wizards/common/steps/name/Old.vue +121 -121
  76. package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
  77. package/components/common/wizards/common/steps/name/location/New.vue +40 -40
  78. package/components/common/wizards/datastore/add/Add.vue +228 -228
  79. package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
  80. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  81. package/composables/useAppVersion.ts +21 -21
  82. package/composables/useLocal.ts +6 -6
  83. package/composables/useLocalCommon.ts +39 -39
  84. package/lib/models/interfaces.ts +1 -0
  85. package/package.json +1 -1
  86. package/plugins/console.ts +21 -21
  87. package/plugins/mouse.ts +21 -21
  88. package/plugins/panelStates.ts +70 -70
  89. package/plugins/text.ts +59 -59
  90. package/public/spice-console/application/clientgui.js +854 -854
  91. package/public/spice-console/application/packetfactory.js +211 -211
  92. package/public/spice-console/application/virtualmouse.js +147 -147
  93. package/public/spice-console/lib/images/bitmap.js +203 -203
  94. package/public/spice-console/network/spicechannel.js +440 -440
  95. package/public/spice-console/process/cursorprocess.js +128 -128
  96. package/public/spice-console/process/inputprocess.js +227 -227
  97. package/public/spice-console/process/mainprocess.js +212 -212
  98. package/public/spice-console/run.js +210 -210
  99. package/store/main/mutations.ts +7 -7
  100. package/store/main/state.ts +7 -7
  101. package/store/tasks/actions.ts +165 -165
  102. package/store/tasks/mappers/recentTasks.ts +123 -123
  103. package/store/tasks/mutations.ts +82 -82
@@ -1,311 +1,311 @@
1
- <template>
2
- <div :class="['select-storage', { 'in-wizard': isInWizard }]">
3
- <Teleport v-if="!props.hideAlert" to="#storage-alert-wrapper">
4
- <ui-alert
5
- v-show="props.errors.length"
6
- :messages="props.errors"
7
- :items="props.errors"
8
- status="alert-danger"
9
- test-id="storage-alert"
10
- size="md"
11
- @hide="emits('remove-error')"
12
- />
13
- </Teleport>
14
-
15
- <div class="table-wrap">
16
- <ui-data-table
17
- :data="data"
18
- :options="tableOptionsLocal"
19
- :loading="props.isDatastoreLoading"
20
- :default-layout="false"
21
- :texts="tableTexts"
22
- :skeleton="skeletonData"
23
- test-id="select-storage-data-table"
24
- server-off
25
- size="sm"
26
- @select-row="onSelectRow"
27
- >
28
- <template v-if="!props.isInWizard" #skeleton-header>
29
- <div class="flex justify-between items-center">
30
- <ui-skeleton-item width="80" height="20" />
31
- <ui-skeleton-item width="88" height="22" border-radius="6px" />
32
- </div>
33
- </template>
34
- <template v-if="!props.isInWizard" #insteadOfTitleActions>
35
- <h3 class="storage-count">
36
- {{ storageCount }}
37
- </h3>
38
- </template>
39
- <template #name="{ item }">
40
- <ui-icon
41
- name="datastores"
42
- width="18"
43
- height="18"
44
- class="mr-1 row-datastores-icon"
45
- />
46
- {{ item.text }}
47
- </template>
48
- <template #state="{ item }">
49
- <ui-chip :color="item.data.color" size="sm" rounded>
50
- <ui-icon :name="item.data.iconClassName" width="12" height="12" />
51
- {{ item.data.text }}
52
- </ui-chip>
53
- </template>
54
- </ui-data-table>
55
- </div>
56
-
57
- <common-wizards-common-compatibility
58
- v-if="!props.hideCompatibility"
59
- :status="props.compatibility[0]"
60
- :text="props.compatibility[1]"
61
- :loading="props.isDatastoreLoading"
62
- />
63
- </div>
64
- </template>
65
-
66
- <script setup lang="ts">
67
- import type {
68
- UI_I_DataTableOptions,
69
- UI_I_DataTableSkeleton,
70
- } from 'bfg-uikit/components/ui/dataTable/models/interfaces'
71
- import type {
72
- UI_I_DataTable,
73
- UI_I_TableTexts,
74
- } from '~/node_modules/bfg-uikit/components/ui/dataTable/models/interfaces'
75
- import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
76
- import type { UI_I_Localization } from '~/lib/models/interfaces'
77
- import type { UI_T_CompatibilityStatus } from '~/components/common/wizards/common/compatibility/lib/models/types'
78
- import {
79
- tableBodyFunc,
80
- tableDataFunc,
81
- tableOptions,
82
- } from '~/components/common/vm/actions/common/select/storage/new/lib/config/table'
83
- import { tableTextsFunc } from '~/lib/config/uiTable'
84
-
85
- const selectedRow = defineModel<number | null>('selectedRow')
86
-
87
- const props = withDefaults(
88
- defineProps<{
89
- datastore: UI_I_DatastoreTableItem[]
90
- isDatastoreLoading: boolean
91
- errors: string[]
92
- selectedStorage: UI_I_DatastoreTableItem | null
93
- compatibility: [UI_T_CompatibilityStatus, string]
94
- hideCompatibility?: boolean
95
- hideAlert?: boolean
96
- isInWizard?: boolean
97
- tableOptions?: UI_I_DataTableOptions
98
- }>(),
99
- {
100
- hideCompatibility: undefined,
101
- hideAlert: undefined,
102
- isInWizard: undefined,
103
- tableOptions: undefined,
104
- }
105
- )
106
- const emits = defineEmits<{
107
- (event: 'remove-error'): void
108
- (event: 'change-storage', value: number): void
109
- }>()
110
-
111
- const tableOptionsLocal = computed<UI_I_DataTableOptions>(
112
- () => props.tableOptions || tableOptions
113
- )
114
-
115
- const localization = computed<UI_I_Localization>(() => useLocal())
116
-
117
- const tableTexts = computed<UI_I_TableTexts>(() =>
118
- tableTextsFunc(localization.value)
119
- )
120
-
121
- const storageCount = computed<string>(() =>
122
- localization.value.vmWizard.storageCount.replace(
123
- '{0}',
124
- data.value.body.length.toString()
125
- )
126
- )
127
- // const loading = ref<boolean>(true)
128
- const data = ref<UI_I_DataTable>(tableDataFunc(localization.value))
129
-
130
- watch(
131
- () => props.datastore,
132
- (newValue: UI_I_DatastoreTableItem[]) => {
133
- // loading.value = true
134
-
135
- // if (!newValue.length || data.value.body.length) return
136
-
137
- data.value.body = tableBodyFunc(
138
- newValue,
139
- localization.value,
140
- selectedRow.value
141
- )
142
-
143
- // loading.value = false
144
- },
145
- { immediate: true, deep: true }
146
- // { deep: true }
147
- )
148
-
149
- watch(selectedRow, (newValue) => {
150
- if (newValue && props.datastore.length) {
151
- data.value.body = tableBodyFunc(
152
- props.datastore,
153
- localization.value,
154
- newValue
155
- )
156
- }
157
- })
158
-
159
- const onSelectRow = (selectedData: UI_I_DataTable): void => {
160
- const selectedId = selectedData[0]?.data[0]?.data.id
161
- const selectedItemIndex = props.datastore.findIndex(
162
- (item) => item.id === selectedId
163
- )
164
-
165
- emits('change-storage', selectedItemIndex)
166
- }
167
-
168
- const skeletonData = ref<UI_I_DataTableSkeleton>({
169
- columnsCount: 5,
170
- headColumns: [],
171
- bodyColumns: [],
172
- })
173
- </script>
174
-
175
- <style>
176
- :root {
177
- --select-storage-border-color: #e9ebed;
178
- --select-storage-bg-color: #ffffff;
179
- --select-storage-title-color: #4d5d69;
180
- --select-storage-compatibility-bg-color: #ffffff;
181
- --select-storage-compatibility-description-color: #4d5d69;
182
- --select-storage-compatibility-empty-description-color: #9da6ad;
183
- --select-storage-compatibility-table-column-button-hover-bg: #f6f7f8;
184
- --select-storage-compatibility-table-column-button-active-hover-bg: #f0f8fd;
185
- }
186
- :root.dark-theme {
187
- --select-storage-border-color: #e9ebed1f;
188
- --select-storage-bg-color: var(--wizard-right-bg);
189
- --select-storage-title-color: #e9eaec;
190
- --select-storage-compatibility-bg-color: #1b2a371f;
191
- --select-storage-compatibility-description-color: #e9eaec;
192
- --select-storage-compatibility-empty-description-color: #9da6ad;
193
- --select-storage-compatibility-table-column-button-hover-bg: linear-gradient(
194
- 0deg,
195
- rgba(233, 234, 236, 0.04) 0%,
196
- rgba(233, 234, 236, 0.04) 100%
197
- ),
198
- rgba(27, 42, 55, 0.24);
199
- --select-storage-compatibility-table-column-button-active-hover-bg: linear-gradient(
200
- 0deg,
201
- rgba(43, 162, 222, 0.08) 0%,
202
- rgba(43, 162, 222, 0.08) 100%
203
- ),
204
- rgba(27, 42, 55, 0.24);
205
- }
206
- </style>
207
- <style scoped lang="scss">
208
- //:root.dark-theme {
209
- // .select-storage {
210
- // &.in-wizard {
211
- // :deep(.column-manager-button) {
212
- // &:hover {
213
- // background: #b8bcc10a;
214
- // }
215
- // &.active:hover {
216
- // background-color: #2785b614;
217
- // }
218
- // }
219
- // }
220
- // }
221
- //}
222
- .select-storage {
223
- padding-top: 12px;
224
- //padding-bottom: 16px;
225
-
226
- :deep(.title-sm) {
227
- font-size: 12px;
228
- }
229
-
230
- :deep(.table-container.default-layout) {
231
- box-shadow: unset;
232
- padding: 0;
233
- }
234
- .storage-count {
235
- font-size: 16px;
236
- font-weight: 500;
237
- color: var(--select-storage-title-color);
238
- }
239
-
240
- :deep(.column-manager-button) {
241
- span {
242
- font-size: 12px;
243
- font-weight: 500;
244
- }
245
- //&:not(.active):hover {
246
- // background-color: var(
247
- // --select-storage-compatibility-table-column-button-hover-bg
248
- // );
249
- // color: var(--btn-table-manager-color);
250
- //}
251
- //&.active:hover {
252
- // background-color: var(
253
- // --select-storage-compatibility-table-column-button-active-hover-bg
254
- // );
255
- //}
256
- }
257
-
258
- &:not(.in-wizard) {
259
- :deep(.bottom-grid-content) {
260
- border: 1px solid var(--select-storage-border-color);
261
- border-radius: 8px;
262
- padding: 12px;
263
- //background-color: var(--select-storage-bg-color);
264
- }
265
- :deep(.select-row-item) {
266
- background-color: var(--select-storage-bg-color);
267
- }
268
- }
269
-
270
- :deep(.table-title-actions-container) {
271
- justify-content: flex-start;
272
- }
273
- :deep(.table-container .table-title) {
274
- margin-bottom: 12px;
275
- }
276
-
277
- .compatibility-wrap {
278
- margin-top: 24px;
279
-
280
- .compatibility {
281
- font-size: 16px;
282
- font-weight: 500;
283
- color: var(--select-storage-title-color);
284
- margin-bottom: 16px;
285
- }
286
- .compatibility-message {
287
- border-radius: 8px;
288
- border: 1px solid var(--select-storage-border-color);
289
- padding: 12px;
290
- background-color: var(--select-storage-compatibility-bg-color);
291
- gap: 10px;
292
-
293
- .icon-compatibility-alert {
294
- min-width: 16px;
295
- min-height: 16px;
296
- }
297
- .compatibility-message-description {
298
- font-size: 13px;
299
- color: var(--select-storage-compatibility-description-color);
300
-
301
- &.empty {
302
- color: var(--select-storage-compatibility-empty-description-color);
303
- }
304
- }
305
- }
306
- }
307
- .row-datastores-icon {
308
- min-width: 18px;
309
- }
310
- }
311
- </style>
1
+ <template>
2
+ <div :class="['select-storage', { 'in-wizard': isInWizard }]">
3
+ <Teleport v-if="!props.hideAlert" to="#storage-alert-wrapper">
4
+ <ui-alert
5
+ v-show="props.errors.length"
6
+ :messages="props.errors"
7
+ :items="props.errors"
8
+ status="alert-danger"
9
+ test-id="storage-alert"
10
+ size="md"
11
+ @hide="emits('remove-error')"
12
+ />
13
+ </Teleport>
14
+
15
+ <div class="table-wrap">
16
+ <ui-data-table
17
+ :data="data"
18
+ :options="tableOptionsLocal"
19
+ :loading="props.isDatastoreLoading"
20
+ :default-layout="false"
21
+ :texts="tableTexts"
22
+ :skeleton="skeletonData"
23
+ test-id="select-storage-data-table"
24
+ server-off
25
+ size="sm"
26
+ @select-row="onSelectRow"
27
+ >
28
+ <template v-if="!props.isInWizard" #skeleton-header>
29
+ <div class="flex justify-between items-center">
30
+ <ui-skeleton-item width="80" height="20" />
31
+ <ui-skeleton-item width="88" height="22" border-radius="6px" />
32
+ </div>
33
+ </template>
34
+ <template v-if="!props.isInWizard" #insteadOfTitleActions>
35
+ <h3 class="storage-count">
36
+ {{ storageCount }}
37
+ </h3>
38
+ </template>
39
+ <template #name="{ item }">
40
+ <ui-icon
41
+ name="datastores"
42
+ width="18"
43
+ height="18"
44
+ class="mr-1 row-datastores-icon"
45
+ />
46
+ {{ item.text }}
47
+ </template>
48
+ <template #state="{ item }">
49
+ <ui-chip :color="item.data.color" size="sm" rounded>
50
+ <ui-icon :name="item.data.iconClassName" width="12" height="12" />
51
+ {{ item.data.text }}
52
+ </ui-chip>
53
+ </template>
54
+ </ui-data-table>
55
+ </div>
56
+
57
+ <common-wizards-common-compatibility
58
+ v-if="!props.hideCompatibility"
59
+ :status="props.compatibility[0]"
60
+ :text="props.compatibility[1]"
61
+ :loading="props.isDatastoreLoading"
62
+ />
63
+ </div>
64
+ </template>
65
+
66
+ <script setup lang="ts">
67
+ import type {
68
+ UI_I_DataTableOptions,
69
+ UI_I_DataTableSkeleton,
70
+ } from 'bfg-uikit/components/ui/dataTable/models/interfaces'
71
+ import type {
72
+ UI_I_DataTable,
73
+ UI_I_TableTexts,
74
+ } from '~/node_modules/bfg-uikit/components/ui/dataTable/models/interfaces'
75
+ import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
76
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
77
+ import type { UI_T_CompatibilityStatus } from '~/components/common/wizards/common/compatibility/lib/models/types'
78
+ import {
79
+ tableBodyFunc,
80
+ tableDataFunc,
81
+ tableOptions,
82
+ } from '~/components/common/vm/actions/common/select/storage/new/lib/config/table'
83
+ import { tableTextsFunc } from '~/lib/config/uiTable'
84
+
85
+ const selectedRow = defineModel<number | null>('selectedRow')
86
+
87
+ const props = withDefaults(
88
+ defineProps<{
89
+ datastore: UI_I_DatastoreTableItem[]
90
+ isDatastoreLoading: boolean
91
+ errors: string[]
92
+ selectedStorage: UI_I_DatastoreTableItem | null
93
+ compatibility: [UI_T_CompatibilityStatus, string]
94
+ hideCompatibility?: boolean
95
+ hideAlert?: boolean
96
+ isInWizard?: boolean
97
+ tableOptions?: UI_I_DataTableOptions
98
+ }>(),
99
+ {
100
+ hideCompatibility: undefined,
101
+ hideAlert: undefined,
102
+ isInWizard: undefined,
103
+ tableOptions: undefined,
104
+ }
105
+ )
106
+ const emits = defineEmits<{
107
+ (event: 'remove-error'): void
108
+ (event: 'change-storage', value: number): void
109
+ }>()
110
+
111
+ const tableOptionsLocal = computed<UI_I_DataTableOptions>(
112
+ () => props.tableOptions || tableOptions
113
+ )
114
+
115
+ const localization = computed<UI_I_Localization>(() => useLocal())
116
+
117
+ const tableTexts = computed<UI_I_TableTexts>(() =>
118
+ tableTextsFunc(localization.value)
119
+ )
120
+
121
+ const storageCount = computed<string>(() =>
122
+ localization.value.vmWizard.storageCount.replace(
123
+ '{0}',
124
+ data.value.body.length.toString()
125
+ )
126
+ )
127
+ // const loading = ref<boolean>(true)
128
+ const data = ref<UI_I_DataTable>(tableDataFunc(localization.value))
129
+
130
+ watch(
131
+ () => props.datastore,
132
+ (newValue: UI_I_DatastoreTableItem[]) => {
133
+ // loading.value = true
134
+
135
+ // if (!newValue.length || data.value.body.length) return
136
+
137
+ data.value.body = tableBodyFunc(
138
+ newValue,
139
+ localization.value,
140
+ selectedRow.value
141
+ )
142
+
143
+ // loading.value = false
144
+ },
145
+ { immediate: true, deep: true }
146
+ // { deep: true }
147
+ )
148
+
149
+ watch(selectedRow, (newValue) => {
150
+ if (newValue && props.datastore.length) {
151
+ data.value.body = tableBodyFunc(
152
+ props.datastore,
153
+ localization.value,
154
+ newValue
155
+ )
156
+ }
157
+ })
158
+
159
+ const onSelectRow = (selectedData: UI_I_DataTable): void => {
160
+ const selectedId = selectedData[0]?.data[0]?.data.id
161
+ const selectedItemIndex = props.datastore.findIndex(
162
+ (item) => item.id === selectedId
163
+ )
164
+
165
+ emits('change-storage', selectedItemIndex)
166
+ }
167
+
168
+ const skeletonData = ref<UI_I_DataTableSkeleton>({
169
+ columnsCount: 5,
170
+ headColumns: [],
171
+ bodyColumns: [],
172
+ })
173
+ </script>
174
+
175
+ <style>
176
+ :root {
177
+ --select-storage-border-color: #e9ebed;
178
+ --select-storage-bg-color: #ffffff;
179
+ --select-storage-title-color: #4d5d69;
180
+ --select-storage-compatibility-bg-color: #ffffff;
181
+ --select-storage-compatibility-description-color: #4d5d69;
182
+ --select-storage-compatibility-empty-description-color: #9da6ad;
183
+ --select-storage-compatibility-table-column-button-hover-bg: #f6f7f8;
184
+ --select-storage-compatibility-table-column-button-active-hover-bg: #f0f8fd;
185
+ }
186
+ :root.dark-theme {
187
+ --select-storage-border-color: #e9ebed1f;
188
+ --select-storage-bg-color: var(--wizard-right-bg);
189
+ --select-storage-title-color: #e9eaec;
190
+ --select-storage-compatibility-bg-color: #1b2a371f;
191
+ --select-storage-compatibility-description-color: #e9eaec;
192
+ --select-storage-compatibility-empty-description-color: #9da6ad;
193
+ --select-storage-compatibility-table-column-button-hover-bg: linear-gradient(
194
+ 0deg,
195
+ rgba(233, 234, 236, 0.04) 0%,
196
+ rgba(233, 234, 236, 0.04) 100%
197
+ ),
198
+ rgba(27, 42, 55, 0.24);
199
+ --select-storage-compatibility-table-column-button-active-hover-bg: linear-gradient(
200
+ 0deg,
201
+ rgba(43, 162, 222, 0.08) 0%,
202
+ rgba(43, 162, 222, 0.08) 100%
203
+ ),
204
+ rgba(27, 42, 55, 0.24);
205
+ }
206
+ </style>
207
+ <style scoped lang="scss">
208
+ //:root.dark-theme {
209
+ // .select-storage {
210
+ // &.in-wizard {
211
+ // :deep(.column-manager-button) {
212
+ // &:hover {
213
+ // background: #b8bcc10a;
214
+ // }
215
+ // &.active:hover {
216
+ // background-color: #2785b614;
217
+ // }
218
+ // }
219
+ // }
220
+ // }
221
+ //}
222
+ .select-storage {
223
+ padding-top: 12px;
224
+ //padding-bottom: 16px;
225
+
226
+ :deep(.title-sm) {
227
+ font-size: 12px;
228
+ }
229
+
230
+ :deep(.table-container.default-layout) {
231
+ box-shadow: unset;
232
+ padding: 0;
233
+ }
234
+ .storage-count {
235
+ font-size: 16px;
236
+ font-weight: 500;
237
+ color: var(--select-storage-title-color);
238
+ }
239
+
240
+ :deep(.column-manager-button) {
241
+ span {
242
+ font-size: 12px;
243
+ font-weight: 500;
244
+ }
245
+ //&:not(.active):hover {
246
+ // background-color: var(
247
+ // --select-storage-compatibility-table-column-button-hover-bg
248
+ // );
249
+ // color: var(--btn-table-manager-color);
250
+ //}
251
+ //&.active:hover {
252
+ // background-color: var(
253
+ // --select-storage-compatibility-table-column-button-active-hover-bg
254
+ // );
255
+ //}
256
+ }
257
+
258
+ &:not(.in-wizard) {
259
+ :deep(.bottom-grid-content) {
260
+ border: 1px solid var(--select-storage-border-color);
261
+ border-radius: 8px;
262
+ padding: 12px;
263
+ //background-color: var(--select-storage-bg-color);
264
+ }
265
+ :deep(.select-row-item) {
266
+ background-color: var(--select-storage-bg-color);
267
+ }
268
+ }
269
+
270
+ :deep(.table-title-actions-container) {
271
+ justify-content: flex-start;
272
+ }
273
+ :deep(.table-container .table-title) {
274
+ margin-bottom: 12px;
275
+ }
276
+
277
+ .compatibility-wrap {
278
+ margin-top: 24px;
279
+
280
+ .compatibility {
281
+ font-size: 16px;
282
+ font-weight: 500;
283
+ color: var(--select-storage-title-color);
284
+ margin-bottom: 16px;
285
+ }
286
+ .compatibility-message {
287
+ border-radius: 8px;
288
+ border: 1px solid var(--select-storage-border-color);
289
+ padding: 12px;
290
+ background-color: var(--select-storage-compatibility-bg-color);
291
+ gap: 10px;
292
+
293
+ .icon-compatibility-alert {
294
+ min-width: 16px;
295
+ min-height: 16px;
296
+ }
297
+ .compatibility-message-description {
298
+ font-size: 13px;
299
+ color: var(--select-storage-compatibility-description-color);
300
+
301
+ &.empty {
302
+ color: var(--select-storage-compatibility-empty-description-color);
303
+ }
304
+ }
305
+ }
306
+ }
307
+ .row-datastores-icon {
308
+ min-width: 18px;
309
+ }
310
+ }
311
+ </style>
@@ -1,6 +1,6 @@
1
- export interface UI_I_StatusData {
2
- iconClassName: string
3
- color: string
4
- isState: boolean
5
- text: string
1
+ export interface UI_I_StatusData {
2
+ iconClassName: string
3
+ color: string
4
+ isState: boolean
5
+ text: string
6
6
  }
@@ -1,21 +1,21 @@
1
- import type { UI_I_StatusData } from '~/components/common/vm/actions/common/select/storage/new/lib/models/interfaces'
2
-
3
- export const getStatus = (
4
- status: boolean,
5
- text1?: string,
6
- text2?: string
7
- ): UI_I_StatusData => {
8
- return status
9
- ? {
10
- iconClassName: 'status-check',
11
- color: 'green',
12
- isState: true,
13
- text: text1 || 'True',
14
- }
15
- : {
16
- iconClassName: 'close',
17
- color: 'red',
18
- isState: true,
19
- text: text2 || 'False',
20
- }
21
- }
1
+ import type { UI_I_StatusData } from '~/components/common/vm/actions/common/select/storage/new/lib/models/interfaces'
2
+
3
+ export const getStatus = (
4
+ status: boolean,
5
+ text1?: string,
6
+ text2?: string
7
+ ): UI_I_StatusData => {
8
+ return status
9
+ ? {
10
+ iconClassName: 'status-check',
11
+ color: 'green',
12
+ isState: true,
13
+ text: text1 || 'True',
14
+ }
15
+ : {
16
+ iconClassName: 'close',
17
+ color: 'red',
18
+ isState: true,
19
+ text: text2 || 'False',
20
+ }
21
+ }