bfg-common 1.3.233 → 1.3.235

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 (39) hide show
  1. package/assets/localization/local_be.json +4 -1
  2. package/assets/localization/local_en.json +4 -1
  3. package/assets/localization/local_hy.json +4 -1
  4. package/assets/localization/local_kk.json +4 -1
  5. package/assets/localization/local_ru.json +4 -1
  6. package/assets/localization/local_zh.json +4 -1
  7. package/assets/scss/common/normalize.scss +4 -0
  8. package/components/atoms/switch/Switch.vue +111 -111
  9. package/components/atoms/table/compact/Compact.vue +526 -526
  10. package/components/common/diagramMain/lib/models/interfaces.ts +1 -1
  11. package/components/common/diagramMain/modals/lib/config/networkModal.ts +5 -5
  12. package/components/common/pages/Tasks.vue +120 -120
  13. package/components/common/recursionTree/RecursionTree.vue +203 -203
  14. package/components/common/vm/actions/add/Add.vue +575 -575
  15. package/components/common/vm/actions/clone/Clone.vue +518 -518
  16. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +269 -269
  17. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +693 -693
  18. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuModel.vue +220 -220
  19. package/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/config/dropdownItems.ts +59 -59
  20. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +294 -294
  21. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +165 -165
  22. package/components/common/vm/actions/common/select/storage/lib/config/config.ts +166 -166
  23. package/components/common/vm/actions/editSettings/EditSettings.vue +313 -313
  24. package/components/common/weekSelect/WeekSelect.vue +112 -112
  25. package/components/common/weekSelect/lib/config/options.ts +10 -10
  26. package/composables/useAppVersion.ts +21 -21
  27. package/composables/useEnvLanguage.ts +20 -20
  28. package/lib/utils/sendTask.ts +72 -72
  29. package/minify.js +146 -146
  30. package/package.json +1 -1
  31. package/public/spice-console/application/codec.js +257 -257
  32. package/public/spice-console/lib/rasterEngine.js +907 -907
  33. package/public/spice-console/network/spicechannel.js +369 -369
  34. package/store/main/lib/interfaces.ts +9 -9
  35. package/store/tasks/actions.ts +133 -133
  36. package/store/tasks/getters.ts +25 -25
  37. package/store/tasks/lib/models/interfaces.ts +18 -18
  38. package/store/tasks/mutations.ts +58 -58
  39. package/store/tasks/state.ts +16 -16
@@ -1,220 +1,220 @@
1
- <template>
2
- <div class="">
3
- <atoms-stack-block :has-children="false">
4
- <template #stackBlockKey>
5
- {{ localization.cpuModel }}
6
- </template>
7
- <template #stackBlockContent>
8
- <div class="flex-align-center">
9
- <atoms-tooltip-error
10
- :has-error="!!apiError"
11
- selector="#vm-wizard-cpu-model-field"
12
- @remove="onRemoveValidationError"
13
- >
14
- <template #elem>
15
- <div class="select">
16
- <select
17
- id="vm-wizard-cpu-model-field"
18
- :value="props.cpuModel"
19
- :disabled="props.disabled"
20
- @change="changeCpuModel"
21
- >
22
- <option
23
- v-for="(item, key) in cpuModelOptions"
24
- :key="key"
25
- :value="item.value"
26
- >
27
- {{ item.text }}
28
- </option>
29
- </select>
30
- </div>
31
- </template>
32
- <template #content>{{ apiError }}</template>
33
- </atoms-tooltip-error>
34
-
35
- <div class="passthrough-host-cpu-wrap flex-align-center">
36
- <input
37
- id="passthrough-host-cpu"
38
- v-model="passthroughHostCpuLocal"
39
- :disabled="props.disabled"
40
- type="checkbox"
41
- @change="changePassthroughHostCpu"
42
- />
43
- <label for="passthrough-host-cpu" class="label-text-normal">{{
44
- localization.passthroughHostCpu
45
- }}</label>
46
- <div id="passthrough-help-icon" class="flex-align-center relative">
47
- <atoms-the-icon
48
- fill="#0072a3"
49
- width="24px"
50
- height="24px"
51
- name="info-circle"
52
- class="pointer"
53
- @click.stop="isShowPassthroughHost = !isShowPassthroughHost"
54
- />
55
- <Teleport to="body">
56
- <atoms-tooltip-signpost
57
- v-if="isShowPassthroughHost"
58
- elem-id="passthrough-help-icon"
59
- @hide="isShowPassthroughHost = false"
60
- >
61
- <h3 class="passthrough-help-title">
62
- {{ localization.help }}
63
- </h3>
64
-
65
- <p class="passthrough-help-text">
66
- Lorem ipsum dolor sit amet, consectetur adipisicing elit. A
67
- cum eius expedita, fuga mollitia perferendis quod soluta
68
- vel? Dolor, illo, nam? A consequatur, consequuntur eos
69
- impedit iusto labore sunt tempora!
70
- </p>
71
- </atoms-tooltip-signpost>
72
- </Teleport>
73
- </div>
74
- </div>
75
- <div class="divider"></div>
76
- <div class="flex-align-center">
77
- <input
78
- id="host-model-cpu"
79
- v-model="hostModelCpuLocal"
80
- type="checkbox"
81
- :disabled="props.disabled"
82
- @change="changeHostModelCpu"
83
- />
84
- <label for="host-model-cpu" class="label-text-normal">{{
85
- localization.hostModelCpu
86
- }}</label>
87
- <div id="host-model-help-icon" class="flex-align-center relative">
88
- <atoms-the-icon
89
- fill="#0072a3"
90
- width="24px"
91
- height="24px"
92
- name="info-circle"
93
- class="pointer"
94
- @click.stop="isShowHostModel = !isShowHostModel"
95
- />
96
- <Teleport to="body">
97
- <atoms-tooltip-signpost
98
- v-if="isShowHostModel"
99
- elem-id="host-model-help-icon"
100
- @hide="isShowHostModel = false"
101
- >
102
- <h3 class="host-model-help-title">
103
- {{ localization.help }}
104
- </h3>
105
-
106
- <p class="host-model-help-text">
107
- Lorem ipsum dolor sit amet, consectetur adipisicing elit. A
108
- cum eius expedita, fuga mollitia perferendis quod soluta
109
- vel? Dolor, illo, nam? A consequatur, consequuntur eos
110
- impedit iusto labore sunt tempora!
111
- </p>
112
- </atoms-tooltip-signpost>
113
- </Teleport>
114
- </div>
115
- </div>
116
- </div>
117
- </template>
118
- </atoms-stack-block>
119
- </div>
120
- </template>
121
-
122
- <script setup lang="ts">
123
- import {
124
- UI_I_Localization,
125
- UI_I_HTMLSelectElement,
126
- } from '~/lib/models/interfaces'
127
- import { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
128
- import { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
129
- const localization = computed<UI_I_Localization>(() => useLocal())
130
-
131
- const props = defineProps<{
132
- cpuModel: string
133
- passthroughHostCpu: boolean
134
- hostModelCpu: boolean
135
- cpuModels: UI_I_OptionItem[]
136
- isEdit: boolean
137
- disabled: boolean
138
- errorValidationFields: UI_I_ErrorValidationField<string>[]
139
- }>()
140
- const emits = defineEmits<{
141
- (event: 'update:cpu-model', value: string): boolean
142
- (event: 'update:passthrough-host-cpu', value: boolean): boolean
143
- (event: 'update:host-model-cpu', value: boolean): boolean
144
- (event: 'remove-error-by-title', value: string): void
145
- }>()
146
-
147
- const cpuModelOptions = ref<UI_I_OptionItem[]>(props.cpuModels)
148
- watch(
149
- () => props.cpuModels,
150
- (newValue) => {
151
- cpuModelOptions.value = [...newValue]
152
- }
153
- )
154
-
155
- const passthroughHostCpuLocal = computed<boolean>({
156
- get() {
157
- return props.passthroughHostCpu
158
- },
159
- set(newValue) {
160
- emits('update:passthrough-host-cpu', newValue)
161
- },
162
- })
163
- const hostModelCpuLocal = computed<boolean>({
164
- get() {
165
- return props.hostModelCpu
166
- },
167
- set(newValue) {
168
- emits('update:host-model-cpu', newValue)
169
- },
170
- })
171
-
172
- const changeCpuModel = (event: UI_I_HTMLSelectElement): void => {
173
- emits('update:cpu-model', event.target.value)
174
- emits('update:passthrough-host-cpu', false)
175
- emits('update:host-model-cpu', false)
176
- }
177
- const changePassthroughHostCpu = (event: Event): void => {
178
- const target = event.target as HTMLInputElement
179
- emits('update:cpu-model', target.checked ? '' : props.cpuModels?.[0].value)
180
- emits('update:host-model-cpu', false)
181
- }
182
- const changeHostModelCpu = (event: Event): void => {
183
- const target = event.target as HTMLInputElement
184
- emits('update:cpu-model', target.checked ? '' : props.cpuModels?.[0].value)
185
- emits('update:passthrough-host-cpu', false)
186
- }
187
-
188
- const isShowPassthroughHost = ref<false>(false)
189
- const isShowHostModel = ref<false>(false)
190
-
191
- const typeError = 'cpu.model'
192
-
193
- const apiError = computed<string>(() => {
194
- return (
195
- props.errorValidationFields?.find((message) => message.field === typeError)
196
- ?.error_message || ''
197
- )
198
- })
199
-
200
- const onRemoveValidationError = (): void => {
201
- emits('remove-error-by-title', typeError)
202
- }
203
- </script>
204
-
205
- <style scoped lang="scss">
206
- .passthrough-host-cpu-wrap {
207
- margin-right: 8px;
208
- }
209
- #passthrough-host-cpu,
210
- #host-model-cpu {
211
- margin: 0 4px 0 0;
212
- }
213
-
214
- .divider {
215
- height: 16px;
216
- width: 1px;
217
- background-color: var(--global-border-color);
218
- margin: 0 6px 0 0;
219
- }
220
- </style>
1
+ <template>
2
+ <div class="">
3
+ <atoms-stack-block :has-children="false">
4
+ <template #stackBlockKey>
5
+ {{ localization.cpuModel }}
6
+ </template>
7
+ <template #stackBlockContent>
8
+ <div class="flex-align-center">
9
+ <atoms-tooltip-error
10
+ :has-error="!!apiError"
11
+ selector="#vm-wizard-cpu-model-field"
12
+ @remove="onRemoveValidationError"
13
+ >
14
+ <template #elem>
15
+ <div class="select">
16
+ <select
17
+ id="vm-wizard-cpu-model-field"
18
+ :value="props.cpuModel"
19
+ :disabled="props.disabled"
20
+ @change="changeCpuModel"
21
+ >
22
+ <option
23
+ v-for="(item, key) in cpuModelOptions"
24
+ :key="key"
25
+ :value="item.value"
26
+ >
27
+ {{ item.text }}
28
+ </option>
29
+ </select>
30
+ </div>
31
+ </template>
32
+ <template #content>{{ apiError }}</template>
33
+ </atoms-tooltip-error>
34
+
35
+ <div class="passthrough-host-cpu-wrap flex-align-center">
36
+ <input
37
+ id="passthrough-host-cpu"
38
+ v-model="passthroughHostCpuLocal"
39
+ :disabled="props.disabled"
40
+ type="checkbox"
41
+ @change="changePassthroughHostCpu"
42
+ />
43
+ <label for="passthrough-host-cpu" class="label-text-normal">{{
44
+ localization.passthroughHostCpu
45
+ }}</label>
46
+ <div id="passthrough-help-icon" class="flex-align-center relative">
47
+ <atoms-the-icon
48
+ fill="#0072a3"
49
+ width="24px"
50
+ height="24px"
51
+ name="info-circle"
52
+ class="pointer"
53
+ @click.stop="isShowPassthroughHost = !isShowPassthroughHost"
54
+ />
55
+ <Teleport to="body">
56
+ <atoms-tooltip-signpost
57
+ v-if="isShowPassthroughHost"
58
+ elem-id="passthrough-help-icon"
59
+ @hide="isShowPassthroughHost = false"
60
+ >
61
+ <h3 class="passthrough-help-title">
62
+ {{ localization.help }}
63
+ </h3>
64
+
65
+ <p class="passthrough-help-text">
66
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. A
67
+ cum eius expedita, fuga mollitia perferendis quod soluta
68
+ vel? Dolor, illo, nam? A consequatur, consequuntur eos
69
+ impedit iusto labore sunt tempora!
70
+ </p>
71
+ </atoms-tooltip-signpost>
72
+ </Teleport>
73
+ </div>
74
+ </div>
75
+ <div class="divider"></div>
76
+ <div class="flex-align-center">
77
+ <input
78
+ id="host-model-cpu"
79
+ v-model="hostModelCpuLocal"
80
+ type="checkbox"
81
+ :disabled="props.disabled"
82
+ @change="changeHostModelCpu"
83
+ />
84
+ <label for="host-model-cpu" class="label-text-normal">{{
85
+ localization.hostModelCpu
86
+ }}</label>
87
+ <div id="host-model-help-icon" class="flex-align-center relative">
88
+ <atoms-the-icon
89
+ fill="#0072a3"
90
+ width="24px"
91
+ height="24px"
92
+ name="info-circle"
93
+ class="pointer"
94
+ @click.stop="isShowHostModel = !isShowHostModel"
95
+ />
96
+ <Teleport to="body">
97
+ <atoms-tooltip-signpost
98
+ v-if="isShowHostModel"
99
+ elem-id="host-model-help-icon"
100
+ @hide="isShowHostModel = false"
101
+ >
102
+ <h3 class="host-model-help-title">
103
+ {{ localization.help }}
104
+ </h3>
105
+
106
+ <p class="host-model-help-text">
107
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. A
108
+ cum eius expedita, fuga mollitia perferendis quod soluta
109
+ vel? Dolor, illo, nam? A consequatur, consequuntur eos
110
+ impedit iusto labore sunt tempora!
111
+ </p>
112
+ </atoms-tooltip-signpost>
113
+ </Teleport>
114
+ </div>
115
+ </div>
116
+ </div>
117
+ </template>
118
+ </atoms-stack-block>
119
+ </div>
120
+ </template>
121
+
122
+ <script setup lang="ts">
123
+ import {
124
+ UI_I_Localization,
125
+ UI_I_HTMLSelectElement,
126
+ } from '~/lib/models/interfaces'
127
+ import { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
128
+ import { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
129
+ const localization = computed<UI_I_Localization>(() => useLocal())
130
+
131
+ const props = defineProps<{
132
+ cpuModel: string
133
+ passthroughHostCpu: boolean
134
+ hostModelCpu: boolean
135
+ cpuModels: UI_I_OptionItem[]
136
+ isEdit: boolean
137
+ disabled: boolean
138
+ errorValidationFields: UI_I_ErrorValidationField<string>[]
139
+ }>()
140
+ const emits = defineEmits<{
141
+ (event: 'update:cpu-model', value: string): boolean
142
+ (event: 'update:passthrough-host-cpu', value: boolean): boolean
143
+ (event: 'update:host-model-cpu', value: boolean): boolean
144
+ (event: 'remove-error-by-title', value: string): void
145
+ }>()
146
+
147
+ const cpuModelOptions = ref<UI_I_OptionItem[]>(props.cpuModels)
148
+ watch(
149
+ () => props.cpuModels,
150
+ (newValue) => {
151
+ cpuModelOptions.value = [...newValue]
152
+ }
153
+ )
154
+
155
+ const passthroughHostCpuLocal = computed<boolean>({
156
+ get() {
157
+ return props.passthroughHostCpu
158
+ },
159
+ set(newValue) {
160
+ emits('update:passthrough-host-cpu', newValue)
161
+ },
162
+ })
163
+ const hostModelCpuLocal = computed<boolean>({
164
+ get() {
165
+ return props.hostModelCpu
166
+ },
167
+ set(newValue) {
168
+ emits('update:host-model-cpu', newValue)
169
+ },
170
+ })
171
+
172
+ const changeCpuModel = (event: UI_I_HTMLSelectElement): void => {
173
+ emits('update:cpu-model', event.target.value)
174
+ emits('update:passthrough-host-cpu', false)
175
+ emits('update:host-model-cpu', false)
176
+ }
177
+ const changePassthroughHostCpu = (event: Event): void => {
178
+ const target = event.target as HTMLInputElement
179
+ emits('update:cpu-model', target.checked ? '' : props.cpuModels?.[0].value)
180
+ emits('update:host-model-cpu', false)
181
+ }
182
+ const changeHostModelCpu = (event: Event): void => {
183
+ const target = event.target as HTMLInputElement
184
+ emits('update:cpu-model', target.checked ? '' : props.cpuModels?.[0].value)
185
+ emits('update:passthrough-host-cpu', false)
186
+ }
187
+
188
+ const isShowPassthroughHost = ref<false>(false)
189
+ const isShowHostModel = ref<false>(false)
190
+
191
+ const typeError = 'cpu.model'
192
+
193
+ const apiError = computed<string>(() => {
194
+ return (
195
+ props.errorValidationFields?.find((message) => message.field === typeError)
196
+ ?.error_message || ''
197
+ )
198
+ })
199
+
200
+ const onRemoveValidationError = (): void => {
201
+ emits('remove-error-by-title', typeError)
202
+ }
203
+ </script>
204
+
205
+ <style scoped lang="scss">
206
+ .passthrough-host-cpu-wrap {
207
+ margin-right: 8px;
208
+ }
209
+ #passthrough-host-cpu,
210
+ #host-model-cpu {
211
+ margin: 0 4px 0 0;
212
+ }
213
+
214
+ .divider {
215
+ height: 16px;
216
+ width: 1px;
217
+ background-color: var(--global-border-color);
218
+ margin: 0 6px 0 0;
219
+ }
220
+ </style>
@@ -1,59 +1,59 @@
1
- import { UI_I_Localization } from '~/lib/models/interfaces'
2
- import { UI_I_DropdownTreeItem } from '~/components/atoms/dropdown/tree/lib/models/interfaces'
3
- import { UI_I_PciDevice } from '~/lib/models/store/vm/interfaces'
4
-
5
- export const dropdownItemsFunc = (
6
- localization: UI_I_Localization,
7
- state: string | number | undefined,
8
- passthroughDevices?: UI_I_PciDevice[]
9
- ): UI_I_DropdownTreeItem[] => {
10
- const { $text } = useNuxtApp()
11
-
12
- return [
13
- {
14
- text: localization.disksDrivesStorage,
15
- children: [
16
- { text: $text.toCapitalizeEveryWord(localization.hardDisk), value: 1 },
17
- {
18
- text: $text.toCapitalizeEveryWord(localization.existingHardDisk),
19
- value: 2,
20
- },
21
- // { text: 'RDM Disk', value: 2 },
22
- // { text: 'Host USB Device', value: 3 },
23
- // { text: 'NVDIMM', value: 4 },
24
- { text: localization.cdDvdDrive, value: 5 },
25
- ],
26
- },
27
- // {
28
- // text: 'Controllers',
29
- // children: [
30
- // { text: 'NVMe Controller', value: 6 },
31
- // { text: 'SATA Controller', value: 7 },
32
- // { text: 'SCSI Controller', value: 8 },
33
- // { text: 'USB Controller', value: 9 },
34
- // ],
35
- // },
36
- {
37
- text: 'Other Devices',
38
- children: [
39
- {
40
- text: 'PCI Device',
41
- value: 10,
42
- disabled: state === 2 || !passthroughDevices?.length,
43
- },
44
- // { text: 'Watchdog Timer', value: 11 },
45
- // { text: 'Precision Clock', value: 12 },
46
- // { text: 'Serial Port', value: 13 },
47
- ],
48
- },
49
- {
50
- text: localization.network,
51
- children: [
52
- {
53
- text: $text.toCapitalizeEveryWord(localization.networkAdapter),
54
- value: 14,
55
- },
56
- ],
57
- },
58
- ]
59
- }
1
+ import { UI_I_Localization } from '~/lib/models/interfaces'
2
+ import { UI_I_DropdownTreeItem } from '~/components/atoms/dropdown/tree/lib/models/interfaces'
3
+ import { UI_I_PciDevice } from '~/lib/models/store/vm/interfaces'
4
+
5
+ export const dropdownItemsFunc = (
6
+ localization: UI_I_Localization,
7
+ state: string | number | undefined,
8
+ passthroughDevices?: UI_I_PciDevice[]
9
+ ): UI_I_DropdownTreeItem[] => {
10
+ const { $text } = useNuxtApp()
11
+
12
+ return [
13
+ {
14
+ text: localization.disksDrivesStorage,
15
+ children: [
16
+ { text: $text.toCapitalizeEveryWord(localization.hardDisk), value: 1 },
17
+ {
18
+ text: $text.toCapitalizeEveryWord(localization.existingHardDisk),
19
+ value: 2,
20
+ },
21
+ // { text: 'RDM Disk', value: 2 },
22
+ // { text: 'Host USB Device', value: 3 },
23
+ // { text: 'NVDIMM', value: 4 },
24
+ { text: localization.cdDvdDrive, value: 5 },
25
+ ],
26
+ },
27
+ // {
28
+ // text: 'Controllers',
29
+ // children: [
30
+ // { text: 'NVMe Controller', value: 6 },
31
+ // { text: 'SATA Controller', value: 7 },
32
+ // { text: 'SCSI Controller', value: 8 },
33
+ // { text: 'USB Controller', value: 9 },
34
+ // ],
35
+ // },
36
+ {
37
+ text: 'Other Devices',
38
+ children: [
39
+ {
40
+ text: 'PCI Device',
41
+ value: 10,
42
+ disabled: state === 2 || !passthroughDevices?.length,
43
+ },
44
+ // { text: 'Watchdog Timer', value: 11 },
45
+ // { text: 'Precision Clock', value: 12 },
46
+ // { text: 'Serial Port', value: 13 },
47
+ ],
48
+ },
49
+ {
50
+ text: localization.network,
51
+ children: [
52
+ {
53
+ text: $text.toCapitalizeEveryWord(localization.networkAdapter),
54
+ value: 14,
55
+ },
56
+ ],
57
+ },
58
+ ]
59
+ }