bfg-common 1.5.539 → 1.5.541
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/components/common/pages/backups/modals/createBackup/CreateBackup.vue +195 -195
- package/components/common/pages/backups/modals/createBackup/datastores/tableView/new/TableView.vue +3 -3
- package/components/common/pages/backups/modals/createBackup/disks/tableView/new/lib/config/table.ts +1 -0
- package/components/common/pages/backups/modals/restore/Restore.vue +78 -196
- package/components/common/pages/backups/modals/restore/RestoreNew.vue +289 -0
- package/components/common/pages/backups/modals/restore/RestoreOld.vue +173 -0
- package/components/common/pages/backups/modals/restore/disks/Disks.vue +32 -27
- package/components/common/pages/backups/modals/restore/disks/DisksNew.vue +17 -0
- package/components/common/pages/backups/modals/restore/disks/DisksOld.vue +21 -0
- package/components/common/pages/backups/modals/restore/disks/tableView/new/Table.vue +126 -0
- package/components/common/pages/backups/modals/restore/disks/tableView/new/lib/config/table.ts +175 -0
- package/components/common/pages/backups/modals/restore/disks/tableView/{TableView.vue → old/Table.vue} +6 -3
- package/components/common/pages/backups/modals/restore/disks/tableView/{lib → old/lib}/config/keys.ts +1 -1
- package/components/common/pages/backups/modals/restore/disks/tableView/{lib → old/lib}/config/table.ts +117 -117
- package/components/common/pages/backups/modals/restore/disks/tableView/{lib → old/lib}/models/types.ts +1 -1
- package/components/common/pages/backups/modals/restore/lib/config/readyToCompleteOptions.ts +62 -0
- package/components/common/pages/backups/modals/restore/lib/config/steps.ts +21 -21
- package/components/common/pages/backups/modals/restore/name/Name.vue +31 -166
- package/components/common/pages/backups/modals/restore/name/NameNew.vue +98 -0
- package/components/common/pages/backups/modals/restore/name/NameOld.vue +86 -0
- package/components/common/pages/backups/modals/restore/networks/Networks.vue +64 -70
- package/components/common/pages/backups/modals/restore/networks/NetworksNew.vue +78 -0
- package/components/common/pages/backups/modals/restore/networks/NetworksOld.vue +48 -0
- package/components/common/pages/backups/modals/restore/networks/table/new/Table.vue +269 -0
- package/components/common/pages/backups/modals/restore/networks/table/new/lib/config/table.ts +127 -0
- package/components/common/pages/backups/modals/restore/networks/table/{Table.vue → old/Table.vue} +219 -214
- package/components/common/pages/backups/modals/restore/networks/table/{adapterType → old/adapterType}/AdapterType.vue +1 -1
- package/components/common/pages/backups/modals/restore/networks/table/{lib → old/lib}/config/networkTable.ts +1 -1
- package/components/common/pages/backups/modals/restore/networks/table/old/lib/config/tableKeys.ts +8 -0
- package/components/common/pages/backups/modals/restore/types/Types.vue +9 -50
- package/components/common/pages/backups/modals/restore/types/TypesNew.vue +95 -0
- package/components/common/pages/backups/modals/restore/types/TypesOld.vue +61 -0
- package/components/common/pages/backups/modals/restore/types/lib/config/descriptions.ts +1 -0
- package/components/common/pages/backups/modals/restore/types/lib/config/typeOptions.ts +25 -25
- package/components/common/pages/backups/modals/restore/validation/validation.ts +108 -0
- package/components/common/pages/hardwareHealth/tableView/lib/config/sensorTable.ts +1 -1
- package/components/common/pages/hardwareHealth/tableView/modal/SensorWarning.vue +1 -1
- package/components/common/tooltip/Help.vue +5 -0
- package/package.json +1 -1
- package/components/common/pages/backups/modals/restore/networks/table/lib/config/tableKeys.ts +0 -10
- /package/components/common/pages/backups/modals/restore/networks/table/{adapterType → old/adapterType}/lib/config/options.ts +0 -0
- /package/components/common/pages/backups/modals/restore/networks/table/{lib → old/lib}/models/types.ts +0 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="basics-step-row">
|
|
3
|
+
<div class="basics-step-row-title">
|
|
4
|
+
<span class="basics-step-row-title-text">
|
|
5
|
+
{{ localization.common.virtualMachineName }}
|
|
6
|
+
</span>
|
|
7
|
+
</div>
|
|
8
|
+
<div class="basics-step-row-content">
|
|
9
|
+
<ui-input
|
|
10
|
+
id="vm-backup-name-input"
|
|
11
|
+
v-model="model.pvm.name"
|
|
12
|
+
:placeholder="localization.common.name"
|
|
13
|
+
:error="props.messagesFields?.name.field"
|
|
14
|
+
test-id="vm-backup-name-input"
|
|
15
|
+
/>
|
|
16
|
+
</div>
|
|
17
|
+
</div>
|
|
18
|
+
</template>
|
|
19
|
+
<script setup lang="ts">
|
|
20
|
+
import type { UI_I_ErrorFields } from '~/node_modules/bfg-uikit/components/ui/wizard/lib/models/interfaces'
|
|
21
|
+
import type { UI_I_RestoreForm } from '~/components/common/pages/backups/modals/lib/models/interfaces'
|
|
22
|
+
import type { UI_I_ArbitraryObject } from '~/lib/models/interfaces'
|
|
23
|
+
import type { UI_I_Localization } from '~/lib/models/interfaces'
|
|
24
|
+
|
|
25
|
+
const model = defineModel<UI_I_RestoreForm>({ required: true })
|
|
26
|
+
|
|
27
|
+
const props = defineProps<{
|
|
28
|
+
messagesFields: UI_I_ArbitraryObject<UI_I_ErrorFields>
|
|
29
|
+
}>()
|
|
30
|
+
|
|
31
|
+
const localization = computed<UI_I_Localization>(() => useLocal())
|
|
32
|
+
</script>
|
|
33
|
+
<style scoped lang="scss">
|
|
34
|
+
.basics-step {
|
|
35
|
+
&-row {
|
|
36
|
+
min-height: 36px;
|
|
37
|
+
width: 100%;
|
|
38
|
+
display: flex;
|
|
39
|
+
column-gap: 16px;
|
|
40
|
+
align-items: center;
|
|
41
|
+
|
|
42
|
+
&-title {
|
|
43
|
+
padding-top: 8px;
|
|
44
|
+
max-width: 240px;
|
|
45
|
+
width: 100%;
|
|
46
|
+
display: flex;
|
|
47
|
+
align-items: center;
|
|
48
|
+
column-gap: 8px;
|
|
49
|
+
font-weight: 400;
|
|
50
|
+
font-size: 13px;
|
|
51
|
+
line-height: 20px;
|
|
52
|
+
letter-spacing: 0;
|
|
53
|
+
vertical-align: middle;
|
|
54
|
+
align-self: flex-start;
|
|
55
|
+
color: var(--wizard-content-title);
|
|
56
|
+
white-space: nowrap;
|
|
57
|
+
text-overflow: ellipsis;
|
|
58
|
+
overflow: hidden;
|
|
59
|
+
|
|
60
|
+
&-text {
|
|
61
|
+
display: block;
|
|
62
|
+
white-space: nowrap;
|
|
63
|
+
text-overflow: ellipsis;
|
|
64
|
+
overflow: hidden;
|
|
65
|
+
text-transform: capitalize;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
&-content {
|
|
70
|
+
max-width: 480px;
|
|
71
|
+
width: 100%;
|
|
72
|
+
font-weight: 400;
|
|
73
|
+
font-size: 13px;
|
|
74
|
+
line-height: 20px;
|
|
75
|
+
letter-spacing: 0;
|
|
76
|
+
vertical-align: middle;
|
|
77
|
+
color: var(--wizard-content-value);
|
|
78
|
+
|
|
79
|
+
&-text {
|
|
80
|
+
display: flex;
|
|
81
|
+
column-gap: 8px;
|
|
82
|
+
align-items: center;
|
|
83
|
+
|
|
84
|
+
&-icon {
|
|
85
|
+
width: 20px;
|
|
86
|
+
min-width: 20px;
|
|
87
|
+
height: 20px;
|
|
88
|
+
min-height: 20px;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
&-switch-container {
|
|
93
|
+
width: fit-content;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
</style>
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="select-name">
|
|
3
|
+
<form
|
|
4
|
+
id="virtual-machine-form"
|
|
5
|
+
class="flex items-center pt-5"
|
|
6
|
+
@submit.prevent
|
|
7
|
+
>
|
|
8
|
+
<label for="virtual-machine-name"
|
|
9
|
+
>{{ localization.common.virtualMachineName }}:</label
|
|
10
|
+
>
|
|
11
|
+
<input
|
|
12
|
+
id="virtual-machine-name"
|
|
13
|
+
v-model.trim="model.pvm.name"
|
|
14
|
+
data-id="virtual-machine-name-input"
|
|
15
|
+
type="text"
|
|
16
|
+
maxlength="54"
|
|
17
|
+
/>
|
|
18
|
+
</form>
|
|
19
|
+
</div>
|
|
20
|
+
</template>
|
|
21
|
+
|
|
22
|
+
<script setup lang="ts">
|
|
23
|
+
import type { UI_I_Localization } from '~/lib/models/interfaces'
|
|
24
|
+
import type { UI_I_RestoreForm } from '~/components/common/pages/backups/modals/lib/models/interfaces'
|
|
25
|
+
|
|
26
|
+
const model = defineModel<UI_I_RestoreForm>({ required: true })
|
|
27
|
+
|
|
28
|
+
const props = defineProps<{
|
|
29
|
+
show: boolean
|
|
30
|
+
}>()
|
|
31
|
+
|
|
32
|
+
const localization = computed<UI_I_Localization>(() => useLocal())
|
|
33
|
+
|
|
34
|
+
watch(
|
|
35
|
+
() => props.show,
|
|
36
|
+
(newValue) => {
|
|
37
|
+
if (!newValue) return
|
|
38
|
+
|
|
39
|
+
const input = document.getElementById('virtual-machine-name')
|
|
40
|
+
if (!input) return
|
|
41
|
+
|
|
42
|
+
setTimeout(() => {
|
|
43
|
+
input.focus()
|
|
44
|
+
}, 0)
|
|
45
|
+
}
|
|
46
|
+
)
|
|
47
|
+
</script>
|
|
48
|
+
|
|
49
|
+
<style scoped lang="scss">
|
|
50
|
+
.select-name {
|
|
51
|
+
form {
|
|
52
|
+
label {
|
|
53
|
+
width: 216px;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
input {
|
|
57
|
+
width: 345px;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.tree-view-wrap {
|
|
62
|
+
position: relative;
|
|
63
|
+
border: 1px solid #000;
|
|
64
|
+
padding: 5px;
|
|
65
|
+
max-height: 300px;
|
|
66
|
+
min-height: 200px;
|
|
67
|
+
overflow: auto;
|
|
68
|
+
margin-bottom: 10px;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.content-signpost {
|
|
73
|
+
.icon-show-help {
|
|
74
|
+
cursor: pointer;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.help-title {
|
|
78
|
+
font-size: 22px;
|
|
79
|
+
margin-bottom: 24px;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.signpost {
|
|
83
|
+
max-width: 360px;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
</style>
|
|
@@ -1,70 +1,64 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
emits('
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
66
|
-
.vm-migrate-advanced-view-button {
|
|
67
|
-
text-align: end;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
</style>
|
|
1
|
+
<template>
|
|
2
|
+
<common-pages-backups-modals-restore-networks-new
|
|
3
|
+
v-if="isNewView"
|
|
4
|
+
v-model="model"
|
|
5
|
+
:alert-messages="props.alertMessages"
|
|
6
|
+
:networks="props.networks"
|
|
7
|
+
:networks-loading="networkTableLoading"
|
|
8
|
+
/>
|
|
9
|
+
<common-pages-backups-modals-restore-networks-old
|
|
10
|
+
v-else
|
|
11
|
+
v-model="model"
|
|
12
|
+
:alert-messages="props.alertMessages"
|
|
13
|
+
:networks="props.networks"
|
|
14
|
+
:networks-loading="networkTableLoading"
|
|
15
|
+
@hide-alert="onHideAlert"
|
|
16
|
+
/>
|
|
17
|
+
</template>
|
|
18
|
+
|
|
19
|
+
<script lang="ts" setup>
|
|
20
|
+
import type { UI_I_Localization } from '~/lib/models/interfaces'
|
|
21
|
+
import type { UI_I_NetworkTableItem } from '~/lib/models/store/network/interfaces'
|
|
22
|
+
import type { UI_I_RestoreForm } from '~/components/common/pages/backups/modals/lib/models/interfaces'
|
|
23
|
+
|
|
24
|
+
const model = defineModel<UI_I_RestoreForm>({ required: true })
|
|
25
|
+
const props = defineProps<{
|
|
26
|
+
alertMessages: string[]
|
|
27
|
+
networks: UI_I_NetworkTableItem[]
|
|
28
|
+
}>()
|
|
29
|
+
const emits = defineEmits<{
|
|
30
|
+
(event: 'get-networks', value: string): void
|
|
31
|
+
(event: 'hide-alert'): void
|
|
32
|
+
}>()
|
|
33
|
+
|
|
34
|
+
const { $store }: any = useNuxtApp()
|
|
35
|
+
|
|
36
|
+
const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
|
|
37
|
+
|
|
38
|
+
const networkTableLoading = ref<boolean>(false)
|
|
39
|
+
const getNetworks = async (): Promise<void> => {
|
|
40
|
+
networkTableLoading.value = true
|
|
41
|
+
emits('get-networks', model.value.pvm.host_id || '')
|
|
42
|
+
networkTableLoading.value = false
|
|
43
|
+
}
|
|
44
|
+
getNetworks()
|
|
45
|
+
|
|
46
|
+
const onHideAlert = (): void => {
|
|
47
|
+
emits('hide-alert')
|
|
48
|
+
}
|
|
49
|
+
</script>
|
|
50
|
+
|
|
51
|
+
<style lang="scss" scoped>
|
|
52
|
+
.select-network {
|
|
53
|
+
margin-top: 10px;
|
|
54
|
+
&__text {
|
|
55
|
+
font-size: 12px;
|
|
56
|
+
}
|
|
57
|
+
&__matcher-details {
|
|
58
|
+
margin-top: 10px;
|
|
59
|
+
}
|
|
60
|
+
.vm-migrate-advanced-view-button {
|
|
61
|
+
text-align: end;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
</style>
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<common-pages-backups-modals-restore-networks-table-new-table
|
|
3
|
+
v-model="model"
|
|
4
|
+
:networks="model.pvm.network_devices"
|
|
5
|
+
:source-networks="props.networks"
|
|
6
|
+
:networks-loading="props.networksLoading"
|
|
7
|
+
/>
|
|
8
|
+
|
|
9
|
+
<div class="assignment-validation mt-6">
|
|
10
|
+
<h2 class="assignment-validation__title">
|
|
11
|
+
{{ localization.common.compatibility }}
|
|
12
|
+
</h2>
|
|
13
|
+
|
|
14
|
+
<div
|
|
15
|
+
:class="[
|
|
16
|
+
'assignment-validation__message flex items-center',
|
|
17
|
+
!selectedLicense && 'no-selected',
|
|
18
|
+
]"
|
|
19
|
+
>
|
|
20
|
+
<ui-icon
|
|
21
|
+
name="success-fill-2"
|
|
22
|
+
width="16"
|
|
23
|
+
height="16"
|
|
24
|
+
class="assignment-validation__icon"
|
|
25
|
+
/>
|
|
26
|
+
{{ localization.common.compatibilityChecksSucceeded }}
|
|
27
|
+
</div>
|
|
28
|
+
</div>
|
|
29
|
+
</template>
|
|
30
|
+
<script setup lang="ts">
|
|
31
|
+
import type { UI_I_Localization } from '~/lib/models/interfaces'
|
|
32
|
+
import type { UI_I_NetworkTableItem } from '~/lib/models/store/network/interfaces'
|
|
33
|
+
import type { UI_I_RestoreForm } from '~/components/common/pages/backups/modals/lib/models/interfaces'
|
|
34
|
+
|
|
35
|
+
const model = defineModel<UI_I_RestoreForm>({ required: true })
|
|
36
|
+
|
|
37
|
+
const props = defineProps<{
|
|
38
|
+
alertMessages: string[]
|
|
39
|
+
networks: UI_I_NetworkTableItem[]
|
|
40
|
+
networksLoading: boolean
|
|
41
|
+
}>()
|
|
42
|
+
|
|
43
|
+
const localization = computed<UI_I_Localization>(() => useLocal())
|
|
44
|
+
|
|
45
|
+
const selectedLicense = ref<boolean>(true)
|
|
46
|
+
</script>
|
|
47
|
+
<style scoped lang="scss">
|
|
48
|
+
.assignment-validation {
|
|
49
|
+
&__title {
|
|
50
|
+
font-size: 16px;
|
|
51
|
+
font-weight: 500;
|
|
52
|
+
color: var(--select-storage-title-color);
|
|
53
|
+
margin-bottom: 16px;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
&__message {
|
|
57
|
+
font-family: 'Inter', sans-serif;
|
|
58
|
+
color: var(--title-form-first-color);
|
|
59
|
+
background-color: var(--select-bg);
|
|
60
|
+
border: 1px solid var(--line-color);
|
|
61
|
+
font-weight: 400;
|
|
62
|
+
font-size: 13px;
|
|
63
|
+
line-height: 100%;
|
|
64
|
+
vertical-align: middle;
|
|
65
|
+
border-radius: 8px;
|
|
66
|
+
padding: 12px;
|
|
67
|
+
column-gap: 12px;
|
|
68
|
+
|
|
69
|
+
&.no-selected {
|
|
70
|
+
color: #9da6ad; // for light and dark mode
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
&__icon {
|
|
75
|
+
min-width: 16px;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
</style>
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="select-network h-full flex flex-col">
|
|
3
|
+
<atoms-alert
|
|
4
|
+
v-if="props.alertMessages.length"
|
|
5
|
+
:items="props.alertMessages"
|
|
6
|
+
status="alert-danger"
|
|
7
|
+
test-id="import-vms-select-networks-errors"
|
|
8
|
+
@remove="onHideAlert"
|
|
9
|
+
/>
|
|
10
|
+
|
|
11
|
+
<common-pages-backups-modals-restore-networks-table-old-table
|
|
12
|
+
v-model="model"
|
|
13
|
+
:networks-table="model.pvm.network_devices"
|
|
14
|
+
:source-networks="props.networks"
|
|
15
|
+
:loading="props.networksLoading"
|
|
16
|
+
@hide-alert="onHideAlert"
|
|
17
|
+
/>
|
|
18
|
+
|
|
19
|
+
<common-wizards-common-steps-compute-resource-compatibility
|
|
20
|
+
:loading="!model.pvm.network_devices.length"
|
|
21
|
+
:text="localization.common.compatibilityChecksSucceeded"
|
|
22
|
+
status="success"
|
|
23
|
+
/>
|
|
24
|
+
</div>
|
|
25
|
+
</template>
|
|
26
|
+
<script setup lang="ts">
|
|
27
|
+
import type { UI_I_NetworkTableItem } from '~/lib/models/store/network/interfaces'
|
|
28
|
+
import type { UI_I_RestoreForm } from '~/components/common/pages/backups/modals/lib/models/interfaces'
|
|
29
|
+
import type {UI_I_Localization} from "~/lib/models/interfaces";
|
|
30
|
+
|
|
31
|
+
const model = defineModel<UI_I_RestoreForm>({ required: true })
|
|
32
|
+
const props = defineProps<{
|
|
33
|
+
alertMessages: string[]
|
|
34
|
+
networks: UI_I_NetworkTableItem[]
|
|
35
|
+
networksLoading: boolean
|
|
36
|
+
}>()
|
|
37
|
+
const emits = defineEmits<{
|
|
38
|
+
(event: 'hide-alert'): void
|
|
39
|
+
}>()
|
|
40
|
+
|
|
41
|
+
const localization = computed<UI_I_Localization>(() => useLocal())
|
|
42
|
+
|
|
43
|
+
const onHideAlert = (): void => {
|
|
44
|
+
emits('hide-alert')
|
|
45
|
+
}
|
|
46
|
+
</script>
|
|
47
|
+
|
|
48
|
+
<style scoped lang="scss"></style>
|