You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.3 KiB
73 lines
2.3 KiB
import {AfterViewInit, ChangeDetectorRef, Component, OnInit, ViewChild} from '@angular/core';
|
|
import {AuthService} from "../../services/auth.service";
|
|
import {MatTableDataSource} from "@angular/material/table";
|
|
import {MatPaginator, MatPaginatorIntl} from "@angular/material/paginator";
|
|
import {MatSort} from "@angular/material/sort";
|
|
import {Message} from "../../entities/profile/Message";
|
|
import {MessageService} from "../../services/message.service";
|
|
import {AbstractSearchTable} from "../internal-components/abstract-search-table.component";
|
|
import {SearchFilter} from "../../entities/search/SearchFilter";
|
|
import {ServerService} from "../../services/server.service";
|
|
import {MessageSearchFilter} from "../../entities/search/MessageSearchFilter";
|
|
import {PlayerService} from "../../services/player.service";
|
|
import {Router} from "@angular/router";
|
|
|
|
@Component({
|
|
selector: 'app-messages-page',
|
|
templateUrl: './messages-page.component.html',
|
|
styleUrls: ['./messages-page.component.scss']
|
|
})
|
|
export class MessagesPageComponent extends AbstractSearchTable<Message, MessageSearchFilter> {
|
|
|
|
displayedColumns: string[] = ['account_name', 'date', 'message', 'serverName'];
|
|
|
|
constructor(public authService: AuthService,
|
|
private messageService: MessageService,
|
|
protected override serverService: ServerService,
|
|
private playerService: PlayerService,
|
|
private router: Router) {
|
|
super(serverService);
|
|
super.filter = new MessageSearchFilter();
|
|
}
|
|
|
|
getMessages(): boolean {
|
|
this.filter.updated = false;
|
|
this.messageService.getMessages(this.filter, this.paginator).subscribe(
|
|
(res) => {
|
|
this.dataSource = new MatTableDataSource<Message>(res.data);
|
|
}
|
|
)
|
|
return true;
|
|
}
|
|
|
|
override updateData() {
|
|
this.getMessages();
|
|
}
|
|
|
|
addMessageToSearch(name: string) {
|
|
this.filter.message = name;
|
|
this.filter.updated = true;
|
|
}
|
|
|
|
removeMessageFromSearch() {
|
|
this.filter.message = null;
|
|
this.filter.updated = true;
|
|
}
|
|
|
|
searchPlayer(search: string) {
|
|
if (search.length == 0) {
|
|
return;
|
|
}
|
|
if (!this.authService.isAuth()) {
|
|
return;
|
|
}
|
|
|
|
this.playerService.searchProfile(search).subscribe(
|
|
(res) => {
|
|
if (res.steam64 != null)
|
|
this.router.navigate(['profile', res.steam64])
|
|
},
|
|
(err) => {}
|
|
)
|
|
}
|
|
}
|
|
|