bfg-common 1.5.478 → 1.5.479

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