From 6e1a6aa58cf9cf792c2a35b703ac499e11590b49 Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Fri, 14 Oct 2022 12:37:42 +0200 Subject: [PATCH] OZG-2626 OZG-2886 setUserSettings() implementieren (WIP) Aktueller Stand: Toggle im FE setzt Werte im BE --- .../user-settings-container.component.ts | 5 +++-- ...ings-email-benachrichtigung.component.html | 4 ++-- ...s-email-benachrichtigung.component.spec.ts | 21 +++++++++++++++++++ ...ttings-email-benachrichtigung.component.ts | 6 +++++- 4 files changed, 31 insertions(+), 5 deletions(-) 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 bae04fe0f1..08cf821623 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 3bfb68c784..e794cd3702 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 1748b57752..77f1f938ff 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 87d060af8a..adb1df1f93 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; + } } -- GitLab