diff --git a/src/app/pages/invites/invites.component.html b/src/app/pages/invites/invites.component.html index 447c993..38d8090 100644 --- a/src/app/pages/invites/invites.component.html +++ b/src/app/pages/invites/invites.component.html @@ -4,6 +4,27 @@ + + {{'invites.redeemed.filter' | i18n}} + + {{'invites.redeemed.filter.none' | i18n}} + + how_to_reg{{'invites.redeemed.filter.true' | i18n}} + + + person_remove{{'invites.redeemed.filter.false' | i18n}} + + + + how_to_reg{{'invites.redeemed.filter.true' | i18n}} + + + person_remove{{'invites.redeemed.filter.false' | i18n}} + + {{'invites.redeemed.filter.none' | i18n}} + + + @@ -71,12 +92,41 @@ + + {{'invites.redeemed.filter' | i18n}} + + {{'invites.redeemed.filter.none' | i18n}} + + how_to_reg{{'invites.redeemed.filter.true' | i18n}} + + + person_remove{{'invites.redeemed.filter.false' | i18n}} + + + + how_to_reg{{'invites.redeemed.filter.true' | i18n}} + + + person_remove{{'invites.redeemed.filter.false' | i18n}} + + {{'invites.redeemed.filter.none' | i18n}} + + +
+ + + + + +
{{'invite.note' | i18n}} {{ invite.note}} {{ 'invite.noNote' | i18n}} {{'invite.redeemed' | i18n}} + how_to_reg +
diff --git a/src/app/pages/invites/invites.component.scss b/src/app/pages/invites/invites.component.scss index 9ee20ad..b51e004 100644 --- a/src/app/pages/invites/invites.component.scss +++ b/src/app/pages/invites/invites.component.scss @@ -1,3 +1,3 @@ -mat-form-field { - display: block; -} +.mat-form-field+.mat-form-field { + margin-left: 8px; +} \ No newline at end of file diff --git a/src/app/pages/invites/invites.component.ts b/src/app/pages/invites/invites.component.ts index b75fa7f..0e7074c 100644 --- a/src/app/pages/invites/invites.component.ts +++ b/src/app/pages/invites/invites.component.ts @@ -26,10 +26,12 @@ export class InvitesComponent implements OnInit { datetimeformat: string; pageSizeOptions: number[] = [5, 10, 25, 50]; searchFormControl = new FormControl(); + redeemedFormControl = new FormControl(); searchOthersFormControl = new FormControl(); + redeemedOthersFormControl = new FormControl(); inviteColumns = ["starts", "expires", "link", "note", "message", "redeemed"]; - otherColumns = ["note"]; + otherColumns = ["note", "redeemed"]; constructor( private authService: AuthService, @@ -43,13 +45,25 @@ export class InvitesComponent implements OnInit { async ngOnInit() { this.datetimeformat = this.i18n.get('format.datetime', []); this.quota = this.route.snapshot.paramMap.get('quota'); + this.searchFormControl.valueChanges.pipe(debounceTime(500)).subscribe(value => { - this.inviteService.getPages(this.quota, 0, this.invites.size, value).subscribe((data: any) => { + this.inviteService.getPages(this.quota, 0, this.invites.size, value, this.redeemedFormControl.value).subscribe((data: any) => { this.invites = data; }, (error) => {}) }) + this.redeemedFormControl.valueChanges.subscribe(value => { + this.inviteService.getPages(this.quota, 0, this.invites.size, this.searchFormControl.value ? this.searchFormControl.value : "", value).subscribe((data: any) => { + this.invites = data; + }, (error) => {}) + }) + this.searchOthersFormControl.valueChanges.pipe(debounceTime(500)).subscribe(value => { - this.inviteService.getOthersPages(this.quota, 0, this.others.size, value).subscribe((data: any) => { + this.inviteService.getOthersPages(this.quota, 0, this.others.size, value, this.redeemedOthersFormControl.value).subscribe((data: any) => { + this.others = data; + }, (error) => {}) + }) + this.redeemedOthersFormControl.valueChanges.subscribe(value => { + this.inviteService.getOthersPages(this.quota, 0, this.others.size, this.searchOthersFormControl.value ? this.searchOthersFormControl.value : "", value).subscribe((data: any) => { this.others = data; }, (error) => {}) }) @@ -73,7 +87,7 @@ export class InvitesComponent implements OnInit { this.invites = data; }) } else { - this.inviteService.getPages(this.quota, this.invites.number || 0, this.invites.size || 10, this.searchFormControl.value ? this.searchFormControl.value : "").subscribe((data: any) => { + this.inviteService.getPages(this.quota, this.invites.number || 0, this.invites.size || 10, this.searchFormControl.value ? this.searchFormControl.value : "", this.redeemedFormControl.value).subscribe((data: any) => { this.invites = data; }, (error) => {}) } @@ -84,7 +98,7 @@ export class InvitesComponent implements OnInit { } updatePages(event: PageEvent) { - this.inviteService.getPages(this.quota, event.pageIndex, event.pageSize, this.searchFormControl.value ? this.searchFormControl.value : "").subscribe((data: any) => { + this.inviteService.getPages(this.quota, event.pageIndex, event.pageSize, this.searchFormControl.value ? this.searchFormControl.value : "", this.redeemedFormControl.value).subscribe((data: any) => { this.invites = data; }, (error) => {}) } @@ -109,7 +123,7 @@ export class InvitesComponent implements OnInit { } updateOthers(event: PageEvent) { - this.inviteService.getOthersPages(this.quota, event.pageIndex, event.pageSize, this.searchOthersFormControl.value ? this.searchOthersFormControl.value : "").subscribe((data: any) => { + this.inviteService.getOthersPages(this.quota, event.pageIndex, event.pageSize, this.searchOthersFormControl.value ? this.searchOthersFormControl.value : "", this.redeemedOthersFormControl.value).subscribe((data: any) => { this.others = data; }, (error) => {}) } diff --git a/src/app/services/invites.service.ts b/src/app/services/invites.service.ts index fd6499c..8eaecad 100644 --- a/src/app/services/invites.service.ts +++ b/src/app/services/invites.service.ts @@ -15,16 +15,16 @@ export class InviteService { return this.http.get(environment.apiUrl + "/invites" + (quota ? "?quota=" + quota : "")); } - getPages(quota: string, page: number, size: number, search: string) { - return this.http.get(environment.apiUrl + "/invites" + (quota ? "?quota=" + quota + "&" : "?") + "page=" + page + "&size=" + size + "&search=" + search); + getPages(quota: string, page: number, size: number, search: string, redeemed: string) { + return this.http.get(environment.apiUrl + "/invites" + (quota ? "?quota=" + quota + "&" : "?") + "page=" + page + "&size=" + size + "&search=" + search + (redeemed ? "&redeemed=" + redeemed : "")); } getOthers(quota: string) { return this.http.get(environment.apiUrl + "/invites/" + quota + "/others"); } - getOthersPages(quota: string, page: number, size: number, search: string) { - return this.http.get(environment.apiUrl + "/invites/" + quota + "/others?page=" + page + "&size=" + size + "&search=" + search); + getOthersPages(quota: string, page: number, size: number, search: string, redeemed: string) { + return this.http.get(environment.apiUrl + "/invites/" + quota + "/others?page=" + page + "&size=" + size + "&search=" + search + (redeemed ? "&redeemed=" + redeemed : "")); } create(quota: string, invite: any) {