bfg-common 1.4.365 → 1.4.367

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 (42) hide show
  1. package/assets/img/icons/icons-sprite-dark-1.svg +407 -407
  2. package/assets/img/icons/icons-sprite-dark-2.svg +343 -343
  3. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  4. package/assets/img/icons/icons-sprite-dark-4.svg +255 -255
  5. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  6. package/assets/img/icons/icons-sprite-dark-6.svg +94 -94
  7. package/assets/img/icons/icons-sprite-light-1.svg +407 -407
  8. package/assets/img/icons/icons-sprite-light-2.svg +343 -343
  9. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  10. package/assets/img/icons/icons-sprite-light-4.svg +255 -255
  11. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  12. package/assets/img/icons/icons-sprite-light-6.svg +94 -94
  13. package/assets/localization/local_en.json +1 -1
  14. package/components/atoms/TheIcon3.vue +50 -50
  15. package/components/atoms/modal/bySteps/BySteps.vue +253 -253
  16. package/components/atoms/stack/StackBlock.vue +185 -185
  17. package/components/common/context/lib/models/interfaces.ts +30 -30
  18. package/components/common/context/recursion/Recursion.vue +86 -86
  19. package/components/common/context/recursion/RecursionNew.vue +199 -199
  20. package/components/common/context/recursion/RecursionOld.vue +213 -213
  21. package/components/common/modals/confirmation/Confirmation.vue +65 -65
  22. package/components/common/vm/actions/add/Add.vue +617 -617
  23. package/components/common/vm/actions/clone/lib/config/steps.ts +129 -129
  24. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +2 -2
  25. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/lib/config/options.ts +20 -20
  26. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +403 -403
  27. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Hv.vue +99 -99
  28. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/{location/Location.vue → Location.vue} +173 -172
  29. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +2 -2
  30. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +201 -201
  31. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/streamingMode/StreamingMode.vue +85 -85
  32. package/components/common/vm/actions/common/select/storage/Storage.vue +198 -202
  33. package/components/common/vm/actions/editSettings/EditSettings.vue +1 -1
  34. package/composables/productNameLocal.ts +30 -30
  35. package/package.json +1 -1
  36. package/plugins/date.ts +181 -181
  37. package/plugins/recursion.ts +311 -311
  38. package/public/spice-console/lib/images/bitmap.js +203 -203
  39. package/public/spice-console/network/spicechannel.js +383 -383
  40. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/StorageModalOld.vue +0 -52
  41. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/storageModalNew/StorageModalNew.vue +0 -175
  42. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/storageModalNew/lib/config/table.ts +0 -167
@@ -1,99 +1,99 @@
1
- <template>
2
- <div class="">
3
- <atoms-stack-block :has-children="false">
4
- <template #stackBlockKey>
5
- {{ localization.common.hardwareVirtualization }}
6
- </template>
7
- <template #stackBlockContent>
8
- <div class="flex-space-between">
9
- <div class="flex-align-center">
10
- <input
11
- id="expose-hardware-assisted-virtualization"
12
- v-model="hardwareVirtualizationLocal"
13
- data-id="expose-hardware-assisted-virtualization"
14
- type="checkbox"
15
- disabled
16
- />
17
- <label
18
- for="expose-hardware-assisted-virtualization"
19
- :class="['label-text-normal', { 'div-disabled': true }]"
20
- >{{
21
- localization.common.exposeHardwareAssistedVirtualizationGuestOs
22
- }}</label
23
- >
24
- </div>
25
-
26
- <div id="hv-help-icon">
27
- <atoms-the-icon
28
- fill="#0072a3"
29
- width="24px"
30
- height="24px"
31
- name="info-circle"
32
- data-id="show-hv-help-icon"
33
- @click.stop="isShowHvHelp = !isShowHvHelp"
34
- />
35
- <Teleport to="body">
36
- <atoms-tooltip-signpost
37
- v-if="isShowHvHelp"
38
- elem-id="hv-help-icon"
39
- @hide="isShowHvHelp = false"
40
- >
41
- <h3 class="hv-help-title">
42
- {{ localization.mainNavigation.help }}
43
- </h3>
44
-
45
- <p class="hv-help-text">
46
- {{
47
- localization.common.hardwareVirtualizationHelpDescription
48
- }}
49
- </p>
50
- </atoms-tooltip-signpost>
51
- </Teleport>
52
- </div>
53
- </div>
54
- </template>
55
- </atoms-stack-block>
56
- </div>
57
- </template>
58
-
59
- <script setup lang="ts">
60
- import type { UI_I_Localization } from '~/lib/models/interfaces'
61
-
62
- const localization = computed<UI_I_Localization>(() => useLocal())
63
-
64
- const props = defineProps<{
65
- hardwareVirtualization: boolean
66
- }>()
67
- const emits = defineEmits<{
68
- (event: 'update:hardware-virtualization', value: boolean): boolean
69
- }>()
70
-
71
- const hardwareVirtualizationLocal = computed<boolean>({
72
- get() {
73
- return props.hardwareVirtualization
74
- },
75
- set(newValue) {
76
- emits('update:hardware-virtualization', newValue)
77
- },
78
- })
79
-
80
- const isShowHvHelp = ref<boolean>(false)
81
- </script>
82
-
83
- <style scoped lang="scss">
84
- #expose-hardware-assisted-virtualization {
85
- margin: 4px 4px 0 0;
86
- }
87
-
88
- h3.hv-help-title {
89
- margin-top: 7px;
90
- font-size: 22px;
91
- color: #565656;
92
- }
93
- p.hv-help-text {
94
- width: 310px;
95
- margin-top: 24px;
96
- font-size: 14px;
97
- color: #565656;
98
- }
99
- </style>
1
+ <template>
2
+ <div class="">
3
+ <atoms-stack-block :has-children="false">
4
+ <template #stackBlockKey>
5
+ {{ localization.common.hardwareVirtualization }}
6
+ </template>
7
+ <template #stackBlockContent>
8
+ <div class="flex-space-between">
9
+ <div class="flex-align-center">
10
+ <input
11
+ id="expose-hardware-assisted-virtualization"
12
+ v-model="hardwareVirtualizationLocal"
13
+ data-id="expose-hardware-assisted-virtualization"
14
+ type="checkbox"
15
+ disabled
16
+ />
17
+ <label
18
+ for="expose-hardware-assisted-virtualization"
19
+ :class="['label-text-normal', { 'div-disabled': true }]"
20
+ >{{
21
+ localization.common.exposeHardwareAssistedVirtualizationGuestOs
22
+ }}</label
23
+ >
24
+ </div>
25
+
26
+ <div id="hv-help-icon">
27
+ <atoms-the-icon
28
+ fill="#0072a3"
29
+ width="24px"
30
+ height="24px"
31
+ name="info-circle"
32
+ data-id="show-hv-help-icon"
33
+ @click.stop="isShowHvHelp = !isShowHvHelp"
34
+ />
35
+ <Teleport to="body">
36
+ <atoms-tooltip-signpost
37
+ v-if="isShowHvHelp"
38
+ elem-id="hv-help-icon"
39
+ @hide="isShowHvHelp = false"
40
+ >
41
+ <h3 class="hv-help-title">
42
+ {{ localization.mainNavigation.help }}
43
+ </h3>
44
+
45
+ <p class="hv-help-text">
46
+ {{
47
+ localization.common.hardwareVirtualizationHelpDescription
48
+ }}
49
+ </p>
50
+ </atoms-tooltip-signpost>
51
+ </Teleport>
52
+ </div>
53
+ </div>
54
+ </template>
55
+ </atoms-stack-block>
56
+ </div>
57
+ </template>
58
+
59
+ <script setup lang="ts">
60
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
61
+
62
+ const localization = computed<UI_I_Localization>(() => useLocal())
63
+
64
+ const props = defineProps<{
65
+ hardwareVirtualization: boolean
66
+ }>()
67
+ const emits = defineEmits<{
68
+ (event: 'update:hardware-virtualization', value: boolean): boolean
69
+ }>()
70
+
71
+ const hardwareVirtualizationLocal = computed<boolean>({
72
+ get() {
73
+ return props.hardwareVirtualization
74
+ },
75
+ set(newValue) {
76
+ emits('update:hardware-virtualization', newValue)
77
+ },
78
+ })
79
+
80
+ const isShowHvHelp = ref<boolean>(false)
81
+ </script>
82
+
83
+ <style scoped lang="scss">
84
+ #expose-hardware-assisted-virtualization {
85
+ margin: 4px 4px 0 0;
86
+ }
87
+
88
+ h3.hv-help-title {
89
+ margin-top: 7px;
90
+ font-size: 22px;
91
+ color: #565656;
92
+ }
93
+ p.hv-help-text {
94
+ width: 310px;
95
+ margin-top: 24px;
96
+ font-size: 14px;
97
+ color: #565656;
98
+ }
99
+ </style>
@@ -1,172 +1,173 @@
1
- <template>
2
- <div class="">
3
- <atoms-stack-block :has-children="false">
4
- <template #stackBlockKey>
5
- {{ localization.common.location }}
6
- </template>
7
- <template #stackBlockContent>
8
- <atoms-tooltip-error
9
- :has-error="!!apiError"
10
- :selector="`.vm-wizard-disk-device-target-field-${props.index}`"
11
- @remove="onRemoveValidationError"
12
- >
13
- <template #elem>
14
- <div class="select">
15
- <select
16
- :id="`vm-wizard-disk-device-target-field-${props.index}`"
17
- v-model="selectedLocation"
18
- :data-id="`vm-wizard-disk-device-target-field-${props.index}`"
19
- :class="`vm-wizard-disk-device-target-field-${props.index}`"
20
- @change="changeLocation"
21
- >
22
- <option
23
- v-for="(item, key) in locationOptions"
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
- </template>
35
- </atoms-stack-block>
36
-
37
- <Teleport to="body">
38
- <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-location-storage-modal-new
39
- v-if="isNewView"
40
- :storage-modal-is-show="storageModalIsShow"
41
- :datastore="props.datastore"
42
- @change-storage="onChangeStorage"
43
- @hide="onHideStorageModal"
44
- @submit="onSubmitStorageModal"
45
- />
46
- <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-location-storage-modal-old
47
- v-else
48
- :storage-modal-is-show="storageModalIsShow"
49
- :storage-submit="storageSubmit"
50
- :datastore="props.datastore"
51
- :get-datastore-table-func="props.getDatastoreTableFunc"
52
- @change-storage="onChangeStorage"
53
- @hide="onHideStorageModal"
54
- @submit="onSubmitStorageModal"
55
- />
56
- </Teleport>
57
- </div>
58
- </template>
59
-
60
- <script setup lang="ts">
61
- import type {
62
- UI_I_HTMLSelectElement,
63
- UI_I_Localization,
64
- } from '~/lib/models/interfaces'
65
- import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
66
- import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
67
- import type { UI_I_TablePayload } from '~/lib/models/table/interfaces'
68
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
69
-
70
- const localization = computed<UI_I_Localization>(() => useLocal())
71
-
72
- const props = defineProps<{
73
- location: UI_I_DatastoreTableItem | null
74
- index: number
75
- errorValidationFields: UI_I_ErrorValidationField<string>[]
76
- datastore: UI_I_DatastoreTableItem[]
77
- getDatastoreTableFunc: (payload: UI_I_TablePayload) => Promise<void>
78
- }>()
79
- const emits = defineEmits<{
80
- (event: 'change', value: UI_I_DatastoreTableItem): void
81
- (event: 'remove-error-by-title', value: string): void
82
- }>()
83
-
84
- const { $store }: any = useNuxtApp()
85
-
86
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
87
-
88
- const selectedLocation = ref<string>(props.location?.id || '')
89
-
90
- const storages = ref<UI_I_DatastoreTableItem[]>([])
91
- const addStorage = (storage: UI_I_DatastoreTableItem): void => {
92
- const hasStorage = storages.value.some((item) => item.id === storage.id)
93
- if (hasStorage) {
94
- return
95
- }
96
-
97
- storages.value.push(storage)
98
- }
99
- const locationOptions = ref<UI_I_OptionItem[]>([])
100
-
101
- watch(
102
- () => props.location,
103
- (newValue) => {
104
- if (locationOptions.value.length || !newValue) {
105
- return
106
- }
107
-
108
- locationOptions.value = [
109
- {
110
- text: localization.value.common.storeWithVirtualMachine,
111
- value: newValue.id,
112
- },
113
- { text: `${localization.value.common.browse}...`, value: -1 },
114
- ]
115
- selectedLocation.value = newValue.id
116
- storages.value.push(newValue)
117
- addStorage(newValue)
118
- },
119
- { immediate: true }
120
- )
121
-
122
- const storageSubmit = ref<number>(0)
123
- const onSubmitStorageModal = (): void => {
124
- storageSubmit.value++
125
- }
126
- const storageModalIsShow = ref<boolean>(false)
127
- const onHideStorageModal = (): void => {
128
- storageModalIsShow.value = false
129
- }
130
- const onChangeStorage = (storage: UI_I_DatastoreTableItem): void => {
131
- locationOptions.value = [
132
- locationOptions.value[0],
133
- { text: storage.name, value: storage.id },
134
- // @ts-ignore
135
- locationOptions.value.at(-1),
136
- ]
137
-
138
- selectedLocation.value = storage.id
139
- emits('change', storage)
140
- addStorage(storage)
141
- onHideStorageModal()
142
- }
143
- const changeLocation = (event: UI_I_HTMLSelectElement): void => {
144
- const value = +event.target.value
145
- if (value === -1) {
146
- storageModalIsShow.value = true
147
- return
148
- }
149
-
150
- selectedLocation.value = event.target.value
151
- const storage = storages.value.find((item) => item.id === event.target.value)
152
- storage && emits('change', storage)
153
- }
154
-
155
- const typeError = computed<string>(
156
- () => `disk_devices[${props.index}].location`
157
- )
158
-
159
- const apiError = computed<string>(() => {
160
- return (
161
- props.errorValidationFields?.find(
162
- (message) => message.field === typeError.value
163
- )?.error_message || ''
164
- )
165
- })
166
-
167
- const onRemoveValidationError = (): void => {
168
- emits('remove-error-by-title', typeError.value)
169
- }
170
- </script>
171
-
172
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <div class="">
3
+ <atoms-stack-block :has-children="false">
4
+ <template #stackBlockKey>
5
+ {{ localization.common.location }}
6
+ </template>
7
+ <template #stackBlockContent>
8
+ <atoms-tooltip-error
9
+ :has-error="!!apiError"
10
+ :selector="`.vm-wizard-disk-device-target-field-${props.index}`"
11
+ @remove="onRemoveValidationError"
12
+ >
13
+ <template #elem>
14
+ <div class="select">
15
+ <select
16
+ :id="`vm-wizard-disk-device-target-field-${props.index}`"
17
+ v-model="selectedLocation"
18
+ :data-id="`vm-wizard-disk-device-target-field-${props.index}`"
19
+ :class="`vm-wizard-disk-device-target-field-${props.index}`"
20
+ @change="changeLocation"
21
+ >
22
+ <option
23
+ v-for="(item, key) in locationOptions"
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
+ </template>
35
+ </atoms-stack-block>
36
+
37
+ <Teleport to="body">
38
+ <atoms-modal
39
+ class="storage-modal"
40
+ :show="storageModalIsShow"
41
+ :title="localization.common.selectStorage"
42
+ @submit="onSubmitStorageModal"
43
+ @hide="onHideStorageModal"
44
+ >
45
+ <template #modalBody>
46
+ <span>{{
47
+ localization.common.followingDatastoresAccessibleDestinationResourceThatSelected
48
+ }}</span>
49
+ <common-vm-actions-common-select-storage
50
+ :storage-submit="storageSubmit"
51
+ :datastore="props.datastore"
52
+ :get-datastore-table-func="props.getDatastoreTableFunc"
53
+ hide-compatibility
54
+ @submit="changeStorage"
55
+ />
56
+ </template>
57
+ </atoms-modal>
58
+ </Teleport>
59
+ </div>
60
+ </template>
61
+
62
+ <script setup lang="ts">
63
+ import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
64
+ import type {
65
+ UI_I_Localization,
66
+ UI_I_HTMLSelectElement,
67
+ } from '~/lib/models/interfaces'
68
+ import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
69
+ import type { UI_I_TablePayload } from '~/lib/models/table/interfaces'
70
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
71
+
72
+ const localization = computed<UI_I_Localization>(() => useLocal())
73
+
74
+ const props = defineProps<{
75
+ location: UI_I_DatastoreTableItem | null
76
+ index: number
77
+ errorValidationFields: UI_I_ErrorValidationField<string>[]
78
+ datastore: UI_I_DatastoreTableItem[]
79
+ getDatastoreTableFunc: (payload: UI_I_TablePayload) => Promise<void>
80
+ }>()
81
+ const emits = defineEmits<{
82
+ (event: 'change', value: UI_I_DatastoreTableItem): void
83
+ (event: 'remove-error-by-title', value: string): void
84
+ }>()
85
+
86
+ const selectedLocation = ref<string>(props.location?.id || '')
87
+
88
+ const storages = ref<UI_I_DatastoreTableItem[]>([])
89
+ const addStorage = (storage: UI_I_DatastoreTableItem): void => {
90
+ const hasStorage = storages.value.some((item) => item.id === storage.id)
91
+ if (hasStorage) {
92
+ return
93
+ }
94
+
95
+ storages.value.push(storage)
96
+ }
97
+ const locationOptions = ref<UI_I_OptionItem[]>([])
98
+
99
+ watch(
100
+ () => props.location,
101
+ (newValue) => {
102
+ if (locationOptions.value.length || !newValue) {
103
+ return
104
+ }
105
+
106
+ locationOptions.value = [
107
+ { text: localization.value.common.storeWithVirtualMachine, value: newValue.id },
108
+ { text: `${localization.value.common.browse}...`, value: -1 },
109
+ ]
110
+ selectedLocation.value = newValue.id
111
+ storages.value.push(newValue)
112
+ addStorage(newValue)
113
+ },
114
+ { immediate: true }
115
+ )
116
+
117
+ const storageSubmit = ref<number>(0)
118
+ const onSubmitStorageModal = (): void => {
119
+ storageSubmit.value++
120
+ }
121
+ const storageModalIsShow = ref<boolean>(false)
122
+ const changeStorage = (storage: UI_I_DatastoreTableItem): void => {
123
+ locationOptions.value = [
124
+ locationOptions.value[0],
125
+ { text: storage.name, value: storage.id },
126
+ // @ts-ignore
127
+ locationOptions.value.at(-1),
128
+ ]
129
+
130
+ selectedLocation.value = storage.id
131
+ emits('change', storage)
132
+ addStorage(storage)
133
+ onHideStorageModal()
134
+ }
135
+ const onHideStorageModal = (): void => {
136
+ storageModalIsShow.value = false
137
+ }
138
+ const changeLocation = (event: UI_I_HTMLSelectElement): void => {
139
+ const value = +event.target.value
140
+ if (value === -1) {
141
+ storageModalIsShow.value = true
142
+ return
143
+ }
144
+
145
+ selectedLocation.value = event.target.value
146
+ const storage = storages.value.find((item) => item.id === event.target.value)
147
+ storage && emits('change', storage)
148
+ }
149
+
150
+ const typeError = computed<string>(
151
+ () => `disk_devices[${props.index}].location`
152
+ )
153
+
154
+ const apiError = computed<string>(() => {
155
+ return (
156
+ props.errorValidationFields?.find(
157
+ (message) => message.field === typeError.value
158
+ )?.error_message || ''
159
+ )
160
+ })
161
+
162
+ const onRemoveValidationError = (): void => {
163
+ emits('remove-error-by-title', typeError.value)
164
+ }
165
+ </script>
166
+
167
+ <style scoped lang="scss">
168
+ .storage-modal {
169
+ :deep(.modal-dialog) {
170
+ width: 864px;
171
+ }
172
+ }
173
+ </style>
@@ -28,7 +28,7 @@
28
28
  <div class="flex-align-center flex-space-between mr-1">
29
29
  <template v-if="props.type === 'removed'">
30
30
  <span>{{ localization.common.deviceWillRemoved }}</span>
31
- <div class="flex-align-center" @click.stop>
31
+ <div @click.stop class="flex-align-center">
32
32
  <input
33
33
  :id="`hard-disk-delete-files-from-datastore-${props.index}`"
34
34
  v-model="deleteFilesFromDatastore"
@@ -355,7 +355,7 @@ watch(
355
355
  cache,
356
356
  bus,
357
357
  deleteFilesFromDatastore,
358
- (): void => props.type,
358
+ () => props.type,
359
359
  ],
360
360
  () => {
361
361
  const limitIopsLocal =