diff --git a/goofy-client/libs/user-settings/src/lib/user-settings-container/user-settings-container.component.ts b/goofy-client/libs/user-settings/src/lib/user-settings-container/user-settings-container.component.ts index bae04fe0f1000a772f2099eb95a2c0779abaa27a..08cf8216237caacf0bc2557163953e312b99bb03 100644 --- a/goofy-client/libs/user-settings/src/lib/user-settings-container/user-settings-container.component.ts +++ b/goofy-client/libs/user-settings/src/lib/user-settings-container/user-settings-container.component.ts @@ -3,7 +3,7 @@ import { Component, Inject, OnInit, Renderer2 } from '@angular/core'; import { AppService, localStorageDark } from '@goofy-client/app-shared'; import { StateResource } from '@goofy-client/tech-shared'; import { UserSettingsService } from '@goofy-client/user-settings-shared'; -import { UserSettingsResource } from 'libs/user-settings-shared/src/lib/user-settings.model'; +import { NotificationsSendFor, UserSettingsResource } from 'libs/user-settings-shared/src/lib/user-settings.model'; import { Observable, of } from 'rxjs'; @Component({ @@ -51,6 +51,7 @@ export class UserSettingsContainerComponent implements OnInit { } changeNotificationsSendFor(value: boolean): void { - console.log(value); + const notificationsSendFor: string = value ? NotificationsSendFor.ALL : NotificationsSendFor.NONE; + this.userSettingsService.setUserSettings({ notificationsSendFor }); } } diff --git a/goofy-client/libs/user-settings/src/lib/user-settings-container/user-settings-email-benachrichtigung/user-settings-email-benachrichtigung.component.html b/goofy-client/libs/user-settings/src/lib/user-settings-container/user-settings-email-benachrichtigung/user-settings-email-benachrichtigung.component.html index 3bfb68c7841ed382b039465b9132ba4f22358b82..e794cd37026aa4b2f3a724e91fbd2e5ac0f99768 100644 --- a/goofy-client/libs/user-settings/src/lib/user-settings-container/user-settings-email-benachrichtigung/user-settings-email-benachrichtigung.component.html +++ b/goofy-client/libs/user-settings/src/lib/user-settings-container/user-settings-email-benachrichtigung/user-settings-email-benachrichtigung.component.html @@ -1,8 +1,8 @@ -<ng-container *ngIf="userSettings$ | async as userSettings"> +<ng-container *ngIf="(userSettings$ | async)?.resource as userSettings"> <mat-slide-toggle color="primary" matTooltip="Benachrichtigung per E-Mail bei Eingang eines Antrags" - [checked]="userSettings.notificationsSendFor" + [checked]="getToggleStatus(userSettings)" (change)="valueChanged.emit($event.checked)">Benachrichtigung per E-Mail </mat-slide-toggle> </ng-container> \ No newline at end of file diff --git a/goofy-client/libs/user-settings/src/lib/user-settings-container/user-settings-email-benachrichtigung/user-settings-email-benachrichtigung.component.spec.ts b/goofy-client/libs/user-settings/src/lib/user-settings-container/user-settings-email-benachrichtigung/user-settings-email-benachrichtigung.component.spec.ts index 1748b57752aff10b0b9fbfb13cc7df5425a8c2e5..77f1f938ff3059e27f3de7a51493395c49ba9f61 100644 --- a/goofy-client/libs/user-settings/src/lib/user-settings-container/user-settings-email-benachrichtigung/user-settings-email-benachrichtigung.component.spec.ts +++ b/goofy-client/libs/user-settings/src/lib/user-settings-container/user-settings-email-benachrichtigung/user-settings-email-benachrichtigung.component.spec.ts @@ -1,5 +1,7 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { UiModule } from '@goofy-client/ui'; +import { NotificationsSendFor } from 'libs/user-settings-shared/src/lib/user-settings.model'; +import { createUserSettings } from 'libs/user-settings-shared/test/user-settings'; import { UserSettingsEmailBenachrichtigungComponent } from './user-settings-email-benachrichtigung.component'; describe('UserSettingsEmailBenachrichtigungComponent', () => { @@ -22,4 +24,23 @@ describe('UserSettingsEmailBenachrichtigungComponent', () => { it('should create', () => { expect(component).toBeTruthy(); }); + + describe('toogle status', () => { + const userSettings = createUserSettings(); + it('should be checked if userSettings.notificationsSendFor is ALL', () => { + userSettings.notificationsSendFor = NotificationsSendFor.ALL; + + const result: boolean = component.getToggleStatus(userSettings); + + expect(result).toBeTruthy(); + }) + + it('should not be checked if userSettings.notificationsSendFor is NONE', () => { + userSettings.notificationsSendFor = NotificationsSendFor.NONE; + + const result: boolean = component.getToggleStatus(userSettings); + + expect(result).toBeFalsy(); + }) + }) }); diff --git a/goofy-client/libs/user-settings/src/lib/user-settings-container/user-settings-email-benachrichtigung/user-settings-email-benachrichtigung.component.ts b/goofy-client/libs/user-settings/src/lib/user-settings-container/user-settings-email-benachrichtigung/user-settings-email-benachrichtigung.component.ts index 87d060af8ac7f4275eef47b05b0f6d3e2f0a71a1..adb1df1f939759d85464ac9503323a94759f55c2 100644 --- a/goofy-client/libs/user-settings/src/lib/user-settings-container/user-settings-email-benachrichtigung/user-settings-email-benachrichtigung.component.ts +++ b/goofy-client/libs/user-settings/src/lib/user-settings-container/user-settings-email-benachrichtigung/user-settings-email-benachrichtigung.component.ts @@ -1,6 +1,6 @@ import { Component, EventEmitter, Input, Output } from '@angular/core'; import { StateResource } from '@goofy-client/tech-shared'; -import { UserSettingsResource } from '@goofy-client/user-settings-shared'; +import { NotificationsSendFor, UserSettings, UserSettingsResource } from '@goofy-client/user-settings-shared'; import { Observable } from 'rxjs'; @Component({ @@ -11,4 +11,8 @@ import { Observable } from 'rxjs'; export class UserSettingsEmailBenachrichtigungComponent { @Input() userSettings$: Observable<StateResource<UserSettingsResource>>; @Output() valueChanged: EventEmitter<boolean> = new EventEmitter(); + + public getToggleStatus(userSettings: UserSettings): boolean { + return userSettings.notificationsSendFor === NotificationsSendFor.ALL; + } }