|
|
@ -11,32 +11,45 @@ |
|
|
|
<mat-chip-list> |
|
|
|
<mat-chip [matMenuTriggerFor]="addFilter">Искать по...</mat-chip> |
|
|
|
<mat-menu #addFilter> |
|
|
|
<button mat-menu-item>Имени</button> |
|
|
|
<button mat-menu-item (click)="addAccountToSearch('')">Профилю</button> |
|
|
|
<button mat-menu-item [matMenuTriggerFor]="timeSelect">Времени</button> |
|
|
|
|
|
|
|
|
|
|
|
<button mat-menu-item (click)="addServerToSearch()">Серверу</button> |
|
|
|
<button mat-menu-item>Содержимому</button> |
|
|
|
<button mat-menu-item (click)="addMessageToSearch('')">Содержимому</button> |
|
|
|
</mat-menu> |
|
|
|
<mat-menu #timeSelect> |
|
|
|
<button mat-menu-item (click)="addEndTimeToSearch()">До ...</button> |
|
|
|
<button mat-menu-item (click)="addBeginTimeToSearch()">После ...</button> |
|
|
|
</mat-menu> |
|
|
|
|
|
|
|
<mat-chip *ngIf="filter.updated" (click)="getMessages()">Обновить</mat-chip> |
|
|
|
<mat-chip |
|
|
|
*ngFor="let acId of filter.accounts" |
|
|
|
(removed)="removeAccountFromSearch(acId)">{{acId}} |
|
|
|
<button matChipRemove> |
|
|
|
<mat-icon>cancel</mat-icon> |
|
|
|
</button> |
|
|
|
</mat-chip> |
|
|
|
<mat-chip *ngIf="filter.updated" (click)="updateData()">Обновить</mat-chip> |
|
|
|
<div *ngIf="filter.accounts != null"> |
|
|
|
<mat-chip |
|
|
|
*ngFor="let acId of filter.accounts" |
|
|
|
(removed)="removeAccountFromSearch(acId)" |
|
|
|
[matMenuTriggerFor]="profileSearch">Профиль: {{acId}} |
|
|
|
<button matChipRemove> |
|
|
|
<mat-icon>cancel</mat-icon> |
|
|
|
</button> |
|
|
|
<mat-menu #profileSearch> |
|
|
|
<mat-form-field appearance="fill" (click)="$event.stopPropagation()"> |
|
|
|
<mat-label>Ссылка, имя, все что угодно</mat-label> |
|
|
|
<input matInput placeholder="отдыхаем" [ngModel]="acId" (change)="changeAccountToSearch(acId, $event)"> |
|
|
|
</mat-form-field> |
|
|
|
</mat-menu> |
|
|
|
</mat-chip> |
|
|
|
</div> |
|
|
|
<mat-chip |
|
|
|
*ngIf="filter.message!=null" |
|
|
|
(removed)="removeMessageFromSearch()">Сообщение содержит: {{filter.message}} |
|
|
|
(removed)="removeMessageFromSearch()" [matMenuTriggerFor]="contentSearch">Сообщение содержит: {{filter.message}} |
|
|
|
<button matChipRemove> |
|
|
|
<mat-icon>cancel</mat-icon> |
|
|
|
</button> |
|
|
|
<mat-menu #contentSearch> |
|
|
|
<mat-form-field appearance="fill" (click)="$event.stopPropagation()"> |
|
|
|
<mat-label>Сообщение содержит...</mat-label> |
|
|
|
<input matInput placeholder="люблю россию и путина" [ngModel]="filter.message" (ngModelChange)="addMessageToSearch($event)"> |
|
|
|
</mat-form-field> |
|
|
|
</mat-menu> |
|
|
|
</mat-chip> |
|
|
|
|
|
|
|
<mat-chip *ngIf="filter.serverId!=null" |
|
|
@ -62,7 +75,9 @@ |
|
|
|
<mat-form-field appearance="fill" |
|
|
|
(click)="$event.stopPropagation()"> |
|
|
|
<mat-label>Дата после</mat-label> |
|
|
|
<input matInput type="datetime-local" [(ngModel)]="filter.begin"> |
|
|
|
<input matInput type="datetime-local" |
|
|
|
[(ngModel)]="filter.begin" |
|
|
|
(ngModelChange)="addBeginTimeToSearch($event)"> |
|
|
|
</mat-form-field> |
|
|
|
</mat-menu> |
|
|
|
</mat-chip> |
|
|
@ -79,65 +94,77 @@ |
|
|
|
<mat-form-field appearance="fill" |
|
|
|
(click)="$event.stopPropagation()"> |
|
|
|
<mat-label>Дата после</mat-label> |
|
|
|
<input matInput type="datetime-local" [(ngModel)]="filter.end"> |
|
|
|
<input matInput type="datetime-local" |
|
|
|
[(ngModel)]="filter.end" |
|
|
|
(ngModelChange)="addEndTimeToSearch($event)"> |
|
|
|
</mat-form-field> |
|
|
|
</mat-menu> |
|
|
|
</mat-chip> |
|
|
|
</mat-chip-list> |
|
|
|
</div> |
|
|
|
|
|
|
|
<table mat-table [dataSource]="dataSource" style="width: 100%"> |
|
|
|
|
|
|
|
<ng-container matColumnDef="account_name"> |
|
|
|
<th mat-header-cell *matHeaderCellDef> Игрок </th> |
|
|
|
<td mat-cell *matCellDef="let row" [matMenuTriggerFor]="accountMenu"> {{row.account_name}} |
|
|
|
<mat-menu #accountMenu> |
|
|
|
<button mat-menu-item (click)="addAccountToSearch(row.account_name)">Добавить в поиск</button> |
|
|
|
<button mat-menu-item (click)="searchPlayer(row.account_name)">Открыть профиль</button> |
|
|
|
</mat-menu></td> |
|
|
|
</ng-container> |
|
|
|
<div> |
|
|
|
<div class="loading-shade" |
|
|
|
*ngIf="loading || err"> |
|
|
|
<mat-spinner *ngIf="loading"></mat-spinner> |
|
|
|
<div class="err" *ngIf="err"> |
|
|
|
Слишком много запросов или сервер не отвечает, обнови страницу. |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<table mat-table [dataSource]="dataSource" style="width: 100%"> |
|
|
|
<ng-container matColumnDef="account_name"> |
|
|
|
<th mat-header-cell *matHeaderCellDef> Игрок </th> |
|
|
|
<td mat-cell *matCellDef="let row" [matMenuTriggerFor]="accountMenu"> {{row.account_name}} |
|
|
|
<mat-menu #accountMenu> |
|
|
|
<button mat-menu-item (click)="addAccountToSearch(row.account_name)">Добавить в поиск</button> |
|
|
|
<button mat-menu-item (click)="searchPlayer(row.account_id)">Открыть профиль</button> |
|
|
|
</mat-menu></td> |
|
|
|
</ng-container> |
|
|
|
|
|
|
|
<ng-container matColumnDef="date"> |
|
|
|
<th mat-header-cell *matHeaderCellDef> Дата </th> |
|
|
|
<td mat-cell *matCellDef="let row" [matMenuTriggerFor]="dateMenu"> {{row.utime*1000 | date:"HH:mm:ss dd/MM/yyyy"}} |
|
|
|
<mat-menu #dateMenu> |
|
|
|
<button mat-menu-item (click)="addEndTimeToSearch(row.utime*1000)">Искать до {{row.utime*1000 | date:"HH:mm:ss dd/MM/yyyy"}}</button> |
|
|
|
<button mat-menu-item (click)="addBeginTimeToSearch(row.utime*1000)">Искать после {{row.utime*1000 | date:"HH:mm:ss dd/MM/yyyy"}}</button> |
|
|
|
</mat-menu> |
|
|
|
</td> |
|
|
|
</ng-container> |
|
|
|
<ng-container matColumnDef="date"> |
|
|
|
<th mat-header-cell *matHeaderCellDef> Дата </th> |
|
|
|
<td mat-cell *matCellDef="let row" [matMenuTriggerFor]="dateMenu"> {{row.utime*1000 | date:"HH:mm:ss dd/MM/yyyy"}} |
|
|
|
<mat-menu #dateMenu> |
|
|
|
<button mat-menu-item (click)="addEndTimeToSearch(row.utime*1000)">Искать до {{row.utime*1000 | date:"HH:mm:ss dd/MM/yyyy"}}</button> |
|
|
|
<button mat-menu-item (click)="addBeginTimeToSearch(row.utime*1000)">Искать после {{row.utime*1000 | date:"HH:mm:ss dd/MM/yyyy"}}</button> |
|
|
|
</mat-menu> |
|
|
|
</td> |
|
|
|
</ng-container> |
|
|
|
|
|
|
|
<ng-container matColumnDef="message"> |
|
|
|
<th mat-header-cell *matHeaderCellDef> Сообщение </th> |
|
|
|
<td mat-cell *matCellDef="let row" [matMenuTriggerFor]="messageMenu"> {{row.message}} |
|
|
|
<mat-menu #messageMenu> |
|
|
|
<button mat-menu-item (click)="addMessageToSearch(row.message)">Добавить в поиск</button> |
|
|
|
</mat-menu></td> |
|
|
|
</ng-container> |
|
|
|
<ng-container matColumnDef="message"> |
|
|
|
<th mat-header-cell *matHeaderCellDef> Сообщение </th> |
|
|
|
<td mat-cell *matCellDef="let row" [matMenuTriggerFor]="messageMenu"> {{row.message}} |
|
|
|
<mat-menu #messageMenu> |
|
|
|
<button mat-menu-item (click)="addMessageToSearch(row.message)">Добавить в поиск</button> |
|
|
|
</mat-menu></td> |
|
|
|
</ng-container> |
|
|
|
|
|
|
|
<ng-container matColumnDef="serverName"> |
|
|
|
<th mat-header-cell *matHeaderCellDef> Сервер </th> |
|
|
|
<td mat-cell *matCellDef="let row" [matMenuTriggerFor]="serverMenu"> {{row.serverName}} |
|
|
|
<mat-menu #serverMenu> |
|
|
|
<button mat-menu-item (click)="addServerToSearch(row.server_id)">Добавить в поиск</button> |
|
|
|
</mat-menu> |
|
|
|
</td> |
|
|
|
</ng-container> |
|
|
|
<ng-container matColumnDef="serverName"> |
|
|
|
<th mat-header-cell *matHeaderCellDef> Сервер </th> |
|
|
|
<td mat-cell *matCellDef="let row" [matMenuTriggerFor]="serverMenu"> {{row.serverName}} |
|
|
|
<mat-menu #serverMenu> |
|
|
|
<button mat-menu-item (click)="addServerToSearch(row.server_id)">Добавить в поиск</button> |
|
|
|
</mat-menu> |
|
|
|
</td> |
|
|
|
</ng-container> |
|
|
|
|
|
|
|
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr> |
|
|
|
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr> |
|
|
|
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr> |
|
|
|
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr> |
|
|
|
|
|
|
|
<!-- Row shown when there is no matching data. --> |
|
|
|
<tr class="mat-row" *matNoDataRow> |
|
|
|
<td class="mat-cell" colspan="4">Нет сообщений</td> |
|
|
|
</tr> |
|
|
|
</table> |
|
|
|
<!-- Row shown when there is no matching data. --> |
|
|
|
<div *ngIf="!loading"> |
|
|
|
<tr class="mat-row" *matNoDataRow> |
|
|
|
<td class="mat-cell" colspan="4">Нет сообщений</td> |
|
|
|
</tr> |
|
|
|
</div> |
|
|
|
</table> |
|
|
|
|
|
|
|
<mat-paginator |
|
|
|
[pageSizeOptions]="[5, 10, 25, 100]" |
|
|
|
[pageSize]="10" |
|
|
|
(page)="getMessages()" |
|
|
|
></mat-paginator> |
|
|
|
<mat-paginator |
|
|
|
[pageSizeOptions]="[5, 10, 25, 100]" |
|
|
|
[pageSize]="10" |
|
|
|
(page)="updateData()" |
|
|
|
></mat-paginator> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|