Added live refresh to admin UI
- Added lastLogin UI - Added operational time
This commit is contained in:
45
frontend/src/app/relative-time.pipe.ts
Normal file
45
frontend/src/app/relative-time.pipe.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
import { Pipe, PipeTransform } from '@angular/core';
|
||||
|
||||
@Pipe({
|
||||
name: 'relativeTime',
|
||||
standalone: true,
|
||||
pure: false
|
||||
})
|
||||
export class RelativeTimePipe implements PipeTransform {
|
||||
|
||||
transform(value: string): string {
|
||||
if (!value) {
|
||||
return '';
|
||||
}
|
||||
|
||||
const now = new Date();
|
||||
const past = new Date(value);
|
||||
const elapsed = now.getTime() - past.getTime();
|
||||
|
||||
const msPerSecond = 1000;
|
||||
const msPerMinute = msPerSecond * 60;
|
||||
const msPerHour = msPerMinute * 60;
|
||||
const msPerDay = msPerHour * 24;
|
||||
const msPerWeek = msPerDay * 7;
|
||||
const msPerMonth = msPerDay * 30;
|
||||
const msPerYear = msPerDay * 365;
|
||||
|
||||
if (elapsed < msPerSecond) {
|
||||
return 'just now';
|
||||
} else if (elapsed < msPerMinute) {
|
||||
return `${Math.round(elapsed / msPerSecond)} seconds ago`;
|
||||
} else if (elapsed < msPerHour) {
|
||||
return `${Math.round(elapsed / msPerMinute)} minutes ago`;
|
||||
} else if (elapsed < msPerDay) {
|
||||
return `${Math.round(elapsed / msPerHour)} hours ago`;
|
||||
} else if (elapsed < msPerWeek) {
|
||||
return `${Math.round(elapsed / msPerDay)} days ago`;
|
||||
} else if (elapsed < msPerMonth) {
|
||||
return `${Math.round(elapsed / msPerWeek)} weeks ago`;
|
||||
} else if (elapsed < msPerYear) {
|
||||
return `${Math.round(elapsed / msPerMonth)} months ago`;
|
||||
} else {
|
||||
return `${Math.round(elapsed / msPerYear)} years ago`;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user