bfg-common 1.5.514 → 1.5.516

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 (52) hide show
  1. package/assets/localization/local_be.json +5 -3
  2. package/assets/localization/local_en.json +6 -4
  3. package/assets/localization/local_hy.json +5 -3
  4. package/assets/localization/local_kk.json +5 -3
  5. package/assets/localization/local_ru.json +5 -3
  6. package/assets/localization/local_zh.json +5 -3
  7. package/components/atoms/sortableView/SortableView.vue +2 -2
  8. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  9. package/components/common/browse/lib/models/interfaces.ts +5 -5
  10. package/components/common/diagramMain/modals/lib/config/portModal.ts +251 -251
  11. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  12. package/components/common/diagramMain/network/Contents.vue +497 -497
  13. package/components/common/diagramMain/port/Port.vue +580 -580
  14. package/components/common/pages/backups/modals/createBackup/CreateBackup.vue +196 -379
  15. package/components/common/pages/backups/modals/createBackup/New.vue +267 -0
  16. package/components/common/pages/backups/modals/createBackup/Old.vue +142 -0
  17. package/components/common/pages/backups/modals/createBackup/configuration/Configuration.vue +29 -29
  18. package/components/common/pages/backups/modals/createBackup/configuration/ConfigurationNew.vue +218 -0
  19. package/components/common/pages/backups/modals/createBackup/configuration/ConfigurationOld.vue +29 -0
  20. package/components/common/pages/backups/modals/createBackup/configuration/backupWindow/BackupWindow.vue +29 -29
  21. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/MaxBandwidth.vue +69 -69
  22. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  23. package/components/common/pages/backups/modals/createBackup/configuration/strategy/Strategy.vue +38 -38
  24. package/components/common/pages/backups/modals/createBackup/datastores/Datastores.vue +34 -59
  25. package/components/common/pages/backups/modals/createBackup/datastores/DatastoresNew.vue +23 -0
  26. package/components/common/pages/backups/modals/createBackup/datastores/DatastoresOld.vue +33 -0
  27. package/components/common/pages/backups/modals/createBackup/datastores/tableView/new/TableView.vue +134 -0
  28. package/components/common/pages/backups/modals/createBackup/datastores/tableView/new/lib/config/table.ts +219 -0
  29. package/components/common/pages/backups/modals/createBackup/datastores/tableView/new/lib/models/enums.ts +15 -0
  30. package/components/common/pages/backups/modals/createBackup/datastores/tableView/new/lib/models/interfaces.ts +5 -0
  31. package/components/common/pages/backups/modals/createBackup/datastores/tableView/{TableView.vue → old/TableView.vue} +95 -95
  32. package/components/common/pages/backups/modals/createBackup/datastores/tableView/{lib → old/lib}/config/keys.ts +14 -14
  33. package/components/common/pages/backups/modals/createBackup/datastores/tableView/{lib → old/lib}/config/table.ts +127 -127
  34. package/components/common/pages/backups/modals/createBackup/datastores/tableView/{lib → old/lib}/models/types.ts +10 -10
  35. package/components/common/pages/backups/modals/createBackup/disks/Disks.vue +34 -28
  36. package/components/common/pages/backups/modals/createBackup/disks/DisksNew.vue +22 -0
  37. package/components/common/pages/backups/modals/createBackup/disks/DisksOld.vue +28 -0
  38. package/components/common/pages/backups/modals/createBackup/disks/tableView/new/TableView.vue +131 -0
  39. package/components/common/pages/backups/modals/createBackup/disks/tableView/new/lib/config/table.ts +178 -0
  40. package/components/common/pages/backups/modals/createBackup/disks/tableView/{TableView.vue → old/TableView.vue} +119 -108
  41. package/components/common/pages/backups/modals/createBackup/disks/tableView/{lib → old/lib}/config/keys.ts +12 -12
  42. package/components/common/pages/backups/modals/createBackup/disks/tableView/{lib → old/lib}/config/table.ts +125 -125
  43. package/components/common/pages/backups/modals/createBackup/disks/tableView/{lib → old/lib}/models/types.ts +10 -10
  44. package/components/common/pages/backups/modals/createBackup/general/General.vue +33 -141
  45. package/components/common/pages/backups/modals/createBackup/general/GeneralNew.vue +128 -0
  46. package/components/common/pages/backups/modals/createBackup/general/GeneralOld.vue +66 -0
  47. package/components/common/pages/backups/modals/createBackup/lib/config/readyToCompleteOptions.ts +59 -0
  48. package/components/common/pages/backups/modals/createBackup/lib/config/steps.ts +123 -117
  49. package/components/common/pages/backups/modals/createBackup/lib/config/strategyOptions.ts +13 -12
  50. package/components/common/pages/backups/modals/createBackup/lib/models/interfaces.ts +8 -8
  51. package/components/common/pages/backups/modals/createBackup/lib/validation/validations.ts +145 -0
  52. package/package.json +1 -1
@@ -0,0 +1,29 @@
1
+ <template>
2
+ <div class="configuration">
3
+ <div class="stack-view">
4
+ <common-pages-backups-modals-create-backup-configuration-strategy
5
+ v-model="model"
6
+ />
7
+ <!-- <common-pages-backups-modals-create-backup-configuration-backup-window-->
8
+ <!-- v-model="model"-->
9
+ <!-- />-->
10
+ <common-pages-backups-modals-create-backup-configuration-max-bandwidth
11
+ v-model="model"
12
+ />
13
+ </div>
14
+ </div>
15
+ </template>
16
+
17
+ <script lang="ts" setup>
18
+ import type { UI_I_CreateBackupForm } from '~/components/common/pages/backups/modals/lib/models/interfaces'
19
+
20
+ const model = defineModel<UI_I_CreateBackupForm>({ required: true })
21
+ </script>
22
+
23
+ <style lang="scss" scoped>
24
+ .stack-view {
25
+ :deep(.select-input__inner) {
26
+ min-width: max-content;
27
+ }
28
+ }
29
+ </style>
@@ -1,29 +1,29 @@
1
- <template>
2
- <atoms-stack-block
3
- :has-children="false"
4
- test-id="backup-window-stack-block"
5
- >
6
- <template #stackBlockKey>
7
- <span>{{ localization.common.backupWindow }}</span>
8
- </template>
9
- <template #stackBlockContent>
10
- <input
11
- v-model="model.start_window_min"
12
- data-id="hours-input"
13
- type="number"
14
- class="hrs"
15
- />
16
- </template>
17
- </atoms-stack-block>
18
- </template>
19
-
20
- <script lang="ts" setup>
21
- import type { UI_I_Localization } from '~/lib/models/interfaces'
22
- import type { UI_I_CreateBackupForm } from '~/components/common/pages/backups/modals/lib/models/interfaces'
23
-
24
- const model = defineModel<UI_I_CreateBackupForm>({ required: true })
25
-
26
- const localization = computed<UI_I_Localization>(() => useLocal())
27
- </script>
28
-
29
- <style lang="scss" scoped></style>
1
+ <template>
2
+ <atoms-stack-block
3
+ :has-children="false"
4
+ test-id="backup-window-stack-block"
5
+ >
6
+ <template #stackBlockKey>
7
+ <span>{{ localization.common.backupWindow }}</span>
8
+ </template>
9
+ <template #stackBlockContent>
10
+ <input
11
+ v-model="model.start_window_min"
12
+ data-id="hours-input"
13
+ type="number"
14
+ class="hrs"
15
+ />
16
+ </template>
17
+ </atoms-stack-block>
18
+ </template>
19
+
20
+ <script lang="ts" setup>
21
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
22
+ import type { UI_I_CreateBackupForm } from '~/components/common/pages/backups/modals/lib/models/interfaces'
23
+
24
+ const model = defineModel<UI_I_CreateBackupForm>({ required: true })
25
+
26
+ const localization = computed<UI_I_Localization>(() => useLocal())
27
+ </script>
28
+
29
+ <style lang="scss" scoped></style>
@@ -1,69 +1,69 @@
1
- <template>
2
- <atoms-stack-block
3
- :has-children="false"
4
- test-id="backup-max-bandwidth-stack-block"
5
- >
6
- <template #stackBlockKey>
7
- <span>{{ localization.common.maxBandwidth }}</span>
8
- </template>
9
- <template #stackBlockContent>
10
- <div class="flex-align-center">
11
- <input
12
- v-model="maxBindwidthLocal"
13
- data-id="mbps-input"
14
- type="number"
15
- class="mbps"
16
- />
17
-
18
- <common-select-input
19
- v-model="selectedType"
20
- :data="maxBandwidthOptionsLocal"
21
- test-id="backup-max-bandwidth-type"
22
- class="ml-1"
23
- />
24
- </div>
25
- </template>
26
- </atoms-stack-block>
27
- </template>
28
-
29
- <script lang="ts" setup>
30
- import type { UI_I_Localization } from '~/lib/models/interfaces'
31
- import type { UI_I_CreateBackupForm } from '~/components/common/pages/backups/modals/lib/models/interfaces'
32
- import type { UI_T_BandwidthOption } from '~/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/models/types'
33
- import type { UI_I_SelectInputItem } from '~/components/common/select/input/lib/models/interfaces'
34
- import { maxBandwidthOptions } from '~/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options'
35
-
36
- const model = defineModel<UI_I_CreateBackupForm>({ required: true })
37
-
38
- const localization = computed<UI_I_Localization>(() => useLocal())
39
- const { $binary }: any = useNuxtApp()
40
-
41
- const maxBandwidthOptionsLocal =
42
- ref<UI_I_SelectInputItem[]>(maxBandwidthOptions)
43
-
44
- const maxBindwidthLocal = computed<number>({
45
- get() {
46
- return selectedType.value === 1
47
- ? $binary.bToGb(model.value.bandwidth_limit)
48
- : $binary.bToMb(model.value.bandwidth_limit)
49
- },
50
- set(newValue: number) {
51
- model.value.bandwidth_limit =
52
- selectedType.value === 1
53
- ? $binary.gbToB(newValue)
54
- : $binary.mbToB(newValue)
55
- },
56
- })
57
-
58
- const selectedType = ref<UI_T_BandwidthOption>(0)
59
- watch(selectedType, (newValue) => {
60
- if (newValue === 1) model.value.bandwidth_limit *= 1_024
61
- else model.value.bandwidth_limit /= 1_024
62
- })
63
- </script>
64
-
65
- <style lang="scss" scoped>
66
- #backup-transaction-logs {
67
- margin: 4px 4px 0 0;
68
- }
69
- </style>
1
+ <template>
2
+ <atoms-stack-block
3
+ :has-children="false"
4
+ test-id="backup-max-bandwidth-stack-block"
5
+ >
6
+ <template #stackBlockKey>
7
+ <span>{{ localization.common.maxBandwidth }}</span>
8
+ </template>
9
+ <template #stackBlockContent>
10
+ <div class="flex-align-center">
11
+ <input
12
+ v-model="maxBindwidthLocal"
13
+ data-id="mbps-input"
14
+ type="number"
15
+ class="mbps"
16
+ />
17
+
18
+ <common-select-input
19
+ v-model="selectedType"
20
+ :data="maxBandwidthOptionsLocal"
21
+ test-id="backup-max-bandwidth-type"
22
+ class="ml-1"
23
+ />
24
+ </div>
25
+ </template>
26
+ </atoms-stack-block>
27
+ </template>
28
+
29
+ <script lang="ts" setup>
30
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
31
+ import type { UI_I_CreateBackupForm } from '~/components/common/pages/backups/modals/lib/models/interfaces'
32
+ import type { UI_T_BandwidthOption } from '~/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/models/types'
33
+ import type { UI_I_SelectInputItem } from '~/components/common/select/input/lib/models/interfaces'
34
+ import { maxBandwidthOptions } from '~/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options'
35
+
36
+ const model = defineModel<UI_I_CreateBackupForm>({ required: true })
37
+
38
+ const localization = computed<UI_I_Localization>(() => useLocal())
39
+ const { $binary }: any = useNuxtApp()
40
+
41
+ const maxBandwidthOptionsLocal =
42
+ ref<UI_I_SelectInputItem[]>(maxBandwidthOptions)
43
+
44
+ const maxBindwidthLocal = computed<number>({
45
+ get() {
46
+ return selectedType.value === 1
47
+ ? $binary.bToGb(model.value.bandwidth_limit)
48
+ : $binary.bToMb(model.value.bandwidth_limit)
49
+ },
50
+ set(newValue: number) {
51
+ model.value.bandwidth_limit =
52
+ selectedType.value === 1
53
+ ? $binary.gbToB(newValue)
54
+ : $binary.mbToB(newValue)
55
+ },
56
+ })
57
+
58
+ const selectedType = ref<UI_T_BandwidthOption>(0)
59
+ watch(selectedType, (newValue) => {
60
+ if (newValue === 1) model.value.bandwidth_limit *= 1_024
61
+ else model.value.bandwidth_limit /= 1_024
62
+ })
63
+ </script>
64
+
65
+ <style lang="scss" scoped>
66
+ #backup-transaction-logs {
67
+ margin: 4px 4px 0 0;
68
+ }
69
+ </style>
@@ -1,6 +1,6 @@
1
- import type {UI_I_SelectInputItem} from "~/components/common/select/input/lib/models/interfaces";
2
-
3
- export const maxBandwidthOptions: UI_I_SelectInputItem[] = [
4
- { label: 'Mbps', value: 0 },
5
- { label: 'Gbps', value: 1 },
6
- ]
1
+ import type {UI_I_SelectInputItem} from "~/components/common/select/input/lib/models/interfaces";
2
+
3
+ export const maxBandwidthOptions: UI_I_SelectInputItem[] = [
4
+ { label: 'Mbps', value: 0 },
5
+ { label: 'Gbps', value: 1 },
6
+ ]
@@ -1,38 +1,38 @@
1
- <template>
2
- <atoms-stack-block
3
- :has-children="false"
4
- test-id="backup-strategy-stack-block"
5
- >
6
- <template #stackBlockKey>
7
- <span>{{ localization.common.strategy }}</span>
8
- </template>
9
- <template #stackBlockContent>
10
- <common-select-input
11
- v-model="model.strategy"
12
- :data="strategyOptions"
13
- test-id="backup-strategy"
14
- />
15
- </template>
16
- </atoms-stack-block>
17
- </template>
18
-
19
- <script lang="ts" setup>
20
- import type { UI_I_Localization } from '~/lib/models/interfaces'
21
- import type { UI_I_CreateBackupForm } from '~/components/common/pages/backups/modals/lib/models/interfaces'
22
- import type { UI_I_SelectInputItem } from '~/components/common/select/input/lib/models/interfaces'
23
- import { strategyOptionsFunc } from '~/components/common/pages/backups/modals/createBackup/lib/config/strategyOptions'
24
-
25
- const model = defineModel<UI_I_CreateBackupForm>({ required: true })
26
-
27
- const localization = computed<UI_I_Localization>(() => useLocal())
28
-
29
- const strategyOptions = ref<UI_I_SelectInputItem[]>(
30
- strategyOptionsFunc(localization.value)
31
- )
32
- </script>
33
-
34
- <style lang="scss" scoped>
35
- #backup-transaction-logs {
36
- margin: 4px 4px 0 0;
37
- }
38
- </style>
1
+ <template>
2
+ <atoms-stack-block
3
+ :has-children="false"
4
+ test-id="backup-strategy-stack-block"
5
+ >
6
+ <template #stackBlockKey>
7
+ <span>{{ localization.common.strategy }}</span>
8
+ </template>
9
+ <template #stackBlockContent>
10
+ <common-select-input
11
+ v-model="model.strategy"
12
+ :data="strategyOptions"
13
+ test-id="backup-strategy"
14
+ />
15
+ </template>
16
+ </atoms-stack-block>
17
+ </template>
18
+
19
+ <script lang="ts" setup>
20
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
21
+ import type { UI_I_CreateBackupForm } from '~/components/common/pages/backups/modals/lib/models/interfaces'
22
+ import type { UI_I_SelectInputItem } from '~/components/common/select/input/lib/models/interfaces'
23
+ import { strategyOptionsFunc } from '~/components/common/pages/backups/modals/createBackup/lib/config/strategyOptions'
24
+
25
+ const model = defineModel<UI_I_CreateBackupForm>({ required: true })
26
+
27
+ const localization = computed<UI_I_Localization>(() => useLocal())
28
+
29
+ const strategyOptions = ref<UI_I_SelectInputItem[]>(
30
+ strategyOptionsFunc(localization.value)
31
+ )
32
+ </script>
33
+
34
+ <style lang="scss" scoped>
35
+ #backup-transaction-logs {
36
+ margin: 4px 4px 0 0;
37
+ }
38
+ </style>
@@ -1,59 +1,34 @@
1
- <template>
2
- <div class="datastores h-full">
3
- <common-pages-backups-modals-create-backup-datastores-table-view
4
- v-model:selected="model.backup_storage"
5
- :data-table="props.datastoreTable?.items || []"
6
- :total-items="props.datastoreTable?.total_items || 0"
7
- :total-pages="props.datastoreTable?.total_pages || 1"
8
- :loading="props.datastoreTableLoading"
9
- />
10
- </div>
11
- </template>
12
-
13
- <script lang="ts" setup>
14
- import type {
15
- UI_I_BackupDatastoreTable,
16
- UI_I_CreateBackupForm
17
- } from '~/components/common/pages/backups/modals/lib/models/interfaces'
18
-
19
- const props = defineProps<{
20
- datastoreTable: UI_I_BackupDatastoreTable | null
21
- datastoreTableLoading: boolean
22
- }>()
23
- const emits = defineEmits<{
24
- (event: 'change', value: string[]): void
25
- }>()
26
-
27
- const model = defineModel<UI_I_CreateBackupForm>({ required: true })
28
-
29
- const selectedKeys = ref<string[]>([])
30
-
31
- watch(
32
- () => props.datastoreTable,
33
- () => {
34
- selectedKeys.value = []
35
- },
36
- { deep: true, immediate: true }
37
- )
38
-
39
- watch(
40
- () => model.value.backup_storage,
41
- (newValue: string) => {
42
- const selectedNames: string[] = []
43
-
44
- props.datastoreTable?.items.forEach((item) => {
45
- if (newValue === item.id) selectedNames.push(item.name)
46
- })
47
-
48
- emits('change', selectedNames)
49
- },
50
- { deep: true, immediate: true }
51
- )
52
- </script>
53
-
54
- <style lang="scss" scoped>
55
- .backups-table-content {
56
- height: 100%;
57
- padding: 0 10px 10px 10px;
58
- }
59
- </style>
1
+ <template>
2
+ <common-pages-backups-modals-create-backup-datastores-new
3
+ v-if="isNewView"
4
+ v-model="model"
5
+ :datastore-table="props.datastoreTable"
6
+ :datastore-table-loading="props.datastoreTableLoading"
7
+ />
8
+ <common-pages-backups-modals-create-backup-datastores-old
9
+ v-else
10
+ v-model="model"
11
+ :datastore-table="props.datastoreTable"
12
+ :datastore-table-loading="props.datastoreTableLoading"
13
+ />
14
+ </template>
15
+
16
+ <script lang="ts" setup>
17
+
18
+ import type { UI_I_BackupDatastoreTable } from '~/components/common/pages/backups/modals/lib/models/interfaces'
19
+ import type { UI_I_CreateBackupForm } from '~/components/common/pages/backups/modals/lib/models/interfaces'
20
+
21
+ const model = defineModel<UI_I_CreateBackupForm>({ required: true })
22
+
23
+ const props = defineProps<{
24
+ datastoreTable: UI_I_BackupDatastoreTable | null
25
+ datastoreTableLoading: boolean
26
+ }>()
27
+
28
+ const { $store }: any = useNuxtApp()
29
+
30
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
31
+ </script>
32
+
33
+ <style lang="scss" scoped>
34
+ </style>
@@ -0,0 +1,23 @@
1
+ <template>
2
+ <common-pages-backups-modals-create-backup-datastores-table-view-new-table-view
3
+ v-model="model.backup_storage"
4
+ :datastore-table="props.datastoreTable"
5
+ :datastore-table-loading="props.datastoreTableLoading"
6
+ />
7
+ </template>
8
+ <script setup lang="ts">
9
+ import type {
10
+ UI_I_BackupDatastoreTable,
11
+ UI_I_CreateBackupForm
12
+ } from '~/components/common/pages/backups/modals/lib/models/interfaces'
13
+
14
+ const model = defineModel<UI_I_CreateBackupForm>({ required: true })
15
+
16
+ const props = defineProps<{
17
+ datastoreTable: UI_I_BackupDatastoreTable | null
18
+ datastoreTableLoading: boolean
19
+ }>()
20
+ </script>
21
+ <style scoped lang="scss">
22
+
23
+ </style>
@@ -0,0 +1,33 @@
1
+ <template>
2
+ <div class="datastores h-full">
3
+ <common-pages-backups-modals-create-backup-datastores-table-view-old-table-view
4
+ v-model:selected="model.backup_storage"
5
+ :data-table="props.datastoreTable?.items || []"
6
+ :total-items="props.datastoreTable?.total_items || 0"
7
+ :total-pages="props.datastoreTable?.total_pages || 1"
8
+ :loading="props.datastoreTableLoading"
9
+ />
10
+ </div>
11
+ </template>
12
+
13
+ <script lang="ts" setup>
14
+ import type {
15
+ UI_I_BackupDatastoreTable,
16
+ UI_I_CreateBackupForm
17
+ } from '~/components/common/pages/backups/modals/lib/models/interfaces'
18
+
19
+ const props = defineProps<{
20
+ datastoreTable: UI_I_BackupDatastoreTable | null
21
+ datastoreTableLoading: boolean
22
+ }>()
23
+
24
+ const model = defineModel<UI_I_CreateBackupForm>({ required: true })
25
+
26
+ </script>
27
+
28
+ <style lang="scss" scoped>
29
+ .backups-table-content {
30
+ height: 100%;
31
+ padding: 0 10px 10px 10px;
32
+ }
33
+ </style>
@@ -0,0 +1,134 @@
1
+ <template>
2
+ <div class="datastore-table">
3
+ <ui-data-table
4
+ :data="data"
5
+ :options="options"
6
+ :loading="props.datastoreTableLoading"
7
+ :total-pages="props.datastoreTable?.total_pages"
8
+ :total-items="props.datastoreTable?.total_items"
9
+ :texts="texts"
10
+ :default-layout="false"
11
+ :skeleton="skeletonData"
12
+ size="sm"
13
+ test-id="vm-backup-datastore-table"
14
+ @select-row="onSelectRow"
15
+ >
16
+ <template #icon="{ item }">
17
+ <span :class="['icon', item.data.iconClassName]"></span>
18
+ <span :title="item.text" class="text-ellipsis ml-1 datastore-table-text">
19
+ {{ item.text }}
20
+ </span>
21
+ </template>
22
+
23
+ <template #status="{ item }">
24
+ <ui-chip
25
+ :test-id="item.data.testId"
26
+ :color="item.data.chipColor"
27
+ size="sm"
28
+ rounded
29
+ >
30
+ <ui-icon
31
+ :name="item.data.iconClassName"
32
+ width="14px"
33
+ height="14px"
34
+ class="chip-icon"
35
+ ></ui-icon>
36
+ {{ item.text }}
37
+ </ui-chip>
38
+ </template>
39
+ </ui-data-table>
40
+ </div>
41
+ </template>
42
+ <script setup lang="ts">
43
+
44
+ import type { UI_I_TableTexts } from '~/node_modules/bfg-uikit/components/ui/dataTable/models/interfaces'
45
+ import type {
46
+ UI_I_DataTable,
47
+ UI_I_DataTableBody,
48
+ UI_I_DataTableHeader
49
+ } from '~/node_modules/bfg-uikit/components/ui/dataTable/models/interfaces'
50
+ import type { UI_I_DataTableSkeleton } from '~/node_modules/bfg-uikit/components/ui/dataTable/models/interfaces'
51
+ import {
52
+ getBodyDataFunc,
53
+ getHeaderDataFunc,
54
+ options
55
+ } from '~/components/common/pages/backups/modals/createBackup/datastores/tableView/new/lib/config/table'
56
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
57
+ import type {
58
+ UI_I_BackupDatastoreTable
59
+ } from "~/components/common/pages/backups/modals/lib/models/interfaces";
60
+
61
+
62
+ const selectedRow = defineModel<string>({ required: true })
63
+
64
+ const props = defineProps<{
65
+ datastoreTable: UI_I_BackupDatastoreTable | null
66
+ datastoreTableLoading: boolean
67
+ }>()
68
+
69
+ const localization = computed<UI_I_Localization>(() => useLocal())
70
+
71
+ const texts = computed<UI_I_TableTexts>(() => ({
72
+ searchHere: localization.value.common.searchHere,
73
+ rowsPerPage: localization.value.common.rowsPerPage,
74
+ of: localization.value.common.of,
75
+ selected: localization.value.common.selected,
76
+ columns: localization.value.common.columns,
77
+ previous: localization.value.common.previous,
78
+ next: localization.value.common.next,
79
+ noItemsFound: localization.value.common.noItemsFound,
80
+ exportAll: localization.value.common.exportAll,
81
+ exportSelected: localization.value.common.exportSelected,
82
+ all: localization.value.common.all,
83
+ filter: localization.value.common.filter,
84
+ }))
85
+ const skeletonData = ref<UI_I_DataTableSkeleton>({
86
+ columnsCount: 5,
87
+ headColumns: [],
88
+ bodyColumns: [],
89
+ withoutPagination: true,
90
+ })
91
+
92
+ const data = computed<UI_I_DataTable>(() => ({
93
+ id: 'vm-backup-datastores-table',
94
+ header: headItems.value,
95
+ body: bodyItems.value,
96
+ title: `${localization.value.common.storages} (${props.datastoreTable?.total_items})`,
97
+ }))
98
+
99
+
100
+ const headItems = computed<UI_I_DataTableHeader[]>(() =>
101
+ getHeaderDataFunc(localization.value)
102
+ )
103
+
104
+ const bodyItems = ref<UI_I_DataTableBody[]>([])
105
+ watch(
106
+ () => props.datastoreTable?.items,
107
+ (newValue) => {
108
+ if (!newValue?.length) {
109
+ bodyItems.value = []
110
+ return
111
+ }
112
+
113
+ bodyItems.value = getBodyDataFunc(newValue, localization.value, selectedRow.value)
114
+ },
115
+ { deep: true, immediate: true }
116
+ )
117
+ const onSelectRow = (value: UI_I_DataTableBody[]): void => {
118
+ selectedRow.value = value[0].data[0]?.data?.id
119
+ }
120
+ </script>
121
+ <style scoped lang="scss">
122
+ .datastore-table {
123
+ :deep(.title-container-top-info h6.title-container-top-selected-rows) {
124
+ font-size: 12px;
125
+ }
126
+ :deep(.ui-main-no-items-found span) {
127
+ font-size: 14px;
128
+ }
129
+
130
+ &-text {
131
+ font-size: 12px;
132
+ }
133
+ }
134
+ </style>