bfg-common 1.5.544 → 1.5.546

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.
@@ -99,21 +99,21 @@ const props = withDefaults(
99
99
  getComputeResourceData: (payload: UI_I_TablePayload) => Promise<void>
100
100
  datastore: UI_I_DatastoreTableItem[]
101
101
  configurePerDisks: UI_I_StorageConfigurePerDiskItem[]
102
+ vmOrigin?: UI_I_VmOrigin // нужно только для сферы
102
103
  computeResourceTableData?: any
103
104
  computeResourceTree?: UI_I_TreeNode | null
104
105
  vmState?: number
105
106
  vmInfo?: any | null
106
107
  networks?: any
107
- vmOrigin?: UI_I_VmOrigin | null
108
108
  defaultMigrateType?: UI_T_VmMigrateType
109
109
  }>(),
110
110
  {
111
+ vmOrigin: undefined,
111
112
  computeResourceTableData: undefined,
112
113
  computeResourceTree: null,
113
114
  vmState: undefined,
114
115
  vmInfo: undefined,
115
116
  networks: undefined,
116
- vmOrigin: null,
117
117
  defaultMigrateType: undefined,
118
118
  }
119
119
  )
@@ -276,8 +276,6 @@ watch(
276
276
  { immediate: true, deep: true }
277
277
  )
278
278
 
279
- const loading = ref<boolean>(false)
280
-
281
279
  const connectedStorageIdOnVm = computed<string>(
282
280
  () => props.vmSettings?.storage.id || ''
283
281
  )
@@ -286,11 +284,8 @@ const dataReadyView = computed<UI_I_TableInfoItem>(() =>
286
284
  constructDataReadyViewFunc(props.vmName, form.value)
287
285
  )
288
286
  const onMigrateVm = (): void => {
289
- loading.value = true
290
287
  emits('finish', form.value)
291
- loading.value = false
292
288
  }
293
-
294
289
  const onHideModal = (): void => {
295
290
  emits('hide')
296
291
  }
@@ -13,7 +13,7 @@
13
13
  >
14
14
  <template #content="{ selectedStep, isLoading }">
15
15
  <ui-wizard-block
16
- v-if="selectedStep.id === dynamicSteps.type"
16
+ v-if="selectedStep.id === dynamicSteps.selectMigrationType"
17
17
  :sub-title-height="height0"
18
18
  >
19
19
  <template #subTitle>
@@ -22,6 +22,7 @@
22
22
  <ui-wizard-subtitle :sub-title="selectedStep.subTitle" />
23
23
 
24
24
  <common-wizards-vm-migrate-vm-origin
25
+ v-if="props.vmOrigin"
25
26
  :vm-origin="props.vmOrigin"
26
27
  />
27
28
  </div>
@@ -56,9 +57,7 @@
56
57
  </div>
57
58
  </div>
58
59
  </template>
59
- <template #content>
60
- Content
61
- </template>
60
+ <template #content> Content </template>
62
61
  </ui-wizard-block>
63
62
 
64
63
  <ui-wizard-block
@@ -81,9 +80,7 @@
81
80
  </div>
82
81
  </div>
83
82
  </template>
84
- <template #content>
85
- content
86
- </template>
83
+ <template #content> content </template>
87
84
  </ui-wizard-block>
88
85
 
89
86
  <ui-wizard-block
@@ -108,9 +105,7 @@
108
105
  </div>
109
106
  </div>
110
107
  </template>
111
- <template #content>
112
- Content
113
- </template>
108
+ <template #content> Content </template>
114
109
  </ui-wizard-block>
115
110
 
116
111
  <ui-wizard-block
@@ -124,9 +119,7 @@
124
119
  </div>
125
120
  </div>
126
121
  </template>
127
- <template #content>
128
- Content
129
- </template>
122
+ <template #content> Content </template>
130
123
  </ui-wizard-block>
131
124
  </template>
132
125
  </ui-wizard>
@@ -155,11 +148,9 @@ const props = withDefaults(
155
148
  alertMessages: string[][]
156
149
  selectedNode: UI_I_TreeNode
157
150
  title: string
158
- vmOrigin?: UI_I_VmOrigin | null
151
+ vmOrigin: UI_I_VmOrigin | undefined
159
152
  }>(),
160
- {
161
- vmOrigin: null,
162
- }
153
+ {}
163
154
  )
164
155
  const emits = defineEmits<{
165
156
  (event: 'change-steps', value: UI_I_WizardStep[]): void
@@ -120,6 +120,7 @@ const props = withDefaults(
120
120
  alertMessages: string[][]
121
121
  title: string
122
122
  isScheduledTasks: boolean
123
+ vmOrigin: UI_I_VmOrigin | undefined
123
124
  vmSettings: UI_I_VmSettings | null
124
125
  vmName: string
125
126
  getDatastoreTableFunc: (payload: UI_I_TablePayload) => Promise<void>
@@ -131,7 +132,6 @@ const props = withDefaults(
131
132
  vmState?: number
132
133
  vmInfo?: any | null
133
134
  networks?: any
134
- vmOrigin?: UI_I_VmOrigin | null
135
135
  defaultMigrateType?: UI_T_VmMigrateType
136
136
  }>(),
137
137
  {
@@ -140,7 +140,6 @@ const props = withDefaults(
140
140
  vmState: undefined,
141
141
  vmInfo: undefined,
142
142
  networks: undefined,
143
- vmOrigin: null,
144
143
  defaultMigrateType: undefined,
145
144
  }
146
145
  )
@@ -196,8 +195,6 @@ watch(
196
195
  { immediate: true, deep: true }
197
196
  )
198
197
 
199
- const loading = ref<boolean>(false)
200
-
201
198
  const connectedStorageIdOnVm = computed<string>(
202
199
  () => props.vmSettings?.storage.id || ''
203
200
  )
@@ -1,45 +1,15 @@
1
1
  <template>
2
- <div class="vm-origin-info-tooltip">
3
- <div
4
- id="vm-origin-trigger"
5
- class="tooltip-trigger-block flex items-center"
6
- data-id="vm-origin-trigger-btn"
7
- @click="isShowTooltip = !isShowTooltip"
8
- >
9
- <span>{{ localization.common.vmOrigin }}</span>
10
- <atoms-the-icon
11
- name="info-circle"
12
- width="16px"
13
- height="16px"
14
- fill="#0072a3"
15
- />
16
- </div>
17
-
18
- <atoms-tooltip-signpost
19
- v-if="isShowTooltip"
20
- elem-id="vm-origin-trigger"
21
- test-id="vm-origin"
22
- @hide="isShowTooltip = false"
23
- >
24
- <slot name="content">
25
- <div class="vm-origin-info-tooltip-block">
26
- <template v-for="item in itemsArray" :key="item.key">
27
- <div v-if="item.value.length" class="item-row">
28
- <span class="title-row">{{ item.key }}</span>
29
- <div
30
- v-for="item2 in item.value"
31
- :key="item2.name"
32
- class="flex items-center"
33
- >
34
- <span :class="item2.iconName"></span>
35
- <span class="item-name">{{ item2.name }}</span>
36
- </div>
37
- </div>
38
- </template>
39
- </div>
40
- </slot>
41
- </atoms-tooltip-signpost>
42
- </div>
2
+ <common-wizards-vm-migrate-vm-origin-new
3
+ v-if="isNewView"
4
+ v-model="isShowTooltip"
5
+ :vm-origin="normalizedVmOriginToArray"
6
+ />
7
+
8
+ <common-wizards-vm-migrate-vm-origin-old
9
+ v-else
10
+ v-model="isShowTooltip"
11
+ :vm-origin="normalizedVmOriginToArray"
12
+ />
43
13
  </template>
44
14
 
45
15
  <script setup lang="ts">
@@ -50,47 +20,18 @@ import type {
50
20
  } from '~/components/common/wizards/vm/migrate/vmOrigin/lib/models/interfaces'
51
21
  import { constructOriginItems } from '~/components/common/wizards/vm/migrate/vmOrigin/lib/utils/constructItems'
52
22
 
53
- const props = withDefaults(
54
- defineProps<{
55
- vmOrigin?: UI_I_VmOrigin | null
56
- }>(),
57
- {
58
- vmOrigin: null,
59
- }
60
- )
23
+ const props = defineProps<{
24
+ vmOrigin: UI_I_VmOrigin | null
25
+ }>()
61
26
 
62
27
  const localization = computed<UI_I_Localization>(() => useLocal())
28
+ const { $store }: any = useNuxtApp()
29
+
30
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
63
31
 
64
- const itemsArray = computed<UI_I_VmOriginArrayItem[]>(() =>
32
+ const normalizedVmOriginToArray = computed<UI_I_VmOriginArrayItem[]>(() =>
65
33
  constructOriginItems(props.vmOrigin, localization.value)
66
34
  )
67
35
 
68
36
  const isShowTooltip = ref<boolean>(false)
69
37
  </script>
70
-
71
- <style scoped lang="scss">
72
- .vm-origin-info-tooltip {
73
- :deep(.tooltip-content) {
74
- background-color: #ffffff;
75
- }
76
- .tooltip-trigger-block {
77
- cursor: pointer;
78
- color: #0072a3;
79
-
80
- &:hover {
81
- text-decoration: underline;
82
- }
83
- }
84
-
85
- .vm-origin-info-tooltip-block {
86
- .title-row {
87
- font-weight: 700;
88
- color: #565656;
89
- margin-bottom: 5px;
90
- }
91
- .item-name {
92
- margin-left: 5px;
93
- }
94
- }
95
- }
96
- </style>
@@ -0,0 +1,57 @@
1
+ <template>
2
+ <div class="vm-origin-info-tooltip">
3
+ <div
4
+ id="vm-origin-trigger"
5
+ class="tooltip-trigger-block flex items-center"
6
+ data-id="vm-origin-trigger-btn"
7
+ @click="isShowTooltipLocal = !isShowTooltipLocal"
8
+ >
9
+ <span>{{ localization.common.vmOrigin }}</span>
10
+ <atoms-the-icon
11
+ name="info-circle"
12
+ width="16px"
13
+ height="16px"
14
+ fill="#0072a3"
15
+ />
16
+ </div>
17
+
18
+ <atoms-tooltip-signpost
19
+ v-if="isShowTooltipLocal"
20
+ elem-id="vm-origin-trigger"
21
+ test-id="vm-origin"
22
+ @hide="isShowTooltipLocal = false"
23
+ >
24
+ <slot name="content">
25
+ <div class="vm-origin-info-tooltip-block">
26
+ <template v-for="item in props.vmOrigin" :key="item.key">
27
+ <div v-if="item.value.length" class="item-row">
28
+ <span class="title-row">{{ item.key }}</span>
29
+ <div
30
+ v-for="item2 in item.value"
31
+ :key="item2.name"
32
+ class="flex items-center"
33
+ >
34
+ <span :class="item2.iconName"></span>
35
+ <span class="item-name">{{ item2.name }}</span>
36
+ </div>
37
+ </div>
38
+ </template>
39
+ </div>
40
+ </slot>
41
+ </atoms-tooltip-signpost>
42
+ </div>
43
+ </template>
44
+
45
+ <script setup lang="ts">
46
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
47
+ import type { UI_I_VmOriginArrayItem } from '~/components/common/wizards/vm/migrate/vmOrigin/lib/models/interfaces'
48
+
49
+ const isShowTooltipLocal = defineModel<boolean>({ required: true })
50
+ const props = defineProps<{
51
+ vmOrigin: UI_I_VmOriginArrayItem[]
52
+ }>()
53
+
54
+ const localization = computed<UI_I_Localization>(() => useLocal())
55
+ </script>
56
+
57
+ <style scoped lang="scss"></style>
@@ -0,0 +1,82 @@
1
+ <template>
2
+ <div class="vm-origin-info-tooltip">
3
+ <div
4
+ id="vm-origin-trigger"
5
+ class="tooltip-trigger-block flex items-center"
6
+ data-id="vm-origin-trigger-btn"
7
+ @click="isShowTooltipLocal = !isShowTooltipLocal"
8
+ >
9
+ <span>{{ localization.common.vmOrigin }}</span>
10
+ <atoms-the-icon
11
+ name="info-circle"
12
+ width="16px"
13
+ height="16px"
14
+ fill="#0072a3"
15
+ />
16
+ </div>
17
+
18
+ <atoms-tooltip-signpost
19
+ v-if="isShowTooltipLocal"
20
+ elem-id="vm-origin-trigger"
21
+ test-id="vm-origin"
22
+ @hide="isShowTooltipLocal = false"
23
+ >
24
+ <slot name="content">
25
+ <div class="vm-origin-info-tooltip-block">
26
+ <template v-for="item in props.vmOrigin" :key="item.key">
27
+ <div v-if="item.value.length" class="item-row">
28
+ <span class="title-row">{{ item.key }}</span>
29
+ <div
30
+ v-for="item2 in item.value"
31
+ :key="item2.name"
32
+ class="flex items-center"
33
+ >
34
+ <span :class="item2.iconName"></span>
35
+ <span class="item-name">{{ item2.name }}</span>
36
+ </div>
37
+ </div>
38
+ </template>
39
+ </div>
40
+ </slot>
41
+ </atoms-tooltip-signpost>
42
+ </div>
43
+ </template>
44
+
45
+ <script setup lang="ts">
46
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
47
+ import type { UI_I_VmOriginArrayItem } from '~/components/common/wizards/vm/migrate/vmOrigin/lib/models/interfaces'
48
+
49
+ const isShowTooltipLocal = defineModel<boolean>({ required: true })
50
+ const props = defineProps<{
51
+ vmOrigin: UI_I_VmOriginArrayItem[]
52
+ }>()
53
+
54
+ const localization = computed<UI_I_Localization>(() => useLocal())
55
+ </script>
56
+
57
+ <style scoped lang="scss">
58
+ .vm-origin-info-tooltip {
59
+ :deep(.tooltip-content) {
60
+ background-color: #ffffff;
61
+ }
62
+ .tooltip-trigger-block {
63
+ cursor: pointer;
64
+ color: #0072a3;
65
+
66
+ &:hover {
67
+ text-decoration: underline;
68
+ }
69
+ }
70
+
71
+ .vm-origin-info-tooltip-block {
72
+ .title-row {
73
+ font-weight: 700;
74
+ color: #565656;
75
+ margin-bottom: 5px;
76
+ }
77
+ .item-name {
78
+ margin-left: 5px;
79
+ }
80
+ }
81
+ }
82
+ </style>
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bfg-common",
3
3
  "private": false,
4
- "version": "1.5.544",
4
+ "version": "1.5.546",
5
5
  "scripts": {
6
6
  "build": "nuxt build",
7
7
  "dev": "nuxt dev --port=3002",
@@ -1,27 +0,0 @@
1
- <template>
2
- <common-select-radio-group
3
- v-model="selectedMigrateTypeLocal"
4
- :options="vmMigrationTypes"
5
- />
6
- </template>
7
-
8
- <script lang="ts" setup>
9
- import type { UI_T_Project } from '~/lib/models/types'
10
- import type { UI_I_VmMigrateTypeOption } from '~/components/common/wizards/vm/migrate/select/type/lib/models/interfaces'
11
- import type { UI_T_VmMigrateType } from '~/components/common/wizards/vm/migrate/select/type/lib/models/types'
12
- import { vmMigrateTypesFunc } from '~/components/common/wizards/vm/migrate/select/type/lib/config/typeOptions'
13
-
14
- const props = defineProps<{
15
- project: UI_T_Project
16
- }>()
17
- const selectedMigrateTypeLocal = defineModel<UI_T_VmMigrateType>({
18
- required: true,
19
- })
20
- const localization = computed<any>(() => useLocal())
21
-
22
- const vmMigrationTypes = ref<UI_I_VmMigrateTypeOption[]>(
23
- vmMigrateTypesFunc(localization.value, props.project)
24
- )
25
- </script>
26
-
27
- <style lang="scss" scoped></style>
@@ -1,49 +0,0 @@
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_VmMigrateTypeOption } from '~/components/common/wizards/vm/migrate/select/type/lib/models/interfaces'
4
-
5
- export const vmMigrateTypesFunc = (
6
- localization: UI_I_Localization,
7
- project: UI_T_Project
8
- ): UI_I_VmMigrateTypeOption[] => {
9
- const options: UI_I_VmMigrateTypeOption[] = [
10
- {
11
- label: localization.common.changeComputeResourceOnly,
12
- value: 'resource',
13
- disabled: false,
14
- description: localization.common.changeComputeResourceOnlyDesc,
15
- permissions: ['sphere'],
16
- permission: 'VirtualMachines.MigrateHost',
17
- testId: 'change-compute-resource-option',
18
- },
19
- {
20
- label: localization.common.changeStorageOnly,
21
- value: 'storage',
22
- disabled: false,
23
- description: localization.common.changeStorageOnlyDesc,
24
- permissions: ['sphere', 'procurator'],
25
- permission: 'VirtualMachines.MigrateDatastore',
26
- testId: 'change-storage-option',
27
- },
28
- // TODO 700
29
- // {
30
- // label: localization.common.changeBothComputeResourceStorage,
31
- // value: 'resource-storage',
32
- // disabled: true,
33
- // description: localization.common.changeBothComputeResourceStorageDesc,
34
- // permissions: ['sphere'],
35
- // testId: 'change-both-compute-resource-storage-option',
36
- // },
37
- // TODO 700
38
- // {
39
- // label: localization.common.crossVCenterServerExport,
40
- // value: 'server',
41
- // disabled: true,
42
- // description: localization.common.crossVCenterServerExportDesc,
43
- // permissions: ['sphere'],
44
- // testId: 'cross-vcenter-server-export-option',
45
- // },
46
- ]
47
-
48
- return options.filter((option) => option.permissions.includes(project))
49
- }
@@ -1,6 +0,0 @@
1
- import type { UI_I_RadioOption } from '~/components/common/select/radio/lib/models/interfaces'
2
-
3
- export interface UI_I_VmMigrateTypeOption extends UI_I_RadioOption {
4
- permissions: string[]
5
- permission?: string // Global permission
6
- }
@@ -1,5 +0,0 @@
1
- export type UI_T_VmMigrateType =
2
- | 'resource'
3
- | 'storage'
4
- | 'resource-storage'
5
- | 'server'