bfg-common 1.3.85 → 1.3.86

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 (30) hide show
  1. package/assets/scss/common/icons/icons-2.scss +222 -222
  2. package/components/atoms/switch/Switch.vue +107 -107
  3. package/components/atoms/table/dataGrid/DataGrid.vue +1 -1
  4. package/components/common/browse/blocks/Title.vue +66 -66
  5. package/components/common/diagramMain/DiagramMain.vue +2 -3
  6. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/Table.vue +137 -137
  7. package/components/common/pages/Tasks.vue +120 -120
  8. package/components/common/recursionTree/RecursionTree.vue +203 -203
  9. package/components/common/vm/actions/clone/Clone.vue +518 -518
  10. package/components/common/wizards/datastore/add/Add.vue +6 -0
  11. package/components/common/wizards/datastore/add/local/Local.vue +4 -0
  12. package/components/common/wizards/datastore/add/sharedStorm/SharedStorm.vue +4 -0
  13. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/DeviceSelection.vue +5 -3
  14. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/hostTable/HostTable.vue +12 -0
  15. package/composables/useAppVersion.ts +21 -21
  16. package/composables/useEnvLanguage.ts +20 -20
  17. package/composables/useLocal.ts +38 -38
  18. package/lib/models/store/tasks/interfaces.ts +115 -108
  19. package/lib/utils/sendTask.ts +72 -72
  20. package/minify.js +146 -146
  21. package/package.json +1 -1
  22. package/public/spice-console/application/codec.js +257 -257
  23. package/public/spice-console/lib/rasterEngine.js +907 -907
  24. package/public/spice-console/network/spicechannel.js +369 -369
  25. package/store/main/lib/interfaces.ts +9 -9
  26. package/store/tasks/actions.ts +133 -133
  27. package/store/tasks/getters.ts +25 -25
  28. package/store/tasks/lib/models/interfaces.ts +18 -18
  29. package/store/tasks/mutations.ts +58 -58
  30. package/store/tasks/state.ts +16 -16
@@ -27,8 +27,10 @@
27
27
  :datastore-type="datastoreType"
28
28
  :local-create-name-submit="localCreateNameSubmit"
29
29
  :datacenter-hosts="datacenterHosts"
30
+ :is-main-filter="props.isMainFilter"
30
31
  @loading="(e) => (loading = e)"
31
32
  @submit="onSaveNameAndNextLocal"
33
+ @main-filter="emits('main-filter', $event)"
32
34
  />
33
35
 
34
36
  <common-wizards-datastore-add-shared-storm
@@ -38,8 +40,10 @@
38
40
  :datastore-type="datastoreType"
39
41
  :device-selection-submit="deviceSelectionSubmit"
40
42
  :datacenter-hosts="datacenterHosts"
43
+ :is-main-filter="props.isMainFilter"
41
44
  @loading="(e) => (loading = e)"
42
45
  @submit="onSaveAndNextSharedStorm"
46
+ @main-filter="emits('main-filter', $event)"
43
47
  />
44
48
 
45
49
  <common-wizards-datastore-add-nfs
@@ -88,10 +92,12 @@ const props = defineProps<{
88
92
  version: UI_T_NfsType
89
93
  ) => Promise<void>
90
94
  datacenterHosts?: UI_I_SelectHostOptions[]
95
+ isMainFilter?: boolean
91
96
  }>()
92
97
  const emits = defineEmits<{
93
98
  (event: 'hide'): void
94
99
  (event: 'global-refresh'): void
100
+ (event: 'main-filter', value: string): void
95
101
  }>()
96
102
 
97
103
  const localization = computed<UI_I_Localization>(() => useLocal())
@@ -22,8 +22,10 @@
22
22
  :step-position="props.stepPosition"
23
23
  :datastore-type="props.datastoreType"
24
24
  :datacenter-hosts="props.datacenterHosts"
25
+ :is-main-filter="props.isMainFilter"
25
26
  @loading="(e) => emits('loading', e)"
26
27
  @submit="(e) => emits('submit', e)"
28
+ @main-filter="emits('main-filter', $event)"
27
29
  />
28
30
  </div>
29
31
  </template>
@@ -45,10 +47,12 @@ const props = defineProps<{
45
47
  datastoreType: UI_T_DatastoreType
46
48
  mode: UI_T_WizardDatastoreMode
47
49
  datacenterHosts?: UI_I_SelectHostOptions[]
50
+ isMainFilter?: boolean
48
51
  }>()
49
52
  const emits = defineEmits<{
50
53
  (event: 'loading', value: boolean): void
51
54
  (event: 'submit', value: string): void
55
+ (event: 'main-filter', value: string): void
52
56
  }>()
53
57
 
54
58
  const localization = computed<UI_I_Localization>(() => useLocal())
@@ -10,8 +10,10 @@
10
10
  :datastore-type="props.datastoreType"
11
11
  :mode="props.mode"
12
12
  :datacenter-hosts="props.datacenterHosts"
13
+ :is-main-filter="props.isMainFilter"
13
14
  @loading="(e) => emits('loading', e)"
14
15
  @submit="(e) => emits('submit', e)"
16
+ @main-filter="emits('main-filter', $event)"
15
17
  />
16
18
 
17
19
  <!-- <templates-home-datastore-actions-add-vmfs-version-->
@@ -47,10 +49,12 @@ const props = defineProps<{
47
49
  deviceSelectionSubmit: number
48
50
  datastoreType: UI_T_DatastoreType
49
51
  datacenterHosts?: UI_I_SelectHostOptions[]
52
+ isMainFilter?: boolean
50
53
  }>()
51
54
  const emits = defineEmits<{
52
55
  (event: 'submit', value: { name: string; lunDisk: string[] }): void
53
56
  (event: 'loading', value: boolean): void
57
+ (event: 'main-filter', value: string): void
54
58
  }>()
55
59
 
56
60
  const localization = computed<UI_I_Localization>(() => useLocal())
@@ -81,8 +81,10 @@
81
81
  :total-pages="dataTable?.total_pages || 1"
82
82
  :pagination="pagination"
83
83
  :loading="loading"
84
+ :is-main-filter="props.isMainFilter"
84
85
  @pagination="updatePagination"
85
86
  @sort="sortTable"
87
+ @main-filter="emits('main-filter', $event)"
86
88
  />
87
89
  </div>
88
90
  </div>
@@ -91,9 +93,7 @@
91
93
  <script lang="ts" setup>
92
94
  import { UI_I_ValidationTouchResult } from '~/lib/models/plugins/validation/interfaces'
93
95
  // import { UI_I_SchemaTablePayload } from '~/lib/models/store/interfaces'
94
- import {
95
- UI_I_Localization,
96
- } from '~/lib/models/interfaces'
96
+ import { UI_I_Localization } from '~/lib/models/interfaces'
97
97
  import {
98
98
  API_UI_I_DataTable,
99
99
  UI_I_Pagination,
@@ -122,6 +122,7 @@ const props = defineProps<{
122
122
  stepPosition: number
123
123
  datastoreType: UI_T_DatastoreType
124
124
  datacenterHosts?: UI_I_SelectHostOptions[] | undefined
125
+ isMainFilter?: boolean
125
126
  }>()
126
127
  const emits = defineEmits<{
127
128
  (event: 'loading', value: boolean): void
@@ -130,6 +131,7 @@ const emits = defineEmits<{
130
131
  event: 'update:lun-disk',
131
132
  value: UI_I_CreateStorageLunDiskItem[] | null
132
133
  ): void
134
+ (event: 'main-filter', value: string): void
133
135
  }>()
134
136
 
135
137
  const localization = computed<UI_I_Localization>(() => useLocal())
@@ -13,8 +13,11 @@
13
13
  :total-items="props.totalItems"
14
14
  :total-pages="props.totalPages"
15
15
  :loading="loading"
16
+ :is-main-filter="props.isMainFilter"
17
+ :main-filter-placeholder="localization.filter"
16
18
  hide-page-size
17
19
  @filtering="filtering"
20
+ @main-filter="onMainFiltering"
18
21
  @sorting="sorting"
19
22
  >
20
23
  <template #icon="{ item }">
@@ -28,6 +31,7 @@
28
31
  </template>
29
32
 
30
33
  <script lang="ts" setup>
34
+ import { useDebounceFn } from '@vueuse/core'
31
35
  import {
32
36
  UI_I_HeadItem,
33
37
  UI_I_ColumnKey,
@@ -46,11 +50,13 @@ const props = defineProps<{
46
50
  totalItems: number
47
51
  totalPages: number
48
52
  pagination: UI_I_Pagination
53
+ isMainFilter?: boolean
49
54
  }>()
50
55
  const emits = defineEmits<{
51
56
  (event: 'update:selected', value: number[] | null): void
52
57
  (event: 'pagination', value: UI_I_Pagination): void
53
58
  (event: 'sort', value: string): void
59
+ (event: 'main-filter', value: string): void
54
60
  }>()
55
61
 
56
62
  const localization = computed<UI_I_Localization>(() => useLocal())
@@ -75,6 +81,12 @@ const sorting = (e: [number, boolean]): void => {
75
81
 
76
82
  emits('sort', sort)
77
83
  }
84
+ const sendFilter = useDebounceFn((searchText: string) => {
85
+ emits('main-filter', searchText)
86
+ }, 1000)
87
+ const onMainFiltering = (data: string): void => {
88
+ sendFilter(data)
89
+ }
78
90
 
79
91
  const pagination = ref<UI_I_Pagination>({
80
92
  page: 1,
@@ -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
6
-
7
- const regexHasDot = /\./
8
- const regexHasDotAndB = /\..*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
6
+
7
+ const regexHasDot = /\./
8
+ const regexHasDotAndB = /\..*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,20 +1,20 @@
1
- export function useEnvLanguage(): string {
2
- const { $store }: any = useNuxtApp()
3
-
4
- let localizationCode = 'en_US'
5
- const langFromLocalStorage =
6
- useLocalStorage('lang') || $store.getters['main/getInterfaceLang'] // Из $store для Сферы, но думаю нужно сделать одинаково из localStorage
7
- if (langFromLocalStorage) {
8
- if (
9
- langFromLocalStorage === 'en_US' ||
10
- langFromLocalStorage === 'ru_RU' ||
11
- langFromLocalStorage === 'hy_AM'
12
- ) {
13
- localizationCode = langFromLocalStorage
14
- }
15
- }
16
-
17
- localizationCode = localizationCode.slice(0, 2).toUpperCase()
18
-
19
- return localizationCode
20
- }
1
+ export function useEnvLanguage(): string {
2
+ const { $store }: any = useNuxtApp()
3
+
4
+ let localizationCode = 'en_US'
5
+ const langFromLocalStorage =
6
+ useLocalStorage('lang') || $store.getters['main/getInterfaceLang'] // Из $store для Сферы, но думаю нужно сделать одинаково из localStorage
7
+ if (langFromLocalStorage) {
8
+ if (
9
+ langFromLocalStorage === 'en_US' ||
10
+ langFromLocalStorage === 'ru_RU' ||
11
+ langFromLocalStorage === 'hy_AM'
12
+ ) {
13
+ localizationCode = langFromLocalStorage
14
+ }
15
+ }
16
+
17
+ localizationCode = localizationCode.slice(0, 2).toUpperCase()
18
+
19
+ return localizationCode
20
+ }
@@ -1,38 +1,38 @@
1
- import localRu from '~/assets/localization/local_ru.json'
2
- import localEn from '~/assets/localization/local_en.json'
3
- import localHy from '~/assets/localization/local_hy.json'
4
- import localZh from '~/assets/localization/local_zh.json'
5
- import localKk from '~/assets/localization/local_kk.json'
6
- import localBe from '~/assets/localization/local_be.json'
7
- const locals = {
8
- localRu,
9
- localEn,
10
- localHy,
11
- localZh,
12
- localKk,
13
- localBe,
14
- }
15
- export const useLocal = () => {
16
- const config = useRuntimeConfig()
17
-
18
- const code: string = config?.public?.LOCALIZATION_CODE?.toLowerCase() || 'ru'
19
-
20
- document.getElementsByTagName('html')[0].setAttribute('lang', code)
21
-
22
- switch (code) {
23
- case 'ru':
24
- return locals.localRu
25
- case 'en':
26
- return locals.localEn
27
- case 'hy':
28
- return locals.localHy
29
- case 'zh':
30
- return locals.localZh
31
- case 'kk':
32
- return locals.localKk
33
- case 'be':
34
- return locals.localBe
35
- default:
36
- return locals.localRu
37
- }
38
- }
1
+ import localRu from '~/assets/localization/local_ru.json'
2
+ import localEn from '~/assets/localization/local_en.json'
3
+ import localHy from '~/assets/localization/local_hy.json'
4
+ import localZh from '~/assets/localization/local_zh.json'
5
+ import localKk from '~/assets/localization/local_kk.json'
6
+ import localBe from '~/assets/localization/local_be.json'
7
+ const locals = {
8
+ localRu,
9
+ localEn,
10
+ localHy,
11
+ localZh,
12
+ localKk,
13
+ localBe,
14
+ }
15
+ export const useLocal = () => {
16
+ const config = useRuntimeConfig()
17
+
18
+ const code: string = config?.public?.LOCALIZATION_CODE?.toLowerCase() || 'ru'
19
+
20
+ document.getElementsByTagName('html')[0].setAttribute('lang', code)
21
+
22
+ switch (code) {
23
+ case 'ru':
24
+ return locals.localRu
25
+ case 'en':
26
+ return locals.localEn
27
+ case 'hy':
28
+ return locals.localHy
29
+ case 'zh':
30
+ return locals.localZh
31
+ case 'kk':
32
+ return locals.localKk
33
+ case 'be':
34
+ return locals.localBe
35
+ default:
36
+ return locals.localRu
37
+ }
38
+ }
@@ -1,108 +1,115 @@
1
- import type { UI_I_LoadingPayload } from '~/lib/models/store/interfaces'
2
- import type {
3
- UI_T_TasksStateLoading,
4
- UI_T_TaskStatus,
5
- } from '~/lib/models/store/tasks/types'
6
- import type { API_UI_I_DataTable } from '~/lib/models/table/interfaces'
7
-
8
- export interface UI_I_TasksLoadingPayload
9
- extends UI_I_LoadingPayload<UI_T_TasksStateLoading> {}
10
-
11
- export interface UI_I_RTaskQuery {
12
- last: number
13
- sortBy?: string
14
- }
15
-
16
- export interface API_UI_I_RecentTaskItem<T, E = any> {
17
- args: string // base64
18
- completion: number
19
- creation_time: number
20
- details: string
21
- error: string
22
- id: string
23
- initiator: string
24
- method: string
25
- mod_revision: number
26
- server: string
27
- start_time: number
28
- status: UI_T_TaskStatus
29
- target: string
30
- target_type: T
31
- task_name: string
32
- zone: string
33
- extra: E // Динамические данные зависит от того что нужно на фронте
34
- }
35
-
36
- export interface UI_I_RecentTaskItem<T, E = any> {
37
- completion: string
38
- queuedFor: number
39
- execution: number
40
- details: string
41
- error: string
42
- initiator: string
43
- server: string
44
- startTime: string
45
- status: UI_T_TaskStatus
46
- statusIcon: string
47
- statusText: string
48
- target: string
49
- targetType: T
50
- taskName: string
51
- id: string
52
- zone: string
53
- extra: E
54
- }
55
-
56
- export interface API_UI_I_RecentTask<T, I = API_UI_I_RecentTaskItem<T>> {
57
- items: I[]
58
- last: number
59
- }
60
- export interface UI_I_RawRecentTask<T> extends API_UI_I_RecentTask<T> {}
61
- export interface UI_I_RecentTask<T>
62
- extends API_UI_I_RecentTask<UI_I_RecentTaskItem<T>> {}
63
- export interface UI_I_RawRecentTaskItem<T, E = any>
64
- extends API_UI_I_RecentTaskItem<T, E> {}
65
-
66
- export interface API_UI_I_TaskItem<T, E = any> {
67
- completion: number
68
- creation_time: number
69
- details: string
70
- error: string
71
- id: string
72
- initiator: string
73
- method: string
74
- mod_revision: number
75
- server: string
76
- start_time: number
77
- status: UI_T_TaskStatus
78
- target: string
79
- target_type: T
80
- task_name: string
81
- zone: string
82
- extra: E // Динамические данные зависит от того что нужно на фронте
83
- args?: string // base64
84
- }
85
-
86
- export interface UI_I_TaskItem<T> {
87
- relatedEvents: any
88
- completion: number | string
89
- queuedFor: number
90
- execution: number
91
- details: string
92
- error: string
93
- initiator: string
94
- server: string
95
- startTime: number | string
96
- statusIcon: string
97
- statusText: string
98
- status: UI_T_TaskStatus
99
- target: string
100
- targetType: T
101
- taskName: string
102
- id: string
103
- zone: string
104
- }
105
-
106
- export interface API_UI_I_Task<T>
107
- extends API_UI_I_DataTable<API_UI_I_TaskItem<T>[]> {}
108
- export interface UI_I_Task<T> extends API_UI_I_DataTable<UI_I_TaskItem<T>[]> {}
1
+ import type { UI_I_LoadingPayload } from '~/lib/models/store/interfaces'
2
+ import type {
3
+ UI_T_TasksStateLoading,
4
+ UI_T_TaskStatus,
5
+ } from '~/lib/models/store/tasks/types'
6
+ import type { API_UI_I_DataTable } from '~/lib/models/table/interfaces'
7
+
8
+ export interface UI_I_TasksLoadingPayload
9
+ extends UI_I_LoadingPayload<UI_T_TasksStateLoading> {}
10
+
11
+ export interface UI_I_RTaskQuery {
12
+ last: number
13
+ sortBy?: string
14
+ }
15
+
16
+ export interface API_UI_I_RTask_Extra {
17
+ created_objects: {
18
+ created_id: string
19
+ created_name: string
20
+ }[] | {}
21
+ }
22
+
23
+ export interface API_UI_I_RecentTaskItem<T, E = any> {
24
+ args: string // base64
25
+ completion: number
26
+ creation_time: number
27
+ details: string
28
+ error: string
29
+ id: string
30
+ initiator: string
31
+ method: string
32
+ mod_revision: number
33
+ server: string
34
+ start_time: number
35
+ status: UI_T_TaskStatus
36
+ target: string
37
+ target_type: T
38
+ task_name: string
39
+ zone: string
40
+ extra: E // Динамические данные зависит от того что нужно на фронте
41
+ }
42
+
43
+ export interface UI_I_RecentTaskItem<T, E = any> {
44
+ completion: string
45
+ queuedFor: number
46
+ execution: number
47
+ details: string
48
+ error: string
49
+ initiator: string
50
+ server: string
51
+ startTime: string
52
+ status: UI_T_TaskStatus
53
+ statusIcon: string
54
+ statusText: string
55
+ target: string
56
+ targetType: T
57
+ taskName: string
58
+ id: string
59
+ zone: string
60
+ extra: E
61
+ }
62
+
63
+ export interface API_UI_I_RecentTask<T, I = API_UI_I_RecentTaskItem<T>> {
64
+ items: I[]
65
+ last: number
66
+ }
67
+ export interface UI_I_RawRecentTask<T> extends API_UI_I_RecentTask<T> {}
68
+ export interface UI_I_RecentTask<T>
69
+ extends API_UI_I_RecentTask<UI_I_RecentTaskItem<T>> {}
70
+ export interface UI_I_RawRecentTaskItem<T, E = API_UI_I_RTask_Extra>
71
+ extends API_UI_I_RecentTaskItem<T, E> {}
72
+
73
+ export interface API_UI_I_TaskItem<T, E = any> {
74
+ completion: number
75
+ creation_time: number
76
+ details: string
77
+ error: string
78
+ id: string
79
+ initiator: string
80
+ method: string
81
+ mod_revision: number
82
+ server: string
83
+ start_time: number
84
+ status: UI_T_TaskStatus
85
+ target: string
86
+ target_type: T
87
+ task_name: string
88
+ zone: string
89
+ extra: E // Динамические данные зависит от того что нужно на фронте
90
+ args?: string // base64
91
+ }
92
+
93
+ export interface UI_I_TaskItem<T> {
94
+ relatedEvents: any
95
+ completion: number | string
96
+ queuedFor: number
97
+ execution: number
98
+ details: string
99
+ error: string
100
+ initiator: string
101
+ server: string
102
+ startTime: number | string
103
+ statusIcon: string
104
+ statusText: string
105
+ status: UI_T_TaskStatus
106
+ target: string
107
+ targetType: T
108
+ taskName: string
109
+ id: string
110
+ zone: string
111
+ }
112
+
113
+ export interface API_UI_I_Task<T>
114
+ extends API_UI_I_DataTable<API_UI_I_TaskItem<T>[]> {}
115
+ export interface UI_I_Task<T> extends API_UI_I_DataTable<UI_I_TaskItem<T>[]> {}