solved comments

This commit is contained in:
Valentin 2021-11-10 10:46:02 +02:00
parent d3c728683f
commit 1af5a7ae4d
8 changed files with 22 additions and 29 deletions

View File

@ -1,12 +1,3 @@
export const EmailNotificationScheduleTypes = {
INSTANT: 'INSTANT',
DAILY: 'DAILY',
WEEKLY: 'WEEKLY',
} as const;
export type EmailNotificationScheduleType = keyof typeof EmailNotificationScheduleTypes;
export const EmailNotificationScheduleTypesValues = Object.values(EmailNotificationScheduleTypes);
export const NotificationCategories = {
inAppNotifications: 'inAppNotifications',
emailNotifications: 'emailNotifications',
@ -39,9 +30,9 @@ export const ApproverOnDossiersNotificationsTypes = {
export const ApproverOnDossiersNotificationsTypesValues = Object.values(ApproverOnDossiersNotificationsTypes);
export const NotificationGroupsKeys = ['own', 'reviewer', 'approver'];
export const NotificationGroupsKeys = ['own', 'reviewer', 'approver'] as const;
export const NotificationGroupsValues = [
OwnDossiersNotificationsTypesValues,
ReviewerOnDossiersNotificationsTypesValues,
ApproverOnDossiersNotificationsTypesValues,
];
] as const;

View File

@ -1,4 +1,4 @@
@use 'apps/red-ui/src/assets/styles/variables';
@use 'variables';
@use 'libs/common-ui/src/assets/styles/common-mixins';
.dialog-content {

View File

@ -4,12 +4,8 @@ import { notificationsTranslations } from '../../../translations/notifications-t
import { NotificationPreferencesService } from '../../../services/notification-preferences.service';
import { LoadingService, Toaster } from '@iqser/common-ui';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import {
EmailNotificationScheduleTypesValues,
NotificationCategoriesValues,
NotificationGroupsKeys,
NotificationGroupsValues,
} from '../constants';
import { NotificationCategoriesValues, NotificationGroupsKeys, NotificationGroupsValues } from '../constants';
import { EmailNotificationScheduleTypesValues } from '@red/domain';
@Component({
selector: 'redaction-notifications-screen',
@ -75,7 +71,7 @@ export class NotificationsScreenComponent implements OnInit {
async save() {
this._loadingService.start();
try {
await this._notificationPreferencesService.updateNotificationPreferences(this.formGroup.value).toPromise();
await this._notificationPreferencesService.update(this.formGroup.value).toPromise();
} catch (e) {
this._toaster.error(_('notifications-screen.error.generic'));
}
@ -85,7 +81,7 @@ export class NotificationsScreenComponent implements OnInit {
private async _initializeForm() {
this._loadingService.start();
const notificationPreferences = await this._notificationPreferencesService.getNotificationPreferences().toPromise();
const notificationPreferences = await this._notificationPreferencesService.get().toPromise();
this.formGroup.patchValue(notificationPreferences);
this._loadingService.stop();

View File

@ -2,23 +2,20 @@ import { Injectable, Injector } from '@angular/core';
import { GenericService } from '@iqser/common-ui';
import { Observable, of } from 'rxjs';
import { UserService } from '../../../services/user.service';
import { INotificationPreferences } from '@red/domain';
import { EmailNotificationScheduleTypes, INotificationPreferences } from '@red/domain';
import { catchError } from 'rxjs/operators';
import { EmailNotificationScheduleTypes } from '../screens/notifications/constants';
@Injectable({
providedIn: 'root',
})
@Injectable()
export class NotificationPreferencesService extends GenericService<INotificationPreferences> {
constructor(protected readonly _injector: Injector, private readonly _userService: UserService) {
super(_injector, 'notification-preferences');
}
getNotificationPreferences(): Observable<INotificationPreferences> {
get(): Observable<INotificationPreferences> {
return super.get<INotificationPreferences>().pipe(catchError(() => of(this._defaultPreferences)));
}
updateNotificationPreferences(notificationPreferences: INotificationPreferences): Observable<void> {
update(notificationPreferences: INotificationPreferences): Observable<void> {
return super._post(notificationPreferences);
}

@ -1 +1 @@
Subproject commit 64bf1b270deb96f399b1ab603cf9cd00ff700f36
Subproject commit ca957326b3514c7bc158fd80c9f65d1967d431d0

View File

@ -1 +1,2 @@
export * from './notification-preferences';
export * from './types';

View File

@ -1,4 +1,4 @@
import { EmailNotificationScheduleType } from '../../../../../apps/red-ui/src/app/modules/account/screens/notifications/constants';
import { EmailNotificationScheduleType } from './types';
export interface INotificationPreferences {
emailNotificationType: EmailNotificationScheduleType;

View File

@ -0,0 +1,8 @@
export const EmailNotificationScheduleTypes = {
INSTANT: 'INSTANT',
DAILY: 'DAILY',
WEEKLY: 'WEEKLY',
} as const;
export type EmailNotificationScheduleType = keyof typeof EmailNotificationScheduleTypes;
export const EmailNotificationScheduleTypesValues = Object.values(EmailNotificationScheduleTypes);