bfg-common 1.5.421 → 1.5.423

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 (157) 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 +7 -3
  7. package/assets/localization/local_en.json +12 -8
  8. package/assets/localization/local_hy.json +8 -4
  9. package/assets/localization/local_kk.json +7 -3
  10. package/assets/localization/local_ru.json +12 -8
  11. package/assets/localization/local_zh.json +7 -3
  12. package/assets/scss/common/theme.scss +0 -214
  13. package/components/atoms/TheIcon3.vue +50 -50
  14. package/components/atoms/collapse/CollapseNav.vue +170 -170
  15. package/components/atoms/perPage/PerPage.vue +58 -58
  16. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  17. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  18. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  19. package/components/common/context/lib/models/interfaces.ts +33 -33
  20. package/components/common/diagramMain/modals/lib/config/networkModal.ts +398 -398
  21. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  22. package/components/common/pages/backups/Backups.vue +102 -102
  23. package/components/common/pages/backups/DetailView.vue +52 -52
  24. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  25. package/components/common/pages/backups/modals/Modals.vue +231 -226
  26. package/components/common/pages/backups/modals/createBackup/CreateBackup.vue +376 -353
  27. package/components/common/pages/backups/modals/createBackup/configuration/Configuration.vue +29 -29
  28. package/components/common/pages/backups/modals/createBackup/configuration/backupWindow/BackupWindow.vue +26 -26
  29. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/MaxBandwidth.vue +66 -66
  30. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  31. package/components/common/pages/backups/modals/createBackup/configuration/strategy/Strategy.vue +35 -35
  32. package/components/common/pages/backups/modals/createBackup/datastores/Datastores.vue +59 -59
  33. package/components/common/pages/backups/modals/createBackup/datastores/tableView/TableView.vue +95 -95
  34. package/components/common/pages/backups/modals/createBackup/datastores/tableView/lib/config/table.ts +119 -119
  35. package/components/common/pages/backups/modals/createBackup/disks/Disks.vue +2 -2
  36. package/components/common/pages/backups/modals/createBackup/disks/tableView/TableView.vue +7 -4
  37. package/components/common/pages/backups/modals/createBackup/disks/tableView/lib/config/table.ts +117 -117
  38. package/components/common/pages/backups/modals/createBackup/general/General.vue +135 -48
  39. package/components/common/pages/backups/modals/createBackup/lib/config/steps.ts +117 -117
  40. package/components/common/pages/backups/modals/createBackup/lib/config/strategyOptions.ts +12 -12
  41. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  42. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -185
  43. package/components/common/pages/backups/modals/restore/Restore.vue +417 -417
  44. package/components/common/pages/backups/modals/restore/disks/Disks.vue +27 -27
  45. package/components/common/pages/backups/modals/restore/disks/tableView/TableView.vue +102 -102
  46. package/components/common/pages/backups/modals/restore/disks/tableView/lib/config/table.ts +117 -117
  47. package/components/common/pages/backups/modals/restore/lib/config/steps.ts +108 -108
  48. package/components/common/pages/backups/modals/restore/name/Name.vue +160 -160
  49. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  50. package/components/common/pages/backups/modals/restore/networks/Networks.vue +67 -67
  51. package/components/common/pages/backups/modals/restore/networks/table/Table.vue +214 -214
  52. package/components/common/pages/backups/modals/restore/types/lib/config/typeOptions.ts +25 -25
  53. package/components/common/pages/backups/tools/Tools.vue +75 -75
  54. package/components/common/pages/backups/tools/lib/config/tabs.ts +36 -36
  55. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  56. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  57. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  58. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  59. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  60. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  61. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  62. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  63. package/components/common/select/radio/RadioGroup.vue +137 -137
  64. package/components/common/spiceConsole/Drawer.vue +381 -381
  65. package/components/common/spiceConsole/SpiceConsole.vue +127 -127
  66. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  67. package/components/common/split/horizontal/HorizontalNew.vue +22 -5
  68. package/components/common/split/horizontal/HorizontalOld.vue +8 -1
  69. package/components/common/split/vertical/VerticalNew.vue +13 -2
  70. package/components/common/summary/notification/NotificationNew.vue +20 -4
  71. package/components/common/titleBar/titleBarNew/notification/Notification.vue +31 -0
  72. package/components/common/tools/Actions.vue +207 -207
  73. package/components/common/tooltip/Help.vue +14 -1
  74. package/components/common/treeView/TreeView.vue +52 -52
  75. package/components/common/vm/actions/add/New.vue +10 -0
  76. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  77. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  78. package/components/common/vm/actions/clone/Clone.vue +11 -0
  79. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  80. package/components/common/vm/actions/clone/toTemplate/ToTemplate.vue +11 -0
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +26 -0
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -70
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuNew.vue +8 -0
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/TooltipNew.vue +2 -0
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +15 -0
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/file/FileNew.vue +8 -0
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +85 -85
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSize.vue +23 -23
  94. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSizeNew.vue +8 -0
  95. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  96. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/inputDevices/InputDevicesNew.vue +10 -0
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  107. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  108. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  109. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  110. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  111. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapOld.vue +44 -44
  112. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  113. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  114. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  115. package/components/common/vm/actions/common/select/compatibility/New.vue +18 -0
  116. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  117. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +143 -143
  118. package/components/common/vm/actions/common/select/computeResource/New.vue +184 -168
  119. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +131 -131
  120. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  121. package/components/common/vm/actions/common/select/createType/New.vue +16 -0
  122. package/components/common/vm/actions/common/select/createType/Old.vue +9 -0
  123. package/components/common/vm/actions/common/select/createType/lib/config/items.ts +48 -48
  124. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  125. package/components/common/vm/actions/common/select/name/New.vue +20 -0
  126. package/components/common/vm/actions/common/select/os/New.vue +10 -0
  127. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  128. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  129. package/components/common/vm/actions/common/select/storage/new/New.vue +32 -0
  130. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  131. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  132. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  133. package/components/common/vm/actions/common/select/template/treeView/New.vue +10 -0
  134. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  135. package/components/common/vmt/actions/add/Old.vue +10 -0
  136. package/components/common/vmt/actions/add/lib/models/interfaces.ts +23 -23
  137. package/components/common/wizards/datastore/add/steps/nameAndConfigure/_serversList/DeletePopover.vue +8 -0
  138. package/components/common/wizards/datastore/add/steps/nameAndDevice/table/new/New.vue +11 -0
  139. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  140. package/components/common/wizards/network/add/modals/SelectStandardSwitch.vue +17 -6
  141. package/components/common/wizards/network/add/modals/SelectSwitch.vue +17 -6
  142. package/components/common/wizards/vm/migrate/lib/config/steps.ts +157 -157
  143. package/components/common/wizards/vm/migrate/lib/validations.ts +68 -68
  144. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  145. package/components/common/wizards/vm/migrate/select/type/lib/config/typeOptions.ts +45 -45
  146. package/composables/productNameLocal.ts +30 -30
  147. package/composables/useAppVersion.ts +21 -21
  148. package/package.json +1 -1
  149. package/plugins/date.ts +233 -233
  150. package/plugins/panelStates.ts +70 -70
  151. package/plugins/text.ts +59 -59
  152. package/public/spice-console/lib/images/bitmap.js +203 -203
  153. package/public/spice-console/network/spicechannel.js +390 -390
  154. package/store/main/mutations.ts +7 -7
  155. package/store/main/state.ts +7 -7
  156. package/components/common/pages/backups/modals/createBackup/disks/tableView/lib/models/interfaces.ts +0 -4
  157. package/components/common/wizards/network/add/modals/lib/models/interfaces.ts +0 -21
@@ -1,107 +1,107 @@
1
- <template>
2
- <div class="select-compatibility">
3
- <p class="select-compatibility-block">
4
- {{ props.description }}
5
- </p>
6
- <div class="select-compatibility-block version-select-wrap">
7
- <label for="version-select"
8
- >{{ localization.common.compatibleWith }}:</label
9
- >
10
-
11
- <atoms-tooltip-error
12
- :has-error="!!props.apiError"
13
- selector="#vm-wizard-version-select"
14
- @remove="emits('remove-validation-error')"
15
- >
16
- <template #elem>
17
- <select
18
- id="vm-wizard-version-select"
19
- v-model="selectedVersion"
20
- data-id="vm-wizard-version-select"
21
- >
22
- <option v-for="(item, key) in props.versions" :key="key" :value="item">
23
- {{ item.text }}
24
- </option>
25
- </select>
26
- </template>
27
- <template #content>{{ props.apiError }}</template>
28
- </atoms-tooltip-error>
29
- <!-- <div id="version-select-help-icon" class="flex-align-center relative">-->
30
- <!-- <atoms-the-icon-->
31
- <!-- fill="#0072a3"-->
32
- <!-- width="24px"-->
33
- <!-- height="24px"-->
34
- <!-- name="info-circle"-->
35
- <!-- @click="isShowHelp = !isShowHelp"-->
36
- <!-- />-->
37
- <!-- <atoms-tooltip-signpost-->
38
- <!-- v-if="isShowHelp"-->
39
- <!-- elem-id="version-select-help-icon"-->
40
- <!-- @hide="isShowHelp = false"-->
41
- <!-- >-->
42
- <!-- <h3 class="help-title">{{ localization.common.help }}</h3>-->
43
-
44
- <!-- <p>-->
45
- <!-- {{-->
46
- <!-- localization.common.eachVirtualMachineCompatibilitySettingIncludesHardwareAvailableVirtualMachine-->
47
- <!-- }}-->
48
- <!-- </p>-->
49
-
50
- <!-- <a id="more-information-link" class="pointer">{{-->
51
- <!-- localization.common.moreInformation-->
52
- <!-- }}</a>-->
53
- <!-- </atoms-tooltip-signpost>-->
54
- <!-- </div>-->
55
- </div>
56
- <p class="select-compatibility-block">
57
- {{ props.versionDescription }}
58
- </p>
59
- </div>
60
- </template>
61
-
62
- <script setup lang="ts">
63
- import type { UI_I_Localization } from '~/lib/models/interfaces'
64
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
65
-
66
- const selectedVersion = defineModel<UI_I_OptionItem | null>('selectedVersion', {required: true})
67
-
68
- const props = defineProps<{
69
- versions: UI_I_OptionItem[]
70
- description: string
71
- versionDescription: string
72
- apiError: string
73
- }>()
74
- const emits = defineEmits<{
75
- (event: 'remove-validation-error'): void
76
- }>()
77
-
78
- const localization = computed<UI_I_Localization>(() => useLocal())
79
-
80
- </script>
81
-
82
- <style scoped lang="scss">
83
- .select-compatibility-block {
84
- margin-top: 12px;
85
- font-size: 13px;
86
-
87
- &.version-select-wrap {
88
- display: flex;
89
- align-items: center;
90
- gap: 6px;
91
-
92
- //#version-select-help-icon {
93
- // .help-title {
94
- // font-size: 22px;
95
- // }
96
- //
97
- // p {
98
- // width: 200px;
99
- // }
100
- //
101
- // a {
102
- // color: #0072a3;
103
- // }
104
- //}
105
- }
106
- }
107
- </style>
1
+ <template>
2
+ <div class="select-compatibility">
3
+ <p class="select-compatibility-block">
4
+ {{ props.description }}
5
+ </p>
6
+ <div class="select-compatibility-block version-select-wrap">
7
+ <label for="version-select"
8
+ >{{ localization.common.compatibleWith }}:</label
9
+ >
10
+
11
+ <atoms-tooltip-error
12
+ :has-error="!!props.apiError"
13
+ selector="#vm-wizard-version-select"
14
+ @remove="emits('remove-validation-error')"
15
+ >
16
+ <template #elem>
17
+ <select
18
+ id="vm-wizard-version-select"
19
+ v-model="selectedVersion"
20
+ data-id="vm-wizard-version-select"
21
+ >
22
+ <option v-for="(item, key) in props.versions" :key="key" :value="item">
23
+ {{ item.text }}
24
+ </option>
25
+ </select>
26
+ </template>
27
+ <template #content>{{ props.apiError }}</template>
28
+ </atoms-tooltip-error>
29
+ <!-- <div id="version-select-help-icon" class="flex-align-center relative">-->
30
+ <!-- <atoms-the-icon-->
31
+ <!-- fill="#0072a3"-->
32
+ <!-- width="24px"-->
33
+ <!-- height="24px"-->
34
+ <!-- name="info-circle"-->
35
+ <!-- @click="isShowHelp = !isShowHelp"-->
36
+ <!-- />-->
37
+ <!-- <atoms-tooltip-signpost-->
38
+ <!-- v-if="isShowHelp"-->
39
+ <!-- elem-id="version-select-help-icon"-->
40
+ <!-- @hide="isShowHelp = false"-->
41
+ <!-- >-->
42
+ <!-- <h3 class="help-title">{{ localization.common.help }}</h3>-->
43
+
44
+ <!-- <p>-->
45
+ <!-- {{-->
46
+ <!-- localization.common.eachVirtualMachineCompatibilitySettingIncludesHardwareAvailableVirtualMachine-->
47
+ <!-- }}-->
48
+ <!-- </p>-->
49
+
50
+ <!-- <a id="more-information-link" class="pointer">{{-->
51
+ <!-- localization.common.moreInformation-->
52
+ <!-- }}</a>-->
53
+ <!-- </atoms-tooltip-signpost>-->
54
+ <!-- </div>-->
55
+ </div>
56
+ <p class="select-compatibility-block">
57
+ {{ props.versionDescription }}
58
+ </p>
59
+ </div>
60
+ </template>
61
+
62
+ <script setup lang="ts">
63
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
64
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
65
+
66
+ const selectedVersion = defineModel<UI_I_OptionItem | null>('selectedVersion', {required: true})
67
+
68
+ const props = defineProps<{
69
+ versions: UI_I_OptionItem[]
70
+ description: string
71
+ versionDescription: string
72
+ apiError: string
73
+ }>()
74
+ const emits = defineEmits<{
75
+ (event: 'remove-validation-error'): void
76
+ }>()
77
+
78
+ const localization = computed<UI_I_Localization>(() => useLocal())
79
+
80
+ </script>
81
+
82
+ <style scoped lang="scss">
83
+ .select-compatibility-block {
84
+ margin-top: 12px;
85
+ font-size: 13px;
86
+
87
+ &.version-select-wrap {
88
+ display: flex;
89
+ align-items: center;
90
+ gap: 6px;
91
+
92
+ //#version-select-help-icon {
93
+ // .help-title {
94
+ // font-size: 22px;
95
+ // }
96
+ //
97
+ // p {
98
+ // width: 200px;
99
+ // }
100
+ //
101
+ // a {
102
+ // color: #0072a3;
103
+ // }
104
+ //}
105
+ }
106
+ }
107
+ </style>
@@ -1,143 +1,143 @@
1
- <template>
2
- <common-vm-actions-common-select-compute-resource-new
3
- v-if="isNewView"
4
- v-model="selectedNode"
5
- :data-center="props.dataCenter"
6
- :compute-resource="props.computeResource"
7
- :compute-resource-tree="props.computeResourceTree"
8
- :errors="errors"
9
- :compatibility-text="compatibilityText"
10
- @get-compute-resource-tree="emits('get-compute-resource-tree', $event)"
11
- @show-compute-resource-tree="emits('show-compute-resource-tree', $event)"
12
- @select-compute-resource-tree="
13
- emits('select-compute-resource-tree', $event)
14
- "
15
- @clear-compute-resource-tree="emits('clear-compute-resource-tree')"
16
- @remove-validation-errors="onRemoveValidationErrors"
17
- />
18
- <common-vm-actions-common-select-compute-resource-old
19
- v-else
20
- v-model="selectedNode"
21
- :data-center="props.dataCenter"
22
- :compute-resource="props.computeResource"
23
- :compute-resource-tree="props.computeResourceTree"
24
- :errors="errors"
25
- :compatibility-text="compatibilityText"
26
- @get-compute-resource-tree="emits('get-compute-resource-tree', $event)"
27
- @show-compute-resource-tree="emits('show-compute-resource-tree', $event)"
28
- @select-compute-resource-tree="
29
- emits('select-compute-resource-tree', $event)
30
- "
31
- @clear-compute-resource-tree="emits('clear-compute-resource-tree')"
32
- @remove-validation-errors="onRemoveValidationErrors"
33
- />
34
- </template>
35
-
36
- <script setup lang="ts">
37
- import type { UI_I_Localization } from '~/lib/models/interfaces'
38
- import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
39
-
40
- const props = defineProps<{
41
- computeResourceSubmit: null | Function
42
- dataCenter: UI_I_TreeNode | null
43
- computeResource: UI_I_TreeNode
44
- computeResourceTree: UI_I_TreeNode[]
45
- }>()
46
-
47
- const emits = defineEmits<{
48
- (event: 'submit', value: UI_I_TreeNode): void
49
- (
50
- event: 'get-compute-resource-tree',
51
- value: { id: string | number; cb: () => void }
52
- ): void
53
- (event: 'show-compute-resource-tree', value: UI_I_TreeNode): void
54
- (event: 'select-compute-resource-tree', value: UI_I_TreeNode): void
55
- (event: 'clear-compute-resource-tree'): void
56
- (event: 'has-errors', value: boolean): void
57
- }>()
58
-
59
- const { $store }: any = useNuxtApp()
60
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
61
-
62
- const localization = computed<UI_I_Localization>(() => useLocal())
63
-
64
- watch(
65
- () => props.computeResourceSubmit,
66
- (newValue: null | Function) => {
67
- newValue && submit(newValue)
68
- }
69
- )
70
- const submit = (cb: Function): void => {
71
- if (
72
- !selectedNode.value ||
73
- // !compatibilityText.value[1] ||
74
- compatibilityText.value[0] !== 1 ||
75
- selectedNode.value.type === 'datacenter' ||
76
- selectedNode.value.type === 'folder' ||
77
- (selectedNode.value.type === 'cluster' && !selectedNode.value.nodes.length)
78
- ) {
79
- showValidationErrors(
80
- localization.value.common.specifyValidClusterOrHostDestination
81
- )
82
- cb(false)
83
- return
84
- }
85
-
86
- onRemoveValidationErrors()
87
- emits('submit', selectedNode.value)
88
- cb(true)
89
- }
90
-
91
- const errors = ref<string[]>([])
92
- const showValidationErrors = (text: string): void => {
93
- errors.value = [text]
94
- }
95
- const onRemoveValidationErrors = (): void => {
96
- errors.value = []
97
- }
98
- watch(
99
- errors,
100
- (newValue) => {
101
- emits('has-errors', !newValue.length)
102
- },
103
- { immediate: true, deep: true }
104
- )
105
-
106
- const selectedNode = defineModel<UI_I_TreeNode | null>('modelValue')
107
-
108
- const compatibilityText = computed<[number, string]>(() => {
109
- if (!selectedNode.value)
110
- return [0, localization.value.vmWizard.noDestinationComputeResourceSelected]
111
-
112
- let res: [number, string] = [
113
- 1,
114
- localization.value.common.compatibilityChecksSucceeded,
115
- ]
116
-
117
- if (
118
- !['cluster', 'host', 'resource_pool'].includes(selectedNode.value?.type)
119
- ) {
120
- res = [2, localization.value.common.selectValidClusterOrHostDestination]
121
- }
122
- if (selectedNode.value?.type === 'cluster') {
123
- const hasHost = !!selectedNode.value.nodes.length
124
- if (!hasHost) {
125
- res = [2, localization.value.common.clusterNotContainAnyHosts]
126
- }
127
- }
128
-
129
- if (selectedNode.value?.type === 'host') {
130
- if (selectedNode.value.state === 'Error') {
131
- // TODO check Maintenance Mode
132
- res = [
133
- 2,
134
- localization.value.common.selectedHostDisconnectedMaintenanceMode,
135
- ]
136
- }
137
- }
138
-
139
- return res
140
- })
141
- </script>
142
-
143
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <common-vm-actions-common-select-compute-resource-new
3
+ v-if="isNewView"
4
+ v-model="selectedNode"
5
+ :data-center="props.dataCenter"
6
+ :compute-resource="props.computeResource"
7
+ :compute-resource-tree="props.computeResourceTree"
8
+ :errors="errors"
9
+ :compatibility-text="compatibilityText"
10
+ @get-compute-resource-tree="emits('get-compute-resource-tree', $event)"
11
+ @show-compute-resource-tree="emits('show-compute-resource-tree', $event)"
12
+ @select-compute-resource-tree="
13
+ emits('select-compute-resource-tree', $event)
14
+ "
15
+ @clear-compute-resource-tree="emits('clear-compute-resource-tree')"
16
+ @remove-validation-errors="onRemoveValidationErrors"
17
+ />
18
+ <common-vm-actions-common-select-compute-resource-old
19
+ v-else
20
+ v-model="selectedNode"
21
+ :data-center="props.dataCenter"
22
+ :compute-resource="props.computeResource"
23
+ :compute-resource-tree="props.computeResourceTree"
24
+ :errors="errors"
25
+ :compatibility-text="compatibilityText"
26
+ @get-compute-resource-tree="emits('get-compute-resource-tree', $event)"
27
+ @show-compute-resource-tree="emits('show-compute-resource-tree', $event)"
28
+ @select-compute-resource-tree="
29
+ emits('select-compute-resource-tree', $event)
30
+ "
31
+ @clear-compute-resource-tree="emits('clear-compute-resource-tree')"
32
+ @remove-validation-errors="onRemoveValidationErrors"
33
+ />
34
+ </template>
35
+
36
+ <script setup lang="ts">
37
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
38
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
39
+
40
+ const props = defineProps<{
41
+ computeResourceSubmit: null | Function
42
+ dataCenter: UI_I_TreeNode | null
43
+ computeResource: UI_I_TreeNode
44
+ computeResourceTree: UI_I_TreeNode[]
45
+ }>()
46
+
47
+ const emits = defineEmits<{
48
+ (event: 'submit', value: UI_I_TreeNode): void
49
+ (
50
+ event: 'get-compute-resource-tree',
51
+ value: { id: string | number; cb: () => void }
52
+ ): void
53
+ (event: 'show-compute-resource-tree', value: UI_I_TreeNode): void
54
+ (event: 'select-compute-resource-tree', value: UI_I_TreeNode): void
55
+ (event: 'clear-compute-resource-tree'): void
56
+ (event: 'has-errors', value: boolean): void
57
+ }>()
58
+
59
+ const { $store }: any = useNuxtApp()
60
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
61
+
62
+ const localization = computed<UI_I_Localization>(() => useLocal())
63
+
64
+ watch(
65
+ () => props.computeResourceSubmit,
66
+ (newValue: null | Function) => {
67
+ newValue && submit(newValue)
68
+ }
69
+ )
70
+ const submit = (cb: Function): void => {
71
+ if (
72
+ !selectedNode.value ||
73
+ // !compatibilityText.value[1] ||
74
+ compatibilityText.value[0] !== 1 ||
75
+ selectedNode.value.type === 'datacenter' ||
76
+ selectedNode.value.type === 'folder' ||
77
+ (selectedNode.value.type === 'cluster' && !selectedNode.value.nodes.length)
78
+ ) {
79
+ showValidationErrors(
80
+ localization.value.common.specifyValidClusterOrHostDestination
81
+ )
82
+ cb(false)
83
+ return
84
+ }
85
+
86
+ onRemoveValidationErrors()
87
+ emits('submit', selectedNode.value)
88
+ cb(true)
89
+ }
90
+
91
+ const errors = ref<string[]>([])
92
+ const showValidationErrors = (text: string): void => {
93
+ errors.value = [text]
94
+ }
95
+ const onRemoveValidationErrors = (): void => {
96
+ errors.value = []
97
+ }
98
+ watch(
99
+ errors,
100
+ (newValue) => {
101
+ emits('has-errors', !newValue.length)
102
+ },
103
+ { immediate: true, deep: true }
104
+ )
105
+
106
+ const selectedNode = defineModel<UI_I_TreeNode | null>('modelValue')
107
+
108
+ const compatibilityText = computed<[number, string]>(() => {
109
+ if (!selectedNode.value)
110
+ return [0, localization.value.vmWizard.noDestinationComputeResourceSelected]
111
+
112
+ let res: [number, string] = [
113
+ 1,
114
+ localization.value.common.compatibilityChecksSucceeded,
115
+ ]
116
+
117
+ if (
118
+ !['cluster', 'host', 'resource_pool'].includes(selectedNode.value?.type)
119
+ ) {
120
+ res = [2, localization.value.common.selectValidClusterOrHostDestination]
121
+ }
122
+ if (selectedNode.value?.type === 'cluster') {
123
+ const hasHost = !!selectedNode.value.nodes.length
124
+ if (!hasHost) {
125
+ res = [2, localization.value.common.clusterNotContainAnyHosts]
126
+ }
127
+ }
128
+
129
+ if (selectedNode.value?.type === 'host') {
130
+ if (selectedNode.value.state === 'Error') {
131
+ // TODO check Maintenance Mode
132
+ res = [
133
+ 2,
134
+ localization.value.common.selectedHostDisconnectedMaintenanceMode,
135
+ ]
136
+ }
137
+ }
138
+
139
+ return res
140
+ })
141
+ </script>
142
+
143
+ <style scoped lang="scss"></style>