bfg-common 1.5.659 → 1.5.661

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 (101) 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 +1718 -1718
  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/common/backup/storage/actions/add/lib/utils.ts +51 -51
  14. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  15. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  16. package/components/common/diagramMain/port/Port.vue +580 -580
  17. package/components/common/layout/theHeader/TheHeaderNew.vue +315 -315
  18. package/components/common/layout/theHeader/TheHeaderOld.vue +262 -262
  19. package/components/common/layout/theHeader/helpMenu/About.vue +79 -79
  20. package/components/common/layout/theHeader/helpMenu/aboutOld/AboutOld.vue +79 -79
  21. package/components/common/layout/theHeader/userMenu/modals/changePassword/ChangePassword.vue +99 -99
  22. package/components/common/layout/theHeader/userMenu/modals/changePassword/New.vue +193 -193
  23. package/components/common/layout/theHeader/userMenu/modals/preferences/PreferencesOld.vue +144 -144
  24. package/components/common/layout/theHeader/userMenu/modals/preferences/lib/models/types.ts +7 -7
  25. package/components/common/layout/theHeader/userMenu/modals/preferences/security/Old.vue +210 -210
  26. package/components/common/layout/theHeader/userMenu/modals/preferences/security/Security.vue +31 -31
  27. package/components/common/pages/backups/DetailView.vue +52 -52
  28. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  29. package/components/common/pages/backups/modals/Modals.vue +243 -243
  30. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  31. package/components/common/pages/backups/modals/createBackup/lib/config/readyToCompleteOptions.ts +69 -69
  32. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  33. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  34. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  35. package/components/common/pages/hardwareHealth/toolsPanel/lib/config/actionsPanel.ts +34 -34
  36. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  37. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  38. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  39. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  40. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  41. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  42. package/components/common/qr/Qr.vue +57 -0
  43. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  44. package/components/common/select/radio/RadioGroup.vue +137 -137
  45. package/components/common/spiceConsole/Drawer.vue +420 -420
  46. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  47. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  48. package/components/common/tools/Actions.vue +207 -207
  49. package/components/common/treeView/TreeView.vue +52 -52
  50. package/components/common/vm/actions/clone/lib/config/steps.ts +295 -295
  51. package/components/common/vm/actions/clone/new/New.vue +438 -438
  52. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  53. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +283 -283
  54. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +156 -156
  55. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  56. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  57. package/components/common/vm/actions/common/select/options/New.vue +264 -264
  58. package/components/common/vm/actions/common/select/options/Old.vue +110 -110
  59. package/components/common/vm/actions/common/select/options/Options.vue +58 -58
  60. package/components/common/vm/actions/common/select/storage/Old.vue +125 -125
  61. package/components/common/vm/actions/common/select/storage/new/New.vue +311 -311
  62. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  63. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  64. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  65. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  66. package/components/common/wizards/common/compatibility/Compatibility.vue +35 -35
  67. package/components/common/wizards/common/compatibility/New.vue +99 -99
  68. package/components/common/wizards/common/compatibility/Old.vue +53 -53
  69. package/components/common/wizards/common/steps/computeResource/New.vue +93 -93
  70. package/components/common/wizards/common/steps/name/Name.vue +178 -178
  71. package/components/common/wizards/common/steps/name/New.vue +221 -221
  72. package/components/common/wizards/common/steps/name/Old.vue +121 -121
  73. package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
  74. package/components/common/wizards/common/steps/name/location/New.vue +40 -40
  75. package/components/common/wizards/datastore/add/Add.vue +228 -228
  76. package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
  77. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  78. package/composables/useAppVersion.ts +21 -21
  79. package/composables/useLocal.ts +6 -6
  80. package/composables/useLocalCommon.ts +39 -39
  81. package/nuxt.config.ts +1 -0
  82. package/package.json +3 -3
  83. package/plugins/console.ts +21 -21
  84. package/plugins/mouse.ts +21 -21
  85. package/plugins/panelStates.ts +70 -70
  86. package/plugins/text.ts +59 -59
  87. package/public/spice-console/application/clientgui.js +854 -854
  88. package/public/spice-console/application/packetfactory.js +211 -211
  89. package/public/spice-console/application/virtualmouse.js +147 -147
  90. package/public/spice-console/lib/images/bitmap.js +203 -203
  91. package/public/spice-console/network/spicechannel.js +440 -440
  92. package/public/spice-console/process/cursorprocess.js +128 -128
  93. package/public/spice-console/process/inputprocess.js +227 -227
  94. package/public/spice-console/process/mainprocess.js +212 -212
  95. package/public/spice-console/run.js +210 -210
  96. package/store/main/mutations.ts +7 -7
  97. package/store/main/state.ts +7 -7
  98. package/store/tasks/actions.ts +165 -165
  99. package/store/tasks/mappers/recentTasks.ts +123 -123
  100. package/store/tasks/mutations.ts +82 -82
  101. package/components/common/qrcode/Qrcode.vue +0 -56
@@ -1,97 +1,97 @@
1
- <template>
2
- <div class="pagination">
3
- <div v-if="!props.hidePagination" class="pagination-size">
4
- <atoms-per-page
5
- v-if="!props.hidePageSize"
6
- :test-id="props.testId"
7
- :page-size="props.pageSize"
8
- :options="props.options"
9
- @change="changePageSize"
10
- />
11
- </div>
12
-
13
- <div
14
- :class="['pagination-description', { 'ml-1': !props.isShowHiddenInfo }]"
15
- >
16
- {{ totalItemCount }}
17
- </div>
18
-
19
- <atoms-table-data-grid-page
20
- v-if="!props.hidePagination"
21
- :test-id="props.testId"
22
- :page="props.page"
23
- :total-items="props.totalItems"
24
- :total-pages="props.totalPages"
25
- :page-size="props.pageSize"
26
- @change="changePage"
27
- />
28
- </div>
29
- </template>
30
-
31
- <script setup lang="ts">
32
- import type { UI_I_Localization } from '~/lib/models/interfaces'
33
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
34
-
35
- const props = withDefaults(
36
- defineProps<{
37
- options: UI_I_OptionItem[]
38
- pageSize: number
39
- page: number
40
- totalItems: number
41
- totalPages: number
42
- pageItemsCount: number
43
- hidePagination?: boolean
44
- hidePageSize?: boolean
45
- showPageInfo?: boolean
46
- testId?: string
47
- isShowHiddenInfo?: boolean
48
- }>(),
49
- {
50
- hidePagination: undefined,
51
- hidePageSize: undefined,
52
- showPageInfo: undefined,
53
- testId: 'ui-data-grid-pagination',
54
- isShowHiddenInfo: false,
55
- }
56
- )
57
- const emits = defineEmits<{
58
- (event: 'change-page-size', value: number): void
59
- (event: 'change-page', value: number): void
60
- }>()
61
- const localization = computed<UI_I_Localization>(() => useLocal())
62
- const totalItemCount = computed<string>(() => {
63
- const start = (props.page - 1) * props.pageSize + 1
64
-
65
- // const paginationInfo = props.showPageInfo
66
- // ? `${start} - ${props.pageItemsCount} ${localization.value.common.of}`
67
- // : ''
68
-
69
- if (props.showPageInfo) {
70
- return `${start} - ${props.pageItemsCount}
71
- ${localization.value.common.of}
72
- ${props.totalItems} ${localization.value.common.items.toLowerCase()}`
73
- }
74
-
75
- return `${
76
- // props.totalItems
77
- props.pageItemsCount
78
- } ${localization.value.common.items.toLowerCase()}`
79
- })
80
-
81
- const changePageSize = (pageSize: number): void => {
82
- const newTotalPages = Math.ceil(props.totalItems / pageSize)
83
- if (newTotalPages < props.page) changePage(newTotalPages)
84
- emits('change-page-size', pageSize)
85
- }
86
-
87
- const changePage = (page: number): void => {
88
- emits('change-page', page)
89
- }
90
- </script>
91
-
92
- <style scoped lang="scss">
93
- .pagination {
94
- display: inline-flex;
95
- align-items: center;
96
- }
97
- </style>
1
+ <template>
2
+ <div class="pagination">
3
+ <div v-if="!props.hidePagination" class="pagination-size">
4
+ <atoms-per-page
5
+ v-if="!props.hidePageSize"
6
+ :test-id="props.testId"
7
+ :page-size="props.pageSize"
8
+ :options="props.options"
9
+ @change="changePageSize"
10
+ />
11
+ </div>
12
+
13
+ <div
14
+ :class="['pagination-description', { 'ml-1': !props.isShowHiddenInfo }]"
15
+ >
16
+ {{ totalItemCount }}
17
+ </div>
18
+
19
+ <atoms-table-data-grid-page
20
+ v-if="!props.hidePagination"
21
+ :test-id="props.testId"
22
+ :page="props.page"
23
+ :total-items="props.totalItems"
24
+ :total-pages="props.totalPages"
25
+ :page-size="props.pageSize"
26
+ @change="changePage"
27
+ />
28
+ </div>
29
+ </template>
30
+
31
+ <script setup lang="ts">
32
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
33
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
34
+
35
+ const props = withDefaults(
36
+ defineProps<{
37
+ options: UI_I_OptionItem[]
38
+ pageSize: number
39
+ page: number
40
+ totalItems: number
41
+ totalPages: number
42
+ pageItemsCount: number
43
+ hidePagination?: boolean
44
+ hidePageSize?: boolean
45
+ showPageInfo?: boolean
46
+ testId?: string
47
+ isShowHiddenInfo?: boolean
48
+ }>(),
49
+ {
50
+ hidePagination: undefined,
51
+ hidePageSize: undefined,
52
+ showPageInfo: undefined,
53
+ testId: 'ui-data-grid-pagination',
54
+ isShowHiddenInfo: false,
55
+ }
56
+ )
57
+ const emits = defineEmits<{
58
+ (event: 'change-page-size', value: number): void
59
+ (event: 'change-page', value: number): void
60
+ }>()
61
+ const localization = computed<UI_I_Localization>(() => useLocal())
62
+ const totalItemCount = computed<string>(() => {
63
+ const start = (props.page - 1) * props.pageSize + 1
64
+
65
+ // const paginationInfo = props.showPageInfo
66
+ // ? `${start} - ${props.pageItemsCount} ${localization.value.common.of}`
67
+ // : ''
68
+
69
+ if (props.showPageInfo) {
70
+ return `${start} - ${props.pageItemsCount}
71
+ ${localization.value.common.of}
72
+ ${props.totalItems} ${localization.value.common.items.toLowerCase()}`
73
+ }
74
+
75
+ return `${
76
+ // props.totalItems
77
+ props.pageItemsCount
78
+ } ${localization.value.common.items.toLowerCase()}`
79
+ })
80
+
81
+ const changePageSize = (pageSize: number): void => {
82
+ const newTotalPages = Math.ceil(props.totalItems / pageSize)
83
+ if (newTotalPages < props.page) changePage(newTotalPages)
84
+ emits('change-page-size', pageSize)
85
+ }
86
+
87
+ const changePage = (page: number): void => {
88
+ emits('change-page', page)
89
+ }
90
+ </script>
91
+
92
+ <style scoped lang="scss">
93
+ .pagination {
94
+ display: inline-flex;
95
+ align-items: center;
96
+ }
97
+ </style>
@@ -1,94 +1,94 @@
1
- import type { UI_ColumnSettingsStrategy } from '~/components/atoms/table/dataGrid/lib/models/interfaces'
2
- import type {
3
- UI_I_ColumnKey,
4
- UI_I_HeadItem,
5
- } from '~/components/atoms/table/dataGrid/lib/models/interfaces'
6
- import type { UI_I_DropdownButtonItem } from '~/components/common/select/button/lib/models/interfaces'
7
- import type { UI_I_Localization } from '~/lib/models/interfaces'
8
- import {
9
- constructColumnKey,
10
- constructHeadItem,
11
- } from '~/components/atoms/table/dataGrid/lib/utils/constructDataTable'
12
-
13
- export const defaultColumnKeys = (
14
- items: [string, boolean, string, string][],
15
- strategy?: UI_ColumnSettingsStrategy
16
- ): UI_I_ColumnKey[] => {
17
- const result: UI_I_ColumnKey[] = []
18
- items.forEach((item, i) => {
19
- let col: string = `col${i}` // Стандартное значение по умолчанию
20
-
21
- if (strategy) {
22
- // Проходим по ключам объекта и ищем соответствие индекса i в значениях
23
- for (const key in strategy) {
24
- if (strategy[key].includes(i)) {
25
- col = key
26
- break
27
- }
28
- }
29
- }
30
-
31
- result.push(
32
- constructColumnKey(col, item[0], item[1], `show-column-${item[3]}`)
33
- )
34
- })
35
- return result
36
- }
37
-
38
- export const defaultHeadItems = (
39
- items: [string, boolean, string, string][],
40
- strategy?: UI_ColumnSettingsStrategy
41
- ): UI_I_HeadItem[] => {
42
- const result: UI_I_HeadItem[] = []
43
- items.forEach((item, i) => {
44
- let col: string = `col${i}` // Стандартное значение по умолчанию
45
-
46
- if (strategy) {
47
- // Проходим по ключам объекта и ищем соответствие индекса i в значениях
48
- for (const key in strategy) {
49
- if (strategy[key].includes(i)) {
50
- col = key
51
- break
52
- }
53
- }
54
- }
55
-
56
- result.push(
57
- constructHeadItem(
58
- col,
59
- item[0],
60
- item[3],
61
- false,
62
- item[2],
63
- undefined,
64
- item[3]
65
- )
66
- )
67
- })
68
- return result
69
- }
70
-
71
- export const exportItemsFunc = (
72
- localization: UI_I_Localization,
73
- rows: number,
74
- selectedRows: number,
75
- testId: string
76
- ): UI_I_DropdownButtonItem[] => {
77
- return [
78
- {
79
- text: localization.common.allRowsCount.replace('{0}', '' + rows),
80
- type: '0',
81
- disabled: false,
82
- testId: `${testId}-export-all`,
83
- },
84
- {
85
- text: localization.common.selectedRowsCount.replace(
86
- '{0}',
87
- '' + selectedRows
88
- ),
89
- type: '1',
90
- disabled: false,
91
- testId: `${testId}-export-selected`,
92
- },
93
- ]
94
- }
1
+ import type { UI_ColumnSettingsStrategy } from '~/components/atoms/table/dataGrid/lib/models/interfaces'
2
+ import type {
3
+ UI_I_ColumnKey,
4
+ UI_I_HeadItem,
5
+ } from '~/components/atoms/table/dataGrid/lib/models/interfaces'
6
+ import type { UI_I_DropdownButtonItem } from '~/components/common/select/button/lib/models/interfaces'
7
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
8
+ import {
9
+ constructColumnKey,
10
+ constructHeadItem,
11
+ } from '~/components/atoms/table/dataGrid/lib/utils/constructDataTable'
12
+
13
+ export const defaultColumnKeys = (
14
+ items: [string, boolean, string, string][],
15
+ strategy?: UI_ColumnSettingsStrategy
16
+ ): UI_I_ColumnKey[] => {
17
+ const result: UI_I_ColumnKey[] = []
18
+ items.forEach((item, i) => {
19
+ let col: string = `col${i}` // Стандартное значение по умолчанию
20
+
21
+ if (strategy) {
22
+ // Проходим по ключам объекта и ищем соответствие индекса i в значениях
23
+ for (const key in strategy) {
24
+ if (strategy[key].includes(i)) {
25
+ col = key
26
+ break
27
+ }
28
+ }
29
+ }
30
+
31
+ result.push(
32
+ constructColumnKey(col, item[0], item[1], `show-column-${item[3]}`)
33
+ )
34
+ })
35
+ return result
36
+ }
37
+
38
+ export const defaultHeadItems = (
39
+ items: [string, boolean, string, string][],
40
+ strategy?: UI_ColumnSettingsStrategy
41
+ ): UI_I_HeadItem[] => {
42
+ const result: UI_I_HeadItem[] = []
43
+ items.forEach((item, i) => {
44
+ let col: string = `col${i}` // Стандартное значение по умолчанию
45
+
46
+ if (strategy) {
47
+ // Проходим по ключам объекта и ищем соответствие индекса i в значениях
48
+ for (const key in strategy) {
49
+ if (strategy[key].includes(i)) {
50
+ col = key
51
+ break
52
+ }
53
+ }
54
+ }
55
+
56
+ result.push(
57
+ constructHeadItem(
58
+ col,
59
+ item[0],
60
+ item[3],
61
+ false,
62
+ item[2],
63
+ undefined,
64
+ item[3]
65
+ )
66
+ )
67
+ })
68
+ return result
69
+ }
70
+
71
+ export const exportItemsFunc = (
72
+ localization: UI_I_Localization,
73
+ rows: number,
74
+ selectedRows: number,
75
+ testId: string
76
+ ): UI_I_DropdownButtonItem[] => {
77
+ return [
78
+ {
79
+ text: localization.common.allRowsCount.replace('{0}', '' + rows),
80
+ type: '0',
81
+ disabled: false,
82
+ testId: `${testId}-export-all`,
83
+ },
84
+ {
85
+ text: localization.common.selectedRowsCount.replace(
86
+ '{0}',
87
+ '' + selectedRows
88
+ ),
89
+ type: '1',
90
+ disabled: false,
91
+ testId: `${testId}-export-selected`,
92
+ },
93
+ ]
94
+ }
@@ -1,16 +1,16 @@
1
- export const generateCsvAndDownload = (rows: HTMLElement[]): void => {
2
- const content: string[] = []
3
- rows.forEach((row: HTMLElement) => {
4
- content.push(row.innerText.replaceAll(';', ',').replaceAll('\n', ';'))
5
- })
6
-
7
- const csvContent = 'data:text/csv;charset=utf-8,' + content.join('\n')
8
-
9
- const encodedUri = encodeURI(csvContent)
10
- const link = document.createElement('a')
11
- link.setAttribute('href', encodedUri)
12
- link.setAttribute('download', 'my_data.csv')
13
- document.body.appendChild(link)
14
-
15
- link.click()
16
- }
1
+ export const generateCsvAndDownload = (rows: HTMLElement[]): void => {
2
+ const content: string[] = []
3
+ rows.forEach((row: HTMLElement) => {
4
+ content.push(row.innerText.replaceAll(';', ',').replaceAll('\n', ';'))
5
+ })
6
+
7
+ const csvContent = 'data:text/csv;charset=utf-8,' + content.join('\n')
8
+
9
+ const encodedUri = encodeURI(csvContent)
10
+ const link = document.createElement('a')
11
+ link.setAttribute('href', encodedUri)
12
+ link.setAttribute('download', 'my_data.csv')
13
+ document.body.appendChild(link)
14
+
15
+ link.click()
16
+ }
@@ -1,51 +1,51 @@
1
- import type Wizard from '~/node_modules/bfg-uikit/components/ui/wizard/lib/utils/utils'
2
- import type { API_UI_I_Error } from '~/lib/models/store/interfaces'
3
- import type { UI_T_Project } from '~/lib/models/types'
4
- import { UI_E_Kind } from '~/lib/models/enums'
5
-
6
- export const checkValidityName = async ({
7
- name,
8
- wizard,
9
- project,
10
- sendMessage,
11
- datacenterId,
12
- }: {
13
- name: string
14
- wizard: Wizard
15
- project: UI_T_Project
16
- sendMessage: (message: string) => void
17
- datacenterId?: string
18
- }): Promise<void> => {
19
- wizard.setLoader(true)
20
-
21
- const url = buildValidationUrl(name, project, datacenterId)
22
- const { error } = await useMyFetch<null, API_UI_I_Error>(url, {
23
- method: 'GET',
24
- })
25
- wizard.setLoader(false)
26
-
27
- if (error.value && error.value.data.error_code !== 0) {
28
- const existError = error.value.data?.error_message || error.value.data
29
- sendMessage(existError)
30
- return
31
- }
32
- sendMessage('')
33
- }
34
-
35
- const buildValidationUrl = (
36
- name: string,
37
- project: UI_T_Project,
38
- datacenterId?: string
39
- ): string => {
40
- if (project === 'procurator') {
41
- const params = new URLSearchParams({ name })
42
- return `/ui/ds/validate?${params.toString()}`
43
- }
44
-
45
- const params = new URLSearchParams()
46
- params.set('name', name)
47
- params.set('kind', String(UI_E_Kind.STORAGE_VALIDATION_NAME))
48
- if (datacenterId) params.set('datacenter', datacenterId)
49
-
50
- return `/ui/object/validate_name?${params.toString()}`
51
- }
1
+ import type Wizard from '~/node_modules/bfg-uikit/components/ui/wizard/lib/utils/utils'
2
+ import type { API_UI_I_Error } from '~/lib/models/store/interfaces'
3
+ import type { UI_T_Project } from '~/lib/models/types'
4
+ import { UI_E_Kind } from '~/lib/models/enums'
5
+
6
+ export const checkValidityName = async ({
7
+ name,
8
+ wizard,
9
+ project,
10
+ sendMessage,
11
+ datacenterId,
12
+ }: {
13
+ name: string
14
+ wizard: Wizard
15
+ project: UI_T_Project
16
+ sendMessage: (message: string) => void
17
+ datacenterId?: string
18
+ }): Promise<void> => {
19
+ wizard.setLoader(true)
20
+
21
+ const url = buildValidationUrl(name, project, datacenterId)
22
+ const { error } = await useMyFetch<null, API_UI_I_Error>(url, {
23
+ method: 'GET',
24
+ })
25
+ wizard.setLoader(false)
26
+
27
+ if (error.value && error.value.data.error_code !== 0) {
28
+ const existError = error.value.data?.error_message || error.value.data
29
+ sendMessage(existError)
30
+ return
31
+ }
32
+ sendMessage('')
33
+ }
34
+
35
+ const buildValidationUrl = (
36
+ name: string,
37
+ project: UI_T_Project,
38
+ datacenterId?: string
39
+ ): string => {
40
+ if (project === 'procurator') {
41
+ const params = new URLSearchParams({ name })
42
+ return `/ui/ds/validate?${params.toString()}`
43
+ }
44
+
45
+ const params = new URLSearchParams()
46
+ params.set('name', name)
47
+ params.set('kind', String(UI_E_Kind.STORAGE_VALIDATION_NAME))
48
+ if (datacenterId) params.set('datacenter', datacenterId)
49
+
50
+ return `/ui/object/validate_name?${params.toString()}`
51
+ }
@@ -1,18 +1,18 @@
1
- <template>
2
- <div class="skeleton-wrap">
3
- <ui-skeleton-item height="18px" />
4
- <ui-skeleton-item height="18px" />
5
- <ui-skeleton-item height="18px" />
6
- <ui-skeleton-item height="18px" />
7
- <ui-skeleton-item height="18px" />
8
- </div>
9
- </template>
10
-
11
- <script setup lang="ts"></script>
12
-
13
- <style scoped lang="scss">
14
- .skeleton-wrap {
15
- display: grid;
16
- grid-gap: 12px;
17
- }
18
- </style>
1
+ <template>
2
+ <div class="skeleton-wrap">
3
+ <ui-skeleton-item height="18px" />
4
+ <ui-skeleton-item height="18px" />
5
+ <ui-skeleton-item height="18px" />
6
+ <ui-skeleton-item height="18px" />
7
+ <ui-skeleton-item height="18px" />
8
+ </div>
9
+ </template>
10
+
11
+ <script setup lang="ts"></script>
12
+
13
+ <style scoped lang="scss">
14
+ .skeleton-wrap {
15
+ display: grid;
16
+ grid-gap: 12px;
17
+ }
18
+ </style>
@@ -1,48 +1,48 @@
1
- import type { UI_I_Dropdown } from '~/node_modules/bfg-uikit/components/ui/dropdown/models/interfaces'
2
- import type { UI_I_Localization } from '~/lib/models/interfaces'
3
- import type { UI_I_ModalsInitialData } from '~/components/common/diagramMain/lib/models/interfaces'
4
- import type { UI_I_CollapseNavItem } from '~/components/atoms/collapse/lib/models/interfaces'
5
-
6
- export const vCenterViewSettingsFunc = (
7
- localization: UI_I_Localization,
8
- initialData: UI_I_ModalsInitialData
9
- ) => [
10
- {
11
- title: 'Network adapter 1',
12
- id: 1,
13
- type: 1,
14
- rows: [
15
- {
16
- name: localization.common.macAddress,
17
- value: initialData.macAddress,
18
- },
19
- {
20
- name: localization.common.adapterType,
21
- value: initialData.adapter,
22
- },
23
- ],
24
- },
25
- ]
26
-
27
- export const vCenterPopupFieldsFunc = (
28
- localization: UI_I_Localization,
29
- testId: string
30
- ): UI_I_CollapseNavItem[] => [
31
- {
32
- text: localization.common.viewSettings,
33
- value: 'v-center-view-settings',
34
- testId: `${testId}-view`,
35
- },
36
- ]
37
-
38
- export const vCenterPopupFieldsNewFunc = (
39
- localization: UI_I_Localization,
40
- testId: string
41
- ): UI_I_Dropdown[] => [
42
- {
43
- text: localization.common.viewSettings,
44
- value: 'v-center-view-settings',
45
- iconName: 'password-hide',
46
- testId: `${testId}-view`,
47
- },
48
- ]
1
+ import type { UI_I_Dropdown } from '~/node_modules/bfg-uikit/components/ui/dropdown/models/interfaces'
2
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
3
+ import type { UI_I_ModalsInitialData } from '~/components/common/diagramMain/lib/models/interfaces'
4
+ import type { UI_I_CollapseNavItem } from '~/components/atoms/collapse/lib/models/interfaces'
5
+
6
+ export const vCenterViewSettingsFunc = (
7
+ localization: UI_I_Localization,
8
+ initialData: UI_I_ModalsInitialData
9
+ ) => [
10
+ {
11
+ title: 'Network adapter 1',
12
+ id: 1,
13
+ type: 1,
14
+ rows: [
15
+ {
16
+ name: localization.common.macAddress,
17
+ value: initialData.macAddress,
18
+ },
19
+ {
20
+ name: localization.common.adapterType,
21
+ value: initialData.adapter,
22
+ },
23
+ ],
24
+ },
25
+ ]
26
+
27
+ export const vCenterPopupFieldsFunc = (
28
+ localization: UI_I_Localization,
29
+ testId: string
30
+ ): UI_I_CollapseNavItem[] => [
31
+ {
32
+ text: localization.common.viewSettings,
33
+ value: 'v-center-view-settings',
34
+ testId: `${testId}-view`,
35
+ },
36
+ ]
37
+
38
+ export const vCenterPopupFieldsNewFunc = (
39
+ localization: UI_I_Localization,
40
+ testId: string
41
+ ): UI_I_Dropdown[] => [
42
+ {
43
+ text: localization.common.viewSettings,
44
+ value: 'v-center-view-settings',
45
+ iconName: 'password-hide',
46
+ testId: `${testId}-view`,
47
+ },
48
+ ]