bfg-common 1.2.198 → 1.2.200

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 (59) hide show
  1. package/assets/localization/local_be.json +3 -1
  2. package/assets/localization/local_en.json +3 -1
  3. package/assets/localization/local_hy.json +3 -1
  4. package/assets/localization/local_kk.json +3 -1
  5. package/assets/localization/local_ru.json +3 -1
  6. package/assets/localization/local_zh.json +3 -1
  7. package/assets/scss/common/icons/icons-2.scss +222 -222
  8. package/components/atoms/switch/Switch.vue +107 -107
  9. package/components/atoms/wizard/utils/utils.ts +538 -486
  10. package/components/common/BadBrowser.vue +114 -114
  11. package/components/common/adapterManager/AddAdapterWarningModal.vue +82 -82
  12. package/components/common/adapterManager/NoActiveAdaptersModal.vue +62 -62
  13. package/components/common/adapterManager/NoConnectedActiveAdaptersModal.vue +62 -62
  14. package/components/common/browse/blocks/Title.vue +66 -66
  15. package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +202 -202
  16. package/components/common/diagramMain/modals/remove/RemoveModal.vue +226 -226
  17. package/components/common/feedback/Feedback.vue +261 -261
  18. package/components/common/feedback/VisitPortal.vue +53 -53
  19. package/components/common/help/navbar/left/utils/constructAccordion.ts +27 -27
  20. package/components/common/recursionTree/RecursionTree.vue +201 -201
  21. package/components/common/vm/actions/add/Add.vue +525 -785
  22. package/components/common/vm/actions/add/utils.ts +0 -105
  23. package/components/common/vm/actions/clone/Clone.vue +545 -545
  24. package/components/common/vm/actions/clone/select/options/Options.vue +65 -65
  25. package/components/common/vm/actions/clone/utils.ts +43 -43
  26. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CoresPerSocket.vue +109 -109
  27. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +234 -234
  28. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/config/options.ts +28 -28
  29. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +316 -316
  30. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/config/memoryOptions.ts +35 -35
  31. package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/Reservation.vue +235 -235
  32. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +197 -197
  33. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/CopyPaste.vue +51 -51
  34. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/RemoteConsoleOptions.vue +253 -253
  35. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +55 -55
  36. package/components/common/vm/actions/common/select/name/Name.vue +5 -10
  37. package/components/common/vm/actions/common/select/storage/Storage.vue +4 -6
  38. package/components/common/vm/actions/common/select/storage/config/config.ts +154 -154
  39. package/components/common/vm/utils/powerActions.ts +55 -55
  40. package/components/common/wizards/datastore/add/nfs/kerberosAuthentication/KerberosAuthentication.vue +54 -54
  41. package/components/layout/theHeader/utils/localization.ts +32 -32
  42. package/composables/useLocal.ts +38 -38
  43. package/minify.js +146 -146
  44. package/models/interfaces.ts +49 -49
  45. package/models/store/interfaces.ts +37 -37
  46. package/models/store/storage/interfaces.ts +32 -32
  47. package/models/store/types.ts +43 -43
  48. package/modules/fixContentBuild/utils/methods.ts +114 -114
  49. package/package.json +1 -1
  50. package/public/spice-console/application/codec.js +257 -257
  51. package/public/spice-console/lib/rasterEngine.js +907 -907
  52. package/public/spice-console/network/spicechannel.js +369 -369
  53. package/utils/contentBuild.ts +34 -34
  54. package/utils/sendTask.ts +77 -77
  55. package/components/common/vm/actions/addOld/Add.vue +0 -690
  56. package/components/common/vm/actions/addOld/FolderTreeView.vue +0 -83
  57. package/components/common/vm/actions/addOld/utils.ts +0 -118
  58. package/components/common/vm/actions/common/select/name/NameOld.vue +0 -215
  59. package/components/common/vm/actions/common/select/storage/StorageOld.vue +0 -194
@@ -55,7 +55,7 @@ import { UI_T_Project } from '~/models/types'
55
55
  import { UI_I_TreeNode } from '~/components/common/recursionTree/models/interfaces'
56
56
 
57
57
  const props = defineProps<{
58
- nameFormSubmit: null | Function
58
+ nameFormSubmit: number
59
59
  show: boolean
60
60
  project: UI_T_Project
61
61
  dataCenter?: UI_I_TreeNode // для сферы
@@ -80,8 +80,8 @@ const onSelectNode = (node: UI_I_TreeNode): void => {
80
80
 
81
81
  watch(
82
82
  () => props.nameFormSubmit,
83
- (newValue) => {
84
- newValue && submit(newValue)
83
+ () => {
84
+ submit()
85
85
  }
86
86
  )
87
87
 
@@ -92,15 +92,12 @@ const isParentDatacenter = (node: UI_I_TreeNode | null): boolean => {
92
92
  if (node.parent?.type === 'folder') return isParentDatacenter(node.parent)
93
93
  return false
94
94
  }
95
- const submit = async (cb: Function): Promise<void> => {
95
+ const submit = async (): Promise<void> => {
96
96
  const name = vmName.value
97
97
 
98
98
  if (name !== '') {
99
99
  const isNameValid = await checkNameIsValid(name)
100
- if (!isNameValid) {
101
- cb(false)
102
- return
103
- }
100
+ if (!isNameValid) return
104
101
  }
105
102
 
106
103
  if (props.project === 'sphere') {
@@ -114,14 +111,12 @@ const submit = async (cb: Function): Promise<void> => {
114
111
  showValidationErrors([
115
112
  localization.value.enterValidLocationVirtualMachine,
116
113
  ])
117
- cb(false)
118
114
  return
119
115
  }
120
116
  }
121
117
 
122
118
  onRemoveValidationErrors()
123
119
  emits('submit', [name, selectedNode.value])
124
- cb(true)
125
120
  }
126
121
  const checkNameIsValid = async (name: string): Promise<boolean> => {
127
122
  emits('loading', true)
@@ -61,7 +61,7 @@ import {
61
61
  import * as table from '~/components/common/vm/actions/common/select/storage/config/config'
62
62
 
63
63
  const props = defineProps<{
64
- storageSubmit: null | Function
64
+ storageSubmit: number
65
65
  datastore: UI_I_DatastoreTableItem[]
66
66
  storage: UI_I_DatastoreTableItem
67
67
  hideCompatibility?: boolean
@@ -136,19 +136,17 @@ watch(
136
136
 
137
137
  watch(
138
138
  () => props.storageSubmit,
139
- (newValue) => {
140
- newValue && submit(newValue)
139
+ () => {
140
+ submit()
141
141
  }
142
142
  )
143
- const submit = (cb: Function): void => {
143
+ const submit = (): void => {
144
144
  if (!selectedStorage.value) {
145
145
  showValidationErrors([localization.value.selectValidDestinationStorage])
146
- cb(false)
147
146
  return
148
147
  }
149
148
 
150
149
  emits('submit', selectedStorage.value)
151
- cb(true)
152
150
  }
153
151
 
154
152
  const errors = ref<string[]>([])
@@ -1,154 +1,154 @@
1
- import { UI_I_DatastoreTableItem } from '~/models/store/storage/interfaces'
2
- import type {
3
- UI_I_ColumnKey,
4
- UI_I_HeadItem,
5
- UI_I_BodyItem,
6
- } from '~/components/atoms/table/dataGrid/models/interfaces'
7
- import type { UI_I_Localization } from '~/models/interfaces'
8
- import { UI_T_StorageColumnKeys } from '~/components/common/vm/actions/common/select/storage/models/types'
9
- import {
10
- constructColumnKey,
11
- constructHeadItem,
12
- } from '~/components/atoms/table/dataGrid/utils/constructDataTable'
13
- import {
14
- datastoreIconByState,
15
- datastoreLocalizationByState,
16
- } from '~/components/common/config/states'
17
-
18
- export const storageTableKeys: UI_T_StorageColumnKeys = [
19
- 'name',
20
- 'state',
21
- 'capacity_mb',
22
- 'provisioned_mb',
23
- 'free_mb',
24
- 'used_mb',
25
- 'type_text',
26
- 'thin_provisioning',
27
- 'access_mode',
28
- 'hardware_acceleration',
29
- 'drive_type',
30
- 'device',
31
- 'storage_io_control',
32
- ]
33
-
34
- const getItems = (
35
- localization: UI_I_Localization
36
- ): [string, boolean, string, string][] => {
37
- return [
38
- [localization.name, true, '96px', storageTableKeys[0]],
39
- [localization.state, true, '138px', storageTableKeys[1]],
40
- [localization.capacity, true, '110px', storageTableKeys[2]],
41
- [localization.provisioned, true, '128px', storageTableKeys[3]],
42
- [localization.free, true, '110px', storageTableKeys[4]],
43
- [localization.used, true, '110px', storageTableKeys[5]],
44
- [localization.type, true, '110px', storageTableKeys[6]],
45
- [localization.thinProvisioning, true, '132px', storageTableKeys[7]],
46
- [localization.access, true, '110px', storageTableKeys[8]],
47
- [localization.hardwareAcceleration, true, '134px', storageTableKeys[9]],
48
- [localization.driverType, true, '110px', storageTableKeys[10]],
49
- [localization.device, true, '110px', storageTableKeys[11]],
50
- [localization.storageIoControl, true, '110px', storageTableKeys[12]],
51
- ]
52
- }
53
-
54
- export const columnKeys = (
55
- localization: UI_I_Localization
56
- ): UI_I_ColumnKey[] => {
57
- const result: UI_I_ColumnKey[] = []
58
- getItems(localization).forEach((item, i) => {
59
- const col = i === 0 ? 'icon' : `col${i}`
60
- result.push(constructColumnKey(col, item[0], item[1]))
61
- })
62
- return result
63
- }
64
-
65
- export const headItems = (localization: UI_I_Localization): UI_I_HeadItem[] => {
66
- const result: UI_I_HeadItem[] = []
67
- getItems(localization).forEach((item, i) => {
68
- const col = i === 0 ? 'icon' : `col${i}`
69
- result.push(constructHeadItem(col, item[0], item[3], true, item[2]))
70
- })
71
- return result
72
- }
73
-
74
- export const bodyItems = (
75
- data: UI_I_DatastoreTableItem[],
76
- localization: UI_I_Localization
77
- ): UI_I_BodyItem[][] => {
78
- const bodyItems: UI_I_BodyItem[][] = []
79
- const { $binary } = useNuxtApp()
80
-
81
- data.forEach((storage: UI_I_DatastoreTableItem, key: number) => {
82
- const state =
83
- localization[datastoreLocalizationByState[storage[storageTableKeys[1]]]]
84
- bodyItems.push([
85
- {
86
- key: 'icon',
87
- text: storage[storageTableKeys[0]].toString(),
88
- data: `vsphere-icon-${datastoreIconByState[storage.state]}`,
89
- id: key,
90
- },
91
- {
92
- key: 'col1',
93
- text: state,
94
- id: key,
95
- },
96
- {
97
- key: 'col2',
98
- text: $binary.round(storage.capacity[storageTableKeys[2]]),
99
- id: key,
100
- },
101
- {
102
- key: 'col3',
103
- text: $binary.round(storage.capacity[storageTableKeys[3]].toString()),
104
- id: key,
105
- },
106
- {
107
- key: 'col4',
108
- text: $binary.round(storage.capacity[storageTableKeys[4]].toString()),
109
- id: key,
110
- },
111
- {
112
- key: 'col5',
113
- text: $binary.round(storage.capacity[storageTableKeys[5]].toString()),
114
- id: key,
115
- },
116
- {
117
- key: 'col6',
118
- text: storage[storageTableKeys[6]].toString(),
119
- id: key,
120
- },
121
- {
122
- key: 'col7',
123
- text: storage[storageTableKeys[7]] ? localization.yes : localization.no,
124
- id: key,
125
- },
126
- {
127
- key: 'col8',
128
- text: storage[storageTableKeys[8]].toString(),
129
- id: key,
130
- },
131
- {
132
- key: 'col9',
133
- text: storage[storageTableKeys[9]].toString(),
134
- id: key,
135
- },
136
- {
137
- key: 'col10',
138
- text: storage[storageTableKeys[10]].toString(),
139
- id: key,
140
- },
141
- {
142
- key: 'col11',
143
- text: storage[storageTableKeys[11]].toString(),
144
- id: key,
145
- },
146
- {
147
- key: 'col12',
148
- text: storage[storageTableKeys[12]].toString(),
149
- id: key,
150
- },
151
- ])
152
- })
153
- return bodyItems
154
- }
1
+ import { UI_I_DatastoreTableItem } from '~/models/store/storage/interfaces'
2
+ import type {
3
+ UI_I_ColumnKey,
4
+ UI_I_HeadItem,
5
+ UI_I_BodyItem,
6
+ } from '~/components/atoms/table/dataGrid/models/interfaces'
7
+ import type { UI_I_Localization } from '~/models/interfaces'
8
+ import { UI_T_StorageColumnKeys } from '~/components/common/vm/actions/common/select/storage/models/types'
9
+ import {
10
+ constructColumnKey,
11
+ constructHeadItem,
12
+ } from '~/components/atoms/table/dataGrid/utils/constructDataTable'
13
+ import {
14
+ datastoreIconByState,
15
+ datastoreLocalizationByState,
16
+ } from '~/components/common/config/states'
17
+
18
+ export const storageTableKeys: UI_T_StorageColumnKeys = [
19
+ 'name',
20
+ 'state',
21
+ 'capacity_mb',
22
+ 'provisioned_mb',
23
+ 'free_mb',
24
+ 'used_mb',
25
+ 'type_text',
26
+ 'thin_provisioning',
27
+ 'access_mode',
28
+ 'hardware_acceleration',
29
+ 'drive_type',
30
+ 'device',
31
+ 'storage_io_control',
32
+ ]
33
+
34
+ const getItems = (
35
+ localization: UI_I_Localization
36
+ ): [string, boolean, string, string][] => {
37
+ return [
38
+ [localization.name, true, '96px', storageTableKeys[0]],
39
+ [localization.state, true, '138px', storageTableKeys[1]],
40
+ [localization.capacity, true, '110px', storageTableKeys[2]],
41
+ [localization.provisioned, true, '128px', storageTableKeys[3]],
42
+ [localization.free, true, '110px', storageTableKeys[4]],
43
+ [localization.used, true, '110px', storageTableKeys[5]],
44
+ [localization.type, true, '110px', storageTableKeys[6]],
45
+ [localization.thinProvisioning, true, '132px', storageTableKeys[7]],
46
+ [localization.access, true, '110px', storageTableKeys[8]],
47
+ [localization.hardwareAcceleration, true, '134px', storageTableKeys[9]],
48
+ [localization.driverType, true, '110px', storageTableKeys[10]],
49
+ [localization.device, true, '110px', storageTableKeys[11]],
50
+ [localization.storageIoControl, true, '110px', storageTableKeys[12]],
51
+ ]
52
+ }
53
+
54
+ export const columnKeys = (
55
+ localization: UI_I_Localization
56
+ ): UI_I_ColumnKey[] => {
57
+ const result: UI_I_ColumnKey[] = []
58
+ getItems(localization).forEach((item, i) => {
59
+ const col = i === 0 ? 'icon' : `col${i}`
60
+ result.push(constructColumnKey(col, item[0], item[1]))
61
+ })
62
+ return result
63
+ }
64
+
65
+ export const headItems = (localization: UI_I_Localization): UI_I_HeadItem[] => {
66
+ const result: UI_I_HeadItem[] = []
67
+ getItems(localization).forEach((item, i) => {
68
+ const col = i === 0 ? 'icon' : `col${i}`
69
+ result.push(constructHeadItem(col, item[0], item[3], true, item[2]))
70
+ })
71
+ return result
72
+ }
73
+
74
+ export const bodyItems = (
75
+ data: UI_I_DatastoreTableItem[],
76
+ localization: UI_I_Localization
77
+ ): UI_I_BodyItem[][] => {
78
+ const bodyItems: UI_I_BodyItem[][] = []
79
+ const { $binary } = useNuxtApp()
80
+
81
+ data.forEach((storage: UI_I_DatastoreTableItem, key: number) => {
82
+ const state =
83
+ localization[datastoreLocalizationByState[storage[storageTableKeys[1]]]]
84
+ bodyItems.push([
85
+ {
86
+ key: 'icon',
87
+ text: storage[storageTableKeys[0]].toString(),
88
+ data: `vsphere-icon-${datastoreIconByState[storage.state]}`,
89
+ id: key,
90
+ },
91
+ {
92
+ key: 'col1',
93
+ text: state,
94
+ id: key,
95
+ },
96
+ {
97
+ key: 'col2',
98
+ text: $binary.round(storage.capacity[storageTableKeys[2]]),
99
+ id: key,
100
+ },
101
+ {
102
+ key: 'col3',
103
+ text: $binary.round(storage.capacity[storageTableKeys[3]].toString()),
104
+ id: key,
105
+ },
106
+ {
107
+ key: 'col4',
108
+ text: $binary.round(storage.capacity[storageTableKeys[4]].toString()),
109
+ id: key,
110
+ },
111
+ {
112
+ key: 'col5',
113
+ text: $binary.round(storage.capacity[storageTableKeys[5]].toString()),
114
+ id: key,
115
+ },
116
+ {
117
+ key: 'col6',
118
+ text: storage[storageTableKeys[6]].toString(),
119
+ id: key,
120
+ },
121
+ {
122
+ key: 'col7',
123
+ text: storage[storageTableKeys[7]] ? localization.yes : localization.no,
124
+ id: key,
125
+ },
126
+ {
127
+ key: 'col8',
128
+ text: storage[storageTableKeys[8]].toString(),
129
+ id: key,
130
+ },
131
+ {
132
+ key: 'col9',
133
+ text: storage[storageTableKeys[9]].toString(),
134
+ id: key,
135
+ },
136
+ {
137
+ key: 'col10',
138
+ text: storage[storageTableKeys[10]].toString(),
139
+ id: key,
140
+ },
141
+ {
142
+ key: 'col11',
143
+ text: storage[storageTableKeys[11]].toString(),
144
+ id: key,
145
+ },
146
+ {
147
+ key: 'col12',
148
+ text: storage[storageTableKeys[12]].toString(),
149
+ id: key,
150
+ },
151
+ ])
152
+ })
153
+ return bodyItems
154
+ }
@@ -1,55 +1,55 @@
1
- import type { API_UI_T_VmState } from '~/models/store/types'
2
- import type { UI_I_VmPowerActions } from '~/components/common/vm/models/interfaces'
3
-
4
- export const getPowerActionsByState = (
5
- state: API_UI_T_VmState
6
- ): UI_I_VmPowerActions => {
7
- const powerActions = {
8
- hard_stop: false,
9
- power_off: false,
10
- power_on: false,
11
- reset: false,
12
- restart_guest: false,
13
- shutdown_guest: false,
14
- suspend: false,
15
- }
16
- switch (state) {
17
- case 0: // Unknown
18
- powerActions.power_on = true
19
- powerActions.hard_stop = true
20
- break
21
- case 1: // Powered off
22
- powerActions.power_on = true
23
- break
24
- case 2: // Powered on
25
- powerActions.power_off = true
26
- powerActions.suspend = true
27
- powerActions.reset = true
28
- powerActions.hard_stop = true
29
- powerActions.shutdown_guest = true
30
- powerActions.restart_guest = true
31
- break
32
- case 3: // Suspended
33
- case 4: // Error
34
- case 5: // Warning
35
- powerActions.power_on = true
36
- powerActions.hard_stop = true
37
- break
38
- case 6: // Pending
39
- powerActions.hard_stop = true
40
- break
41
- case 7: // Paused
42
- powerActions.power_on = true
43
- powerActions.hard_stop = true
44
- break
45
- case 8: // Blocked
46
- case 9: // Shutting down
47
- case 10: // Shut off
48
- powerActions.hard_stop = true
49
- break
50
- default:
51
- powerActions.hard_stop = true
52
- }
53
-
54
- return powerActions
55
- }
1
+ import type { API_UI_T_VmState } from '~/models/store/types'
2
+ import type { UI_I_VmPowerActions } from '~/components/common/vm/models/interfaces'
3
+
4
+ export const getPowerActionsByState = (
5
+ state: API_UI_T_VmState
6
+ ): UI_I_VmPowerActions => {
7
+ const powerActions = {
8
+ hard_stop: false,
9
+ power_off: false,
10
+ power_on: false,
11
+ reset: false,
12
+ restart_guest: false,
13
+ shutdown_guest: false,
14
+ suspend: false,
15
+ }
16
+ switch (state) {
17
+ case 0: // Unknown
18
+ powerActions.power_on = true
19
+ powerActions.hard_stop = true
20
+ break
21
+ case 1: // Powered off
22
+ powerActions.power_on = true
23
+ break
24
+ case 2: // Powered on
25
+ powerActions.power_off = true
26
+ powerActions.suspend = true
27
+ powerActions.reset = true
28
+ powerActions.hard_stop = true
29
+ powerActions.shutdown_guest = true
30
+ powerActions.restart_guest = true
31
+ break
32
+ case 3: // Suspended
33
+ case 4: // Error
34
+ case 5: // Warning
35
+ powerActions.power_on = true
36
+ powerActions.hard_stop = true
37
+ break
38
+ case 6: // Pending
39
+ powerActions.hard_stop = true
40
+ break
41
+ case 7: // Paused
42
+ powerActions.power_on = true
43
+ powerActions.hard_stop = true
44
+ break
45
+ case 8: // Blocked
46
+ case 9: // Shutting down
47
+ case 10: // Shut off
48
+ powerActions.hard_stop = true
49
+ break
50
+ default:
51
+ powerActions.hard_stop = true
52
+ }
53
+
54
+ return powerActions
55
+ }
@@ -1,54 +1,54 @@
1
- <template>
2
- <div class="kerberos-auth">
3
- <atoms-alert
4
- v-show="isShowAlert"
5
- test-id="kerberos-authentication"
6
- status="alert-warning"
7
- :items="[localization.kerberosAuthenticationAlert]"
8
- @remove="isShowAlert = false"
9
- />
10
-
11
- <div class="kerberos-auth__inner">
12
- <div v-for="item in kerberosTypes" :key="item.value" class="radio">
13
- <input
14
- :id="item.label"
15
- v-model="kerberosType"
16
- type="radio"
17
- :value="item.value"
18
- />
19
- <label :for="item.label">
20
- {{ item.label }}
21
- </label>
22
- </div>
23
- </div>
24
- </div>
25
- </template>
26
-
27
- <script lang="ts" setup>
28
- import { UI_I_Localization } from '~/models/interfaces'
29
- import { UI_I_RadioOption } from '~/components/common/select/radio/models/interfaces'
30
- import { UI_T_KerberosAuthentication } from '~/components/common/wizards/datastore/add/models/types'
31
- import { kerberosOptionsFunc } from '~/components/common/wizards/datastore/add/nfs/kerberosAuthentication/config/radioOptions'
32
-
33
- const localization = computed<UI_I_Localization>(() => useLocal())
34
-
35
- const kerberosType = ref<UI_T_KerberosAuthentication>('dont-use')
36
- const isShowAlert = ref<boolean>(true)
37
-
38
- const kerberosTypes = readonly<UI_I_RadioOption[]>(
39
- kerberosOptionsFunc(localization.value)
40
- )
41
- </script>
42
-
43
- <style lang="scss" scoped>
44
- .kerberos-auth {
45
- &__inner {
46
- margin-top: 12px;
47
- }
48
- }
49
-
50
- input[type='radio']:focus:checked + label::before,
51
- input[type='radio']:focus + label::before {
52
- box-shadow: inset 0 0 0 0.25rem #0094d2;
53
- }
54
- </style>
1
+ <template>
2
+ <div class="kerberos-auth">
3
+ <atoms-alert
4
+ v-show="isShowAlert"
5
+ test-id="kerberos-authentication"
6
+ status="alert-warning"
7
+ :items="[localization.kerberosAuthenticationAlert]"
8
+ @remove="isShowAlert = false"
9
+ />
10
+
11
+ <div class="kerberos-auth__inner">
12
+ <div v-for="item in kerberosTypes" :key="item.value" class="radio">
13
+ <input
14
+ :id="item.label"
15
+ v-model="kerberosType"
16
+ type="radio"
17
+ :value="item.value"
18
+ />
19
+ <label :for="item.label">
20
+ {{ item.label }}
21
+ </label>
22
+ </div>
23
+ </div>
24
+ </div>
25
+ </template>
26
+
27
+ <script lang="ts" setup>
28
+ import { UI_I_Localization } from '~/models/interfaces'
29
+ import { UI_I_RadioOption } from '~/components/common/select/radio/models/interfaces'
30
+ import { UI_T_KerberosAuthentication } from '~/components/common/wizards/datastore/add/models/types'
31
+ import { kerberosOptionsFunc } from '~/components/common/wizards/datastore/add/nfs/kerberosAuthentication/config/radioOptions'
32
+
33
+ const localization = computed<UI_I_Localization>(() => useLocal())
34
+
35
+ const kerberosType = ref<UI_T_KerberosAuthentication>('dont-use')
36
+ const isShowAlert = ref<boolean>(true)
37
+
38
+ const kerberosTypes = readonly<UI_I_RadioOption[]>(
39
+ kerberosOptionsFunc(localization.value)
40
+ )
41
+ </script>
42
+
43
+ <style lang="scss" scoped>
44
+ .kerberos-auth {
45
+ &__inner {
46
+ margin-top: 12px;
47
+ }
48
+ }
49
+
50
+ input[type='radio']:focus:checked + label::before,
51
+ input[type='radio']:focus + label::before {
52
+ box-shadow: inset 0 0 0 0.25rem #0094d2;
53
+ }
54
+ </style>
@@ -1,32 +1,32 @@
1
- import type { UI_T_LangValue } from '~/models/types'
2
-
3
- export const defineBrowserLangFunc = (): Exclude<UI_T_LangValue, 'BROWSER'> => {
4
- const browserLanguage: string = navigator.language
5
-
6
- let lang: Exclude<UI_T_LangValue, 'BROWSER'>
7
-
8
- switch (browserLanguage.substring(0, 2)) {
9
- case 'en':
10
- lang = 'en_US'
11
- break
12
- case 'ru':
13
- lang = 'ru_RU'
14
- break
15
- case 'hy':
16
- lang = 'hy_AM'
17
- break
18
- case 'zh':
19
- lang = 'zh_CHS'
20
- break
21
- case 'kk':
22
- lang = 'kk_KZ'
23
- break
24
- case 'be':
25
- lang = 'be_BY'
26
- break
27
- default:
28
- lang = 'en_US'
29
- break
30
- }
31
- return lang
32
- }
1
+ import type { UI_T_LangValue } from '~/models/types'
2
+
3
+ export const defineBrowserLangFunc = (): Exclude<UI_T_LangValue, 'BROWSER'> => {
4
+ const browserLanguage: string = navigator.language
5
+
6
+ let lang: Exclude<UI_T_LangValue, 'BROWSER'>
7
+
8
+ switch (browserLanguage.substring(0, 2)) {
9
+ case 'en':
10
+ lang = 'en_US'
11
+ break
12
+ case 'ru':
13
+ lang = 'ru_RU'
14
+ break
15
+ case 'hy':
16
+ lang = 'hy_AM'
17
+ break
18
+ case 'zh':
19
+ lang = 'zh_CHS'
20
+ break
21
+ case 'kk':
22
+ lang = 'kk_KZ'
23
+ break
24
+ case 'be':
25
+ lang = 'be_BY'
26
+ break
27
+ default:
28
+ lang = 'en_US'
29
+ break
30
+ }
31
+ return lang
32
+ }