Browse Source

refactoring

pull/11861/head
mpetrov 2 years ago
parent
commit
107c95fbe2
  1. 3
      ui-ngx/src/app/modules/home/pages/rulechain/debug-duration-left.pipe.ts
  2. 12
      ui-ngx/src/app/shared/pipe/milliseconds-to-time-string.pipe.ts

3
ui-ngx/src/app/modules/home/pages/rulechain/debug-duration-left.pipe.ts

@ -28,12 +28,13 @@ export class DebugDurationLeftPipe implements PipeTransform {
constructor(private translate: TranslateService, private millisecondsToTimeString: MillisecondsToTimeStringPipe) {
}
transform(lastUpdateTs: number, maxRuleNodeDebugDurationMinutes: number): string {
const time = this.millisecondsToTimeString.transform(this.getDebugTime(lastUpdateTs, maxRuleNodeDebugDurationMinutes), true, true);
return `${time} ` + this.translate.instant('common.left');
}
getDebugTime(lastUpdateTs: number, maxRuleNodeDebugDurationMinutes: number): number {
private getDebugTime(lastUpdateTs: number, maxRuleNodeDebugDurationMinutes: number): number {
const maxDuration = maxRuleNodeDebugDurationMinutes * MINUTE;
const updateDuration = lastUpdateTs ? new Date().getTime() - lastUpdateTs : 0;
const leftTime = maxDuration - updateDuration;

12
ui-ngx/src/app/shared/pipe/milliseconds-to-time-string.pipe.ts

@ -16,6 +16,7 @@
import { Pipe, PipeTransform } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';
import { DAY, HOUR, MINUTE, SECOND } from '@shared/models/time/time.models';
@Pipe({
name: 'milliSecondsToTimeString'
@ -24,17 +25,18 @@ export class MillisecondsToTimeStringPipe implements PipeTransform {
constructor(private translate: TranslateService) {
}
transform(millseconds: number, shortFormat = false, onlyFirstDigit = false): string {
const { days, hours, minutes, seconds } = this.extractTimeUnits(millseconds);
return this.formatTimeString(days, hours, minutes, seconds, shortFormat, onlyFirstDigit);
}
private extractTimeUnits(milliseconds: number): { days: number; hours: number; minutes: number; seconds: number } {
const seconds = Math.floor(milliseconds / 1000);
const days = Math.floor(seconds / 86400);
const hours = Math.floor((seconds % 86400) / 3600);
const minutes = Math.floor(((seconds % 86400) % 3600) / 60);
return { days, hours, minutes, seconds: seconds % 60 };
const days = Math.floor(milliseconds / DAY);
const hours = Math.floor((milliseconds % DAY) / HOUR);
const minutes = Math.floor((milliseconds % HOUR) / MINUTE);
const seconds = Math.floor((milliseconds % MINUTE) / SECOND);
return { days, hours, minutes, seconds };
}
private formatTimeString(

Loading…
Cancel
Save