2 <my-global-icon iconName=
"user" aria-hidden=
"true"></my-global-icon>
3 <ng-container i18n
>Registration requests
</ng-container>
7 [value]=
"registrations" [paginator]=
"totalRecords > 0" [totalRecords]=
"totalRecords" [rows]=
"rowsPerPage" [first]=
"pagination.start"
8 [rowsPerPageOptions]=
"rowsPerPageOptions" [sortField]=
"sort.field" [sortOrder]=
"sort.order" dataKey=
"id"
9 [lazy]=
"true" (onLazyLoad)=
"loadLazy($event)" [lazyLoadOnInit]=
"false"
10 [(selection)]=
"selectedRows" [showCurrentPageReport]=
"true" i18n-currentPageReportTemplate
11 currentPageReportTemplate=
"Showing {{'{first}'}} to {{'{last}'}} of {{'{totalRecords}'}} registrations"
12 [expandedRowKeys]=
"expandedRows"
14 <ng-template pTemplate=
"caption">
16 <div class=
"left-buttons">
18 *
ngIf=
"isInSelectionMode()" i18n-label
label=
"Batch actions" theme=
"orange"
19 [actions]=
"bulkActions" [entry]=
"selectedRows"
25 <my-advanced-input-filter (search)=
"onSearch($event)"></my-advanced-input-filter>
30 <ng-template pTemplate=
"header">
32 <th style=
"width: 40px">
33 <p-tableHeaderCheckbox ariaLabel=
"Select all rows" i18n-ariaLabel
></p-tableHeaderCheckbox>
35 <th style=
"width: 40px;"></th>
36 <th style=
"width: 150px;"></th>
40 <th i18n
>Registration reason
</th>
41 <th i18n
pSortableColumn=
"state" style=
"width: 80px;">State
<p-sortIcon field=
"state"></p-sortIcon></th>
42 <th i18n
>Moderation response
</th>
43 <th style=
"width: 150px;" i18n
pSortableColumn=
"createdAt">Requested on
<p-sortIcon field=
"createdAt"></p-sortIcon></th>
47 <ng-template pTemplate=
"body" let-expanded=
"expanded" let-registration
>
48 <tr [pSelectableRow]=
"registration">
49 <td class=
"checkbox-cell">
50 <p-tableCheckbox [value]=
"registration" ariaLabel=
"Select this row" i18n-ariaLabel
></p-tableCheckbox>
53 <td class=
"expand-cell" [pRowToggler]=
"registration">
54 <my-table-expander-icon [expanded]=
"expanded"></my-table-expander-icon>
57 <td class=
"action-cell">
59 [ngClass]=
"{ 'show': expanded }" placement=
"bottom-right top-right left auto" container=
"body"
60 i18n-label
label=
"Actions" [actions]=
"registrationActions" [entry]=
"registration"
61 ></my-action-dropdown>
65 <div class=
"chip two-lines">
67 <span>{{ registration.username }}
</span>
68 <span class=
"muted">{{ registration.accountDisplayName }}
</span>
74 <my-user-email-info [entry]=
"registration" [requiresEmailVerification]=
"requiresEmailVerification"></my-user-email-info>
78 <div class=
"chip two-lines">
80 <span>{{ registration.channelHandle }}
</span>
81 <span class=
"muted">{{ registration.channelDisplayName }}
</span>
86 <td container=
"body" placement=
"left auto" [ngbTooltip]=
"registration.registrationReason">
87 {{ registration.registrationReason }}
90 <td class=
"c-hand abuse-states" [pRowToggler]=
"registration">
91 <my-global-icon *
ngIf=
"isRegistrationAccepted(registration)" [title]=
"registration.state.label" iconName=
"tick"></my-global-icon>
92 <my-global-icon *
ngIf=
"isRegistrationRejected(registration)" [title]=
"registration.state.label" iconName=
"cross"></my-global-icon>
95 <td container=
"body" placement=
"left auto" [ngbTooltip]=
"registration.moderationResponse">
96 {{ registration.moderationResponse }}
99 <td class=
"c-hand" [pRowToggler]=
"registration">{{ registration.createdAt | date: 'short' }}
</td>
103 <ng-template pTemplate=
"rowexpansion" let-registration
>
106 <div class=
"moderation-expanded">
109 <span class=
"moderation-expanded-label" i18n
>Registration reason:
</span>
110 <span class=
"moderation-expanded-text" [innerHTML]=
"registration.registrationReasonHTML"></span>
113 <div *
ngIf=
"registration.moderationResponse">
114 <span class=
"moderation-expanded-label" i18n
>Moderation response:
</span>
115 <span class=
"moderation-expanded-text" [innerHTML]=
"registration.moderationResponseHTML"></span>
123 <ng-template pTemplate=
"emptymessage">
126 <div class=
"no-results">
127 <ng-container *
ngIf=
"search" i18n
>No registrations found matching current filters.
</ng-container>
128 <ng-container *
ngIf=
"!search" i18n
>No registrations found.
</ng-container>
135 <my-process-registration-modal #processRegistrationModal (registrationProcessed)=
"onRegistrationProcessed()"></my-process-registration-modal>