mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-25 17:23:10 -05:00
Fixing bug where if copy duration went over 24h it would reset to 00:00:00 (#23290)
* Fixing bug where if copy duration went over 24h it would reset to 00:00:00
This commit is contained in:
@@ -101,7 +101,7 @@ const _dateFormatter = new Intl.DateTimeFormat(
|
||||
second: '2-digit'
|
||||
});
|
||||
|
||||
const _numberFormatter = new Intl.NumberFormat(
|
||||
const _numberFormatterOneMinIntegers = new Intl.NumberFormat(
|
||||
undefined, {
|
||||
style: 'decimal',
|
||||
useGrouping: true,
|
||||
@@ -110,6 +110,31 @@ const _numberFormatter = new Intl.NumberFormat(
|
||||
maximumFractionDigits: 0,
|
||||
});
|
||||
|
||||
const _numberFormatterTwoMinIntegers = new Intl.NumberFormat(
|
||||
undefined, {
|
||||
style: 'decimal',
|
||||
useGrouping: true,
|
||||
minimumIntegerDigits: 2,
|
||||
minimumFractionDigits: 0,
|
||||
maximumFractionDigits: 0,
|
||||
});
|
||||
|
||||
export function formatSecondsIntoReadableTime(seconds: number) {
|
||||
const hours = seconds / (60 * 60);
|
||||
const absoluteHours = Math.floor(hours);
|
||||
const h = _numberFormatterTwoMinIntegers.format(absoluteHours);
|
||||
|
||||
const minutesRemaining = (hours - absoluteHours) * 60;
|
||||
const absoluteMinutes = Math.floor(minutesRemaining);
|
||||
const m = _numberFormatterTwoMinIntegers.format(absoluteMinutes);
|
||||
|
||||
const secondsRemaining = (minutesRemaining - absoluteMinutes) * 60;
|
||||
const absoluteSeconds = Math.floor(secondsRemaining);
|
||||
const s = _numberFormatterTwoMinIntegers.format(absoluteSeconds);
|
||||
|
||||
return h + ':' + m + ':' + s;
|
||||
}
|
||||
|
||||
export function formatDateTimeString(dateTime: string): string {
|
||||
return dateTime
|
||||
? _dateFormatter.format(new Date(dateTime))
|
||||
@@ -129,7 +154,7 @@ export function formatTime(miliseconds: number): string {
|
||||
|
||||
export function formatNumber(value: number): string {
|
||||
return value >= 0
|
||||
? _numberFormatter.format(value)
|
||||
? _numberFormatterOneMinIntegers.format(value)
|
||||
: '';
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ import * as vscode from 'vscode';
|
||||
import * as loc from '../constants/strings';
|
||||
import { getMigrationStatusImage, getPipelineStatusImage } from '../api/utils';
|
||||
import { logError, TelemetryViews } from '../telemetry';
|
||||
import { canCancelMigration, canCutoverMigration, canDeleteMigration, canRestartMigrationWizard, canRetryMigration, formatDateTimeString, formatNumber, formatSizeBytes, formatSizeKb, formatTime, getMigrationStatusString, getMigrationTargetTypeEnum, isOfflineMigation, PipelineStatusCodes } from '../constants/helper';
|
||||
import { canCancelMigration, canCutoverMigration, canDeleteMigration, canRestartMigrationWizard, canRetryMigration, formatDateTimeString, formatNumber, formatSecondsIntoReadableTime, formatSizeBytes, formatSizeKb, getMigrationStatusString, getMigrationTargetTypeEnum, isOfflineMigation, PipelineStatusCodes } from '../constants/helper';
|
||||
import { CopyProgressDetail, getResourceName } from '../api/azure';
|
||||
import { InfoFieldSchema, MigrationDetailsTabBase, MigrationTargetTypeName } from './migrationDetailsTabBase';
|
||||
import { IconPathHelper } from '../constants/iconPathHelper';
|
||||
@@ -355,7 +355,7 @@ export class MigrationDetailsTableTab extends MigrationDetailsTabBase<MigrationD
|
||||
formatNumber(d.rowsRead),
|
||||
formatNumber(d.rowsCopied),
|
||||
formatSizeKb(d.copyThroughput),
|
||||
formatTime((d.copyDuration ?? 0) * 1000),
|
||||
formatSecondsIntoReadableTime((d.copyDuration ?? 0)),
|
||||
loc.ParallelCopyType[d.parallelCopyType] ?? d.parallelCopyType,
|
||||
d.usedParallelCopies,
|
||||
formatDateTimeString(d.copyStart),
|
||||
|
||||
Reference in New Issue
Block a user