mirror of
https://github.com/harvester/harvester-ui-extension.git
synced 2026-08-16 12:49:14 +00:00
feat(forklift): small fixes after Copilot
Signed-off-by: Marcelo Fukumoto <marcelo.fukumoto@suse.com>
This commit is contained in:
parent
b4210037e9
commit
a180372564
@ -260,9 +260,9 @@ const formatStorageDetail = (entry) => {
|
|||||||
const gb = entry.capacity / (1024 * 1024 * 1024);
|
const gb = entry.capacity / (1024 * 1024 * 1024);
|
||||||
|
|
||||||
if (gb >= 1024) {
|
if (gb >= 1024) {
|
||||||
parts.push(`${ (gb / 1024).toFixed(1) } TB`);
|
parts.push(t('harvester.addons.vmMigration.generic.memoryTb', { value: (gb / 1024).toFixed(1) }));
|
||||||
} else {
|
} else {
|
||||||
parts.push(`${ Math.round(gb) } GB`);
|
parts.push(t('harvester.addons.vmMigration.generic.memoryGb', { value: Math.round(gb) }));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -532,7 +532,7 @@ init();
|
|||||||
:clearable="useAllProviderData"
|
:clearable="useAllProviderData"
|
||||||
>
|
>
|
||||||
<template #source-detail="{ entry }">
|
<template #source-detail="{ entry }">
|
||||||
<span class="source-detail text-deemphasized">VLAN {{ entry.vlanId || '0' }}</span>
|
<span class="source-detail text-deemphasized">{{ t('harvester.addons.vmMigration.generic.vlan', { id: entry.vlanId || '0' }) }}</span>
|
||||||
</template>
|
</template>
|
||||||
</MappingColumn>
|
</MappingColumn>
|
||||||
|
|
||||||
|
|||||||
@ -93,7 +93,7 @@ const selectOptions = computed(() => {
|
|||||||
</div>
|
</div>
|
||||||
<div v-if="showUsedBy && entry.usedBy && entry.usedBy.length">
|
<div v-if="showUsedBy && entry.usedBy && entry.usedBy.length">
|
||||||
<span class="used-by">
|
<span class="used-by">
|
||||||
Used by: <b>{{ entry.usedBy.join(', ') }}</b>
|
{{ t('harvester.addons.vmMigration.generic.usedBy') }} <b>{{ entry.usedBy.join(', ') }}</b>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -66,7 +66,7 @@ const vmCards = computed(() => {
|
|||||||
return vms.value.map((vm) => {
|
return vms.value.map((vm) => {
|
||||||
const cpus = vm.cpuCount || vm.numCPU || 0;
|
const cpus = vm.cpuCount || vm.numCPU || 0;
|
||||||
const memMB = vm.memoryMB || vm.memory || 0;
|
const memMB = vm.memoryMB || vm.memory || 0;
|
||||||
const memGB = memMB ? `${ Math.round(memMB / 1024) } GB` : '-';
|
const memGB = memMB ? t('harvester.addons.vmMigration.generic.memoryGb', { value: Math.round(memMB / 1024) }) : '-';
|
||||||
|
|
||||||
let totalDiskBytes = 0;
|
let totalDiskBytes = 0;
|
||||||
|
|
||||||
@ -74,7 +74,7 @@ const vmCards = computed(() => {
|
|||||||
totalDiskBytes = vm.disks.reduce((sum, d) => sum + (d.capacity || 0), 0);
|
totalDiskBytes = vm.disks.reduce((sum, d) => sum + (d.capacity || 0), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
const diskDisplay = totalDiskBytes ? `${ Math.round(totalDiskBytes / (1024 * 1024 * 1024)) } GB` : '-';
|
const diskDisplay = totalDiskBytes ? t('harvester.addons.vmMigration.generic.memoryGb', { value: Math.round(totalDiskBytes / (1024 * 1024 * 1024)) }) : '-';
|
||||||
const os = vm.guestName || vm.guestOS || vm.os || '-';
|
const os = vm.guestName || vm.guestOS || vm.os || '-';
|
||||||
|
|
||||||
const vmNetworkMappings = networkMappings.value.filter((m) => m.usedBy && m.usedBy.includes(vm.name || vm.id));
|
const vmNetworkMappings = networkMappings.value.filter((m) => m.usedBy && m.usedBy.includes(vm.name || vm.id));
|
||||||
@ -301,11 +301,11 @@ defineExpose({ startMigration: startMigrationAction });
|
|||||||
</div>
|
</div>
|
||||||
<div class="detail-item">
|
<div class="detail-item">
|
||||||
<span class="detail-label">{{ t('harvester.addons.vmMigration.reviewMigration.memory') }}</span>
|
<span class="detail-label">{{ t('harvester.addons.vmMigration.reviewMigration.memory') }}</span>
|
||||||
<span class="detail-value">{{ totalMemoryGB }} GB</span>
|
<span class="detail-value">{{ t('harvester.addons.vmMigration.generic.memoryGb', { value: totalMemoryGB }) }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="detail-item">
|
<div class="detail-item">
|
||||||
<span class="detail-label">{{ t('harvester.addons.vmMigration.reviewMigration.storage') }}</span>
|
<span class="detail-label">{{ t('harvester.addons.vmMigration.reviewMigration.storage') }}</span>
|
||||||
<span class="detail-value">{{ totalStorageGB }} GB</span>
|
<span class="detail-value">{{ t('harvester.addons.vmMigration.generic.memoryGb', { value: totalStorageGB }) }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="detail-column grid-column-2">
|
<div class="detail-column grid-column-2">
|
||||||
@ -344,7 +344,7 @@ defineExpose({ startMigration: startMigrationAction });
|
|||||||
class="icon icon-disk"
|
class="icon icon-disk"
|
||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
/>
|
/>
|
||||||
{{ vm.cpus }} vCPU • {{ vm.memGB }} • {{ vm.diskDisplay }}
|
{{ t('harvester.addons.vmMigration.generic.vCpu', { count: vm.cpus }) }} • {{ vm.memGB }} • {{ vm.diskDisplay }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<MappingsCell
|
<MappingsCell
|
||||||
|
|||||||
@ -41,14 +41,14 @@ const formatElapsed = (ms) => {
|
|||||||
const minutes = totalMinutes % 60;
|
const minutes = totalMinutes % 60;
|
||||||
|
|
||||||
if (hours > 0 && minutes > 0) {
|
if (hours > 0 && minutes > 0) {
|
||||||
return `${ hours } ${ hours === 1 ? 'hour' : 'hours' } and ${ minutes } ${ minutes === 1 ? 'minute' : 'minutes' }`;
|
return t('harvester.addons.vmMigration.generic.elapsed.hoursAndMinutes', { hours, minutes });
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hours > 0) {
|
if (hours > 0) {
|
||||||
return `${ hours } ${ hours === 1 ? 'hour' : 'hours' }`;
|
return t('harvester.addons.vmMigration.generic.elapsed.hours', { hours });
|
||||||
}
|
}
|
||||||
|
|
||||||
return `${ Math.max(1, minutes) } ${ minutes <= 1 ? 'minute' : 'minutes' }`;
|
return t('harvester.addons.vmMigration.generic.elapsed.minutes', { minutes: Math.max(1, minutes) });
|
||||||
};
|
};
|
||||||
|
|
||||||
const lastSyncedTime = computed(() => {
|
const lastSyncedTime = computed(() => {
|
||||||
@ -158,7 +158,7 @@ const buildTableRows = () => {
|
|||||||
return discoveredVMs.value.map((vm) => {
|
return discoveredVMs.value.map((vm) => {
|
||||||
const cpus = vm.cpuCount || vm.numCPU || '-';
|
const cpus = vm.cpuCount || vm.numCPU || '-';
|
||||||
const memMB = vm.memoryMB || vm.memory || 0;
|
const memMB = vm.memoryMB || vm.memory || 0;
|
||||||
const memGB = memMB ? `${ Math.round(memMB / 1024) } GB` : '-';
|
const memGB = memMB ? t('harvester.addons.vmMigration.generic.memoryGb', { value: Math.round(memMB / 1024) }) : '-';
|
||||||
|
|
||||||
let totalDiskBytes = 0;
|
let totalDiskBytes = 0;
|
||||||
|
|
||||||
@ -166,7 +166,7 @@ const buildTableRows = () => {
|
|||||||
totalDiskBytes = vm.disks.reduce((sum, d) => sum + (d.capacity || 0), 0);
|
totalDiskBytes = vm.disks.reduce((sum, d) => sum + (d.capacity || 0), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
const diskDisplay = totalDiskBytes ? `${ Math.round(totalDiskBytes / (1024 * 1024 * 1024)) } GB` : '-';
|
const diskDisplay = totalDiskBytes ? t('harvester.addons.vmMigration.generic.memoryGb', { value: Math.round(totalDiskBytes / (1024 * 1024 * 1024)) }) : '-';
|
||||||
const rawPowerState = vm.powerState || vm.status?.phase || '-';
|
const rawPowerState = vm.powerState || vm.status?.phase || '-';
|
||||||
const powerState = rawPowerState.replace(/([a-z])([A-Z])/g, '$1 $2').replace(/^./, (c) => c.toUpperCase());
|
const powerState = rawPowerState.replace(/([a-z])([A-Z])/g, '$1 $2').replace(/^./, (c) => c.toUpperCase());
|
||||||
|
|
||||||
@ -206,7 +206,7 @@ const buildTableRows = () => {
|
|||||||
vmName: vm.name || vm.metadata?.name || '-',
|
vmName: vm.name || vm.metadata?.name || '-',
|
||||||
vmId: vm.id || vm.vmId || vm.metadata?.name || '-',
|
vmId: vm.id || vm.vmId || vm.metadata?.name || '-',
|
||||||
os: vm.guestName || vm.guestOS || vm.os || '-',
|
os: vm.guestName || vm.guestOS || vm.os || '-',
|
||||||
resourcesDisplay: `${ cpus } vCPU`,
|
resourcesDisplay: t('harvester.addons.vmMigration.generic.vCpu', { count: cpus }),
|
||||||
resourcesSub: `${ memGB } • ${ diskDisplay }`,
|
resourcesSub: `${ memGB } • ${ diskDisplay }`,
|
||||||
powerState,
|
powerState,
|
||||||
powerStateClass: powerState.toLowerCase().includes('on') || powerState.toLowerCase().includes('running') ? 'power-on' : 'power-off',
|
powerStateClass: powerState.toLowerCase().includes('on') || powerState.toLowerCase().includes('running') ? 'power-on' : 'power-off',
|
||||||
|
|||||||
@ -1817,6 +1817,15 @@ harvester:
|
|||||||
unknown: Unknown
|
unknown: Unknown
|
||||||
identifier: Identifier
|
identifier: Identifier
|
||||||
podNetwork: Pod Network
|
podNetwork: Pod Network
|
||||||
|
usedBy: "Used by:"
|
||||||
|
vlan: "VLAN {id}"
|
||||||
|
vCpu: "{count} vCPU"
|
||||||
|
memoryGb: "{value} GB"
|
||||||
|
memoryTb: "{value} TB"
|
||||||
|
elapsed:
|
||||||
|
hoursAndMinutes: "{hours} {hours, plural, one {hour} other {hours}} and {minutes} {minutes, plural, one {minute} other {minutes}}"
|
||||||
|
hours: "{hours} {hours, plural, one {hour} other {hours}}"
|
||||||
|
minutes: "{minutes} {minutes, plural, one {minute} other {minutes}}"
|
||||||
errors:
|
errors:
|
||||||
failedLoadVms: Failed to load virtual machines
|
failedLoadVms: Failed to load virtual machines
|
||||||
failedRefreshVms: Failed to refresh virtual machines
|
failedRefreshVms: Failed to refresh virtual machines
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user