import {AbstractSearchTable} from "../internal-components/abstract-search-table.component"; import {SearchFilter} from "../../entities/search/SearchFilter"; import {AuthService} from "../../services/auth.service"; import {ServerService} from "../../services/server.service"; import {PlayerService} from "../../services/player.service"; import {ActivatedRoute, Router} from "@angular/router"; import {VipService} from "../../services/vip.service"; import {HttpClient} from "@angular/common/http"; import {map} from "rxjs"; import {PagingAndSortingPaginator} from "../../entities/PagingAndSortingPaginator"; import {KillFeedSearchFilter} from "../../entities/search/KillFeedSearchFilter"; import {KillFeed} from "../../entities/KillFeed"; import {MatTableDataSource} from "@angular/material/table"; import {Component} from "@angular/core"; import {DefaultValues} from "../../utils/DefaultValues"; import {MatDialog} from "@angular/material/dialog"; import {AuthDialogRequest} from "../internal-components/dialogs/AuthDialogRequest"; @Component({ selector: 'app-killfeed-search-table', template: `
Искать по... Обновить
Слишком много запросов или сервер не отвечает, обнови страницу.
Убийца {{row.attacker_name}} Помог {{row.assister_name}} Умер {{row.victim_name}} Время {{row.utime * 1000 | date:"HH:mm dd/MM/yyyy"}} Оружие {{row.weapon_name}} Сервер {{row.serverName}}
А вот и такое бывает...
` }) export class KillFeedSearchTable extends AbstractSearchTable { displayedColumns: string[] = ['attacker_name', 'assister_name', 'victim_name', 'date', 'weapon', 'server']; constructor(authService: AuthService, serverService: ServerService, playerService: PlayerService, router: Router, route: ActivatedRoute, private http: HttpClient, private dialog: MatDialog) { super(authService, serverService, playerService, route, router); super.filter = new KillFeedSearchFilter(); } private getStat() { this.filter.updated = false; this.loading = true; this.http.post(`api/profile/killfeed`, this.filter, {params: {size: this.paginator?this.paginator.pageSize:DefaultValues.pageSize, page: this.paginator?this.paginator.pageIndex:0, mode: this.filter.mode } }).pipe((map((res) => PagingAndSortingPaginator.newObj().fromData(res).updatePaginator(this.paginator)))) .subscribe((res) => { this.dataSource = new MatTableDataSource(res.data); this.err = false; }, (e) => { this.loading = false; this.paginator?.previousPage(); switch (e.status) { case 401: { this.dialog.open(AuthDialogRequest); break; } default: { this.err = true; break; } } }, () => this.loading = false ) } override updateData() { if (this.lazy) return; super.updateData(); this.getStat(); } lazyInit() { if (this.lazy) { this.lazy = false; this.updateData(); } } }