bfg-common 1.5.448 → 1.5.450

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 (124) 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 +1 -0
  7. package/assets/localization/local_en.json +1 -0
  8. package/assets/localization/local_hy.json +1 -0
  9. package/assets/localization/local_kk.json +1 -0
  10. package/assets/localization/local_ru.json +1 -0
  11. package/assets/localization/local_zh.json +1 -0
  12. package/assets/scss/clarity/local_ar.json +1 -0
  13. package/components/atoms/TheIcon3.vue +50 -50
  14. package/components/atoms/collapse/CollapseNav.vue +170 -170
  15. package/components/atoms/perPage/PerPage.vue +58 -58
  16. package/components/atoms/table/dataGrid/DataGrid.vue +1694 -1694
  17. package/components/atoms/table/dataGrid/DataGridPagination.vue +97 -97
  18. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  19. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  20. package/components/common/browse/blocks/Container.vue +235 -235
  21. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  22. package/components/common/context/lib/models/interfaces.ts +33 -33
  23. package/components/common/diagramMain/modals/lib/config/networkModal.ts +398 -398
  24. package/components/common/diagramMain/modals/lib/config/portModal.ts +251 -251
  25. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  26. package/components/common/diagramMain/port/Port.vue +580 -580
  27. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  28. package/components/common/pages/backups/Backups.vue +102 -102
  29. package/components/common/pages/backups/DetailView.vue +52 -52
  30. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  31. package/components/common/pages/backups/modals/createBackup/configuration/Configuration.vue +29 -29
  32. package/components/common/pages/backups/modals/createBackup/configuration/backupWindow/BackupWindow.vue +26 -26
  33. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/MaxBandwidth.vue +66 -66
  34. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  35. package/components/common/pages/backups/modals/createBackup/configuration/strategy/Strategy.vue +35 -35
  36. package/components/common/pages/backups/modals/createBackup/datastores/Datastores.vue +59 -59
  37. package/components/common/pages/backups/modals/createBackup/datastores/tableView/TableView.vue +95 -95
  38. package/components/common/pages/backups/modals/createBackup/disks/tableView/lib/config/table.ts +117 -117
  39. package/components/common/pages/backups/modals/createBackup/general/General.vue +141 -135
  40. package/components/common/pages/backups/modals/createBackup/lib/config/strategyOptions.ts +12 -12
  41. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  42. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  43. package/components/common/pages/backups/modals/restore/disks/Disks.vue +27 -27
  44. package/components/common/pages/backups/modals/restore/disks/tableView/TableView.vue +102 -102
  45. package/components/common/pages/backups/modals/restore/disks/tableView/lib/config/table.ts +117 -117
  46. package/components/common/pages/backups/modals/restore/name/Name.vue +166 -160
  47. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  48. package/components/common/pages/backups/modals/restore/networks/Networks.vue +67 -67
  49. package/components/common/pages/backups/modals/restore/networks/table/Table.vue +214 -214
  50. package/components/common/pages/backups/modals/restore/types/lib/config/typeOptions.ts +25 -25
  51. package/components/common/pages/backups/tools/Tools.vue +75 -75
  52. package/components/common/pages/backups/tools/lib/config/tabs.ts +36 -36
  53. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  54. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  55. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  56. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  57. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  58. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  59. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  60. package/components/common/select/radio/RadioGroup.vue +137 -137
  61. package/components/common/spiceConsole/Drawer.vue +381 -381
  62. package/components/common/spiceConsole/SpiceConsole.vue +127 -127
  63. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  64. package/components/common/tools/Actions.vue +207 -207
  65. package/components/common/treeView/TreeView.vue +52 -52
  66. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  67. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +7 -1
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -78
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +85 -85
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSize.vue +23 -23
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/Table.vue +99 -99
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  89. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  90. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  91. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  92. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  93. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapOld.vue +44 -44
  94. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  95. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  96. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  97. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  98. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +143 -143
  99. package/components/common/vm/actions/common/select/computeResource/New.vue +184 -184
  100. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +131 -131
  101. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  102. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  103. package/components/common/vm/actions/common/select/name/Name.vue +190 -182
  104. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  105. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  106. package/components/common/vm/actions/common/select/storage/new/New.vue +320 -320
  107. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  108. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  109. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  110. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  111. package/components/common/vmt/actions/add/Old.vue +1 -0
  112. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  113. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  114. package/components/common/wizards/vm/migrate/select/type/lib/config/typeOptions.ts +45 -45
  115. package/composables/productNameLocal.ts +30 -30
  116. package/composables/useAppVersion.ts +21 -21
  117. package/package.json +1 -1
  118. package/plugins/date.ts +233 -233
  119. package/plugins/panelStates.ts +70 -70
  120. package/plugins/text.ts +59 -59
  121. package/public/spice-console/lib/images/bitmap.js +203 -203
  122. package/public/spice-console/network/spicechannel.js +390 -390
  123. package/store/main/mutations.ts +7 -7
  124. package/store/main/state.ts +7 -7
@@ -1,182 +1,190 @@
1
- <template>
2
- <common-vm-actions-common-select-name-new
3
- v-if="isNewView"
4
- v-model:vm-name="vmName"
5
- v-model:is-show-help="isShowHelp"
6
- :project="props.project"
7
- :errors="errors"
8
- :data-center="props.dataCenter"
9
- @remove-validation-errors="onRemoveValidationErrors"
10
- @select-node="onSelectNode"
11
- />
12
- <common-vm-actions-common-select-name-old
13
- v-else
14
- v-model:vm-name="vmName"
15
- v-model:is-show-help="isShowHelp"
16
- :project="props.project"
17
- :errors="errors"
18
- :data-center="props.dataCenter"
19
- @remove-validation-errors="onRemoveValidationErrors"
20
- @select-node="onSelectNode"
21
- />
22
- </template>
23
-
24
- <script setup lang="ts">
25
- // import { API_UI_I_Error } from '~/lib/models/store/interfaces'
26
- import type { UI_I_Localization } from '~/lib/models/interfaces'
27
- import type { UI_T_Project } from '~/lib/models/types'
28
- import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
29
-
30
- const props = withDefaults(
31
- defineProps<{
32
- nameFormSubmit: null | Function
33
- show: boolean
34
- project: UI_T_Project
35
- dataCenter?: UI_I_TreeNode // для сферы
36
- existName?: string
37
- }>(),
38
- {
39
- dataCenter: undefined,
40
- existName: undefined,
41
- }
42
- )
43
- const emits = defineEmits<{
44
- (event: 'submit', value: [string, UI_I_TreeNode | null]): void
45
- (event: 'loading', value: boolean): void
46
- (
47
- event: 'check-name',
48
- value: [[string, UI_I_TreeNode | null], (error: any) => void]
49
- ): void
50
- (event: 'has-errors', value: boolean): void
51
- }>()
52
-
53
- const { $store }: any = useNuxtApp()
54
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
55
-
56
- const localization = computed<UI_I_Localization>(() => useLocal())
57
-
58
- // TODO 100
59
- const vmName = ref<string>(props.existName || '')
60
-
61
- const selectedNode = ref<UI_I_TreeNode | null>(null)
62
- const onSelectNode = (node: UI_I_TreeNode): void => {
63
- selectedNode.value = node
64
- }
65
-
66
- watch(
67
- () => props.nameFormSubmit,
68
- (newValue) => {
69
- newValue && submit(newValue)
70
- }
71
- )
72
-
73
- const isParentDatacenter = (node: UI_I_TreeNode | null): boolean => {
74
- if (!node) return false
75
-
76
- if (node.parent?.type === 'datacenter') return true
77
- if (node.parent?.type === 'folder') return isParentDatacenter(node.parent)
78
- return false
79
- }
80
- const submit = async (cb: Function): Promise<void> => {
81
- const name = vmName.value
82
-
83
- if (name !== '') {
84
- const isNameValid = await checkNameIsValid(name)
85
- if (!isNameValid) {
86
- cb(false)
87
- return
88
- }
89
- }
90
-
91
- if (props.project === 'sphere') {
92
- // const isDatacenterFolder = isParentDatacenter(selectedNode.value)
93
-
94
- if (
95
- // selectedNode.value?.type !== 'datacenter' &&
96
- // selectedNode.value?.type === 'folder' &&
97
- // !isDatacenterFolder
98
- // TODO рефакторинг, здесь сейчас проверяем является ли выбранный элемент датацентром или папкой(вм)
99
- ![3, 7].includes(selectedNode.value?.kind)
100
- ) {
101
- showValidationErrors([
102
- localization.value.common.enterValidLocationVirtualMachine,
103
- ])
104
- cb(false)
105
- return
106
- }
107
- }
108
-
109
- onRemoveValidationErrors()
110
- emits('submit', [name, selectedNode.value])
111
- cb(true)
112
- }
113
- const checkNameIsValid = async (name: string): Promise<boolean> => {
114
- emits('loading', true)
115
-
116
- return new Promise((resolve) => {
117
- emits('check-name', [
118
- [name, selectedNode.value],
119
- (error) => {
120
- emits('loading', false)
121
-
122
- const status = error?.statusCode || 200
123
- switch (status) {
124
- case 405: // Invalid kind
125
- showValidationErrors([
126
- localization.value.common.kindValidationDescription,
127
- ])
128
- resolve(false)
129
- break
130
- case 406: // Invalid name
131
- showValidationErrors([
132
- localization.value.common.vmNameValidationDescription,
133
- ])
134
- resolve(false)
135
- break
136
- case 409: // Name exist
137
- showValidationErrors([
138
- localization.value.common.vmNameExistInSelectedLocation,
139
- ])
140
- resolve(false)
141
- break
142
- }
143
-
144
- resolve(true)
145
- },
146
- ])
147
- })
148
- }
149
-
150
- const errors = ref<string[]>([])
151
- const showValidationErrors = (data: string[]): void => {
152
- errors.value = data
153
- }
154
- const onRemoveValidationErrors = (): void => {
155
- errors.value = []
156
- }
157
- watch(
158
- errors,
159
- (newValue) => {
160
- emits('has-errors', !newValue.length)
161
- },
162
- { immediate: true, deep: true }
163
- )
164
-
165
- watch(
166
- () => props.show,
167
- (newValue) => {
168
- if (!newValue) return
169
-
170
- const input = document.getElementById('virtual-machine-name')
171
- if (!input) return
172
-
173
- setTimeout(() => {
174
- input.focus()
175
- }, 0)
176
- }
177
- )
178
-
179
- const isShowHelp = ref<boolean>(false)
180
- </script>
181
-
182
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <common-vm-actions-common-select-name-new
3
+ v-if="isNewView"
4
+ v-model:vm-name="vmName"
5
+ v-model:is-show-help="isShowHelp"
6
+ :project="props.project"
7
+ :errors="errors"
8
+ :data-center="props.dataCenter"
9
+ @remove-validation-errors="onRemoveValidationErrors"
10
+ @select-node="onSelectNode"
11
+ />
12
+ <common-vm-actions-common-select-name-old
13
+ v-else
14
+ v-model:vm-name="vmName"
15
+ v-model:is-show-help="isShowHelp"
16
+ :project="props.project"
17
+ :errors="errors"
18
+ :data-center="props.dataCenter"
19
+ @remove-validation-errors="onRemoveValidationErrors"
20
+ @select-node="onSelectNode"
21
+ />
22
+ </template>
23
+
24
+ <script setup lang="ts">
25
+ // import { API_UI_I_Error } from '~/lib/models/store/interfaces'
26
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
27
+ import type { UI_T_Project } from '~/lib/models/types'
28
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
29
+
30
+ const props = withDefaults(
31
+ defineProps<{
32
+ nameFormSubmit: null | Function
33
+ show: boolean
34
+ project: UI_T_Project
35
+ validateEmptyName?: boolean
36
+ dataCenter?: UI_I_TreeNode // для сферы
37
+ existName?: string
38
+ }>(),
39
+ {
40
+ validateEmptyName: false,
41
+ dataCenter: undefined,
42
+ existName: undefined,
43
+ }
44
+ )
45
+ const emits = defineEmits<{
46
+ (event: 'submit', value: [string, UI_I_TreeNode | null]): void
47
+ (event: 'loading', value: boolean): void
48
+ (
49
+ event: 'check-name',
50
+ value: [[string, UI_I_TreeNode | null], (error: any) => void]
51
+ ): void
52
+ (event: 'has-errors', value: boolean): void
53
+ }>()
54
+
55
+ const { $store }: any = useNuxtApp()
56
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
57
+
58
+ const localization = computed<UI_I_Localization>(() => useLocal())
59
+
60
+ // TODO 100
61
+ const vmName = ref<string>(props.existName || '')
62
+
63
+ const selectedNode = ref<UI_I_TreeNode | null>(null)
64
+ const onSelectNode = (node: UI_I_TreeNode): void => {
65
+ selectedNode.value = node
66
+ }
67
+
68
+ watch(
69
+ () => props.nameFormSubmit,
70
+ (newValue) => {
71
+ newValue && submit(newValue)
72
+ }
73
+ )
74
+
75
+ const isParentDatacenter = (node: UI_I_TreeNode | null): boolean => {
76
+ if (!node) return false
77
+
78
+ if (node.parent?.type === 'datacenter') return true
79
+ if (node.parent?.type === 'folder') return isParentDatacenter(node.parent)
80
+ return false
81
+ }
82
+ const submit = async (cb: Function): Promise<void> => {
83
+ const name = vmName.value
84
+
85
+ if (name !== '' || props.validateEmptyName) {
86
+ const isNameValid = await checkNameIsValid(name)
87
+ if (!isNameValid) {
88
+ cb(false)
89
+ return
90
+ }
91
+ }
92
+
93
+ if (props.project === 'sphere') {
94
+ // const isDatacenterFolder = isParentDatacenter(selectedNode.value)
95
+
96
+ if (
97
+ // selectedNode.value?.type !== 'datacenter' &&
98
+ // selectedNode.value?.type === 'folder' &&
99
+ // !isDatacenterFolder
100
+ // TODO рефакторинг, здесь сейчас проверяем является ли выбранный элемент датацентром или папкой(вм)
101
+ ![3, 7].includes(selectedNode.value?.kind)
102
+ ) {
103
+ showValidationErrors([
104
+ localization.value.common.enterValidLocationVirtualMachine,
105
+ ])
106
+ cb(false)
107
+ return
108
+ }
109
+ }
110
+
111
+ onRemoveValidationErrors()
112
+ emits('submit', [name, selectedNode.value])
113
+ cb(true)
114
+ }
115
+ const checkNameIsValid = async (name: string): Promise<boolean> => {
116
+ emits('loading', true)
117
+
118
+ return new Promise((resolve) => {
119
+ emits('check-name', [
120
+ [name, selectedNode.value],
121
+ (error) => {
122
+ emits('loading', false)
123
+
124
+ const status = error?.statusCode || 200
125
+ switch (status) {
126
+ case 400: // Empty name
127
+ showValidationErrors([
128
+ localization.value.common.emptyNameValidationDescription,
129
+ ])
130
+ resolve(false)
131
+ break
132
+ case 405: // Invalid kind
133
+ showValidationErrors([
134
+ localization.value.common.kindValidationDescription,
135
+ ])
136
+ resolve(false)
137
+ break
138
+ case 406: // Invalid name
139
+ showValidationErrors([
140
+ localization.value.common.vmNameValidationDescription,
141
+ ])
142
+ resolve(false)
143
+ break
144
+ case 409: // Name exist
145
+ showValidationErrors([
146
+ localization.value.common.vmNameExistInSelectedLocation,
147
+ ])
148
+ resolve(false)
149
+ break
150
+ }
151
+
152
+ resolve(true)
153
+ },
154
+ ])
155
+ })
156
+ }
157
+
158
+ const errors = ref<string[]>([])
159
+ const showValidationErrors = (data: string[]): void => {
160
+ errors.value = data
161
+ }
162
+ const onRemoveValidationErrors = (): void => {
163
+ errors.value = []
164
+ }
165
+ watch(
166
+ errors,
167
+ (newValue) => {
168
+ emits('has-errors', !newValue.length)
169
+ },
170
+ { immediate: true, deep: true }
171
+ )
172
+
173
+ watch(
174
+ () => props.show,
175
+ (newValue) => {
176
+ if (!newValue) return
177
+
178
+ const input = document.getElementById('virtual-machine-name')
179
+ if (!input) return
180
+
181
+ setTimeout(() => {
182
+ input.focus()
183
+ }, 0)
184
+ }
185
+ )
186
+
187
+ const isShowHelp = ref<boolean>(false)
188
+ </script>
189
+
190
+ <style scoped lang="scss"></style>