From d01ad9532ba9d50ae1ebf26443f242ce8636dbd0 Mon Sep 17 00:00:00 2001 From: Antonin Coquet <ext.sopra.acoquet@grandlyon.com> Date: Tue, 27 Apr 2021 11:37:53 +0200 Subject: [PATCH 1/2] feat: add count on newsletter and change button --- .../newsletter-users/newsletter-users.component.html | 1 + .../newsletter-users/newsletter-users.component.ts | 7 +++++++ src/app/admin/components/panel/panel.component.html | 3 +-- src/app/admin/services/admin.service.ts | 4 ++++ 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/app/admin/components/newsletter-users/newsletter-users.component.html b/src/app/admin/components/newsletter-users/newsletter-users.component.html index 8a82446d7..d89d280e1 100644 --- a/src/app/admin/components/newsletter-users/newsletter-users.component.html +++ b/src/app/admin/components/newsletter-users/newsletter-users.component.html @@ -3,6 +3,7 @@ <div fxLayout="row"> <button (click)="copySubscription()">Copier les adresses dans le presse papier</button> </div> + <div fxLayout="row">Il y a actuellement {{ subscriptionsCount }} abonnés à la newsletter.</div> <div fxLayout="row"> <input #searchstring (keyup)="(0)" /> <button (click)="searchSubscribedEmail(searchstring.value)">Rechercher</button> diff --git a/src/app/admin/components/newsletter-users/newsletter-users.component.ts b/src/app/admin/components/newsletter-users/newsletter-users.component.ts index 66290faae..6eab37d75 100644 --- a/src/app/admin/components/newsletter-users/newsletter-users.component.ts +++ b/src/app/admin/components/newsletter-users/newsletter-users.component.ts @@ -10,9 +10,16 @@ export class NewsletterUsersComponent { public subscriptions: NewsletterSubscription[]; public deleteModalOpenned = false; public emailToUnsubscribe: string = null; + public subscriptionsCount: number = 0; constructor(private adminService: AdminService) {} + ngOnInit(): void { + this.adminService.countNewsletterSubscriptions().subscribe((count) => { + this.subscriptionsCount = count; + }); + } + public toggleUnsubscribeModal(emailToUnsubscribe: string): void { this.emailToUnsubscribe = emailToUnsubscribe; this.deleteModalOpenned = !this.deleteModalOpenned; diff --git a/src/app/admin/components/panel/panel.component.html b/src/app/admin/components/panel/panel.component.html index 1ee88741e..c92281381 100644 --- a/src/app/admin/components/panel/panel.component.html +++ b/src/app/admin/components/panel/panel.component.html @@ -3,7 +3,7 @@ <div fxLayout="row" fxLayoutGap="20px" fxLayoutAlign="center center"> <button (click)="changeActiveFeature(features.pendingStructures)">Gestion structure</button> <button (click)="changeActiveFeature(features.deleteUsers)">Suppression d'utilisateurs</button> - <button (click)="changeActiveFeature(features.newsletterUsers)">Désabonnement newsletter</button> + <button (click)="changeActiveFeature(features.newsletterUsers)">Newsletter</button> <a target="_blank" class="custom-link" rel="noopener noreferrer" [href]="ghostLink">Ghost</a> </div> <div *ngIf="selectedFeature === features.deleteUsers"> @@ -15,5 +15,4 @@ <div *ngIf="selectedFeature === features.newsletterUsers"> <app-admin-newsletter-users></app-admin-newsletter-users> </div> - </div> diff --git a/src/app/admin/services/admin.service.ts b/src/app/admin/services/admin.service.ts index d71c89ef9..7e50a6509 100644 --- a/src/app/admin/services/admin.service.ts +++ b/src/app/admin/services/admin.service.ts @@ -33,6 +33,10 @@ export class AdminService { return this.http.post<NewsletterSubscription[]>(`api/admin/searchNewsletterSubscriptions`, { searchString }); } + public countNewsletterSubscriptions(): Observable<number> { + return this.http.get<number>(`api/admin/countNewsletterSubscriptions`); + } + public unsubscribeEmail(email: string): Observable<string> { return this.http.delete<string>(`api/admin/newsletterSubscription/` + email); } -- GitLab From 16146f2aabf39c28edf42e062328d8bf6bbbb5fa Mon Sep 17 00:00:00 2001 From: Antonin Coquet <ext.sopra.acoquet@grandlyon.com> Date: Thu, 29 Apr 2021 14:21:06 +0200 Subject: [PATCH 2/2] fix: changes after review --- .../newsletter-users/newsletter-users.component.ts | 1 + src/app/admin/services/admin.service.ts | 10 +++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/app/admin/components/newsletter-users/newsletter-users.component.ts b/src/app/admin/components/newsletter-users/newsletter-users.component.ts index 6eab37d75..2b8675165 100644 --- a/src/app/admin/components/newsletter-users/newsletter-users.component.ts +++ b/src/app/admin/components/newsletter-users/newsletter-users.component.ts @@ -36,6 +36,7 @@ export class NewsletterUsersComponent { if (shouldUnsubscribe) { this.adminService.unsubscribeEmail(email).subscribe((data) => { this.subscriptions = this.subscriptions.filter((obj) => obj.email !== email); + this.subscriptionsCount = this.subscriptions.length; }); } } diff --git a/src/app/admin/services/admin.service.ts b/src/app/admin/services/admin.service.ts index 7e50a6509..85b41d252 100644 --- a/src/app/admin/services/admin.service.ts +++ b/src/app/admin/services/admin.service.ts @@ -22,23 +22,23 @@ export class AdminService { } public searchUsers(searchString: string): Observable<User[]> { - return this.http.post<User[]>(`api/admin/searchUsers`, { searchString }); + return this.http.post<User[]>(`${this.baseUrl}/searchUsers`, { searchString }); } public deleteUser(id: string): Observable<User> { - return this.http.delete<User>(`api/admin/user/` + id); + return this.http.delete<User>(`${this.baseUrl}/user/` + id); } public searchNewsletterSubscriptions(searchString: string): Observable<NewsletterSubscription[]> { - return this.http.post<NewsletterSubscription[]>(`api/admin/searchNewsletterSubscriptions`, { searchString }); + return this.http.post<NewsletterSubscription[]>(`${this.baseUrl}/searchNewsletterSubscriptions`, { searchString }); } public countNewsletterSubscriptions(): Observable<number> { - return this.http.get<number>(`api/admin/countNewsletterSubscriptions`); + return this.http.get<number>(`${this.baseUrl}/countNewsletterSubscriptions`); } public unsubscribeEmail(email: string): Observable<string> { - return this.http.delete<string>(`api/admin/newsletterSubscription/` + email); + return this.http.delete<string>(`${this.baseUrl}/newsletterSubscription/` + email); } public acceptStructureClaim( -- GitLab