unoffical wafrn mirror
wafrn.net
atproto
social-network
activitypub
1<div class="mx-3 lg:mx-4 wafrn-container-wide">
2 <h2 class="my-3 text-3xl">{{ 'menu.admin.blocklist' | translate }}</h2>
3</div>
4<div class="mb-3 lg:mx-4 wafrn-container-wide">
5 <p>This sucks to look at so here's a second step of buttons before you see the data</p>
6 <div class="flex gap-3">
7 <button mat-stroked-button (click)="showUserBlocks = !showUserBlocks">Show users blocked by users</button>
8 <button mat-stroked-button (click)="showUserServerBlocks = !showUserServerBlocks"
9 >Show servers blocked by users</button
10 >
11 </div>
12</div>
13<mat-card [class.hidden]="!showUserBlocks" class="p-3 mb-3 lg:mx-4 wafrn-container-wide">
14 <h2>Per user user blocks</h2>
15 <mat-form-field class="w-full mat-form-field-no-padding">
16 <mat-label>Search</mat-label>
17 <input (input)="onUserBlockChange($event)" matNativeControl spellcheck="false" />
18 </mat-form-field>
19 <div class="w-full overflow-x-auto">
20 <table mat-table matSort #userBlocksSort="matSort" [dataSource]="userBlocks">
21 <ng-container matColumnDef="blocker">
22 <th mat-header-cell mat-sort-header *matHeaderCellDef>Blocker</th>
23 <td mat-cell *matCellDef="let row">
24 <a [routerLink]="'/blog/' + row.blocker.url">
25 <div class="flex gap-2 align-items-start">
26 <app-avatar-small [user]="row.blocker"></app-avatar-small>
27 {{ row.blocker.url }}
28 </div>
29 </a>
30 </td>
31 </ng-container>
32 <ng-container matColumnDef="blocked">
33 <th mat-header-cell mat-sort-header *matHeaderCellDef>Blocked</th>
34 <td mat-cell *matCellDef="let row">
35 <a [routerLink]="'/blog/' + row.blocked.url">
36 <div class="flex gap-2 align-items-start">
37 <app-avatar-small [user]="row.blocked"></app-avatar-small>
38 {{ row.blocked.url }}
39 </div>
40 </a>
41 </td>
42 </ng-container>
43 <ng-container matColumnDef="reason">
44 <th mat-header-cell *matHeaderCellDef>Reason</th>
45 <td mat-cell *matCellDef="let row">
46 {{ row.reason }}
47 </td>
48 </ng-container>
49 <ng-container matColumnDef="createdAt">
50 <th mat-header-cell mat-sort-header *matHeaderCellDef>Date</th>
51 <td mat-cell *matCellDef="let row">
52 {{ row.createdAt | date: 'M/d/yy, h:mm:ss a' }}
53 </td>
54 </ng-container>
55 <tr mat-header-row *matHeaderRowDef="userBlocksColumns"></tr>
56 <tr mat-row *matRowDef="let row; columns: userBlocksColumns"></tr>
57 </table>
58 </div>
59 <mat-paginator
60 #userBlocksPaginator
61 [pageSizeOptions]="[10, 25, 50, 100]"
62 showFirstLastButtons
63 aria-label="Select user block list page"
64 >
65 </mat-paginator>
66</mat-card>
67<mat-card [class.hidden]="!showUserServerBlocks" class="p-3 mb-3 lg:mx-4 wafrn-container-wide">
68 <h2>Per user server blocks</h2>
69 <mat-form-field class="w-full mat-form-field-no-padding">
70 <mat-label>Search</mat-label>
71 <input (input)="onUserServerBlockChange($event)" matNativeControl spellcheck="false" />
72 </mat-form-field>
73 <div class="w-full overflow-x-auto">
74 <table mat-table matSort #userServerBlocksSort="matSort" [dataSource]="userServerBlocks">
75 <ng-container matColumnDef="userBlocker">
76 <th mat-header-cell mat-sort-header *matHeaderCellDef>User blocker</th>
77 <td mat-cell *matCellDef="let row">
78 <a [routerLink]="'/blog/' + row.userBlocker.url">
79 <div class="flex gap-2 align-items-start">
80 <app-avatar-small [user]="row.userBlocker"></app-avatar-small>
81 {{ row.userBlocker.url }}
82 </div>
83 </a>
84 </td>
85 </ng-container>
86 <ng-container matColumnDef="blockedServer">
87 <th mat-header-cell mat-sort-header *matHeaderCellDef>Server</th>
88 <td mat-cell *matCellDef="let row">
89 {{ row.blockedServer.displayName }}
90 </td>
91 </ng-container>
92 <ng-container matColumnDef="createdAt">
93 <th mat-header-cell mat-sort-header *matHeaderCellDef>Date</th>
94 <td mat-cell *matCellDef="let row">
95 {{ row.createdAt | date: 'M/d/yy, h:mm:ss a' }}
96 </td>
97 </ng-container>
98 <tr mat-header-row *matHeaderRowDef="userServerBlocksColumns"></tr>
99 <tr mat-row *matRowDef="let row; columns: userServerBlocksColumns"></tr>
100 </table>
101 </div>
102 <mat-paginator
103 #userServerBlocksPaginator
104 [pageSizeOptions]="[10, 25, 50, 100]"
105 showFirstLastButtons
106 aria-label="Select server block list page"
107 >
108 </mat-paginator>
109</mat-card>