bfg-common 1.5.159 → 1.5.161

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 (133) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  3. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  4. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  5. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  6. package/assets/localization/local_be.json +2 -1
  7. package/assets/localization/local_en.json +2 -1
  8. package/assets/localization/local_hy.json +2 -1
  9. package/assets/localization/local_kk.json +2 -1
  10. package/assets/localization/local_ru.json +3 -2
  11. package/assets/localization/local_zh.json +2 -1
  12. package/components/atoms/TheIcon3.vue +50 -50
  13. package/components/atoms/perPage/PerPage.vue +58 -58
  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/atoms/tabs/VerticalTabs.vue +105 -105
  17. package/components/common/browse/BrowseOld.vue +13 -13
  18. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  19. package/components/common/context/lib/models/interfaces.ts +31 -31
  20. package/components/common/context/recursion/RecursionNew.vue +238 -238
  21. package/components/common/diagramMain/DiagramMain.vue +897 -897
  22. package/components/common/diagramMain/Header.vue +214 -214
  23. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  24. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  25. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  26. package/components/common/pages/home/headline/Headline.vue +45 -45
  27. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  28. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  29. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  30. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  31. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  32. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  33. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  34. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  35. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  36. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  37. package/components/common/pages/packages/Packages.vue +208 -208
  38. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  39. package/components/common/readyToComplete/New.vue +66 -66
  40. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  41. package/components/common/recursionTree/RecursionTree.vue +223 -223
  42. package/components/common/select/button/ButtonDropdown.vue +108 -108
  43. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  44. package/components/common/vm/actions/add/Add.vue +785 -785
  45. package/components/common/vm/actions/add/New.vue +556 -556
  46. package/components/common/vm/actions/add/Old.vue +371 -371
  47. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  48. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  49. package/components/common/vm/actions/add/folderTreeView/Old.vue +50 -50
  50. package/components/common/vm/actions/add/lib/config/steps.ts +263 -263
  51. package/components/common/vm/actions/clone/Clone.vue +810 -801
  52. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  53. package/components/common/vm/actions/clone/toTemplate/ToTemplate.vue +626 -626
  54. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  55. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +319 -319
  56. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  57. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +100 -100
  58. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  59. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  60. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  61. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +70 -70
  62. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +338 -338
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +375 -372
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +149 -149
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationNew.vue +74 -74
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +83 -83
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +288 -288
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +94 -94
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  85. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  86. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  87. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  88. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  89. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  90. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  91. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  92. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  93. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  94. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  95. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  96. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  97. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +39 -39
  98. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  99. package/components/common/vm/actions/common/lib/config/capabilities.ts +1 -1
  100. package/components/common/vm/actions/common/lib/utils/capabilities.ts +52 -52
  101. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  102. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +134 -134
  103. package/components/common/vm/actions/common/select/computeResource/treeView/New.vue +44 -44
  104. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +118 -118
  105. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  106. package/components/common/vm/actions/common/select/createType/New.vue +84 -84
  107. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  108. package/components/common/vm/actions/common/select/name/Name.vue +167 -167
  109. package/components/common/vm/actions/common/select/os/New.vue +122 -122
  110. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  111. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  112. package/components/common/vm/actions/common/select/storage/Old.vue +0 -2
  113. package/components/common/vm/actions/common/select/storage/Storage.vue +129 -131
  114. package/components/common/vm/actions/common/select/storage/new/New.vue +0 -2
  115. package/components/common/vm/actions/common/select/storage/new/lib/config/table.ts +326 -326
  116. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  117. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  118. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  119. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  120. package/components/common/wizards/vm/migrate/lib/config/steps.ts +157 -157
  121. package/components/common/wizards/vm/migrate/lib/validations.ts +68 -68
  122. package/components/common/wizards/vm/migrate/select/computeResource/tableView/TableView.vue +137 -137
  123. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  124. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  125. package/composables/productNameLocal.ts +30 -30
  126. package/composables/useAppVersion.ts +21 -21
  127. package/package.json +1 -1
  128. package/plugins/date.ts +233 -233
  129. package/public/spice-console/lib/images/bitmap.js +203 -203
  130. package/public/spice-console/network/spicechannel.js +383 -383
  131. package/store/main/mutations.ts +7 -7
  132. package/store/main/state.ts +7 -7
  133. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -1,26 +1,26 @@
1
- <template>
2
- <common-vm-actions-common-customize-hardware-vmoptions-boot-options-delay-new
3
- v-if="isNewView"
4
- v-model:boot-delay="bootDelay"
5
- :boot-delay-options="bootDelayOptions"
6
- />
7
- <common-vm-actions-common-customize-hardware-vmoptions-boot-options-delay-old
8
- v-else
9
- v-model:boot-delay="bootDelay"
10
- :boot-delay-options="bootDelayOptions"
11
- />
12
- </template>
13
-
14
- <script setup lang="ts">
15
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
16
- import { bootDelayOptionsConfig } from '~/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/lib/config/config'
17
-
18
- const bootDelay = defineModel<number>('bootDelay', { required: true })
19
-
20
- const { $store }: any = useNuxtApp()
21
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
22
-
23
- const bootDelayOptions = ref<UI_I_OptionItem[]>(bootDelayOptionsConfig)
24
- </script>
25
-
26
- <style scoped></style>
1
+ <template>
2
+ <common-vm-actions-common-customize-hardware-vmoptions-boot-options-delay-new
3
+ v-if="isNewView"
4
+ v-model:boot-delay="bootDelay"
5
+ :boot-delay-options="bootDelayOptions"
6
+ />
7
+ <common-vm-actions-common-customize-hardware-vmoptions-boot-options-delay-old
8
+ v-else
9
+ v-model:boot-delay="bootDelay"
10
+ :boot-delay-options="bootDelayOptions"
11
+ />
12
+ </template>
13
+
14
+ <script setup lang="ts">
15
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
16
+ import { bootDelayOptionsConfig } from '~/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/lib/config/config'
17
+
18
+ const bootDelay = defineModel<number>('bootDelay', { required: true })
19
+
20
+ const { $store }: any = useNuxtApp()
21
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
22
+
23
+ const bootDelayOptions = ref<UI_I_OptionItem[]>(bootDelayOptionsConfig)
24
+ </script>
25
+
26
+ <style scoped></style>
@@ -1,57 +1,57 @@
1
- <template>
2
- <common-vm-actions-common-customize-hardware-vmoptions-boot-options-firmware-new
3
- v-if="isNewView"
4
- v-model:firmware="firmware"
5
- :firmware-options="firmwareOptions"
6
- :error-text="apiError"
7
- @remove-error="onRemoveValidationError"
8
- />
9
- <common-vm-actions-common-customize-hardware-vmoptions-boot-options-firmware-old
10
- v-else
11
- v-model:firmware="firmware"
12
- :firmware-options="firmwareOptions"
13
- :error-text="apiError"
14
- @remove-error="onRemoveValidationError"
15
- />
16
- </template>
17
-
18
- <script setup lang="ts">
19
- import type { UI_I_Localization } from '~/lib/models/interfaces'
20
- import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
21
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
22
- import { firmwareOptionsFunc } from '~/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/lib/config/config'
23
-
24
- const firmware = defineModel<string>('firmware', { required: true })
25
-
26
- const props = defineProps<{
27
- errorValidationFields: UI_I_ErrorValidationField[]
28
- isEdit: boolean
29
- }>()
30
- const emits = defineEmits<{
31
- (event: 'remove-error-by-title', value: string): void
32
- }>()
33
-
34
- const localization = computed<UI_I_Localization>(() => useLocal())
35
-
36
- const { $store }: any = useNuxtApp()
37
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
38
-
39
- const firmwareOptions = ref<UI_I_OptionItem[]>(
40
- firmwareOptionsFunc(localization.value)
41
- )
42
-
43
- const typeError = 'options.boot_options.firmware'
44
-
45
- const apiError = computed<string>(() => {
46
- return (
47
- props.errorValidationFields?.find((message) => message.field === typeError)
48
- ?.error_message || ''
49
- )
50
- })
51
-
52
- const onRemoveValidationError = (): void => {
53
- emits('remove-error-by-title', typeError)
54
- }
55
- </script>
56
-
57
- <style scoped></style>
1
+ <template>
2
+ <common-vm-actions-common-customize-hardware-vmoptions-boot-options-firmware-new
3
+ v-if="isNewView"
4
+ v-model:firmware="firmware"
5
+ :firmware-options="firmwareOptions"
6
+ :error-text="apiError"
7
+ @remove-error="onRemoveValidationError"
8
+ />
9
+ <common-vm-actions-common-customize-hardware-vmoptions-boot-options-firmware-old
10
+ v-else
11
+ v-model:firmware="firmware"
12
+ :firmware-options="firmwareOptions"
13
+ :error-text="apiError"
14
+ @remove-error="onRemoveValidationError"
15
+ />
16
+ </template>
17
+
18
+ <script setup lang="ts">
19
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
20
+ import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
21
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
22
+ import { firmwareOptionsFunc } from '~/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/lib/config/config'
23
+
24
+ const firmware = defineModel<string>('firmware', { required: true })
25
+
26
+ const props = defineProps<{
27
+ errorValidationFields: UI_I_ErrorValidationField[]
28
+ isEdit: boolean
29
+ }>()
30
+ const emits = defineEmits<{
31
+ (event: 'remove-error-by-title', value: string): void
32
+ }>()
33
+
34
+ const localization = computed<UI_I_Localization>(() => useLocal())
35
+
36
+ const { $store }: any = useNuxtApp()
37
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
38
+
39
+ const firmwareOptions = ref<UI_I_OptionItem[]>(
40
+ firmwareOptionsFunc(localization.value)
41
+ )
42
+
43
+ const typeError = 'options.boot_options.firmware'
44
+
45
+ const apiError = computed<string>(() => {
46
+ return (
47
+ props.errorValidationFields?.find((message) => message.field === typeError)
48
+ ?.error_message || ''
49
+ )
50
+ })
51
+
52
+ const onRemoveValidationError = (): void => {
53
+ emits('remove-error-by-title', typeError)
54
+ }
55
+ </script>
56
+
57
+ <style scoped></style>
@@ -1,171 +1,171 @@
1
- <template>
2
- <common-vm-actions-common-customize-hardware-vmoptions-boot-options-order-new
3
- v-if="isNewView"
4
- :boot-list="bootList"
5
- @change-order="onChangeOrder"
6
- />
7
- <common-vm-actions-common-customize-hardware-vmoptions-boot-options-order-old
8
- v-else
9
- :boot-list="bootList"
10
- @change-order="onChangeOrder"
11
- />
12
- </template>
13
-
14
- <script setup lang="ts">
15
- import type { UI_I_BootItem } from '~/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/lib/models/interfaces'
16
- import type {
17
- UI_I_SendDataNewCdDvdDrive,
18
- UI_I_SendDataNewHardDisk,
19
- UI_I_SendDataNewNetwork,
20
- } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
21
- import type { UI_I_DropEvent } from '~/components/atoms/list/dragDropList/lib/config/events'
22
-
23
- const props = defineProps<{
24
- hardDisks: UI_I_SendDataNewHardDisk[] | null
25
- cdDvdDrives: UI_I_SendDataNewCdDvdDrive[] | null
26
- networks: UI_I_SendDataNewNetwork[] | null
27
- }>()
28
- const emits = defineEmits<{
29
- (
30
- event: 'change',
31
- value: [
32
- UI_I_SendDataNewHardDisk[],
33
- UI_I_SendDataNewCdDvdDrive[],
34
- UI_I_SendDataNewNetwork[]
35
- ]
36
- ): void
37
- }>()
38
-
39
- const { $store }: any = useNuxtApp()
40
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
41
-
42
- const bootList = ref<UI_I_BootItem[]>([])
43
-
44
- const hardDisksAndNetworks = computed<
45
- [
46
- UI_I_SendDataNewHardDisk[] | null,
47
- UI_I_SendDataNewCdDvdDrive[] | null,
48
- UI_I_SendDataNewNetwork[] | null
49
- ]
50
- >(() => [props.hardDisks, props.cdDvdDrives, props.networks])
51
- watch(
52
- hardDisksAndNetworks,
53
- (
54
- newValue: [
55
- UI_I_SendDataNewHardDisk[] | null,
56
- UI_I_SendDataNewCdDvdDrive[] | null,
57
- UI_I_SendDataNewNetwork[] | null
58
- ]
59
- ) => {
60
- const hardDisks: UI_I_BootItem[] =
61
- newValue[0]?.map((item, index) => {
62
- const order = item.boot_order || 0
63
- return {
64
- order,
65
- isChecked: !!order,
66
- text: `disk${index}`,
67
- iconClassName: 'icon-disk',
68
- type: 'disk',
69
- name: item.source + index,
70
- testId: `select-disk-value-${index + 1}`,
71
- }
72
- }) || []
73
- const cdDvdDrives: UI_I_BootItem[] =
74
- newValue[1]?.map((item, index) => {
75
- const order = item.boot_order || 0
76
- return {
77
- order,
78
- isChecked: !!order,
79
- text: `cdrom${index}`,
80
- iconClassName: 'icon-disk',
81
- type: 'cdDvd',
82
- name: item.source + index,
83
- testId: `select-cd-dvd-value-${index + 1}`,
84
- }
85
- }) || []
86
- const networks: UI_I_BootItem[] =
87
- newValue[2]?.map((item, index) => {
88
- const order = item.boot_order || 0
89
- return {
90
- order,
91
- isChecked: !!order,
92
- text: item.mac || 'undefined',
93
- iconClassName: 'vsphere-icon-network',
94
- type: 'nic',
95
- name: item.network + index,
96
- testId: `select-nic-value-${index + 1}`,
97
- }
98
- }) || []
99
-
100
- bootList.value = [...hardDisks, ...cdDvdDrives, ...networks].sort(
101
- (a, b) => a.order - b.order
102
- )
103
- },
104
- { deep: true, immediate: true }
105
- )
106
-
107
- const onChangeOrder = (event: UI_I_DropEvent): void => {
108
- let order = -1
109
- bootList.value = bootList.value
110
- .map((item) => {
111
- if (item === event.target) {
112
- item.order = event.toPosition
113
- return item
114
- }
115
-
116
- item.order = order + 1 === event.toPosition ? (order += 2) : order++
117
-
118
- return item
119
- })
120
- .sort((a, b) => a.order - b.order)
121
- }
122
-
123
- watch(
124
- bootList,
125
- (newValue) => {
126
- const networks: UI_I_SendDataNewNetwork[] = []
127
- const hardDisks: UI_I_SendDataNewHardDisk[] = []
128
- const cdDvdDrives: UI_I_SendDataNewCdDvdDrive[] = []
129
- let index = 0
130
- newValue.forEach((boot) => {
131
- if (boot.type === 'nic') {
132
- const network = props.networks?.find(
133
- (network, index2) => network.network + index2 === boot.name
134
- )
135
- if (network) {
136
- networks.push({
137
- ...network,
138
- boot_order: boot.isChecked ? ++index : 0,
139
- })
140
- }
141
- } else if (boot.type === 'disk') {
142
- const hardDisk = props.hardDisks?.find(
143
- (hardDisk, index2) => hardDisk.source + index2 === boot.name
144
- )
145
- if (hardDisk) {
146
- hardDisks.push({
147
- ...hardDisk,
148
- boot_order: boot.isChecked ? ++index : 0,
149
- })
150
- }
151
- } else {
152
- const cdDvdDrive = props.cdDvdDrives?.find(
153
- (cdDvdDrive, index2) => cdDvdDrive.source + index2 === boot.name
154
- )
155
- if (cdDvdDrive) {
156
- cdDvdDrives.push({
157
- ...cdDvdDrive,
158
- boot_order: boot.isChecked ? ++index : 0,
159
- })
160
- }
161
- }
162
- })
163
-
164
- emits('change', [hardDisks, cdDvdDrives, networks])
165
- },
166
- { deep: true, immediate: true }
167
- )
168
- </script>
169
-
170
- <style scoped lang="scss">
171
- </style>
1
+ <template>
2
+ <common-vm-actions-common-customize-hardware-vmoptions-boot-options-order-new
3
+ v-if="isNewView"
4
+ :boot-list="bootList"
5
+ @change-order="onChangeOrder"
6
+ />
7
+ <common-vm-actions-common-customize-hardware-vmoptions-boot-options-order-old
8
+ v-else
9
+ :boot-list="bootList"
10
+ @change-order="onChangeOrder"
11
+ />
12
+ </template>
13
+
14
+ <script setup lang="ts">
15
+ import type { UI_I_BootItem } from '~/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/lib/models/interfaces'
16
+ import type {
17
+ UI_I_SendDataNewCdDvdDrive,
18
+ UI_I_SendDataNewHardDisk,
19
+ UI_I_SendDataNewNetwork,
20
+ } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
21
+ import type { UI_I_DropEvent } from '~/components/atoms/list/dragDropList/lib/config/events'
22
+
23
+ const props = defineProps<{
24
+ hardDisks: UI_I_SendDataNewHardDisk[] | null
25
+ cdDvdDrives: UI_I_SendDataNewCdDvdDrive[] | null
26
+ networks: UI_I_SendDataNewNetwork[] | null
27
+ }>()
28
+ const emits = defineEmits<{
29
+ (
30
+ event: 'change',
31
+ value: [
32
+ UI_I_SendDataNewHardDisk[],
33
+ UI_I_SendDataNewCdDvdDrive[],
34
+ UI_I_SendDataNewNetwork[]
35
+ ]
36
+ ): void
37
+ }>()
38
+
39
+ const { $store }: any = useNuxtApp()
40
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
41
+
42
+ const bootList = ref<UI_I_BootItem[]>([])
43
+
44
+ const hardDisksAndNetworks = computed<
45
+ [
46
+ UI_I_SendDataNewHardDisk[] | null,
47
+ UI_I_SendDataNewCdDvdDrive[] | null,
48
+ UI_I_SendDataNewNetwork[] | null
49
+ ]
50
+ >(() => [props.hardDisks, props.cdDvdDrives, props.networks])
51
+ watch(
52
+ hardDisksAndNetworks,
53
+ (
54
+ newValue: [
55
+ UI_I_SendDataNewHardDisk[] | null,
56
+ UI_I_SendDataNewCdDvdDrive[] | null,
57
+ UI_I_SendDataNewNetwork[] | null
58
+ ]
59
+ ) => {
60
+ const hardDisks: UI_I_BootItem[] =
61
+ newValue[0]?.map((item, index) => {
62
+ const order = item.boot_order || 0
63
+ return {
64
+ order,
65
+ isChecked: !!order,
66
+ text: `disk${index}`,
67
+ iconClassName: 'icon-disk',
68
+ type: 'disk',
69
+ name: item.source + index,
70
+ testId: `select-disk-value-${index + 1}`,
71
+ }
72
+ }) || []
73
+ const cdDvdDrives: UI_I_BootItem[] =
74
+ newValue[1]?.map((item, index) => {
75
+ const order = item.boot_order || 0
76
+ return {
77
+ order,
78
+ isChecked: !!order,
79
+ text: `cdrom${index}`,
80
+ iconClassName: 'icon-disk',
81
+ type: 'cdDvd',
82
+ name: item.source + index,
83
+ testId: `select-cd-dvd-value-${index + 1}`,
84
+ }
85
+ }) || []
86
+ const networks: UI_I_BootItem[] =
87
+ newValue[2]?.map((item, index) => {
88
+ const order = item.boot_order || 0
89
+ return {
90
+ order,
91
+ isChecked: !!order,
92
+ text: item.mac || 'undefined',
93
+ iconClassName: 'vsphere-icon-network',
94
+ type: 'nic',
95
+ name: item.network + index,
96
+ testId: `select-nic-value-${index + 1}`,
97
+ }
98
+ }) || []
99
+
100
+ bootList.value = [...hardDisks, ...cdDvdDrives, ...networks].sort(
101
+ (a, b) => a.order - b.order
102
+ )
103
+ },
104
+ { deep: true, immediate: true }
105
+ )
106
+
107
+ const onChangeOrder = (event: UI_I_DropEvent): void => {
108
+ let order = -1
109
+ bootList.value = bootList.value
110
+ .map((item) => {
111
+ if (item === event.target) {
112
+ item.order = event.toPosition
113
+ return item
114
+ }
115
+
116
+ item.order = order + 1 === event.toPosition ? (order += 2) : order++
117
+
118
+ return item
119
+ })
120
+ .sort((a, b) => a.order - b.order)
121
+ }
122
+
123
+ watch(
124
+ bootList,
125
+ (newValue) => {
126
+ const networks: UI_I_SendDataNewNetwork[] = []
127
+ const hardDisks: UI_I_SendDataNewHardDisk[] = []
128
+ const cdDvdDrives: UI_I_SendDataNewCdDvdDrive[] = []
129
+ let index = 0
130
+ newValue.forEach((boot) => {
131
+ if (boot.type === 'nic') {
132
+ const network = props.networks?.find(
133
+ (network, index2) => network.network + index2 === boot.name
134
+ )
135
+ if (network) {
136
+ networks.push({
137
+ ...network,
138
+ boot_order: boot.isChecked ? ++index : 0,
139
+ })
140
+ }
141
+ } else if (boot.type === 'disk') {
142
+ const hardDisk = props.hardDisks?.find(
143
+ (hardDisk, index2) => hardDisk.source + index2 === boot.name
144
+ )
145
+ if (hardDisk) {
146
+ hardDisks.push({
147
+ ...hardDisk,
148
+ boot_order: boot.isChecked ? ++index : 0,
149
+ })
150
+ }
151
+ } else {
152
+ const cdDvdDrive = props.cdDvdDrives?.find(
153
+ (cdDvdDrive, index2) => cdDvdDrive.source + index2 === boot.name
154
+ )
155
+ if (cdDvdDrive) {
156
+ cdDvdDrives.push({
157
+ ...cdDvdDrive,
158
+ boot_order: boot.isChecked ? ++index : 0,
159
+ })
160
+ }
161
+ }
162
+ })
163
+
164
+ emits('change', [hardDisks, cdDvdDrives, networks])
165
+ },
166
+ { deep: true, immediate: true }
167
+ )
168
+ </script>
169
+
170
+ <style scoped lang="scss">
171
+ </style>
@@ -1,50 +1,50 @@
1
- <template>
2
- <ui-stack-block :has-children="false">
3
- <template #stackBlockKey>
4
- {{ localization.common.bootOrder }}
5
- </template>
6
- <template #stackBlockContent>
7
- <ui-drag-drop-list
8
- :items="props.bootList"
9
- grab-item-key="text"
10
- @drop="emits('change-order', $event)"
11
- >
12
- <template
13
- v-for="(item, index) in props.bootList"
14
- :key="index"
15
- #[`leftSide${index}`]
16
- >
17
- <ui-checkbox
18
- v-model="item.isChecked"
19
- :test-id="item.testId"
20
- />
21
- </template>
22
- <template
23
- v-for="(item, index) in props.bootList"
24
- :key="props.bootList.length + index"
25
- #[`rightSide${index}`]
26
- >
27
- <div :class="['device-icon', item.iconClassName]" />
28
- <span>{{ item.text }}</span>
29
- </template>
30
- </ui-drag-drop-list>
31
- </template>
32
- </ui-stack-block>
33
- </template>
34
-
35
- <script setup lang="ts">
36
- import type { UI_I_BootItem } from '~/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/lib/models/interfaces'
37
- import type { UI_I_Localization } from '~/lib/models/interfaces'
38
- import type { UI_I_DropEvent } from '~/components/atoms/list/dragDropList/lib/config/events'
39
-
40
- const localization = computed<UI_I_Localization>(() => useLocal())
41
-
42
- const props = defineProps<{
43
- bootList: UI_I_BootItem[]
44
- }>()
45
- const emits = defineEmits<{
46
- (event: 'change-order', value: UI_I_DropEvent): void
47
- }>()
48
- </script>
49
-
50
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <ui-stack-block :has-children="false">
3
+ <template #stackBlockKey>
4
+ {{ localization.common.bootOrder }}
5
+ </template>
6
+ <template #stackBlockContent>
7
+ <ui-drag-drop-list
8
+ :items="props.bootList"
9
+ grab-item-key="text"
10
+ @drop="emits('change-order', $event)"
11
+ >
12
+ <template
13
+ v-for="(item, index) in props.bootList"
14
+ :key="index"
15
+ #[`leftSide${index}`]
16
+ >
17
+ <ui-checkbox
18
+ v-model="item.isChecked"
19
+ :test-id="item.testId"
20
+ />
21
+ </template>
22
+ <template
23
+ v-for="(item, index) in props.bootList"
24
+ :key="props.bootList.length + index"
25
+ #[`rightSide${index}`]
26
+ >
27
+ <div :class="['device-icon', item.iconClassName]" />
28
+ <span>{{ item.text }}</span>
29
+ </template>
30
+ </ui-drag-drop-list>
31
+ </template>
32
+ </ui-stack-block>
33
+ </template>
34
+
35
+ <script setup lang="ts">
36
+ import type { UI_I_BootItem } from '~/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/lib/models/interfaces'
37
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
38
+ import type { UI_I_DropEvent } from '~/components/atoms/list/dragDropList/lib/config/events'
39
+
40
+ const localization = computed<UI_I_Localization>(() => useLocal())
41
+
42
+ const props = defineProps<{
43
+ bootList: UI_I_BootItem[]
44
+ }>()
45
+ const emits = defineEmits<{
46
+ (event: 'change-order', value: UI_I_DropEvent): void
47
+ }>()
48
+ </script>
49
+
50
+ <style scoped lang="scss"></style>