bfg-common 1.5.523 → 1.5.525

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 (116) 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/scss/common/icons/icons-1.scss +1 -1
  7. package/components/atoms/TheIcon3.vue +50 -50
  8. package/components/atoms/collapse/CollapseNav.vue +170 -170
  9. package/components/atoms/perPage/PerPage.vue +58 -58
  10. package/components/atoms/table/dataGrid/DataGridPagination.vue +97 -97
  11. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  12. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  13. package/components/common/backup/storage/actions/add/Add.vue +251 -251
  14. package/components/common/backup/storage/actions/add/lib/utils.ts +51 -51
  15. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  16. package/components/common/diagramMain/modals/lib/config/portModal.ts +251 -251
  17. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  18. package/components/common/diagramMain/port/Port.vue +580 -580
  19. package/components/common/layout/theHeader/helpMenu/About.vue +79 -79
  20. package/components/common/layout/theHeader/helpMenu/aboutOld/AboutOld.vue +79 -79
  21. package/components/common/pages/backups/DetailView.vue +52 -52
  22. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  23. package/components/common/pages/backups/modals/Modals.vue +243 -243
  24. package/components/common/pages/backups/modals/createBackup/CreateBackup.vue +1 -1
  25. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  26. package/components/common/pages/backups/modals/createBackup/lib/config/readyToCompleteOptions.ts +23 -13
  27. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  28. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  29. package/components/common/pages/backups/modals/restore/disks/Disks.vue +27 -27
  30. package/components/common/pages/backups/modals/restore/disks/tableView/lib/config/table.ts +117 -117
  31. package/components/common/pages/backups/modals/restore/name/Name.vue +166 -166
  32. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  33. package/components/common/pages/backups/modals/restore/networks/Networks.vue +67 -67
  34. package/components/common/pages/backups/modals/restore/networks/table/Table.vue +214 -214
  35. package/components/common/pages/backups/modals/restore/types/lib/config/typeOptions.ts +25 -25
  36. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  37. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  38. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  39. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  40. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  41. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  42. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  43. package/components/common/select/radio/RadioGroup.vue +137 -137
  44. package/components/common/spiceConsole/Drawer.vue +420 -420
  45. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  46. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  47. package/components/common/tools/Actions.vue +207 -207
  48. package/components/common/treeView/TreeView.vue +52 -52
  49. package/components/common/vm/actions/add/Add.vue +895 -895
  50. package/components/common/vm/actions/add/New.vue +695 -695
  51. package/components/common/vm/actions/add/Old.vue +414 -414
  52. package/components/common/vm/actions/add/lib/config/steps.ts +347 -347
  53. package/components/common/vm/actions/clone/Clone.vue +754 -863
  54. package/components/common/vm/actions/clone/cloneNew/CloneNew.vue +434 -0
  55. package/components/common/vm/actions/clone/cloneOld/CloneOld.vue +382 -0
  56. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +368 -368
  57. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  58. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  59. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +427 -427
  60. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
  61. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/Table.vue +99 -99
  62. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  66. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  67. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  68. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  69. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  70. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  71. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  72. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  73. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +143 -143
  74. package/components/common/vm/actions/common/select/computeResource/New.vue +184 -184
  75. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +131 -131
  76. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  77. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  78. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  79. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  80. package/components/common/vm/actions/common/select/storage/new/New.vue +330 -320
  81. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  82. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  83. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  84. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  85. package/components/common/vm/actions/register/Register.vue +285 -285
  86. package/components/common/vm/actions/register/lib/config/steps.ts +86 -86
  87. package/components/common/wizards/common/steps/name/Name.vue +179 -179
  88. package/components/common/wizards/common/steps/name/New.vue +221 -221
  89. package/components/common/wizards/common/steps/name/Old.vue +121 -121
  90. package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
  91. package/components/common/wizards/common/steps/name/location/Location.vue +85 -85
  92. package/components/common/wizards/common/steps/name/location/New.vue +40 -40
  93. package/components/common/wizards/datastore/add/Add.vue +228 -228
  94. package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
  95. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  96. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  97. package/composables/useAppVersion.ts +21 -21
  98. package/composables/useLocal.ts +6 -6
  99. package/composables/useLocalCommon.ts +39 -39
  100. package/package.json +1 -1
  101. package/plugins/console.ts +21 -21
  102. package/plugins/date.ts +233 -233
  103. package/plugins/mouse.ts +21 -21
  104. package/plugins/panelStates.ts +70 -70
  105. package/plugins/text.ts +59 -59
  106. package/public/spice-console/application/clientgui.js +854 -854
  107. package/public/spice-console/application/packetfactory.js +211 -211
  108. package/public/spice-console/application/virtualmouse.js +147 -147
  109. package/public/spice-console/lib/images/bitmap.js +203 -203
  110. package/public/spice-console/network/spicechannel.js +440 -440
  111. package/public/spice-console/process/cursorprocess.js +121 -121
  112. package/public/spice-console/process/inputprocess.js +227 -227
  113. package/public/spice-console/process/mainprocess.js +210 -210
  114. package/public/spice-console/run.js +210 -210
  115. package/store/main/mutations.ts +7 -7
  116. package/store/main/state.ts +7 -7
@@ -1,38 +1,38 @@
1
- <template>
2
- <common-vm-actions-common-select-create-type-new
3
- v-if="isNewView"
4
- v-model="model"
5
- :items="items"
6
- :import-from-v-m-warev-sphere="props.importFromVMWarevSphere"
7
- />
8
- <common-vm-actions-common-select-create-type-old
9
- v-else
10
- v-model="model"
11
- :items="items"
12
- :import-from-v-m-warev-sphere="props.importFromVMWarevSphere"
13
- />
14
- </template>
15
-
16
- <script setup lang="ts">
17
- import type { UI_I_Localization } from '~/lib/models/interfaces'
18
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
19
- import { itemsFunc } from '~/components/common/vm/actions/common/select/createType/lib/config/items'
20
-
21
- const model = defineModel<string>()
22
-
23
- const props = defineProps<{
24
- importFromVMWarevSphere: string
25
- }>()
26
-
27
- const { $store }: any = useNuxtApp()
28
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
29
-
30
- const localization = computed<UI_I_Localization>(() => useLocal())
31
-
32
- const items = computed<UI_I_OptionItem[]>(() =>
33
- itemsFunc(localization.value, props.importFromVMWarevSphere)
34
- )
35
- </script>
36
-
37
- <style scoped lang="scss">
38
- </style>
1
+ <template>
2
+ <common-vm-actions-common-select-create-type-new
3
+ v-if="isNewView"
4
+ v-model="model"
5
+ :items="items"
6
+ :import-from-v-m-warev-sphere="props.importFromVMWarevSphere"
7
+ />
8
+ <common-vm-actions-common-select-create-type-old
9
+ v-else
10
+ v-model="model"
11
+ :items="items"
12
+ :import-from-v-m-warev-sphere="props.importFromVMWarevSphere"
13
+ />
14
+ </template>
15
+
16
+ <script setup lang="ts">
17
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
18
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
19
+ import { itemsFunc } from '~/components/common/vm/actions/common/select/createType/lib/config/items'
20
+
21
+ const model = defineModel<string>()
22
+
23
+ const props = defineProps<{
24
+ importFromVMWarevSphere: string
25
+ }>()
26
+
27
+ const { $store }: any = useNuxtApp()
28
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
29
+
30
+ const localization = computed<UI_I_Localization>(() => useLocal())
31
+
32
+ const items = computed<UI_I_OptionItem[]>(() =>
33
+ itemsFunc(localization.value, props.importFromVMWarevSphere)
34
+ )
35
+ </script>
36
+
37
+ <style scoped lang="scss">
38
+ </style>
@@ -1,5 +1,5 @@
1
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
2
-
3
- export interface UI_I_VmCreateTypeOption extends UI_I_OptionItem {
4
- description: string
5
- }
1
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
2
+
3
+ export interface UI_I_VmCreateTypeOption extends UI_I_OptionItem {
4
+ description: string
5
+ }
@@ -1,152 +1,152 @@
1
- <template>
2
- <div class="select-os">
3
- <p class="select-os-block">
4
- {{ localization.common.identifyingGuestSystemInstallation }}
5
- </p>
6
- <div class="select-os-block os-select-wrap table-row">
7
- <label for="machine-type-select" class="table-cell"
8
- >{{ localization.common.machineType }}:</label
9
- >
10
-
11
- <atoms-tooltip-error
12
- :has-error="!!props.apiErrorMachineType"
13
- selector="#vm-wizard-machine-type-select"
14
- @remove="emits('remove-error-by-title', 'machine_type')"
15
- >
16
- <template #elem>
17
- <select
18
- id="vm-wizard-machine-type-select"
19
- v-model="machineType"
20
- data-id="vm-wizard-machine-type-select"
21
- class="table-cell"
22
- >
23
- <option
24
- v-for="item in props.machineTypeOptions"
25
- :key="item.value"
26
- :value="item"
27
- >
28
- {{ item.text }}
29
- </option>
30
- </select>
31
- </template>
32
- <template #content>{{ props.apiErrorMachineType }}</template>
33
- </atoms-tooltip-error>
34
- </div>
35
- <div class="select-os-block os-select-wrap table-row">
36
- <label for="os-select" class="table-cell"
37
- >{{ localization.common.guestOsFamily }}:</label
38
- >
39
-
40
- <atoms-tooltip-error
41
- :has-error="!!props.apiErrorGuestOsFamily"
42
- selector="#vm-wizard-os-select"
43
- @remove="emits('remove-error-by-title', 'guest_os_family')"
44
- >
45
- <template #elem>
46
- <select
47
- id="vm-wizard-os-select"
48
- v-model="guestOsFamily"
49
- data-id="vm-wizard-os-select"
50
- class="table-cell"
51
- @change="emits('change-os')"
52
- >
53
- <option
54
- v-for="item in props.osOptions"
55
- :key="item.value"
56
- :value="item"
57
- >
58
- {{ item.text }}
59
- </option>
60
- </select>
61
- </template>
62
- <template #content>{{ props.apiErrorGuestOsFamily }}</template>
63
- </atoms-tooltip-error>
64
- </div>
65
- <div class="select-os-block os-select-wrap table-row">
66
- <label for="os-version-select" class="table-cell"
67
- >{{ localization.common.guestOsVersion }}:</label
68
- >
69
-
70
- <atoms-tooltip-error
71
- :has-error="!!props.apiErrorGuestOsVersion"
72
- selector="#vm-wizard-os-version-select"
73
- @remove="emits('remove-error-by-title', 'guest_os_version')"
74
- >
75
- <template #elem>
76
- <select
77
- id="vm-wizard-os-version-select"
78
- v-model="guestOsVersion"
79
- data-id="vm-wizard-os-version-select"
80
- class="table-cell"
81
- >
82
- <option
83
- v-for="item in props.versionsOptions"
84
- :key="item.value"
85
- :value="item"
86
- >
87
- {{ item.text }}
88
- </option>
89
- </select>
90
- </template>
91
- <template #content>{{ props.apiErrorGuestOsVersion }}</template>
92
- </atoms-tooltip-error>
93
- </div>
94
- </div>
95
- </template>
96
-
97
- <script setup lang="ts">
98
- import type { UI_I_Localization } from '~/lib/models/interfaces'
99
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
100
-
101
- const machineType = defineModel<UI_I_OptionItem | null>('machine-type', {
102
- required: true,
103
- })
104
- const guestOsFamily = defineModel<UI_I_OptionItem | null>('guest-os-family', {
105
- required: true,
106
- })
107
- const guestOsVersion = defineModel<UI_I_OptionItem | null>('guest-os-version', {
108
- required: true,
109
- })
110
-
111
- const props = defineProps<{
112
- apiErrorMachineType: string
113
- machineTypeOptions: UI_I_OptionItem[]
114
- apiErrorGuestOsFamily: string
115
- osOptions: UI_I_OptionItem[]
116
- apiErrorGuestOsVersion: string
117
- versionsOptions: UI_I_OptionItem[]
118
- }>()
119
- const emits = defineEmits<{
120
- (event: 'remove-error-by-title', value: string): void
121
- (event: 'change-os'): void
122
- }>()
123
- const localization = computed<UI_I_Localization>(() => useLocal())
124
- </script>
125
-
126
- <style scoped lang="scss">
127
- .select-os {
128
- .select-os-block {
129
- label:not(.windows-virtualization-label) {
130
- padding: 0 5px 5px 0;
131
- }
132
-
133
- .windows-virtualization-label {
134
- padding: 0 4px;
135
- }
136
- }
137
- }
138
-
139
- #os-select-help-icon {
140
- h3 {
141
- margin-top: 7px;
142
- font-size: 22px;
143
- color: #565656;
144
- }
145
- p {
146
- width: 310px;
147
- margin-top: 24px;
148
- font-size: 14px;
149
- color: #565656;
150
- }
151
- }
152
- </style>
1
+ <template>
2
+ <div class="select-os">
3
+ <p class="select-os-block">
4
+ {{ localization.common.identifyingGuestSystemInstallation }}
5
+ </p>
6
+ <div class="select-os-block os-select-wrap table-row">
7
+ <label for="machine-type-select" class="table-cell"
8
+ >{{ localization.common.machineType }}:</label
9
+ >
10
+
11
+ <atoms-tooltip-error
12
+ :has-error="!!props.apiErrorMachineType"
13
+ selector="#vm-wizard-machine-type-select"
14
+ @remove="emits('remove-error-by-title', 'machine_type')"
15
+ >
16
+ <template #elem>
17
+ <select
18
+ id="vm-wizard-machine-type-select"
19
+ v-model="machineType"
20
+ data-id="vm-wizard-machine-type-select"
21
+ class="table-cell"
22
+ >
23
+ <option
24
+ v-for="item in props.machineTypeOptions"
25
+ :key="item.value"
26
+ :value="item"
27
+ >
28
+ {{ item.text }}
29
+ </option>
30
+ </select>
31
+ </template>
32
+ <template #content>{{ props.apiErrorMachineType }}</template>
33
+ </atoms-tooltip-error>
34
+ </div>
35
+ <div class="select-os-block os-select-wrap table-row">
36
+ <label for="os-select" class="table-cell"
37
+ >{{ localization.common.guestOsFamily }}:</label
38
+ >
39
+
40
+ <atoms-tooltip-error
41
+ :has-error="!!props.apiErrorGuestOsFamily"
42
+ selector="#vm-wizard-os-select"
43
+ @remove="emits('remove-error-by-title', 'guest_os_family')"
44
+ >
45
+ <template #elem>
46
+ <select
47
+ id="vm-wizard-os-select"
48
+ v-model="guestOsFamily"
49
+ data-id="vm-wizard-os-select"
50
+ class="table-cell"
51
+ @change="emits('change-os')"
52
+ >
53
+ <option
54
+ v-for="item in props.osOptions"
55
+ :key="item.value"
56
+ :value="item"
57
+ >
58
+ {{ item.text }}
59
+ </option>
60
+ </select>
61
+ </template>
62
+ <template #content>{{ props.apiErrorGuestOsFamily }}</template>
63
+ </atoms-tooltip-error>
64
+ </div>
65
+ <div class="select-os-block os-select-wrap table-row">
66
+ <label for="os-version-select" class="table-cell"
67
+ >{{ localization.common.guestOsVersion }}:</label
68
+ >
69
+
70
+ <atoms-tooltip-error
71
+ :has-error="!!props.apiErrorGuestOsVersion"
72
+ selector="#vm-wizard-os-version-select"
73
+ @remove="emits('remove-error-by-title', 'guest_os_version')"
74
+ >
75
+ <template #elem>
76
+ <select
77
+ id="vm-wizard-os-version-select"
78
+ v-model="guestOsVersion"
79
+ data-id="vm-wizard-os-version-select"
80
+ class="table-cell"
81
+ >
82
+ <option
83
+ v-for="item in props.versionsOptions"
84
+ :key="item.value"
85
+ :value="item"
86
+ >
87
+ {{ item.text }}
88
+ </option>
89
+ </select>
90
+ </template>
91
+ <template #content>{{ props.apiErrorGuestOsVersion }}</template>
92
+ </atoms-tooltip-error>
93
+ </div>
94
+ </div>
95
+ </template>
96
+
97
+ <script setup lang="ts">
98
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
99
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
100
+
101
+ const machineType = defineModel<UI_I_OptionItem | null>('machine-type', {
102
+ required: true,
103
+ })
104
+ const guestOsFamily = defineModel<UI_I_OptionItem | null>('guest-os-family', {
105
+ required: true,
106
+ })
107
+ const guestOsVersion = defineModel<UI_I_OptionItem | null>('guest-os-version', {
108
+ required: true,
109
+ })
110
+
111
+ const props = defineProps<{
112
+ apiErrorMachineType: string
113
+ machineTypeOptions: UI_I_OptionItem[]
114
+ apiErrorGuestOsFamily: string
115
+ osOptions: UI_I_OptionItem[]
116
+ apiErrorGuestOsVersion: string
117
+ versionsOptions: UI_I_OptionItem[]
118
+ }>()
119
+ const emits = defineEmits<{
120
+ (event: 'remove-error-by-title', value: string): void
121
+ (event: 'change-os'): void
122
+ }>()
123
+ const localization = computed<UI_I_Localization>(() => useLocal())
124
+ </script>
125
+
126
+ <style scoped lang="scss">
127
+ .select-os {
128
+ .select-os-block {
129
+ label:not(.windows-virtualization-label) {
130
+ padding: 0 5px 5px 0;
131
+ }
132
+
133
+ .windows-virtualization-label {
134
+ padding: 0 4px;
135
+ }
136
+ }
137
+ }
138
+
139
+ #os-select-help-icon {
140
+ h3 {
141
+ margin-top: 7px;
142
+ font-size: 22px;
143
+ color: #565656;
144
+ }
145
+ p {
146
+ width: 310px;
147
+ margin-top: 24px;
148
+ font-size: 14px;
149
+ color: #565656;
150
+ }
151
+ }
152
+ </style>
@@ -1,139 +1,139 @@
1
- <template>
2
- <common-vm-actions-common-select-os-new
3
- v-if="isNewView"
4
- v-model:machine-type="machineType"
5
- v-model:guest-os-family="guestOsFamily"
6
- v-model:guest-os-version="guestOsVersion"
7
- :api-error-machine-type="apiErrorMachineType"
8
- :machine-type-options="machineTypeOptions"
9
- :api-error-guest-os-family="apiErrorGuestOsFamily"
10
- :os-options="osOptions"
11
- :api-error-guest-os-version="apiErrorGuestOsVersion"
12
- :versions-options="versionsOptions"
13
- @change-os="onChangeOs"
14
- @remove-error-by-title="onRemoveValidationError"
15
- />
16
- <common-vm-actions-common-select-os-old
17
- v-else
18
- v-model:machine-type="machineType"
19
- v-model:guest-os-family="guestOsFamily"
20
- v-model:guest-os-version="guestOsVersion"
21
- :api-error-machine-type="apiErrorMachineType"
22
- :machine-type-options="machineTypeOptions"
23
- :api-error-guest-os-family="apiErrorGuestOsFamily"
24
- :os-options="osOptions"
25
- :api-error-guest-os-version="apiErrorGuestOsVersion"
26
- :versions-options="versionsOptions"
27
- @change-os="onChangeOs"
28
- @remove-error-by-title="onRemoveValidationError"
29
- />
30
- </template>
31
-
32
- <script setup lang="ts">
33
- import type {
34
- UI_I_ArbitraryObject,
35
- } from '~/lib/models/interfaces'
36
- import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
37
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
38
-
39
- const machineType = defineModel<UI_I_OptionItem | null>('machine-type', {
40
- required: true,
41
- })
42
- const guestOsFamily = defineModel<UI_I_OptionItem | null>('guest-os-family', {
43
- required: true,
44
- })
45
- const guestOsVersion = defineModel<UI_I_OptionItem | null>('guest-os-version', {
46
- required: true,
47
- })
48
-
49
- const props = defineProps<{
50
- familiesOptions: UI_I_OptionItem[]
51
- machineTypesOptions: UI_I_OptionItem[]
52
- versionsOptions: UI_I_ArbitraryObject<UI_I_OptionItem[]>
53
- errorValidationFields: UI_I_ErrorValidationField[]
54
- }>()
55
- const emits = defineEmits<{
56
- (event: 'remove-error-by-title', value: string): void
57
- }>()
58
-
59
- const { $store }: any = useNuxtApp()
60
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
61
-
62
- const machineTypeOptions = ref<UI_I_OptionItem[]>(props.machineTypesOptions)
63
- watch(
64
- () => props.machineTypesOptions,
65
- (newValue) => {
66
- machineTypeOptions.value = [...newValue]
67
- if (machineType.value) return
68
-
69
- const q35MachineIndex = newValue.findIndex((item) =>
70
- item.value.toLowerCase().includes('q35')
71
- )
72
- if (q35MachineIndex === -1) {
73
- machineType.value = newValue[0]
74
- } else {
75
- machineType.value = newValue[q35MachineIndex]
76
- }
77
- },
78
- { immediate: true }
79
- )
80
-
81
- const osOptions = ref<UI_I_OptionItem[]>(props.familiesOptions)
82
- watch(
83
- () => props.familiesOptions,
84
- (newValue) => {
85
- osOptions.value = [...newValue]
86
- if (guestOsFamily.value) return
87
- guestOsFamily.value = newValue[0]
88
- },
89
- { immediate: true }
90
- )
91
- const onChangeOs = (): void => {
92
- guestOsVersion.value = versionsOptions.value[0]
93
- }
94
-
95
- const versionsOptions = computed<UI_I_OptionItem[]>(() => {
96
- if (!guestOsFamily.value) return []
97
-
98
- return props.versionsOptions[guestOsFamily.value.value] || []
99
- })
100
- watch(
101
- versionsOptions,
102
- () => {
103
- if (guestOsVersion.value) return
104
-
105
- guestOsVersion.value = versionsOptions.value[0]
106
- },
107
- { immediate: true }
108
- )
109
-
110
- const apiErrorMachineType = computed<string>(() => {
111
- return (
112
- props.errorValidationFields?.find(
113
- (message) => message.field === 'machine_type'
114
- )?.error_message || ''
115
- )
116
- })
117
-
118
- const apiErrorGuestOsFamily = computed<string>(() => {
119
- return (
120
- props.errorValidationFields?.find(
121
- (message) => message.field === 'guest_os_family'
122
- )?.error_message || ''
123
- )
124
- })
125
-
126
- const apiErrorGuestOsVersion = computed<string>(() => {
127
- return (
128
- props.errorValidationFields?.find(
129
- (message) => message.field === 'guest_os_version'
130
- )?.error_message || ''
131
- )
132
- })
133
-
134
- const onRemoveValidationError = (type: string): void => {
135
- emits('remove-error-by-title', type)
136
- }
137
- </script>
138
-
139
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <common-vm-actions-common-select-os-new
3
+ v-if="isNewView"
4
+ v-model:machine-type="machineType"
5
+ v-model:guest-os-family="guestOsFamily"
6
+ v-model:guest-os-version="guestOsVersion"
7
+ :api-error-machine-type="apiErrorMachineType"
8
+ :machine-type-options="machineTypeOptions"
9
+ :api-error-guest-os-family="apiErrorGuestOsFamily"
10
+ :os-options="osOptions"
11
+ :api-error-guest-os-version="apiErrorGuestOsVersion"
12
+ :versions-options="versionsOptions"
13
+ @change-os="onChangeOs"
14
+ @remove-error-by-title="onRemoveValidationError"
15
+ />
16
+ <common-vm-actions-common-select-os-old
17
+ v-else
18
+ v-model:machine-type="machineType"
19
+ v-model:guest-os-family="guestOsFamily"
20
+ v-model:guest-os-version="guestOsVersion"
21
+ :api-error-machine-type="apiErrorMachineType"
22
+ :machine-type-options="machineTypeOptions"
23
+ :api-error-guest-os-family="apiErrorGuestOsFamily"
24
+ :os-options="osOptions"
25
+ :api-error-guest-os-version="apiErrorGuestOsVersion"
26
+ :versions-options="versionsOptions"
27
+ @change-os="onChangeOs"
28
+ @remove-error-by-title="onRemoveValidationError"
29
+ />
30
+ </template>
31
+
32
+ <script setup lang="ts">
33
+ import type {
34
+ UI_I_ArbitraryObject,
35
+ } from '~/lib/models/interfaces'
36
+ import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
37
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
38
+
39
+ const machineType = defineModel<UI_I_OptionItem | null>('machine-type', {
40
+ required: true,
41
+ })
42
+ const guestOsFamily = defineModel<UI_I_OptionItem | null>('guest-os-family', {
43
+ required: true,
44
+ })
45
+ const guestOsVersion = defineModel<UI_I_OptionItem | null>('guest-os-version', {
46
+ required: true,
47
+ })
48
+
49
+ const props = defineProps<{
50
+ familiesOptions: UI_I_OptionItem[]
51
+ machineTypesOptions: UI_I_OptionItem[]
52
+ versionsOptions: UI_I_ArbitraryObject<UI_I_OptionItem[]>
53
+ errorValidationFields: UI_I_ErrorValidationField[]
54
+ }>()
55
+ const emits = defineEmits<{
56
+ (event: 'remove-error-by-title', value: string): void
57
+ }>()
58
+
59
+ const { $store }: any = useNuxtApp()
60
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
61
+
62
+ const machineTypeOptions = ref<UI_I_OptionItem[]>(props.machineTypesOptions)
63
+ watch(
64
+ () => props.machineTypesOptions,
65
+ (newValue) => {
66
+ machineTypeOptions.value = [...newValue]
67
+ if (machineType.value) return
68
+
69
+ const q35MachineIndex = newValue.findIndex((item) =>
70
+ item.value.toLowerCase().includes('q35')
71
+ )
72
+ if (q35MachineIndex === -1) {
73
+ machineType.value = newValue[0]
74
+ } else {
75
+ machineType.value = newValue[q35MachineIndex]
76
+ }
77
+ },
78
+ { immediate: true }
79
+ )
80
+
81
+ const osOptions = ref<UI_I_OptionItem[]>(props.familiesOptions)
82
+ watch(
83
+ () => props.familiesOptions,
84
+ (newValue) => {
85
+ osOptions.value = [...newValue]
86
+ if (guestOsFamily.value) return
87
+ guestOsFamily.value = newValue[0]
88
+ },
89
+ { immediate: true }
90
+ )
91
+ const onChangeOs = (): void => {
92
+ guestOsVersion.value = versionsOptions.value[0]
93
+ }
94
+
95
+ const versionsOptions = computed<UI_I_OptionItem[]>(() => {
96
+ if (!guestOsFamily.value) return []
97
+
98
+ return props.versionsOptions[guestOsFamily.value.value] || []
99
+ })
100
+ watch(
101
+ versionsOptions,
102
+ () => {
103
+ if (guestOsVersion.value) return
104
+
105
+ guestOsVersion.value = versionsOptions.value[0]
106
+ },
107
+ { immediate: true }
108
+ )
109
+
110
+ const apiErrorMachineType = computed<string>(() => {
111
+ return (
112
+ props.errorValidationFields?.find(
113
+ (message) => message.field === 'machine_type'
114
+ )?.error_message || ''
115
+ )
116
+ })
117
+
118
+ const apiErrorGuestOsFamily = computed<string>(() => {
119
+ return (
120
+ props.errorValidationFields?.find(
121
+ (message) => message.field === 'guest_os_family'
122
+ )?.error_message || ''
123
+ )
124
+ })
125
+
126
+ const apiErrorGuestOsVersion = computed<string>(() => {
127
+ return (
128
+ props.errorValidationFields?.find(
129
+ (message) => message.field === 'guest_os_version'
130
+ )?.error_message || ''
131
+ )
132
+ })
133
+
134
+ const onRemoveValidationError = (type: string): void => {
135
+ emits('remove-error-by-title', type)
136
+ }
137
+ </script>
138
+
139
+ <style scoped lang="scss"></style>