@@ -11,7 +11,7 @@ import { MatSort } from '@angular/material/sort';
11
11
import { MatTableDataSource } from '@angular/material/table' ;
12
12
import { MatDialog } from '@angular/material/dialog' ;
13
13
import { SelectionModel } from '@angular/cdk/collections' ;
14
- import { Member , RichMember } from '@perun-web-apps/perun/openapi' ;
14
+ import { Member } from '@perun-web-apps/perun/openapi' ;
15
15
import {
16
16
customDataSourceFilterPredicate ,
17
17
customDataSourceSort ,
@@ -28,9 +28,14 @@ import {
28
28
ChangeMemberStatusDialogComponent ,
29
29
MemberTreeViewDialogComponent ,
30
30
} from '@perun-web-apps/perun/dialogs' ;
31
- import { GuiAuthResolver , TableCheckbox } from '@perun-web-apps/perun/services' ;
31
+ import {
32
+ GuiAuthResolver ,
33
+ PerunTranslateService ,
34
+ TableCheckbox ,
35
+ } from '@perun-web-apps/perun/services' ;
32
36
import { ActivatedRoute } from '@angular/router' ;
33
37
import { TableWrapperComponent } from '@perun-web-apps/perun/utils' ;
38
+ import { MemberWithConsentStatus } from '@perun-web-apps/perun/models' ;
34
39
35
40
@Component ( {
36
41
selector : 'perun-web-apps-members-list' ,
@@ -40,9 +45,10 @@ import { TableWrapperComponent } from '@perun-web-apps/perun/utils';
40
45
export class MembersListComponent implements OnChanges , AfterViewInit {
41
46
@ViewChild ( TableWrapperComponent , { static : true } ) child : TableWrapperComponent ;
42
47
@Input ( ) showGroupStatuses : boolean ;
43
- @Input ( ) members : RichMember [ ] ;
48
+ @Input ( ) members : MemberWithConsentStatus [ ] = [ ] ;
44
49
@Input ( ) searchString : string ;
45
- @Input ( ) selection : SelectionModel < RichMember > = new SelectionModel < RichMember > ( ) ;
50
+ @Input ( ) selection : SelectionModel < MemberWithConsentStatus > =
51
+ new SelectionModel < MemberWithConsentStatus > ( ) ;
46
52
@Input ( ) displayedColumns : string [ ] = [
47
53
'checkbox' ,
48
54
'id' ,
@@ -65,7 +71,7 @@ export class MembersListComponent implements OnChanges, AfterViewInit {
65
71
@Input ( ) filter = '' ;
66
72
@Output ( ) updateTable = new EventEmitter < boolean > ( ) ;
67
73
68
- dataSource : MatTableDataSource < RichMember > ;
74
+ dataSource : MatTableDataSource < MemberWithConsentStatus > ;
69
75
pageSizeOptions = TABLE_ITEMS_COUNT_OPTIONS ;
70
76
disabledRouting : boolean ;
71
77
groupId : number ;
@@ -76,14 +82,15 @@ export class MembersListComponent implements OnChanges, AfterViewInit {
76
82
private dialog : MatDialog ,
77
83
private authResolver : GuiAuthResolver ,
78
84
private tableCheckbox : TableCheckbox ,
79
- private route : ActivatedRoute
85
+ private route : ActivatedRoute ,
86
+ private translateService : PerunTranslateService
80
87
) { }
81
88
82
89
@ViewChild ( MatSort , { static : true } ) set matSort ( ms : MatSort ) {
83
90
this . sort = ms ;
84
91
}
85
92
86
- static getFilterDataForColumn ( data : RichMember , column : string ) : string {
93
+ static getFilterDataForColumn ( data : MemberWithConsentStatus , column : string ) : string {
87
94
switch ( column ) {
88
95
case 'fullName' :
89
96
if ( data . user ) {
@@ -99,8 +106,8 @@ export class MembersListComponent implements OnChanges, AfterViewInit {
99
106
}
100
107
}
101
108
102
- static getExportDataForColumn (
103
- data : RichMember ,
109
+ static getSortDataForColumn (
110
+ data : MemberWithConsentStatus ,
104
111
column : string ,
105
112
showGroupStatuses : boolean
106
113
) : string {
@@ -109,7 +116,7 @@ export class MembersListComponent implements OnChanges, AfterViewInit {
109
116
return data . id . toString ( ) ;
110
117
case 'fullName' :
111
118
if ( data . user ) {
112
- return parseFullName ( data . user ) ;
119
+ return data . user . lastName ? data . user . lastName : data . user . firstName ?? '' ;
113
120
}
114
121
return '' ;
115
122
case 'status' :
@@ -118,15 +125,15 @@ export class MembersListComponent implements OnChanges, AfterViewInit {
118
125
return parseOrganization ( data ) ;
119
126
case 'email' :
120
127
return parseEmail ( data ) ;
121
- case 'logins ' :
122
- return parseLogins ( data ) ;
128
+ case 'consentStatus ' :
129
+ return data . consent ;
123
130
default :
124
131
return '' ;
125
132
}
126
133
}
127
134
128
- static getSortDataForColumn (
129
- data : RichMember ,
135
+ getExportDataForColumn (
136
+ data : MemberWithConsentStatus ,
130
137
column : string ,
131
138
showGroupStatuses : boolean
132
139
) : string {
@@ -135,7 +142,7 @@ export class MembersListComponent implements OnChanges, AfterViewInit {
135
142
return data . id . toString ( ) ;
136
143
case 'fullName' :
137
144
if ( data . user ) {
138
- return data . user . lastName ? data . user . lastName : data . user . firstName ?? '' ;
145
+ return parseFullName ( data . user ) ;
139
146
}
140
147
return '' ;
141
148
case 'status' :
@@ -144,16 +151,20 @@ export class MembersListComponent implements OnChanges, AfterViewInit {
144
151
return parseOrganization ( data ) ;
145
152
case 'email' :
146
153
return parseEmail ( data ) ;
154
+ case 'logins' :
155
+ return parseLogins ( data ) ;
156
+ case 'consentStatus' :
157
+ return this . translateService . instant ( `CONSENTS.STATUS_${ data . consent } ` ) ;
147
158
default :
148
159
return '' ;
149
160
}
150
161
}
151
162
152
- getExportDataForColumnFun = ( data : RichMember , column : string ) : string => {
153
- return MembersListComponent . getExportDataForColumn ( data , column , this . showGroupStatuses ) ;
163
+ getExportDataForColumnFun = ( data : MemberWithConsentStatus , column : string ) : string => {
164
+ return this . getExportDataForColumn ( data , column , this . showGroupStatuses ) ;
154
165
} ;
155
166
156
- getSortDataForColumnFun = ( data : RichMember , column : string ) : string => {
167
+ getSortDataForColumnFun = ( data : MemberWithConsentStatus , column : string ) : string => {
157
168
return MembersListComponent . getSortDataForColumn ( data , column , this . showGroupStatuses ) ;
158
169
} ;
159
170
@@ -185,17 +196,20 @@ export class MembersListComponent implements OnChanges, AfterViewInit {
185
196
186
197
setDataSource ( ) : void {
187
198
if ( ! this . dataSource ) {
188
- this . dataSource = new MatTableDataSource < RichMember > ( ) ;
199
+ this . dataSource = new MatTableDataSource < MemberWithConsentStatus > ( ) ;
189
200
this . dataSource . sort = this . sort ;
190
201
this . dataSource . paginator = this . child . paginator ;
191
- this . dataSource . filterPredicate = ( data : RichMember , filter : string ) : boolean =>
202
+ this . dataSource . filterPredicate = ( data : MemberWithConsentStatus , filter : string ) : boolean =>
192
203
customDataSourceFilterPredicate (
193
204
data ,
194
205
filter ,
195
206
this . displayedColumns ,
196
207
MembersListComponent . getFilterDataForColumn
197
208
) ;
198
- this . dataSource . sortData = ( data : RichMember [ ] , sort : MatSort ) : RichMember [ ] =>
209
+ this . dataSource . sortData = (
210
+ data : MemberWithConsentStatus [ ] ,
211
+ sort : MatSort
212
+ ) : MemberWithConsentStatus [ ] =>
199
213
customDataSourceSort ( data , sort , this . getSortDataForColumnFun ) ;
200
214
}
201
215
this . dataSource . filter = this . filter ;
@@ -218,10 +232,10 @@ export class MembersListComponent implements OnChanges, AfterViewInit {
218
232
} ) ;
219
233
}
220
234
221
- canBeSelected = ( member : RichMember ) : boolean => member . membershipType === 'DIRECT' ;
235
+ canBeSelected = ( member : MemberWithConsentStatus ) : boolean => member . membershipType === 'DIRECT' ;
222
236
223
237
isAllSelected ( ) : boolean {
224
- return this . tableCheckbox . isAllSelected < RichMember > (
238
+ return this . tableCheckbox . isAllSelected < MemberWithConsentStatus > (
225
239
this . selection . selected . length ,
226
240
this . dataSource ,
227
241
this . canBeSelected
@@ -246,8 +260,8 @@ export class MembersListComponent implements OnChanges, AfterViewInit {
246
260
// now if the status is column between displayedColumns, the "disableStatusChange" attribute is also presented
247
261
// so the status change through the icon on this list isn't used anywhere. If this change should be possible
248
262
// in the future, the same logic as in members-dynamic-list should be used (but for this purpose some additional
249
- // member attributes have to be presented in RichMember object - at least "isLifecycleAlterable" attribute)
250
- changeStatus ( event : Event , member : RichMember ) : void {
263
+ // member attributes have to be presented in MemberWithConsentStatus object - at least "isLifecycleAlterable" attribute)
264
+ changeStatus ( event : Event , member : MemberWithConsentStatus ) : void {
251
265
event . stopPropagation ( ) ;
252
266
if ( ! this . disableStatusChange ) {
253
267
const config = getDefaultDialogConfig ( ) ;
@@ -263,7 +277,7 @@ export class MembersListComponent implements OnChanges, AfterViewInit {
263
277
}
264
278
}
265
279
266
- viewMemberGroupTree ( member : RichMember ) : void {
280
+ viewMemberGroupTree ( member : MemberWithConsentStatus ) : void {
267
281
const config = getDefaultDialogConfig ( ) ;
268
282
config . width = '800px' ;
269
283
config . data = { member : member , groupId : this . groupId } ;
0 commit comments