AltitudeWeb/frontend/src/app/bans/history/history.component.ts
Peter 9076f6d150 Styling and date changes on punishment page
Some styling changes for the punishments page. Also changes how the dates are displayed - they should display differently depending on what region you're in.
2025-04-11 23:35:57 +02:00

81 lines
2.1 KiB
TypeScript

import {Component, Input, OnChanges, OnInit} from '@angular/core';
import {BASE_PATH, HistoryService, PunishmentHistoryInner} from '../../../api';
import {map, shareReplay} from 'rxjs';
import {NgForOf, NgIf} from '@angular/common';
import {CookieService} from 'ngx-cookie-service';
@Component({
selector: 'app-history',
imports: [
NgIf,
NgForOf
],
templateUrl: './history.component.html',
styleUrl: './history.component.scss',
providers: [
CookieService,
{provide: BASE_PATH, useValue: 'http://localhost:8080/'}
],
})
export class HistoryComponent implements OnInit, OnChanges {
@Input() userType: 'player' | 'staff' = "player";
@Input() punishmentType: 'all' | 'ban' | 'mute' | 'kick' | 'warn' = "all";
public history: PunishmentHistoryInner[] = []
constructor(private historyApi: HistoryService) {
}
ngOnChanges(): void {
this.reloadHistory();
}
ngOnInit(): void {
this.reloadHistory();
}
private reloadHistory(): void {
console.log('userType', this.userType);
console.log('punishmentType', this.punishmentType);
this.historyApi.getHistoryForAll(this.userType, this.punishmentType, 0).pipe(
map(history => {
this.history = history;
console.log("HI");
console.log(history);
history.forEach(history => {
console.log(history);
});
}),
shareReplay(1)
).subscribe();
}
public getPunishmentTime(entry: PunishmentHistoryInner) {
const date = new Date(entry.punishmentTime);
return date.toLocaleString(navigator.language, {
year: 'numeric',
month: 'short',
day: 'numeric',
hour: '2-digit',
minute: '2-digit',
hour12: false
});
}
public getExpiredTime(entry: PunishmentHistoryInner) {
if (entry.expiryTime === 0) {
return "Permanent " + entry.type.charAt(0).toUpperCase() + entry.type.slice(1);
}
const date = new Date(entry.punishmentTime + entry.expiryTime);
return date.toLocaleString(navigator.language, {
year: 'numeric',
month: 'short',
day: 'numeric',
hour: '2-digit',
minute: '2-digit',
hour12: false
});
}
}