bfg-common 1.5.760 → 1.5.762
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.
- package/CODE_STYLE.md +109 -109
- package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
- package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
- package/assets/img/icons/icons-sprite-light-3.svg +227 -227
- package/assets/img/icons/icons-sprite-light-5.svg +488 -488
- package/assets/localization/local_be.json +7 -0
- package/assets/localization/local_en.json +7 -0
- package/assets/localization/local_hy.json +7 -0
- package/assets/localization/local_kk.json +7 -0
- package/assets/localization/local_ru.json +7 -0
- package/assets/localization/local_zh.json +8 -1
- package/components/atoms/TheIcon3.vue +50 -50
- package/components/atoms/collapse/CollapseNav.vue +170 -170
- package/components/atoms/perPage/PerPage.vue +58 -58
- package/components/atoms/table/dataGrid/DataGridPagination.vue +97 -97
- package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
- package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
- package/components/common/backup/storage/actions/add/lib/utils.ts +51 -51
- package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
- package/components/common/browse/blocks/lib/models/types.ts +1 -1
- package/components/common/browse/lib/models/interfaces.ts +5 -5
- package/components/common/diagramMain/lib/models/interfaces.ts +1 -1
- package/components/common/diagramMain/modals/lib/mappers/mappers.ts +1 -0
- package/components/common/diagramMain/network/Contents.vue +497 -497
- package/components/common/layout/console/Console.vue +70 -70
- package/components/common/layout/theHeader/userMenu/modals/preferences/lib/models/types.ts +7 -7
- package/components/common/layout/theHeader/userMenu/modals/preferences/view/New.vue +64 -64
- package/components/common/pages/backups/DetailView.vue +52 -52
- package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
- package/components/common/pages/backups/modals/Modals.vue +243 -243
- package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
- package/components/common/pages/backups/modals/lib/config/restore.ts +116 -116
- package/components/common/pages/backups/modals/lib/models/interfaces.ts +187 -187
- package/components/common/pages/backups/modals/restore/Restore.vue +302 -302
- package/components/common/pages/backups/modals/restore/disks/Disks.vue +50 -50
- package/components/common/pages/backups/modals/restore/lib/config/readyToCompleteOptions.ts +94 -94
- package/components/common/pages/backups/modals/restore/lib/config/steps.ts +130 -130
- package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
- package/components/common/pages/backups/modals/restore/types/New.vue +95 -95
- package/components/common/pages/backups/modals/restore/types/Old.vue +62 -62
- package/components/common/pages/backups/modals/restore/types/Types.vue +31 -31
- package/components/common/pages/home/lib/models/interfaces.ts +48 -48
- package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
- package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
- package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
- package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
- package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
- package/components/common/pages/tasks/Tasks.vue +125 -125
- package/components/common/pages/tasks/table/Table.vue +373 -373
- package/components/common/pages/tasks/table/lib/config/config.ts +279 -279
- package/components/common/pages/tasks/table/lib/models/interfaces.ts +9 -9
- package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
- package/components/common/select/radio/RadioGroup.vue +137 -137
- package/components/common/spiceConsole/Drawer.vue +420 -420
- package/components/common/spiceConsole/SpiceConsole.vue +184 -184
- package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
- package/components/common/tools/Actions.vue +207 -207
- package/components/common/treeView/TreeView.vue +52 -52
- package/components/common/vm/actions/clone/lib/config/steps.ts +295 -295
- package/components/common/vm/actions/clone/new/New.vue +438 -438
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +283 -283
- package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +156 -156
- package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
- package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
- package/components/common/vm/actions/common/select/options/New.vue +264 -264
- package/components/common/vm/actions/common/select/options/Options.vue +58 -58
- package/components/common/vm/actions/common/select/storage/Old.vue +125 -125
- package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
- package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
- package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
- package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
- package/components/common/wizards/common/compatibility/Compatibility.vue +35 -35
- package/components/common/wizards/common/steps/name/Name.vue +178 -178
- package/components/common/wizards/common/steps/name/New.vue +221 -221
- package/components/common/wizards/common/steps/name/Old.vue +121 -121
- package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
- package/components/common/wizards/common/steps/name/location/New.vue +40 -40
- package/components/common/wizards/datastore/add/Add.vue +227 -227
- package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
- package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
- package/components/common/wizards/network/add/steps/portProperties/PortProperties.vue +22 -38
- package/components/common/wizards/network/add/steps/portProperties/PortPropertiesOld.vue +1 -1
- package/composables/useAppVersion.ts +21 -21
- package/composables/useBrowse.ts +24 -24
- package/composables/useLocal.ts +6 -6
- package/composables/useLocalCommon.ts +39 -39
- package/lib/models/interfaces.ts +1 -0
- package/lib/models/types.ts +59 -59
- package/package.json +1 -1
- package/plugins/console.ts +21 -21
- package/plugins/mouse.ts +21 -21
- package/plugins/panelStates.ts +70 -70
- package/plugins/text.ts +59 -59
- package/plugins/time.ts +58 -58
- package/public/spice-console/application/clientgui.js +854 -854
- package/public/spice-console/application/packetfactory.js +211 -211
- package/public/spice-console/application/virtualmouse.js +147 -147
- package/public/spice-console/lib/images/bitmap.js +203 -203
- package/public/spice-console/network/spicechannel.js +440 -440
- package/public/spice-console/process/cursorprocess.js +128 -128
- package/public/spice-console/process/inputprocess.js +227 -227
- package/public/spice-console/process/mainprocess.js +212 -212
- package/public/spice-console/run.js +210 -210
- package/store/main/mutations.ts +7 -7
- package/store/main/state.ts +7 -7
- package/store/tasks/mappers/recentTasks.ts +123 -123
- package/store/tasks/mutations.ts +82 -82
|
@@ -1,85 +1,85 @@
|
|
|
1
|
-
import 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
|
-
const url = buildValidationUrl(name, project, datacenterId)
|
|
21
|
-
|
|
22
|
-
const { error } = await useMyFetch<null, API_UI_I_Error>(url, {
|
|
23
|
-
method: 'GET',
|
|
24
|
-
})
|
|
25
|
-
|
|
26
|
-
wizard.setLoader(false)
|
|
27
|
-
|
|
28
|
-
if (error.value && error.value.data.error_code !== 0) {
|
|
29
|
-
const existError = error.value.data?.error_message || error.value.data
|
|
30
|
-
sendMessage(existError)
|
|
31
|
-
return
|
|
32
|
-
}
|
|
33
|
-
sendMessage('')
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
const buildValidationUrl = (
|
|
37
|
-
name: string,
|
|
38
|
-
project: UI_T_Project,
|
|
39
|
-
datacenterId?: string
|
|
40
|
-
): string => {
|
|
41
|
-
if (project === 'procurator') {
|
|
42
|
-
const params = new URLSearchParams({ name })
|
|
43
|
-
return `/ui/ds/validate?${params.toString()}`
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
const params = new URLSearchParams()
|
|
47
|
-
params.set('name', name)
|
|
48
|
-
params.set('kind', String(UI_E_Kind.STORAGE_VALIDATION_NAME))
|
|
49
|
-
if (datacenterId) params.set('datacenter', datacenterId)
|
|
50
|
-
|
|
51
|
-
return `/ui/object/validate_name_datacenter?${params.toString()}`
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export const validateNameAndGenerateDataId = (
|
|
55
|
-
name: string,
|
|
56
|
-
_errorMessage: string,
|
|
57
|
-
defaultDataId?: string
|
|
58
|
-
): string => {
|
|
59
|
-
let baseDataId = defaultDataId || 'storage-name-alert-error'
|
|
60
|
-
|
|
61
|
-
const patterns = [
|
|
62
|
-
{
|
|
63
|
-
regex: /^[a-zA-Z0-9_\-\.]+$/,
|
|
64
|
-
error_message:
|
|
65
|
-
/invalid name, must only contain letters, numbers, and '_', '-' '.' symbols/,
|
|
66
|
-
suffix: '-invalid-name-symbols',
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
regex: /^.{3,64}$/,
|
|
70
|
-
error_message:
|
|
71
|
-
/invalid name length, must be between: \d+ and \d+ characters/,
|
|
72
|
-
suffix: '-invalid-name-length',
|
|
73
|
-
},
|
|
74
|
-
]
|
|
75
|
-
|
|
76
|
-
// Проверка error_message на соответствие шаблонам
|
|
77
|
-
|
|
78
|
-
for (const pattern of patterns) {
|
|
79
|
-
if (!pattern.regex.test(name)) {
|
|
80
|
-
return `${baseDataId}${pattern.suffix}`
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
return baseDataId
|
|
85
|
-
}
|
|
1
|
+
import 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
|
+
const url = buildValidationUrl(name, project, datacenterId)
|
|
21
|
+
|
|
22
|
+
const { error } = await useMyFetch<null, API_UI_I_Error>(url, {
|
|
23
|
+
method: 'GET',
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
wizard.setLoader(false)
|
|
27
|
+
|
|
28
|
+
if (error.value && error.value.data.error_code !== 0) {
|
|
29
|
+
const existError = error.value.data?.error_message || error.value.data
|
|
30
|
+
sendMessage(existError)
|
|
31
|
+
return
|
|
32
|
+
}
|
|
33
|
+
sendMessage('')
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const buildValidationUrl = (
|
|
37
|
+
name: string,
|
|
38
|
+
project: UI_T_Project,
|
|
39
|
+
datacenterId?: string
|
|
40
|
+
): string => {
|
|
41
|
+
if (project === 'procurator') {
|
|
42
|
+
const params = new URLSearchParams({ name })
|
|
43
|
+
return `/ui/ds/validate?${params.toString()}`
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const params = new URLSearchParams()
|
|
47
|
+
params.set('name', name)
|
|
48
|
+
params.set('kind', String(UI_E_Kind.STORAGE_VALIDATION_NAME))
|
|
49
|
+
if (datacenterId) params.set('datacenter', datacenterId)
|
|
50
|
+
|
|
51
|
+
return `/ui/object/validate_name_datacenter?${params.toString()}`
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export const validateNameAndGenerateDataId = (
|
|
55
|
+
name: string,
|
|
56
|
+
_errorMessage: string,
|
|
57
|
+
defaultDataId?: string
|
|
58
|
+
): string => {
|
|
59
|
+
let baseDataId = defaultDataId || 'storage-name-alert-error'
|
|
60
|
+
|
|
61
|
+
const patterns = [
|
|
62
|
+
{
|
|
63
|
+
regex: /^[a-zA-Z0-9_\-\.]+$/,
|
|
64
|
+
error_message:
|
|
65
|
+
/invalid name, must only contain letters, numbers, and '_', '-' '.' symbols/,
|
|
66
|
+
suffix: '-invalid-name-symbols',
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
regex: /^.{3,64}$/,
|
|
70
|
+
error_message:
|
|
71
|
+
/invalid name length, must be between: \d+ and \d+ characters/,
|
|
72
|
+
suffix: '-invalid-name-length',
|
|
73
|
+
},
|
|
74
|
+
]
|
|
75
|
+
|
|
76
|
+
// Проверка error_message на соответствие шаблонам
|
|
77
|
+
|
|
78
|
+
for (const pattern of patterns) {
|
|
79
|
+
if (!pattern.regex.test(name)) {
|
|
80
|
+
return `${baseDataId}${pattern.suffix}`
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
return baseDataId
|
|
85
|
+
}
|
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
import type { UI_I_Localization } from '~/lib/models/interfaces'
|
|
2
|
-
import type { UI_T_Project } from '~/lib/models/types'
|
|
3
|
-
import type { UI_I_RadioOption } from '~/components/common/select/radio/lib/models/interfaces'
|
|
4
|
-
|
|
5
|
-
export const datastoreTypesFunc = (
|
|
6
|
-
localization: UI_I_Localization,
|
|
7
|
-
_project?: UI_T_Project
|
|
8
|
-
): UI_I_RadioOption[] => {
|
|
9
|
-
return [
|
|
10
|
-
{
|
|
11
|
-
id: 'datastore-type-shared-storm',
|
|
12
|
-
label: localization.common.stormSharedStorage,
|
|
13
|
-
value: 2,
|
|
14
|
-
disabled: false,
|
|
15
|
-
description: localization.common.sharedStormDesc,
|
|
16
|
-
isTooltip: false,
|
|
17
|
-
tooltipContent: localization.common.stormSharedStorageHelpDesc,
|
|
18
|
-
testId: 'datastore-type-shared-storm',
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
id: 'datastore-type-nfs',
|
|
22
|
-
label: localization.common.nfs,
|
|
23
|
-
value: 4,
|
|
24
|
-
disabled: false,
|
|
25
|
-
description: localization.common.nfsDesc,
|
|
26
|
-
isTooltip: false,
|
|
27
|
-
tooltipContent: localization.common.nfsHelpDesc,
|
|
28
|
-
testId: 'datastore-type-nfs',
|
|
29
|
-
},
|
|
30
|
-
]
|
|
31
|
-
|
|
32
|
-
// if (project === 'procurator') {
|
|
33
|
-
// types.unshift({
|
|
34
|
-
// label: localization.common.localStorage,
|
|
35
|
-
// value: 1,
|
|
36
|
-
// disabled: false,
|
|
37
|
-
// description: localization.common.localDesc,
|
|
38
|
-
// isTooltip: false,
|
|
39
|
-
// tooltipContent: localization.common.localStorageHelpDesc,
|
|
40
|
-
// testId: 'datastore-type-local',
|
|
41
|
-
// })
|
|
42
|
-
// }
|
|
43
|
-
}
|
|
1
|
+
import type { UI_I_Localization } from '~/lib/models/interfaces'
|
|
2
|
+
import type { UI_T_Project } from '~/lib/models/types'
|
|
3
|
+
import type { UI_I_RadioOption } from '~/components/common/select/radio/lib/models/interfaces'
|
|
4
|
+
|
|
5
|
+
export const datastoreTypesFunc = (
|
|
6
|
+
localization: UI_I_Localization,
|
|
7
|
+
_project?: UI_T_Project
|
|
8
|
+
): UI_I_RadioOption[] => {
|
|
9
|
+
return [
|
|
10
|
+
{
|
|
11
|
+
id: 'datastore-type-shared-storm',
|
|
12
|
+
label: localization.common.stormSharedStorage,
|
|
13
|
+
value: 2,
|
|
14
|
+
disabled: false,
|
|
15
|
+
description: localization.common.sharedStormDesc,
|
|
16
|
+
isTooltip: false,
|
|
17
|
+
tooltipContent: localization.common.stormSharedStorageHelpDesc,
|
|
18
|
+
testId: 'datastore-type-shared-storm',
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
id: 'datastore-type-nfs',
|
|
22
|
+
label: localization.common.nfs,
|
|
23
|
+
value: 4,
|
|
24
|
+
disabled: false,
|
|
25
|
+
description: localization.common.nfsDesc,
|
|
26
|
+
isTooltip: false,
|
|
27
|
+
tooltipContent: localization.common.nfsHelpDesc,
|
|
28
|
+
testId: 'datastore-type-nfs',
|
|
29
|
+
},
|
|
30
|
+
]
|
|
31
|
+
|
|
32
|
+
// if (project === 'procurator') {
|
|
33
|
+
// types.unshift({
|
|
34
|
+
// label: localization.common.localStorage,
|
|
35
|
+
// value: 1,
|
|
36
|
+
// disabled: false,
|
|
37
|
+
// description: localization.common.localDesc,
|
|
38
|
+
// isTooltip: false,
|
|
39
|
+
// tooltipContent: localization.common.localStorageHelpDesc,
|
|
40
|
+
// testId: 'datastore-type-local',
|
|
41
|
+
// })
|
|
42
|
+
// }
|
|
43
|
+
}
|
|
@@ -86,45 +86,30 @@ const fields = ref<UI_I_PortProperties>({
|
|
|
86
86
|
},
|
|
87
87
|
})
|
|
88
88
|
|
|
89
|
-
const
|
|
90
|
-
tcp: UI_T_TCP,
|
|
91
|
-
currentFields: UI_I_PortProperties
|
|
92
|
-
): void => {
|
|
93
|
-
tcp === 'default' &&
|
|
94
|
-
(fields.value = {
|
|
95
|
-
...currentFields,
|
|
96
|
-
services: servicesInitial,
|
|
97
|
-
})
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
const setEnabledServiceProvisioning = (
|
|
89
|
+
const setEnabledService = (
|
|
101
90
|
tcp: UI_T_TCP,
|
|
102
91
|
currentFields: UI_I_PortProperties,
|
|
103
92
|
newFields?: UI_I_PortProperties
|
|
104
93
|
): void => {
|
|
105
|
-
tcp === '
|
|
106
|
-
|
|
94
|
+
if (tcp === 'default') {
|
|
95
|
+
fields.value = {
|
|
96
|
+
...currentFields,
|
|
97
|
+
services: useDeepCopy(servicesInitial),
|
|
98
|
+
}
|
|
99
|
+
} else if (servicesInitial.hasOwnProperty(tcp)) {
|
|
100
|
+
fields.value = {
|
|
107
101
|
...(newFields || currentFields),
|
|
108
102
|
services: {
|
|
109
|
-
...servicesInitial,
|
|
110
|
-
|
|
103
|
+
...useDeepCopy(servicesInitial),
|
|
104
|
+
[tcp]: true,
|
|
111
105
|
},
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
const setEnabledServiceVMotion = (
|
|
116
|
-
tcp: UI_T_TCP,
|
|
117
|
-
currentFields: UI_I_PortProperties,
|
|
118
|
-
newFields?: UI_I_PortProperties
|
|
119
|
-
): void => {
|
|
120
|
-
tcp === '' &&
|
|
121
|
-
(fields.value = {
|
|
106
|
+
}
|
|
107
|
+
} else {
|
|
108
|
+
fields.value = {
|
|
122
109
|
...(newFields || currentFields),
|
|
123
|
-
services:
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
},
|
|
127
|
-
})
|
|
110
|
+
services: useDeepCopy(servicesInitial),
|
|
111
|
+
}
|
|
112
|
+
}
|
|
128
113
|
}
|
|
129
114
|
|
|
130
115
|
let oldFields = useDeepCopy(fields.value)
|
|
@@ -134,9 +119,7 @@ watch(
|
|
|
134
119
|
(newFields: UI_I_PortProperties) => {
|
|
135
120
|
if (newFields.tcp && newFields.tcp !== oldFields.tcp) {
|
|
136
121
|
emits('change-gateway-flag', false)
|
|
137
|
-
|
|
138
|
-
setEnabledServiceProvisioning(newFields.tcp, fields.value, newFields)
|
|
139
|
-
setEnabledServiceVMotion(newFields.tcp, fields.value, newFields)
|
|
122
|
+
setEnabledService(newFields.tcp, fields.value, newFields)
|
|
140
123
|
}
|
|
141
124
|
|
|
142
125
|
oldFields.networkLabel !== newFields.networkLabel &&
|
|
@@ -184,9 +167,7 @@ watch(
|
|
|
184
167
|
() => fields.value.tcp,
|
|
185
168
|
(newTcp: UI_T_TCP, oldTcp: UI_T_TCP) => {
|
|
186
169
|
if (newTcp !== oldTcp) {
|
|
187
|
-
|
|
188
|
-
setEnabledServiceProvisioning(newTcp, fields.value)
|
|
189
|
-
setEnabledServiceVMotion(newTcp, fields.value)
|
|
170
|
+
setEnabledService(newTcp, fields.value)
|
|
190
171
|
}
|
|
191
172
|
emits('change-port-properties', fields.value)
|
|
192
173
|
}
|
|
@@ -196,7 +177,10 @@ watch(
|
|
|
196
177
|
() => props.tcpStacks,
|
|
197
178
|
(newValue: UI_I_TCPStack[]) => {
|
|
198
179
|
if (fields.value.tcp === '') {
|
|
199
|
-
fields.value.tcp =
|
|
180
|
+
fields.value.tcp =
|
|
181
|
+
newValue?.find?.((item) => item.id === 'default')?.id ||
|
|
182
|
+
newValue?.[0]?.id ||
|
|
183
|
+
''
|
|
200
184
|
}
|
|
201
185
|
},
|
|
202
186
|
{ deep: true, immediate: true }
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
<select id="tsp" v-model="fields.tcp" data-id="tsp-select">
|
|
147
147
|
<template v-for="tcp in props.tcpStacks" :key="tcp.id">
|
|
148
148
|
<option :value="tcp.id">
|
|
149
|
-
{{ localization.common[tcp.id] }}
|
|
149
|
+
{{ localization.common[tcp.id] || tcp.id }}
|
|
150
150
|
</option>
|
|
151
151
|
</template>
|
|
152
152
|
<!-- <option value="1">{{ localization.common.provisioning }}</option>-->
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import type { UI_I_UseAppVersionReturnType } from '~/lib/models/composables/useAppVersion/interfaces'
|
|
2
|
-
|
|
3
|
-
export function useAppVersion(): UI_I_UseAppVersionReturnType {
|
|
4
|
-
const config = useRuntimeConfig()
|
|
5
|
-
const version = config.public.APP_VERSION as string
|
|
6
|
-
|
|
7
|
-
// const regexHasDot = /\./
|
|
8
|
-
// const regexHasDotAndB = /\.\d*b$/
|
|
9
|
-
// const regexHasDotAndD = /\..*d/
|
|
10
|
-
|
|
11
|
-
// const isBeta = regexHasDotAndB.test(version)
|
|
12
|
-
// const isDev =
|
|
13
|
-
// regexHasDotAndD.test(version) ||
|
|
14
|
-
// (!regexHasDot.test(version) && version.length < 8)
|
|
15
|
-
|
|
16
|
-
return {
|
|
17
|
-
version,
|
|
18
|
-
// isBeta,
|
|
19
|
-
// isDev,
|
|
20
|
-
}
|
|
21
|
-
}
|
|
1
|
+
import type { UI_I_UseAppVersionReturnType } from '~/lib/models/composables/useAppVersion/interfaces'
|
|
2
|
+
|
|
3
|
+
export function useAppVersion(): UI_I_UseAppVersionReturnType {
|
|
4
|
+
const config = useRuntimeConfig()
|
|
5
|
+
const version = config.public.APP_VERSION as string
|
|
6
|
+
|
|
7
|
+
// const regexHasDot = /\./
|
|
8
|
+
// const regexHasDotAndB = /\.\d*b$/
|
|
9
|
+
// const regexHasDotAndD = /\..*d/
|
|
10
|
+
|
|
11
|
+
// const isBeta = regexHasDotAndB.test(version)
|
|
12
|
+
// const isDev =
|
|
13
|
+
// regexHasDotAndD.test(version) ||
|
|
14
|
+
// (!regexHasDot.test(version) && version.length < 8)
|
|
15
|
+
|
|
16
|
+
return {
|
|
17
|
+
version,
|
|
18
|
+
// isBeta,
|
|
19
|
+
// isDev,
|
|
20
|
+
}
|
|
21
|
+
}
|
package/composables/useBrowse.ts
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import type { UI_I_Browse } from '~/lib/models/composables/useBrowse/interfaces'
|
|
2
|
-
|
|
3
|
-
export const useBrowse = (): UI_I_Browse => {
|
|
4
|
-
const browseInfo: UI_I_Browse = {
|
|
5
|
-
version: '',
|
|
6
|
-
type: '',
|
|
7
|
-
}
|
|
8
|
-
const userAgent = navigator.userAgent
|
|
9
|
-
if (userAgent.match(/edg/i)) {
|
|
10
|
-
browseInfo.version = userAgent.match(/Edg\/(\d+)/)?.[1] || ''
|
|
11
|
-
browseInfo.type = 'edg'
|
|
12
|
-
} else if (userAgent.match(/firefox|fxios/i)) {
|
|
13
|
-
browseInfo.version = userAgent.match(/Firefox\/(\d+)/)?.[1] || ''
|
|
14
|
-
browseInfo.type = 'firefox'
|
|
15
|
-
} else if (userAgent.match(/chrome|chromium|crios/i)) {
|
|
16
|
-
browseInfo.version = userAgent.match(/Chrome\/(\d+)/)?.[1] || ''
|
|
17
|
-
browseInfo.type = 'chrome'
|
|
18
|
-
} else if (userAgent.match(/safari/i)) {
|
|
19
|
-
browseInfo.version = userAgent.match(/Safari\/(\d+)/)?.[1] || ''
|
|
20
|
-
browseInfo.type = 'safari'
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
return browseInfo
|
|
24
|
-
}
|
|
1
|
+
import type { UI_I_Browse } from '~/lib/models/composables/useBrowse/interfaces'
|
|
2
|
+
|
|
3
|
+
export const useBrowse = (): UI_I_Browse => {
|
|
4
|
+
const browseInfo: UI_I_Browse = {
|
|
5
|
+
version: '',
|
|
6
|
+
type: '',
|
|
7
|
+
}
|
|
8
|
+
const userAgent = navigator.userAgent
|
|
9
|
+
if (userAgent.match(/edg/i)) {
|
|
10
|
+
browseInfo.version = userAgent.match(/Edg\/(\d+)/)?.[1] || ''
|
|
11
|
+
browseInfo.type = 'edg'
|
|
12
|
+
} else if (userAgent.match(/firefox|fxios/i)) {
|
|
13
|
+
browseInfo.version = userAgent.match(/Firefox\/(\d+)/)?.[1] || ''
|
|
14
|
+
browseInfo.type = 'firefox'
|
|
15
|
+
} else if (userAgent.match(/chrome|chromium|crios/i)) {
|
|
16
|
+
browseInfo.version = userAgent.match(/Chrome\/(\d+)/)?.[1] || ''
|
|
17
|
+
browseInfo.type = 'chrome'
|
|
18
|
+
} else if (userAgent.match(/safari/i)) {
|
|
19
|
+
browseInfo.version = userAgent.match(/Safari\/(\d+)/)?.[1] || ''
|
|
20
|
+
browseInfo.type = 'safari'
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return browseInfo
|
|
24
|
+
}
|
package/composables/useLocal.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { UI_I_Localization } from '~/lib/models/interfaces'
|
|
2
|
-
import { useLocalCommon } from '~/composables/useLocalCommon'
|
|
3
|
-
|
|
4
|
-
export const useLocal = (): UI_I_Localization => {
|
|
5
|
-
return useLocalCommon()
|
|
6
|
-
}
|
|
1
|
+
import type { UI_I_Localization } from '~/lib/models/interfaces'
|
|
2
|
+
import { useLocalCommon } from '~/composables/useLocalCommon'
|
|
3
|
+
|
|
4
|
+
export const useLocal = (): UI_I_Localization => {
|
|
5
|
+
return useLocalCommon()
|
|
6
|
+
}
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
import type { UI_I_Localization } from '~/lib/models/interfaces'
|
|
2
|
-
import localAr from '~/assets/scss/clarity/local_ar.json'
|
|
3
|
-
import localRu from '~/assets/localization/local_ru.json'
|
|
4
|
-
import localEn from '~/assets/localization/local_en.json'
|
|
5
|
-
import localHy from '~/assets/localization/local_hy.json'
|
|
6
|
-
import localZh from '~/assets/localization/local_zh.json'
|
|
7
|
-
import localKk from '~/assets/localization/local_kk.json'
|
|
8
|
-
import localBe from '~/assets/localization/local_be.json'
|
|
9
|
-
import { productNameLocal } from '~/lib/utils/localizationMapper'
|
|
10
|
-
|
|
11
|
-
const rawLocals: Record<string, any> = {
|
|
12
|
-
ar: localAr,
|
|
13
|
-
ru: localRu,
|
|
14
|
-
en: localEn,
|
|
15
|
-
hy: localHy,
|
|
16
|
-
zh: localZh,
|
|
17
|
-
kk: localKk,
|
|
18
|
-
be: localBe,
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
// Кешируем уже обработанные локали
|
|
22
|
-
const processedCache: Record<string, UI_I_Localization | undefined> = {}
|
|
23
|
-
|
|
24
|
-
export const useLocalCommon = (): UI_I_Localization => {
|
|
25
|
-
const config = useRuntimeConfig()
|
|
26
|
-
let code = String(config?.public?.LOCALIZATION_CODE || 'ru').toLowerCase()
|
|
27
|
-
|
|
28
|
-
if (code === 'ar' && !useLocalStorage('rtl')) code = 'ru'
|
|
29
|
-
|
|
30
|
-
if (typeof document !== 'undefined') document.documentElement.lang = code
|
|
31
|
-
|
|
32
|
-
// если в кеше нет — создаём и сохраняем
|
|
33
|
-
if (!processedCache[code]) {
|
|
34
|
-
const raw = rawLocals[code] || rawLocals['ru']
|
|
35
|
-
processedCache[code] = productNameLocal(raw)
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
return processedCache[code] as UI_I_Localization
|
|
39
|
-
}
|
|
1
|
+
import type { UI_I_Localization } from '~/lib/models/interfaces'
|
|
2
|
+
import localAr from '~/assets/scss/clarity/local_ar.json'
|
|
3
|
+
import localRu from '~/assets/localization/local_ru.json'
|
|
4
|
+
import localEn from '~/assets/localization/local_en.json'
|
|
5
|
+
import localHy from '~/assets/localization/local_hy.json'
|
|
6
|
+
import localZh from '~/assets/localization/local_zh.json'
|
|
7
|
+
import localKk from '~/assets/localization/local_kk.json'
|
|
8
|
+
import localBe from '~/assets/localization/local_be.json'
|
|
9
|
+
import { productNameLocal } from '~/lib/utils/localizationMapper'
|
|
10
|
+
|
|
11
|
+
const rawLocals: Record<string, any> = {
|
|
12
|
+
ar: localAr,
|
|
13
|
+
ru: localRu,
|
|
14
|
+
en: localEn,
|
|
15
|
+
hy: localHy,
|
|
16
|
+
zh: localZh,
|
|
17
|
+
kk: localKk,
|
|
18
|
+
be: localBe,
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// Кешируем уже обработанные локали
|
|
22
|
+
const processedCache: Record<string, UI_I_Localization | undefined> = {}
|
|
23
|
+
|
|
24
|
+
export const useLocalCommon = (): UI_I_Localization => {
|
|
25
|
+
const config = useRuntimeConfig()
|
|
26
|
+
let code = String(config?.public?.LOCALIZATION_CODE || 'ru').toLowerCase()
|
|
27
|
+
|
|
28
|
+
if (code === 'ar' && !useLocalStorage('rtl')) code = 'ru'
|
|
29
|
+
|
|
30
|
+
if (typeof document !== 'undefined') document.documentElement.lang = code
|
|
31
|
+
|
|
32
|
+
// если в кеше нет — создаём и сохраняем
|
|
33
|
+
if (!processedCache[code]) {
|
|
34
|
+
const raw = rawLocals[code] || rawLocals['ru']
|
|
35
|
+
processedCache[code] = productNameLocal(raw)
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return processedCache[code] as UI_I_Localization
|
|
39
|
+
}
|
package/lib/models/interfaces.ts
CHANGED
|
@@ -61,6 +61,7 @@ export interface UI_I_Localization {
|
|
|
61
61
|
files: UI_I_ArbitraryObject<string>
|
|
62
62
|
myPreferences: UI_I_ArbitraryObject<string>
|
|
63
63
|
cacheConfiguration: UI_I_ArbitraryObject<string>
|
|
64
|
+
configureSecurityProfile: UI_I_ArbitraryObject<string>
|
|
64
65
|
}
|
|
65
66
|
export interface UI_I_SendTaskParams {
|
|
66
67
|
method: string
|