bfg-common 1.5.575 → 1.5.577

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 (121) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  3. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  4. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  5. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  6. package/assets/localization/local_be.json +7 -2
  7. package/assets/localization/local_en.json +7 -2
  8. package/assets/localization/local_hy.json +7 -2
  9. package/assets/localization/local_kk.json +7 -2
  10. package/assets/localization/local_ru.json +7 -2
  11. package/assets/localization/local_zh.json +7 -2
  12. package/components/atoms/TheIcon3.vue +50 -50
  13. package/components/atoms/collapse/CollapseNav.vue +170 -170
  14. package/components/atoms/perPage/PerPage.vue +58 -58
  15. package/components/atoms/table/dataGrid/DataGrid.vue +1718 -1718
  16. package/components/atoms/table/dataGrid/DataGridPagination.vue +97 -97
  17. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  18. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  19. package/components/common/backup/storage/actions/add/Add.vue +2 -3
  20. package/components/common/backup/storage/actions/add/Old.vue +2 -3
  21. package/components/common/backup/storage/actions/add/lib/utils.ts +51 -51
  22. package/components/common/backup/storage/actions/add/steps/readyComplete/ReadyComplete.vue +45 -45
  23. package/components/common/backup/storage/actions/add/steps/readyComplete/lib/config/propertiesDetails.ts +7 -7
  24. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  25. package/components/common/diagramMain/modals/lib/config/portModal.ts +251 -251
  26. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  27. package/components/common/diagramMain/port/Port.vue +580 -580
  28. package/components/common/layout/theHeader/helpMenu/About.vue +79 -79
  29. package/components/common/layout/theHeader/helpMenu/aboutOld/AboutOld.vue +79 -79
  30. package/components/common/pages/backups/DetailView.vue +52 -52
  31. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  32. package/components/common/pages/backups/modals/Modals.vue +243 -243
  33. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  34. package/components/common/pages/backups/modals/createBackup/lib/config/readyToCompleteOptions.ts +69 -69
  35. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  36. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  37. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  38. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  39. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  40. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  41. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  42. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  43. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  44. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  45. package/components/common/select/radio/RadioGroup.vue +137 -137
  46. package/components/common/spiceConsole/Drawer.vue +420 -420
  47. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  48. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  49. package/components/common/tools/Actions.vue +207 -207
  50. package/components/common/treeView/TreeView.vue +52 -52
  51. package/components/common/vm/actions/add/Add.vue +960 -951
  52. package/components/common/vm/actions/add/New.vue +2 -0
  53. package/components/common/vm/actions/add/Old.vue +2 -0
  54. package/components/common/vm/actions/add/lib/config/steps.ts +347 -347
  55. package/components/common/vm/actions/clone/Clone.vue +816 -809
  56. package/components/common/vm/actions/clone/new/New.vue +2 -0
  57. package/components/common/vm/actions/clone/old/Old.vue +2 -0
  58. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  59. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  60. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/MemoryNew.vue +158 -158
  61. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/MemoryOld.vue +155 -155
  62. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  67. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  68. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  69. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  70. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  71. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  72. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  73. package/components/common/vm/actions/common/select/options/New.vue +258 -227
  74. package/components/common/vm/actions/common/select/options/Old.vue +103 -75
  75. package/components/common/vm/actions/common/select/options/Options.vue +54 -38
  76. package/components/common/vm/actions/common/select/storage/Old.vue +125 -125
  77. package/components/common/vm/actions/common/select/storage/Storage.vue +178 -178
  78. package/components/common/vm/actions/common/select/storage/new/New.vue +311 -311
  79. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  80. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  81. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  82. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  83. package/components/common/vm/actions/register/Register.vue +352 -352
  84. package/components/common/vm/actions/register/lib/config/steps.ts +86 -86
  85. package/components/common/wizards/common/compatibility/Compatibility.vue +35 -35
  86. package/components/common/wizards/common/compatibility/New.vue +99 -99
  87. package/components/common/wizards/common/compatibility/Old.vue +53 -53
  88. package/components/common/wizards/common/steps/computeResource/ComputeResource.vue +86 -86
  89. package/components/common/wizards/common/steps/computeResource/New.vue +93 -93
  90. package/components/common/wizards/common/steps/computeResource/Old.vue +103 -103
  91. package/components/common/wizards/common/steps/name/Name.vue +178 -178
  92. package/components/common/wizards/common/steps/name/New.vue +221 -221
  93. package/components/common/wizards/common/steps/name/Old.vue +121 -121
  94. package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
  95. package/components/common/wizards/common/steps/name/location/Location.vue +85 -85
  96. package/components/common/wizards/common/steps/name/location/New.vue +40 -40
  97. package/components/common/wizards/datastore/add/Add.vue +228 -228
  98. package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
  99. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  100. package/components/common/wizards/vm/migrate/select/computeResource/ComputeResource.vue +205 -205
  101. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  102. package/composables/useAppVersion.ts +21 -21
  103. package/composables/useLocal.ts +6 -6
  104. package/composables/useLocalCommon.ts +39 -39
  105. package/package.json +1 -1
  106. package/plugins/console.ts +21 -21
  107. package/plugins/date.ts +233 -233
  108. package/plugins/mouse.ts +21 -21
  109. package/plugins/panelStates.ts +70 -70
  110. package/plugins/text.ts +59 -59
  111. package/public/spice-console/application/clientgui.js +854 -854
  112. package/public/spice-console/application/packetfactory.js +211 -211
  113. package/public/spice-console/application/virtualmouse.js +147 -147
  114. package/public/spice-console/lib/images/bitmap.js +203 -203
  115. package/public/spice-console/network/spicechannel.js +440 -440
  116. package/public/spice-console/process/cursorprocess.js +121 -121
  117. package/public/spice-console/process/inputprocess.js +227 -227
  118. package/public/spice-console/process/mainprocess.js +210 -210
  119. package/public/spice-console/run.js +210 -210
  120. package/store/main/mutations.ts +7 -7
  121. package/store/main/state.ts +7 -7
@@ -1,227 +1,258 @@
1
- <template>
2
- <div
3
- ref="mainContainer"
4
- :class="[
5
- 'select-options grid gap-3 mt-4',
6
- { 'is-sm-size': isContainerSm },
7
- { 'three-items': !props.isCreateTemplate },
8
- ]"
9
- >
10
- <div
11
- :class="[
12
- 'checkbox-container',
13
- { checked: isCustomizeOs },
14
- { disabled: props.isCreateTemplate },
15
- ]"
16
- @click.stop.prevent="onToggleCustomizeOs"
17
- >
18
- <ui-checkbox
19
- v-model="isCustomizeOs"
20
- :label-text="localization.vmWizard.customizeOS"
21
- :title="localization.vmWizard.customizeOS"
22
- :disabled="props.isCreateTemplate"
23
- test-id="customize-os"
24
- size="md"
25
- />
26
- <p
27
- :class="[
28
- 'checkbox-block-description mt-2 ml-7 mr-3',
29
- { disabled: props.isCreateTemplate },
30
- ]"
31
- >
32
- {{ localization.vmWizard.customizeOperatingSystem }}
33
- </p>
34
- </div>
35
- <div
36
- v-if="!props.isCreateTemplate"
37
- :class="[
38
- 'checkbox-container',
39
- { checked: isCustomizeHardware },
40
- { disabled: props.isCreateTemplate },
41
- ]"
42
- @click.stop.prevent="onToggleCustomizeHardware"
43
- >
44
- <ui-checkbox
45
- v-model="isCustomizeHardware"
46
- :label-text="localization.common.customizeHardware"
47
- :title="localization.common.customizeHardware"
48
- :disabled="props.isCreateTemplate"
49
- test-id="customize-hardware"
50
- size="md"
51
- />
52
- <p
53
- :class="[
54
- 'checkbox-block-description mt-2 ml-7 mr-3',
55
- { disabled: props.isCreateTemplate },
56
- ]"
57
- >
58
- {{ localization.vmWizard.customizeVMHardware }}
59
- </p>
60
- </div>
61
- <div
62
- :class="[
63
- 'checkbox-container',
64
- { checked: isPowerOn },
65
- { disabled: props.isCreateTemplate },
66
- ]"
67
- @click.stop.prevent="onTogglePowerOn"
68
- >
69
- <!-- :disabled="props.isCreateTemplate"-->
70
- <ui-checkbox
71
- v-model="isPowerOn"
72
- :label-text="localization.vmWizard.autoPowerOn"
73
- :title="localization.vmWizard.autoPowerOn"
74
- test-id="power-on"
75
- size="md"
76
- />
77
- <!-- { disabled: props.isCreateTemplate },-->
78
- <p
79
- :class="[
80
- 'checkbox-block-description mt-2 ml-7 mr-3',
81
- ]"
82
- >
83
- {{ localization.vmWizard.powerVMAfterCreation }}
84
- </p>
85
- </div>
86
- </div>
87
- </template>
88
-
89
- <script setup lang="ts">
90
- import { useElementSize } from '@vueuse/core'
91
- import type { UI_I_Localization } from '~/lib/models/interfaces'
92
-
93
- const modelValue = defineModel<string[]>({ required: true })
94
-
95
- const props = withDefaults(
96
- defineProps<{
97
- isCreateTemplate?: boolean // TODO change
98
- }>(),
99
- {
100
- isCreateTemplate: undefined,
101
- }
102
- )
103
-
104
- const localization = computed<UI_I_Localization>(() => useLocal())
105
-
106
- const mainContainer = ref<HTMLElement | null>(null)
107
- const { width: mainContainerWidth } = useElementSize(mainContainer)
108
-
109
- const isCustomizeOs = ref<boolean>(false)
110
- const isCustomizeHardware = ref<boolean>(false)
111
- const isPowerOn = ref<boolean>(false)
112
-
113
- const onToggleCustomizeOs = (): void => {
114
- if (props.isCreateTemplate) return
115
-
116
- isCustomizeOs.value = !isCustomizeOs.value
117
- if (isCustomizeOs.value) {
118
- !modelValue.value.includes('customize-os') &&
119
- modelValue.value.push('customize-os')
120
- } else {
121
- modelValue.value = modelValue.value.filter(
122
- (item) => item !== 'customize-os'
123
- )
124
- }
125
- }
126
-
127
- const onToggleCustomizeHardware = (): void => {
128
- if (props.isCreateTemplate) return
129
-
130
- isCustomizeHardware.value = !isCustomizeHardware.value
131
- if (isCustomizeHardware.value) {
132
- !modelValue.value.includes('customize-hardware') &&
133
- modelValue.value.push('customize-hardware')
134
- } else {
135
- modelValue.value = modelValue.value.filter(
136
- (item) => item !== 'customize-hardware'
137
- )
138
- }
139
- }
140
-
141
- const onTogglePowerOn = (): void => {
142
- if (props.isCreateTemplate) return
143
-
144
- isPowerOn.value = !isPowerOn.value
145
- if (isPowerOn.value) {
146
- !modelValue.value.includes('power-on') && modelValue.value.push('power-on')
147
- } else {
148
- modelValue.value = modelValue.value.filter((item) => item !== 'power-on')
149
- }
150
- }
151
-
152
- const isContainerSm = ref<boolean>(false)
153
- watch(
154
- mainContainerWidth,
155
- (newValue) => {
156
- isContainerSm.value = newValue <= 600
157
- },
158
- { immediate: true }
159
- )
160
- </script>
161
-
162
- <style>
163
- :root {
164
- --select-option-target-vm-checkbox-description-disabled: #bdc3c7;
165
- }
166
- :root.dark-theme {
167
- --select-option-target-vm-checkbox-description-disabled: #bdc3c770;
168
- }
169
- </style>
170
-
171
- <style scoped lang="scss">
172
- .select-options {
173
- grid-template-columns: 1fr 1fr;
174
- grid-template-rows: max-content;
175
- overflow-y: auto;
176
- padding-bottom: 16px;
177
-
178
- &.is-sm-size {
179
- grid-template-columns: 1fr;
180
- }
181
-
182
- &.three-items {
183
- grid-template-columns: 1fr 1fr 1fr;
184
- }
185
-
186
- .checkbox-container {
187
- width: 100%;
188
- background-color: var(--select-bg);
189
- border-radius: 8px;
190
- padding: 12px;
191
- transition: box-shadow 0.1s ease-in-out;
192
- box-shadow: inset 0 0 0 1px var(--line-color);
193
-
194
- &.disabled {
195
- cursor: not-allowed;
196
- }
197
- &:not(.disabled):hover {
198
- cursor: pointer;
199
- }
200
- &:not(.disabled):not(.checked):hover {
201
- box-shadow: inset 0 0 0 1px var(--select-border);
202
- }
203
- &.checked {
204
- background-color: var(--radio-btn-active-label-bg-color);
205
- box-shadow: inset 0 0 0 1.5px var(--radio-btn-active-label-border-color);
206
- }
207
-
208
- :deep(.ui-checkbox-label) {
209
- align-items: flex-start;
210
-
211
- .ui-checkbox-label-text {
212
- line-height: 18px;
213
- margin-top: 1px;
214
- }
215
- }
216
-
217
- .checkbox-block-description {
218
- color: #9da6ad;
219
- line-height: 18px;
220
-
221
- &.disabled {
222
- color: var(--select-option-target-vm-checkbox-description-disabled);
223
- }
224
- }
225
- }
226
- }
227
- </style>
1
+ <template>
2
+ <div
3
+ ref="mainContainer"
4
+ :class="[
5
+ 'select-options grid gap-3 mt-4',
6
+ { 'is-sm-size': isContainerSm },
7
+ { 'three-items': !props.isCreateTemplate },
8
+ ]"
9
+ >
10
+ <div
11
+ :class="[
12
+ 'checkbox-container',
13
+ { checked: isCustomizeOs },
14
+ { disabled: props.isCreateTemplate },
15
+ ]"
16
+ @click.stop.prevent="onToggleCustomizeOs"
17
+ >
18
+ <ui-checkbox
19
+ v-model="isCustomizeOs"
20
+ :label-text="localization.vmWizard.customizeOS"
21
+ :title="localization.vmWizard.customizeOS"
22
+ :disabled="props.isCreateTemplate"
23
+ test-id="customize-os"
24
+ size="md"
25
+ />
26
+ <p
27
+ :class="[
28
+ 'checkbox-block-description mt-2 ml-7 mr-3',
29
+ { disabled: props.isCreateTemplate },
30
+ ]"
31
+ >
32
+ {{ localization.vmWizard.customizeOperatingSystem }}
33
+ </p>
34
+ </div>
35
+ <div
36
+ v-if="!props.isCreateTemplate"
37
+ :class="[
38
+ 'checkbox-container',
39
+ { checked: isCustomizeHardware },
40
+ { disabled: props.isCreateTemplate },
41
+ ]"
42
+ @click.stop.prevent="onToggleCustomizeHardware"
43
+ >
44
+ <ui-checkbox
45
+ v-model="isCustomizeHardware"
46
+ :label-text="localization.common.customizeHardware"
47
+ :title="localization.common.customizeHardware"
48
+ :disabled="props.isCreateTemplate"
49
+ test-id="customize-hardware"
50
+ size="md"
51
+ />
52
+ <p
53
+ :class="[
54
+ 'checkbox-block-description mt-2 ml-7 mr-3',
55
+ { disabled: props.isCreateTemplate },
56
+ ]"
57
+ >
58
+ {{ localization.vmWizard.customizeVMHardware }}
59
+ </p>
60
+ </div>
61
+ <div
62
+ :class="[
63
+ 'checkbox-container',
64
+ { checked: isPowerOn },
65
+ { disabled: props.isCreateTemplate },
66
+ ]"
67
+ @click.stop.prevent="onTogglePowerOn"
68
+ >
69
+ <!-- :disabled="props.isCreateTemplate"-->
70
+ <ui-checkbox
71
+ v-model="isPowerOn"
72
+ :label-text="localization.vmWizard.autoPowerOn"
73
+ :title="localization.vmWizard.autoPowerOn"
74
+ test-id="power-on"
75
+ size="md"
76
+ />
77
+ <!-- { disabled: props.isCreateTemplate },-->
78
+ <p :class="['checkbox-block-description mt-2 ml-7 mr-3']">
79
+ {{ localization.vmWizard.powerVMAfterCreation }}
80
+ </p>
81
+ </div>
82
+ <div
83
+ v-if="props.isCreateTemplate"
84
+ :class="['checkbox-container', { checked: isLinkedClone }]"
85
+ @click.stop.prevent="onToggleLinkedClone"
86
+ >
87
+ <ui-checkbox
88
+ v-model="isLinkedClone"
89
+ :label-text="localization.vmWizard.createLinkedClone"
90
+ :title="localization.vmWizard.createLinkedClone"
91
+ test-id="create-inked-clone"
92
+ size="md"
93
+ />
94
+
95
+ <ui-input
96
+ v-model="cloneCount"
97
+ :disabled="!isLinkedClone"
98
+ test-id="clone-count"
99
+ type="number"
100
+ class="ml-1"
101
+ />
102
+ </div>
103
+ </div>
104
+ </template>
105
+
106
+ <script setup lang="ts">
107
+ import { useElementSize } from '@vueuse/core'
108
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
109
+
110
+ const modelValue = defineModel<string[]>({ required: true })
111
+ const cloneCount = defineModel<number>('cloneCount')
112
+
113
+ const props = withDefaults(
114
+ defineProps<{
115
+ isCreateTemplate?: boolean // TODO change
116
+ }>(),
117
+ {
118
+ isCreateTemplate: undefined,
119
+ }
120
+ )
121
+
122
+ const localization = computed<UI_I_Localization>(() => useLocal())
123
+
124
+ const mainContainer = ref<HTMLElement | null>(null)
125
+ const { width: mainContainerWidth } = useElementSize(mainContainer)
126
+
127
+ const isCustomizeOs = ref<boolean>(false)
128
+ const isCustomizeHardware = ref<boolean>(false)
129
+ const isPowerOn = ref<boolean>(false)
130
+ const isLinkedClone = ref<boolean>(false)
131
+
132
+ const onToggleCustomizeOs = (): void => {
133
+ if (props.isCreateTemplate) return
134
+
135
+ isCustomizeOs.value = !isCustomizeOs.value
136
+ if (isCustomizeOs.value) {
137
+ !modelValue.value.includes('customize-os') &&
138
+ modelValue.value.push('customize-os')
139
+ } else {
140
+ modelValue.value = modelValue.value.filter(
141
+ (item) => item !== 'customize-os'
142
+ )
143
+ }
144
+ }
145
+
146
+ const onToggleCustomizeHardware = (): void => {
147
+ if (props.isCreateTemplate) return
148
+
149
+ isCustomizeHardware.value = !isCustomizeHardware.value
150
+ if (isCustomizeHardware.value) {
151
+ !modelValue.value.includes('customize-hardware') &&
152
+ modelValue.value.push('customize-hardware')
153
+ } else {
154
+ modelValue.value = modelValue.value.filter(
155
+ (item) => item !== 'customize-hardware'
156
+ )
157
+ }
158
+ }
159
+
160
+ const onTogglePowerOn = (): void => {
161
+ if (props.isCreateTemplate) return
162
+
163
+ isPowerOn.value = !isPowerOn.value
164
+ if (isPowerOn.value) {
165
+ !modelValue.value.includes('power-on') && modelValue.value.push('power-on')
166
+ } else {
167
+ modelValue.value = modelValue.value.filter((item) => item !== 'power-on')
168
+ }
169
+ }
170
+
171
+ const onToggleLinkedClone = (): void => {
172
+ isLinkedClone.value = !isLinkedClone.value
173
+ if (isLinkedClone.value) {
174
+ !modelValue.value.includes('create-inked-clone') &&
175
+ modelValue.value.push('create-inked-clone')
176
+ } else {
177
+ modelValue.value = modelValue.value.filter(
178
+ (item) => item !== 'create-inked-clone'
179
+ )
180
+ }
181
+ }
182
+
183
+ const isContainerSm = ref<boolean>(false)
184
+ watch(
185
+ mainContainerWidth,
186
+ (newValue) => {
187
+ isContainerSm.value = newValue <= 600
188
+ },
189
+ { immediate: true }
190
+ )
191
+ </script>
192
+
193
+ <style>
194
+ :root {
195
+ --select-option-target-vm-checkbox-description-disabled: #bdc3c7;
196
+ }
197
+ :root.dark-theme {
198
+ --select-option-target-vm-checkbox-description-disabled: #bdc3c770;
199
+ }
200
+ </style>
201
+
202
+ <style scoped lang="scss">
203
+ .select-options {
204
+ grid-template-columns: 1fr 1fr;
205
+ grid-template-rows: max-content;
206
+ overflow-y: auto;
207
+ padding-bottom: 16px;
208
+
209
+ &.is-sm-size {
210
+ grid-template-columns: 1fr;
211
+ }
212
+
213
+ &.three-items {
214
+ grid-template-columns: 1fr 1fr 1fr;
215
+ }
216
+
217
+ .checkbox-container {
218
+ width: 100%;
219
+ background-color: var(--select-bg);
220
+ border-radius: 8px;
221
+ padding: 12px;
222
+ transition: box-shadow 0.1s ease-in-out;
223
+ box-shadow: inset 0 0 0 1px var(--line-color);
224
+
225
+ &.disabled {
226
+ cursor: not-allowed;
227
+ }
228
+ &:not(.disabled):hover {
229
+ cursor: pointer;
230
+ }
231
+ &:not(.disabled):not(.checked):hover {
232
+ box-shadow: inset 0 0 0 1px var(--select-border);
233
+ }
234
+ &.checked {
235
+ background-color: var(--radio-btn-active-label-bg-color);
236
+ box-shadow: inset 0 0 0 1.5px var(--radio-btn-active-label-border-color);
237
+ }
238
+
239
+ :deep(.ui-checkbox-label) {
240
+ align-items: flex-start;
241
+
242
+ .ui-checkbox-label-text {
243
+ line-height: 18px;
244
+ margin-top: 1px;
245
+ }
246
+ }
247
+
248
+ .checkbox-block-description {
249
+ color: #9da6ad;
250
+ line-height: 18px;
251
+
252
+ &.disabled {
253
+ color: var(--select-option-target-vm-checkbox-description-disabled);
254
+ }
255
+ }
256
+ }
257
+ }
258
+ </style>
@@ -1,75 +1,103 @@
1
- <template>
2
- <div :class="['select-options', { disabled: props.isCreateTemplate }]">
3
- <div class="checkbox">
4
- <input
5
- id="customize-os"
6
- v-model="modelValue"
7
- :disabled="props.isCreateTemplate"
8
- data-id="customize-os"
9
- type="checkbox"
10
- value="customize-os"
11
- />
12
- <label for="customize-os">{{
13
- localization.common.customizeTheOperatingSystem
14
- }}</label>
15
- </div>
16
- <div v-if="!props.isCreateTemplate" class="checkbox">
17
- <input
18
- id="customize-hardware"
19
- v-model="modelValue"
20
- data-id="customize-hardware"
21
- type="checkbox"
22
- value="customize-hardware"
23
- />
24
- <label for="customize-hardware">{{
25
- localization.common.customizeThisVirtualMachineHardware
26
- }}</label>
27
- </div>
28
- <div class="checkbox">
29
- <!-- :disabled="props.isCreateTemplate"-->
30
- <input
31
- id="power-on"
32
- v-model="modelValue"
33
- data-id="power-on"
34
- type="checkbox"
35
- value="power-on"
36
- />
37
- <label for="power-on">{{
38
- localization.common.powerOnVirtualMachineAfterCreation
39
- }}</label>
40
- </div>
41
- </div>
42
- </template>
43
-
44
- <script setup lang="ts">
45
- import type { UI_I_Localization } from '~/lib/models/interfaces'
46
-
47
- const modelValue = defineModel<string[]>()
48
-
49
- const props = withDefaults(
50
- defineProps<{
51
- isCreateTemplate?: boolean // TODO change
52
- }>(),
53
- {
54
- isCreateTemplate: undefined,
55
- }
56
- )
57
-
58
- const localization = computed<UI_I_Localization>(() => useLocal())
59
- </script>
60
-
61
- <style scoped lang="scss">
62
- .select-options {
63
- padding: 12px 0 0;
64
-
65
- &.disabled {
66
- input,
67
- label {
68
- cursor: not-allowed;
69
- }
70
- }
71
- .checkbox {
72
- margin: 6px 0;
73
- }
74
- }
75
- </style>
1
+ <template>
2
+ <div class="select-options">
3
+ <div :class="['checkbox', { disabled: props.isCreateTemplate }]">
4
+ <input
5
+ id="customize-os"
6
+ v-model="modelValue"
7
+ :disabled="props.isCreateTemplate"
8
+ data-id="customize-os"
9
+ type="checkbox"
10
+ value="customize-os"
11
+ />
12
+ <label for="customize-os">{{
13
+ localization.common.customizeTheOperatingSystem
14
+ }}</label>
15
+ </div>
16
+ <div v-if="!props.isCreateTemplate" class="checkbox">
17
+ <input
18
+ id="customize-hardware"
19
+ v-model="modelValue"
20
+ data-id="customize-hardware"
21
+ type="checkbox"
22
+ value="customize-hardware"
23
+ />
24
+ <label for="customize-hardware">{{
25
+ localization.common.customizeThisVirtualMachineHardware
26
+ }}</label>
27
+ </div>
28
+ <div class="checkbox">
29
+ <!-- :disabled="props.isCreateTemplate"-->
30
+ <input
31
+ id="power-on"
32
+ v-model="modelValue"
33
+ data-id="power-on"
34
+ type="checkbox"
35
+ value="power-on"
36
+ />
37
+ <label for="power-on">{{
38
+ localization.common.powerOnVirtualMachineAfterCreation
39
+ }}</label>
40
+ </div>
41
+ <div v-if="props.isCreateTemplate" class="checkbox">
42
+ <!-- :disabled="props.isCreateTemplate"-->
43
+ <input
44
+ id="create-inked-clone"
45
+ v-model="modelValue"
46
+ data-id="create-inked-clone"
47
+ type="checkbox"
48
+ value="create-inked-clone"
49
+ />
50
+ <label for="create-inked-clone">{{
51
+ localization.vmWizard.createLinkedClone
52
+ }}</label>
53
+
54
+ <input
55
+ v-model="cloneCount"
56
+ :disabled="!isLinkedClone"
57
+ data-id="clone-count"
58
+ type="number"
59
+ class="ml-1"
60
+ :min="0"
61
+ :max="1000"
62
+ />
63
+ </div>
64
+ </div>
65
+ </template>
66
+
67
+ <script setup lang="ts">
68
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
69
+
70
+ const modelValue = defineModel<string[]>()
71
+ const cloneCount = defineModel<number>('cloneCount')
72
+
73
+ const props = withDefaults(
74
+ defineProps<{
75
+ isCreateTemplate?: boolean // TODO change
76
+ }>(),
77
+ {
78
+ isCreateTemplate: undefined,
79
+ }
80
+ )
81
+
82
+ const localization = computed<UI_I_Localization>(() => useLocal())
83
+
84
+ const isLinkedClone = computed<boolean>(
85
+ () => modelValue.value?.includes('create-inked-clone') || false
86
+ )
87
+ </script>
88
+
89
+ <style scoped lang="scss">
90
+ .select-options {
91
+ padding: 12px 0 0;
92
+
93
+ .disabled {
94
+ input,
95
+ label {
96
+ cursor: not-allowed;
97
+ }
98
+ }
99
+ .checkbox {
100
+ margin: 6px 0;
101
+ }
102
+ }
103
+ </style>