bfg-common 1.4.874 → 1.4.875

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 (182) hide show
  1. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  2. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  3. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  4. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  5. package/assets/scss/common/normalize.scss +361 -361
  6. package/components/atoms/TheIcon3.vue +50 -50
  7. package/components/atoms/autocomplete/Autocomplete.vue +301 -301
  8. package/components/atoms/collapse/CollapseNav.vue +164 -164
  9. package/components/atoms/dropdown/dropdown/Dropdown.vue +168 -168
  10. package/components/atoms/modal/bySteps/BySteps.vue +253 -253
  11. package/components/atoms/stack/StackBlock.vue +185 -185
  12. package/components/atoms/table/dataGrid/DataGrid.vue +1704 -1704
  13. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +222 -222
  14. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  15. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  16. package/components/common/browse/BrowseNew.vue +237 -237
  17. package/components/common/browse/BrowseOld.vue +217 -217
  18. package/components/common/browse/blocks/contents/Files.vue +37 -37
  19. package/components/common/browse/blocks/contents/FilesOld.vue +72 -72
  20. package/components/common/browse/blocks/contents/filesNew/FilesNew.vue +96 -96
  21. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  22. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  23. package/components/common/browse/lib/models/interfaces.ts +5 -5
  24. package/components/common/context/Context.vue +111 -111
  25. package/components/common/context/lib/models/interfaces.ts +30 -30
  26. package/components/common/context/recursion/Recursion.vue +87 -87
  27. package/components/common/context/recursion/RecursionOld.vue +227 -227
  28. package/components/common/details/DetailsItem.vue +109 -109
  29. package/components/common/diagramMain/Header.vue +211 -211
  30. package/components/common/diagramMain/adapter/AdapterItems.vue +61 -61
  31. package/components/common/diagramMain/lib/config/initial.ts +50 -50
  32. package/components/common/diagramMain/lib/models/types.ts +21 -21
  33. package/components/common/diagramMain/lib/utils/utils.ts +331 -331
  34. package/components/common/diagramMain/modals/ManagePhysicalAdaptersModal.vue +330 -330
  35. package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +40 -40
  36. package/components/common/diagramMain/modals/editSettings/EditSettings.vue +497 -497
  37. package/components/common/diagramMain/modals/editSettings/EditSettingsModal.vue +812 -812
  38. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +214 -214
  39. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +189 -189
  40. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +163 -163
  41. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +175 -175
  42. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +346 -346
  43. package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +205 -205
  44. package/components/common/diagramMain/modals/lib/config/diagramConfig.ts +23 -23
  45. package/components/common/diagramMain/modals/lib/config/initial.ts +180 -180
  46. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  47. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +87 -87
  48. package/components/common/diagramMain/modals/lib/utils/index.ts +24 -24
  49. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +114 -114
  50. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +169 -169
  51. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/SelectVmkernelAdapter.vue +159 -159
  52. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +14 -14
  53. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +137 -137
  54. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +52 -52
  55. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  56. package/components/common/diagramMain/port/Ports.vue +47 -47
  57. package/components/common/graph/Graph.vue +104 -104
  58. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  59. package/components/common/layout/theHeader/helpMenu/aboutNew/AboutNew.vue +103 -103
  60. package/components/common/modals/unsavedChanges/UnsavedChanges.vue +56 -56
  61. package/components/common/monitor/overview/OverviewNew.vue +142 -142
  62. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  63. package/components/common/monitor/overview/filters/Filters.vue +166 -166
  64. package/components/common/monitor/overview/filters/FiltersNew.vue +172 -172
  65. package/components/common/monitor/overview/filters/FiltersOld.vue +151 -151
  66. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModal.vue +175 -175
  67. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModalOld.vue +161 -161
  68. package/components/common/pages/home/StatusContent.vue +49 -49
  69. package/components/common/pages/home/headline/Headline.vue +45 -45
  70. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  71. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  72. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  73. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  74. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  75. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  76. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  77. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  78. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  79. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  80. package/components/common/pages/packages/Packages.vue +208 -208
  81. package/components/common/recursionTree/RecursionTree.vue +223 -223
  82. package/components/common/select/button/ButtonDropdown.vue +108 -108
  83. package/components/common/spiceConsole/Drawer.vue +370 -370
  84. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  85. package/components/common/split/horizontal/HorizontalNew.vue +376 -376
  86. package/components/common/split/horizontal/HorizontalOld.vue +337 -337
  87. package/components/common/split/vertical/Vertical.vue +160 -160
  88. package/components/common/vm/actions/add/Add.vue +622 -622
  89. package/components/common/vm/actions/clone/Clone.vue +639 -639
  90. package/components/common/vm/actions/clone/lib/config/steps.ts +129 -129
  91. package/components/common/vm/actions/clone/toTemplate/ToTemplate.vue +634 -634
  92. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  93. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +275 -275
  94. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +274 -274
  95. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +177 -177
  96. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +698 -698
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +410 -410
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +319 -319
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +99 -99
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +117 -117
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +164 -164
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +70 -70
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +338 -338
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +368 -368
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +232 -232
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskOld.vue +250 -250
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeOld.vue +56 -56
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +44 -44
  115. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +124 -124
  116. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/LocationOld.vue +134 -134
  117. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +63 -63
  118. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +95 -95
  119. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  120. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +69 -69
  121. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressOld.vue +83 -83
  122. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  123. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  124. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  125. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  126. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +84 -84
  127. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  128. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  129. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  130. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  131. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +41 -41
  132. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +81 -81
  133. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  134. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +56 -56
  135. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  136. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  137. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +104 -104
  138. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardOld.vue +112 -112
  139. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryNew.vue +54 -54
  140. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  141. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  142. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  143. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  144. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  145. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +42 -42
  146. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +25 -25
  147. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  148. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  149. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +141 -141
  150. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  151. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  152. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  153. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +30 -30
  154. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  155. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +39 -39
  156. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  157. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +102 -102
  158. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordOld.vue +94 -94
  159. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  160. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +38 -38
  161. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  162. package/components/common/vm/actions/common/select/storage/Storage.vue +130 -130
  163. package/components/common/vm/actions/common/select/storage/StorageOld.vue +129 -129
  164. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  165. package/components/common/wizards/datastore/add/lib/config/steps.ts +138 -138
  166. package/components/common/wizards/vm/migrate/Migrate.vue +302 -302
  167. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  168. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  169. package/components/common/wizards/vm/migrate/select/network/table/network/Network.vue +150 -150
  170. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  171. package/components/common/wizards/vm/migrate/select/priority/Priority.vue +43 -43
  172. package/composables/productNameLocal.ts +30 -30
  173. package/composables/useAppVersion.ts +21 -21
  174. package/modules/setLastUpdateTime/index.ts +6 -6
  175. package/package.json +1 -1
  176. package/plugins/date.ts +233 -233
  177. package/plugins/recursion.ts +311 -311
  178. package/public/spice-console/lib/images/bitmap.js +203 -203
  179. package/public/spice-console/network/spicechannel.js +383 -383
  180. package/store/main/mutations.ts +7 -7
  181. package/store/main/state.ts +7 -7
  182. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -1,302 +1,302 @@
1
- <template>
2
- <div class="migrate-vm">
3
- <atoms-wizard
4
- show
5
- :wizard="wizard"
6
- :selected-scheme="selectedScheme"
7
- :title="title"
8
- :localization="localization"
9
- class="migrate-vm-wizard"
10
- test-id="migrate-vm-wizard"
11
- @change-steps="onChangeSteps"
12
- @hide="onHideModal"
13
- @submit="onFinish"
14
- >
15
- <template #modalBody="{ selectedStep }">
16
- <common-pages-scheduled-tasks-modals-common-new-task-form
17
- v-if="selectedStep.id === 0"
18
- v-model="modelSchedulerTask"
19
- :target="selectedVirtualMachine"
20
- />
21
-
22
- <common-wizards-vm-migrate-select-type
23
- v-if="selectedStep.id === 1"
24
- v-model="form.migrate_type"
25
- :project="props.project"
26
- />
27
-
28
- <common-wizards-vm-migrate-select-target-server
29
- v-if="selectedStep.id === 2"
30
- v-model="form.target_server"
31
- v-model:connect-server="isConnectSourceServer"
32
- :wizard="wizard"
33
- />
34
-
35
- <common-wizards-vm-migrate-select-compute-resource
36
- v-show="selectedStep.id === 3"
37
- v-model="form"
38
- :alert-messages="alertMessages[3]"
39
- :get-compute-resource-data="props.getComputeResourceData"
40
- :compute-resource-data="props.computeResourceTableData"
41
- :compute-resource-tree="props.computeResourceTree"
42
- @hide-alert="onHideAlert"
43
- />
44
-
45
- <common-wizards-vm-migrate-select-storage
46
- v-show="selectedStep.id === 4"
47
- v-model="form"
48
- :alert-messages="alertMessages[4]"
49
- :get-datastore-table-func="props.getDatastoreTableFunc"
50
- :datastore="props.datastore"
51
- :connected-storage-id-default="connectedStorageIdOnVm"
52
- :configure-per-disks="props.configurePerDisks"
53
- @hide-alert="onHideAlert"
54
- />
55
-
56
- <common-wizards-vm-migrate-select-network
57
- v-show="selectedStep.id === 5"
58
- v-model="form.network"
59
- :vm-info="props.vmInfo"
60
- :networks="props.networks"
61
- />
62
-
63
- <common-wizards-vm-migrate-select-priority
64
- v-if="selectedStep.id === 6"
65
- v-model="form.vMotion_priority"
66
- :vm-state="props.vmState"
67
- />
68
-
69
- <common-ready-to-complete
70
- v-if="selectedStep.id === 7"
71
- :data="dataReadyView"
72
- />
73
- </template>
74
- </atoms-wizard>
75
- </div>
76
- </template>
77
-
78
- <script setup lang="ts">
79
- import type {
80
- UI_I_WizardStep,
81
- UI_I_ValidationReturn,
82
- } from '~/components/atoms/wizard/lib/models/interfaces'
83
- import Wizard from '~/components/atoms/wizard/lib/utils/utils'
84
- import {
85
- stepsFunc,
86
- stepsSchemeInitial,
87
- } from '~/components/common/wizards/vm/migrate/lib/config/steps'
88
- import type { UI_I_Localization } from '~/lib/models/interfaces'
89
- import type { UI_T_Project } from '~/lib/models/types'
90
- import type {
91
- UI_I_MigrateFormLocal,
92
- UI_I_ChangeStepsSchemes,
93
- } from '~/components/common/wizards/vm/migrate/lib/models/interfaces'
94
- import type { UI_T_VmMigrateType } from '~/components/common/wizards/vm/migrate/select/type/lib/models/types'
95
- import type { UI_I_TablePayload } from '~/lib/models/table/interfaces'
96
- import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
97
- import type { UI_I_VmSettings } from '~/lib/models/store/vm/interfaces'
98
- import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
99
- import type { UI_I_StorageConfigurePerDiskItem } from '~/components/common/wizards/vm/migrate/select/storage/configure/disk/table/lib/models/interfaces'
100
- import type { UI_I_TableInfoItem } from '~/components/atoms/table/info/lib/models/interfaces'
101
- import type { UI_I_ScheduleNewTasksForm } from '~/components/common/pages/scheduledTasks/modals/lib/models/interfaces'
102
- import { constructDataReadyViewFunc } from '~/components/common/wizards/vm/migrate/lib/config/constructDataReady'
103
- import * as validation from '~/components/common/wizards/vm/migrate/lib/validations'
104
-
105
- const props = withDefaults(
106
- defineProps<{
107
- project: UI_T_Project
108
- isScheduledTasks: boolean
109
- isEditScheduledTasks: boolean
110
- vmSettings: UI_I_VmSettings | null
111
- vmName: string
112
- getDatastoreTableFunc: (payload: UI_I_TablePayload) => Promise<void>
113
- getComputeResourceData: (payload: UI_I_TablePayload) => Promise<void>
114
- datastore: UI_I_DatastoreTableItem[]
115
- configurePerDisks: UI_I_StorageConfigurePerDiskItem[]
116
- computeResourceTableData?: any
117
- computeResourceTree?: UI_I_TreeNode | null
118
- selectedVirtualMachine?: string
119
- vmState?: number
120
- vmInfo?: any | null
121
- networks?: any
122
- }>(),
123
- {
124
- computeResourceTree: null,
125
- }
126
- )
127
- const emits = defineEmits<{
128
- (event: 'finish', value: UI_I_MigrateFormLocal): void
129
- (event: 'get-networks', value: string): void
130
- (event: 'hide'): void
131
- }>()
132
- const modelSchedulerTask = defineModel<UI_I_ScheduleNewTasksForm>(
133
- 'schedulerForm',
134
- { required: true }
135
- )
136
-
137
- const localization = computed<UI_I_Localization>(() => useLocal())
138
-
139
- const wizard: Wizard = new Wizard(
140
- stepsFunc(localization.value, props.isScheduledTasks),
141
- stepsSchemeInitial
142
- )
143
-
144
- const selectedScheme = computed<number[]>(() => wizard.selectedScheme.value)
145
- const alertMessages = computed<string[][]>(() => wizard.alertMessages.value)
146
-
147
- const title = computed<string>(() => {
148
- const { scheduleNewTasks, scheduleTaskEdit, migrate } =
149
- localization.value.common
150
- let result = migrate
151
- if (props.isScheduledTasks) {
152
- const schedulerMode = props.isEditScheduledTasks
153
- ? scheduleTaskEdit
154
- : scheduleNewTasks
155
-
156
- result = `${schedulerMode} (${migrate})`
157
- }
158
-
159
- return result
160
- })
161
-
162
- const isConnectSourceServer = ref<boolean>(false)
163
- const form = ref<UI_I_MigrateFormLocal>({
164
- migrate_type: props.project === 'procurator' ? 'storage' : 'resource',
165
- disk_format: 0,
166
- storage: null,
167
- configure: {
168
- type: 'batch-configure',
169
- disks: [],
170
- },
171
- target_server: {
172
- fqdn: '',
173
- user: '',
174
- password: '',
175
- },
176
- network: {},
177
- resource: {
178
- selectedNode: null,
179
- host: null,
180
- cluster: null,
181
- resourcePool: null,
182
- vApps: null,
183
- },
184
- vMotion_priority:
185
- props.vmState === 2 ? 'live' : props.vmState === 1 ? 'offline' : '',
186
- })
187
-
188
-
189
- const validationFunc = async (
190
- value: UI_I_WizardStep[],
191
- currentStep: UI_I_WizardStep,
192
- nextStep: UI_I_WizardStep
193
- ): Promise<UI_I_ValidationReturn> => {
194
- let stepHasError = false
195
-
196
- if (wizard.isValidateForStep(3, currentStep.id, nextStep.id)) {
197
- const nameValidation = await validation.checkSelectedResourceSync(
198
- localization.value,
199
- form.value.resource,
200
- wizard,
201
- value
202
- )
203
-
204
- value = nameValidation.newValue
205
-
206
- stepHasError = nameValidation.stepHasError
207
- }
208
-
209
- if (wizard.isValidateForStep(4, currentStep.id, nextStep.id)) {
210
- const nameValidation = await validation.checkSelectedDatastoreSync(
211
- localization.value,
212
- form.value.storage,
213
- wizard,
214
- value
215
- )
216
-
217
- value = nameValidation.newValue
218
-
219
- stepHasError = nameValidation.stepHasError
220
- }
221
-
222
- return {
223
- newValue: value,
224
- stepHasError,
225
- }
226
- }
227
- const onChangeSteps = async (value: UI_I_WizardStep[]): Promise<void> =>
228
- wizard.changeSteps(value, validationFunc)
229
-
230
- // Choosing Scheme
231
- watch(
232
- () => form.value.migrate_type,
233
- (newValue: UI_T_VmMigrateType) => {
234
- const schemes: UI_I_ChangeStepsSchemes = {
235
- procurator: {
236
- storage: props.isScheduledTasks ? 1 : 0,
237
- },
238
- sphere: {
239
- storage: props.isScheduledTasks ? 1 : 0,
240
- resource: props.isScheduledTasks ? 3 : 2,
241
- 'resource-storage': 2,
242
- server: 3,
243
- },
244
- }
245
-
246
- const projectSchemes = schemes[props.project]
247
-
248
- if (projectSchemes && projectSchemes[newValue] !== undefined) {
249
- wizard.changeScheme(projectSchemes[newValue] as number)
250
- }
251
- },
252
- { deep: true, immediate: true }
253
- )
254
- // Get networks
255
- watch(
256
- () => form.value.resource.host,
257
- (newValue) => {
258
- emits('get-networks', newValue.id)
259
- }
260
- )
261
-
262
- watch(
263
- modelSchedulerTask,
264
- (newValue: UI_I_ScheduleNewTasksForm) => {
265
- if (props.isScheduledTasks) wizard.setDisabledNextButton(newValue.isValid)
266
- },
267
- { immediate: true, deep: true }
268
- )
269
-
270
- const loading = ref<boolean>(false)
271
-
272
- const connectedStorageIdOnVm = computed<string>(
273
- () => props.vmSettings?.storage.id || ''
274
- )
275
-
276
- const dataReadyView = computed<UI_I_TableInfoItem>(() =>
277
- constructDataReadyViewFunc(props.vmName, form.value)
278
- )
279
- const onFinish = (): void => {
280
- loading.value = true
281
- emits('finish', form.value)
282
- loading.value = false
283
- }
284
-
285
- const onHideModal = (): void => {
286
- emits('hide')
287
- }
288
-
289
- const onHideAlert = (stepId: number): void => {
290
- wizard.hideAlertMessagesByStepId(stepId)
291
- }
292
- </script>
293
-
294
- <style scoped lang="scss">
295
- @import 'assets/scss/common/mixins.scss';
296
- .migrate-vm {
297
- :deep(.modal-body) {
298
- height: inherit;
299
- @include flex($dir: column);
300
- }
301
- }
302
- </style>
1
+ <template>
2
+ <div class="migrate-vm">
3
+ <atoms-wizard
4
+ show
5
+ :wizard="wizard"
6
+ :selected-scheme="selectedScheme"
7
+ :title="title"
8
+ :localization="localization"
9
+ class="migrate-vm-wizard"
10
+ test-id="migrate-vm-wizard"
11
+ @change-steps="onChangeSteps"
12
+ @hide="onHideModal"
13
+ @submit="onFinish"
14
+ >
15
+ <template #modalBody="{ selectedStep }">
16
+ <common-pages-scheduled-tasks-modals-common-new-task-form
17
+ v-if="selectedStep.id === 0"
18
+ v-model="modelSchedulerTask"
19
+ :target="selectedVirtualMachine"
20
+ />
21
+
22
+ <common-wizards-vm-migrate-select-type
23
+ v-if="selectedStep.id === 1"
24
+ v-model="form.migrate_type"
25
+ :project="props.project"
26
+ />
27
+
28
+ <common-wizards-vm-migrate-select-target-server
29
+ v-if="selectedStep.id === 2"
30
+ v-model="form.target_server"
31
+ v-model:connect-server="isConnectSourceServer"
32
+ :wizard="wizard"
33
+ />
34
+
35
+ <common-wizards-vm-migrate-select-compute-resource
36
+ v-show="selectedStep.id === 3"
37
+ v-model="form"
38
+ :alert-messages="alertMessages[3]"
39
+ :get-compute-resource-data="props.getComputeResourceData"
40
+ :compute-resource-data="props.computeResourceTableData"
41
+ :compute-resource-tree="props.computeResourceTree"
42
+ @hide-alert="onHideAlert"
43
+ />
44
+
45
+ <common-wizards-vm-migrate-select-storage
46
+ v-show="selectedStep.id === 4"
47
+ v-model="form"
48
+ :alert-messages="alertMessages[4]"
49
+ :get-datastore-table-func="props.getDatastoreTableFunc"
50
+ :datastore="props.datastore"
51
+ :connected-storage-id-default="connectedStorageIdOnVm"
52
+ :configure-per-disks="props.configurePerDisks"
53
+ @hide-alert="onHideAlert"
54
+ />
55
+
56
+ <common-wizards-vm-migrate-select-network
57
+ v-show="selectedStep.id === 5"
58
+ v-model="form.network"
59
+ :vm-info="props.vmInfo"
60
+ :networks="props.networks"
61
+ />
62
+
63
+ <common-wizards-vm-migrate-select-priority
64
+ v-if="selectedStep.id === 6"
65
+ v-model="form.vMotion_priority"
66
+ :vm-state="props.vmState"
67
+ />
68
+
69
+ <common-ready-to-complete
70
+ v-if="selectedStep.id === 7"
71
+ :data="dataReadyView"
72
+ />
73
+ </template>
74
+ </atoms-wizard>
75
+ </div>
76
+ </template>
77
+
78
+ <script setup lang="ts">
79
+ import type {
80
+ UI_I_WizardStep,
81
+ UI_I_ValidationReturn,
82
+ } from '~/components/atoms/wizard/lib/models/interfaces'
83
+ import Wizard from '~/components/atoms/wizard/lib/utils/utils'
84
+ import {
85
+ stepsFunc,
86
+ stepsSchemeInitial,
87
+ } from '~/components/common/wizards/vm/migrate/lib/config/steps'
88
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
89
+ import type { UI_T_Project } from '~/lib/models/types'
90
+ import type {
91
+ UI_I_MigrateFormLocal,
92
+ UI_I_ChangeStepsSchemes,
93
+ } from '~/components/common/wizards/vm/migrate/lib/models/interfaces'
94
+ import type { UI_T_VmMigrateType } from '~/components/common/wizards/vm/migrate/select/type/lib/models/types'
95
+ import type { UI_I_TablePayload } from '~/lib/models/table/interfaces'
96
+ import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
97
+ import type { UI_I_VmSettings } from '~/lib/models/store/vm/interfaces'
98
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
99
+ import type { UI_I_StorageConfigurePerDiskItem } from '~/components/common/wizards/vm/migrate/select/storage/configure/disk/table/lib/models/interfaces'
100
+ import type { UI_I_TableInfoItem } from '~/components/atoms/table/info/lib/models/interfaces'
101
+ import type { UI_I_ScheduleNewTasksForm } from '~/components/common/pages/scheduledTasks/modals/lib/models/interfaces'
102
+ import { constructDataReadyViewFunc } from '~/components/common/wizards/vm/migrate/lib/config/constructDataReady'
103
+ import * as validation from '~/components/common/wizards/vm/migrate/lib/validations'
104
+
105
+ const props = withDefaults(
106
+ defineProps<{
107
+ project: UI_T_Project
108
+ isScheduledTasks: boolean
109
+ isEditScheduledTasks: boolean
110
+ vmSettings: UI_I_VmSettings | null
111
+ vmName: string
112
+ getDatastoreTableFunc: (payload: UI_I_TablePayload) => Promise<void>
113
+ getComputeResourceData: (payload: UI_I_TablePayload) => Promise<void>
114
+ datastore: UI_I_DatastoreTableItem[]
115
+ configurePerDisks: UI_I_StorageConfigurePerDiskItem[]
116
+ computeResourceTableData?: any
117
+ computeResourceTree?: UI_I_TreeNode | null
118
+ selectedVirtualMachine?: string
119
+ vmState?: number
120
+ vmInfo?: any | null
121
+ networks?: any
122
+ }>(),
123
+ {
124
+ computeResourceTree: null,
125
+ }
126
+ )
127
+ const emits = defineEmits<{
128
+ (event: 'finish', value: UI_I_MigrateFormLocal): void
129
+ (event: 'get-networks', value: string): void
130
+ (event: 'hide'): void
131
+ }>()
132
+ const modelSchedulerTask = defineModel<UI_I_ScheduleNewTasksForm>(
133
+ 'schedulerForm',
134
+ { required: true }
135
+ )
136
+
137
+ const localization = computed<UI_I_Localization>(() => useLocal())
138
+
139
+ const wizard: Wizard = new Wizard(
140
+ stepsFunc(localization.value, props.isScheduledTasks),
141
+ stepsSchemeInitial
142
+ )
143
+
144
+ const selectedScheme = computed<number[]>(() => wizard.selectedScheme.value)
145
+ const alertMessages = computed<string[][]>(() => wizard.alertMessages.value)
146
+
147
+ const title = computed<string>(() => {
148
+ const { scheduleNewTasks, scheduleTaskEdit, migrate } =
149
+ localization.value.common
150
+ let result = migrate
151
+ if (props.isScheduledTasks) {
152
+ const schedulerMode = props.isEditScheduledTasks
153
+ ? scheduleTaskEdit
154
+ : scheduleNewTasks
155
+
156
+ result = `${schedulerMode} (${migrate})`
157
+ }
158
+
159
+ return result
160
+ })
161
+
162
+ const isConnectSourceServer = ref<boolean>(false)
163
+ const form = ref<UI_I_MigrateFormLocal>({
164
+ migrate_type: props.project === 'procurator' ? 'storage' : 'resource',
165
+ disk_format: 0,
166
+ storage: null,
167
+ configure: {
168
+ type: 'batch-configure',
169
+ disks: [],
170
+ },
171
+ target_server: {
172
+ fqdn: '',
173
+ user: '',
174
+ password: '',
175
+ },
176
+ network: {},
177
+ resource: {
178
+ selectedNode: null,
179
+ host: null,
180
+ cluster: null,
181
+ resourcePool: null,
182
+ vApps: null,
183
+ },
184
+ vMotion_priority:
185
+ props.vmState === 2 ? 'live' : props.vmState === 1 ? 'offline' : '',
186
+ })
187
+
188
+
189
+ const validationFunc = async (
190
+ value: UI_I_WizardStep[],
191
+ currentStep: UI_I_WizardStep,
192
+ nextStep: UI_I_WizardStep
193
+ ): Promise<UI_I_ValidationReturn> => {
194
+ let stepHasError = false
195
+
196
+ if (wizard.isValidateForStep(3, currentStep.id, nextStep.id)) {
197
+ const nameValidation = await validation.checkSelectedResourceSync(
198
+ localization.value,
199
+ form.value.resource,
200
+ wizard,
201
+ value
202
+ )
203
+
204
+ value = nameValidation.newValue
205
+
206
+ stepHasError = nameValidation.stepHasError
207
+ }
208
+
209
+ if (wizard.isValidateForStep(4, currentStep.id, nextStep.id)) {
210
+ const nameValidation = await validation.checkSelectedDatastoreSync(
211
+ localization.value,
212
+ form.value.storage,
213
+ wizard,
214
+ value
215
+ )
216
+
217
+ value = nameValidation.newValue
218
+
219
+ stepHasError = nameValidation.stepHasError
220
+ }
221
+
222
+ return {
223
+ newValue: value,
224
+ stepHasError,
225
+ }
226
+ }
227
+ const onChangeSteps = async (value: UI_I_WizardStep[]): Promise<void> =>
228
+ wizard.changeSteps(value, validationFunc)
229
+
230
+ // Choosing Scheme
231
+ watch(
232
+ () => form.value.migrate_type,
233
+ (newValue: UI_T_VmMigrateType) => {
234
+ const schemes: UI_I_ChangeStepsSchemes = {
235
+ procurator: {
236
+ storage: props.isScheduledTasks ? 1 : 0,
237
+ },
238
+ sphere: {
239
+ storage: props.isScheduledTasks ? 1 : 0,
240
+ resource: props.isScheduledTasks ? 3 : 2,
241
+ 'resource-storage': 2,
242
+ server: 3,
243
+ },
244
+ }
245
+
246
+ const projectSchemes = schemes[props.project]
247
+
248
+ if (projectSchemes && projectSchemes[newValue] !== undefined) {
249
+ wizard.changeScheme(projectSchemes[newValue] as number)
250
+ }
251
+ },
252
+ { deep: true, immediate: true }
253
+ )
254
+ // Get networks
255
+ watch(
256
+ () => form.value.resource.host,
257
+ (newValue) => {
258
+ emits('get-networks', newValue.id)
259
+ }
260
+ )
261
+
262
+ watch(
263
+ modelSchedulerTask,
264
+ (newValue: UI_I_ScheduleNewTasksForm) => {
265
+ if (props.isScheduledTasks) wizard.setDisabledNextButton(newValue.isValid)
266
+ },
267
+ { immediate: true, deep: true }
268
+ )
269
+
270
+ const loading = ref<boolean>(false)
271
+
272
+ const connectedStorageIdOnVm = computed<string>(
273
+ () => props.vmSettings?.storage.id || ''
274
+ )
275
+
276
+ const dataReadyView = computed<UI_I_TableInfoItem>(() =>
277
+ constructDataReadyViewFunc(props.vmName, form.value)
278
+ )
279
+ const onFinish = (): void => {
280
+ loading.value = true
281
+ emits('finish', form.value)
282
+ loading.value = false
283
+ }
284
+
285
+ const onHideModal = (): void => {
286
+ emits('hide')
287
+ }
288
+
289
+ const onHideAlert = (stepId: number): void => {
290
+ wizard.hideAlertMessagesByStepId(stepId)
291
+ }
292
+ </script>
293
+
294
+ <style scoped lang="scss">
295
+ @import 'assets/scss/common/mixins.scss';
296
+ .migrate-vm {
297
+ :deep(.modal-body) {
298
+ height: inherit;
299
+ @include flex($dir: column);
300
+ }
301
+ }
302
+ </style>