bfg-common 1.3.216 → 1.3.217

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 (44) hide show
  1. package/assets/localization/local_en.json +3 -1
  2. package/components/atoms/alert/Alert.vue +95 -95
  3. package/components/atoms/alert/Notification.vue +170 -170
  4. package/components/atoms/switch/Switch.vue +111 -111
  5. package/components/atoms/table/compact/Compact.vue +526 -526
  6. package/components/atoms/tooltip/Signpost.vue +225 -225
  7. package/components/common/diagramMain/lib/models/interfaces.ts +5 -5
  8. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +6 -6
  9. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +2 -9
  10. package/components/common/diagramMain/modals/editSettings/tabs/TrafficShaping.vue +4 -132
  11. package/components/common/diagramMain/modals/lib/config/index.ts +0 -2
  12. package/components/common/diagramMain/modals/lib/config/initial.ts +0 -62
  13. package/components/common/diagramMain/modals/lib/config/networkModal.ts +92 -165
  14. package/components/common/pages/Tasks.vue +120 -120
  15. package/components/common/recursionTree/RecursionTree.vue +203 -203
  16. package/components/common/vm/actions/add/Add.vue +575 -575
  17. package/components/common/vm/actions/clone/Clone.vue +518 -518
  18. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +269 -269
  19. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +693 -693
  20. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuModel.vue +220 -220
  21. package/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/config/dropdownItems.ts +59 -59
  22. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +294 -294
  23. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +165 -165
  24. package/components/common/vm/actions/common/select/storage/lib/config/config.ts +166 -166
  25. package/components/common/vm/actions/editSettings/EditSettings.vue +313 -313
  26. package/components/common/weekSelect/WeekSelect.vue +112 -112
  27. package/components/common/weekSelect/lib/config/options.ts +10 -10
  28. package/components/common/wizards/network/add/Add.vue +17 -1
  29. package/components/common/wizards/network/add/validations/physicalAdapter.ts +70 -0
  30. package/composables/productNameLocal.ts +22 -22
  31. package/composables/useAppVersion.ts +21 -21
  32. package/composables/useEnvLanguage.ts +20 -20
  33. package/lib/utils/sendTask.ts +72 -72
  34. package/minify.js +146 -146
  35. package/package.json +1 -1
  36. package/public/spice-console/application/codec.js +257 -257
  37. package/public/spice-console/lib/rasterEngine.js +907 -907
  38. package/public/spice-console/network/spicechannel.js +369 -369
  39. package/store/main/lib/interfaces.ts +9 -9
  40. package/store/tasks/actions.ts +133 -133
  41. package/store/tasks/getters.ts +25 -25
  42. package/store/tasks/lib/models/interfaces.ts +18 -18
  43. package/store/tasks/mutations.ts +58 -58
  44. 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
+ }