Do not display empty notification settings group

This commit is contained in:
Chocobozzz 2024-02-15 16:30:53 +01:00
parent b13e81e43f
commit 098c25ece6
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
2 changed files with 33 additions and 27 deletions

View File

@ -1,33 +1,35 @@
<div *ngIf="webNotifications">
<ng-container *ngFor="let group of notificationSettingGroups">
<div class="header notification-row">
<div i18n>{{ group.label }}</div>
<div i18n>Web</div>
<div i18n *ngIf="emailEnabled">Email</div>
</div>
<ng-container *ngFor="let notificationType of group.keys">
<div class="small notification-row" *ngIf="hasUserRight(notificationType)">
<div>{{ labelNotifications[notificationType] }}</div>
<div>
<my-input-switch
[label]="getWebLabel(notificationType)"
[inputName]="'web-notification-' + notificationType"
[(ngModel)]="webNotifications[notificationType]"
(ngModelChange)="updateWebSetting(notificationType, webNotifications[notificationType])"
></my-input-switch>
</div>
<div *ngIf="emailEnabled">
<my-input-switch
[label]="getEmailLabel(notificationType)"
[inputName]="'email-notification-' + notificationType"
[(ngModel)]="emailNotifications[notificationType]"
(ngModelChange)="updateEmailSetting(notificationType, emailNotifications[notificationType])"
></my-input-switch>
</div>
<ng-container *ngIf="hasNotificationsInGroup(group)">
<div class="header notification-row">
<div i18n>{{ group.label }}</div>
<div i18n>Web</div>
<div i18n *ngIf="emailEnabled">Email</div>
</div>
<ng-container *ngFor="let notificationType of group.keys">
<div class="small notification-row" *ngIf="hasUserRight(notificationType)">
<div>{{ labelNotifications[notificationType] }}</div>
<div>
<my-input-switch
[label]="getWebLabel(notificationType)"
[inputName]="'web-notification-' + notificationType"
[(ngModel)]="webNotifications[notificationType]"
(ngModelChange)="updateWebSetting(notificationType, webNotifications[notificationType])"
></my-input-switch>
</div>
<div *ngIf="emailEnabled">
<my-input-switch
[label]="getEmailLabel(notificationType)"
[inputName]="'email-notification-' + notificationType"
[(ngModel)]="emailNotifications[notificationType]"
(ngModelChange)="updateEmailSetting(notificationType, emailNotifications[notificationType])"
></my-input-switch>
</div>
</div>
</ng-container>
</ng-container>
</ng-container>
</div>

View File

@ -116,6 +116,10 @@ export class MyAccountNotificationPreferencesComponent implements OnInit {
return this.user.hasRight(rightToHave)
}
hasNotificationsInGroup (group: { keys: (keyof UserNotificationSetting)[] }) {
return group.keys.some(k => this.hasUserRight(k))
}
getWebLabel (notificationType: keyof UserNotificationSetting) {
return `Toggle web notification for "${this.labelNotifications[notificationType]}"`
}