From 46ba3dcb6224f4df0df5b220d806095b9ca8d88e Mon Sep 17 00:00:00 2001 From: amentis Date: Thu, 11 Jan 2024 12:16:50 +0200 Subject: [PATCH] mine in app notification listing changes --- ...otification-listing-filters.component.html | 7 ++++ ...-notification-listing-filters.component.ts | 16 +++++--- ...-inapp-notification-listing.component.html | 39 +++++++++++++++++-- ...ne-inapp-notification-listing.component.ts | 25 ++++++++---- dmp-frontend/src/assets/i18n/en.json | 2 + .../formatting/common-formatting.module.ts | 8 ++-- ...type.pipe.ts => notification-type.pipe.ts} | 8 ++-- 7 files changed, 82 insertions(+), 23 deletions(-) rename dmp-frontend/src/common/formatting/pipes/{notification-inapp-tracking-type.pipe.ts => notification-type.pipe.ts} (52%) diff --git a/dmp-frontend/src/app/ui/inapp-notification/listing/filters/mine-inapp-notification-listing-filters.component.html b/dmp-frontend/src/app/ui/inapp-notification/listing/filters/mine-inapp-notification-listing-filters.component.html index 817a3b1b6..0185cfa77 100644 --- a/dmp-frontend/src/app/ui/inapp-notification/listing/filters/mine-inapp-notification-listing-filters.component.html +++ b/dmp-frontend/src/app/ui/inapp-notification/listing/filters/mine-inapp-notification-listing-filters.component.html @@ -16,6 +16,13 @@ +
+ {{'NOTIFICATION-SERVICE.INAPP-NOTIFICATION-LISTING.FILTER.NOTIFICATION-TYPE' | translate}} + + {{enumUtils.toNotificationTypeString(type)}} + + +
{{'NOTIFICATION-SERVICE.INAPP-NOTIFICATION-LISTING.FILTER.TRACKING-STATE' | translate}} diff --git a/dmp-frontend/src/app/ui/inapp-notification/listing/filters/mine-inapp-notification-listing-filters.component.ts b/dmp-frontend/src/app/ui/inapp-notification/listing/filters/mine-inapp-notification-listing-filters.component.ts index ec69b6278..9f5fc4f3b 100644 --- a/dmp-frontend/src/app/ui/inapp-notification/listing/filters/mine-inapp-notification-listing-filters.component.ts +++ b/dmp-frontend/src/app/ui/inapp-notification/listing/filters/mine-inapp-notification-listing-filters.component.ts @@ -5,6 +5,7 @@ import { NotificationInAppTracking } from '@app/core/common/enum/notification-in import { EnumUtils } from '@app/core/services/utilities/enum-utils.service'; import { InAppNotificationFilter } from '@app/core/query/inapp-notification.lookup'; import { nameof } from 'ts-simple-nameof'; +import { NotificationType } from '@app/core/common/enum/notification-type'; @Component({ selector: 'app-mine-inapp-notification-listing-filters', templateUrl: './mine-inapp-notification-listing-filters.component.html', @@ -16,6 +17,7 @@ export class MineInAppNotificationListingFiltersComponent extends BaseComponent @Output() filterChange = new EventEmitter(); notificationInAppTrackingEnumValues = this.enumUtils.getEnumValues(NotificationInAppTracking); + notificationTypeEnumValues = this.enumUtils.getEnumValues(NotificationType); // * State internalFilters: InAppNotificationListingFilters = this._getEmptyFilters(); @@ -47,11 +49,12 @@ export class MineInAppNotificationListingFiltersComponent extends BaseComponent } protected applyFilters(): void { - const { like, trackingState } = this.internalFilters ?? {} + const { like, trackingState, type } = this.internalFilters ?? {} this.filterChange.emit({ ...this.filter, like, - trackingState + trackingState, + type }) } @@ -61,11 +64,12 @@ export class MineInAppNotificationListingFiltersComponent extends BaseComponent return this._getEmptyFilters(); } - let { like, trackingState } = inputFilter; + let { like, trackingState, type } = inputFilter; return { like: like, - trackingState: trackingState + trackingState: trackingState, + type: type } } @@ -73,7 +77,8 @@ export class MineInAppNotificationListingFiltersComponent extends BaseComponent private _getEmptyFilters(): InAppNotificationListingFilters { return { like: null, - trackingState: null + trackingState: null, + type: null } } @@ -90,4 +95,5 @@ export class MineInAppNotificationListingFiltersComponent extends BaseComponent interface InAppNotificationListingFilters { like: string; trackingState: NotificationInAppTracking[]; + type: NotificationType[]; } diff --git a/dmp-frontend/src/app/ui/inapp-notification/listing/mine-inapp-notification-listing.component.html b/dmp-frontend/src/app/ui/inapp-notification/listing/mine-inapp-notification-listing.component.html index 22ec8c7cf..6cd3006ed 100644 --- a/dmp-frontend/src/app/ui/inapp-notification/listing/mine-inapp-notification-listing.component.html +++ b/dmp-frontend/src/app/ui/inapp-notification/listing/mine-inapp-notification-listing.component.html @@ -32,9 +32,33 @@
- {{item?.trackingState | nullifyValue}} -
+ + + drafts + mail + + +
+
+ + + + {{'NOTIFICATION-SERVICE.INAPP-NOTIFICATION-LISTING.FIELDS.SUBJECT' | translate}}: + + {{item?.subject | nullifyValue}} + + +
+
+ + + + {{'NOTIFICATION-SERVICE.INAPP-NOTIFICATION-LISTING.FIELDS.NOTIFICATION-TYPE' | translate}}: + + {{enumUtils.toNotificationTypeString(item.type) | nullifyValue}} + + +
@@ -64,4 +88,13 @@
+ + + +
+
+ drafts + mail +
+
\ No newline at end of file diff --git a/dmp-frontend/src/app/ui/inapp-notification/listing/mine-inapp-notification-listing.component.ts b/dmp-frontend/src/app/ui/inapp-notification/listing/mine-inapp-notification-listing.component.ts index eba6155f3..2029435db 100644 --- a/dmp-frontend/src/app/ui/inapp-notification/listing/mine-inapp-notification-listing.component.ts +++ b/dmp-frontend/src/app/ui/inapp-notification/listing/mine-inapp-notification-listing.component.ts @@ -13,7 +13,6 @@ import { InAppNotificationLookup } from '@app/core/query/inapp-notification.look import { InAppNotificationService } from '@app/core/services/inapp-notification/inapp-notification.service'; import { IsActive } from '@app/core/common/enum/is-active.enum'; import { nameof } from 'ts-simple-nameof'; -import { NotificationInAppTrackingTypePipe } from '@common/formatting/pipes/notification-inapp-tracking-type.pipe'; import { Observable } from 'rxjs'; import { QueryResult } from '@common/model/query-result'; import { EnumUtils } from '@app/core/services/utilities/enum-utils.service'; @@ -22,6 +21,8 @@ import { MatDialog } from '@angular/material/dialog'; import { Guid } from '@common/types/guid'; import { ConfirmationDialogComponent } from '@common/modules/confirmation-dialog/confirmation-dialog.component'; import { takeUntil } from 'rxjs/operators'; +import { NotificationInAppTracking } from '@app/core/common/enum/notification-inapp-tracking.enum'; +import { NotificationTypePipe } from '@common/formatting/pipes/notification-type.pipe'; @Component({ selector: 'app-mine-inapp-notification-listing', @@ -32,13 +33,16 @@ export class MineInAppNotificationListingComponent extends BaseListingComponent< publish = false; userSettingsKey = { key: 'InAppNotificationListingUserSettings' }; propertiesAvailableForOrder: ColumnDefinition[]; + notificationInAppTracking= NotificationInAppTracking; @ViewChild('actions', { static: true }) actions?: TemplateRef; + @ViewChild('state', { static: true }) state?: TemplateRef; @ViewChild(HybridListingComponent, { static: true }) hybridListingComponent: HybridListingComponent; private readonly lookupFields: string[] = [ nameof(x => x.id), nameof(x => x.subject), + nameof(x => x.type), nameof(x => x.trackingState), nameof(x => x.createdAt), nameof(x => x.isActive) @@ -86,15 +90,22 @@ export class MineInAppNotificationListingComponent extends BaseListingComponent< protected setupColumns() { this.gridColumns.push(...[{ - prop: nameof(x => x.subject), - sortable: true, - languageName: 'NOTIFICATION-SERVICE.INAPP-NOTIFICATION-LISTING.FIELDS.SUBJECT' - }, - { prop: nameof(x => x.trackingState), sortable: true, languageName: 'NOTIFICATION-SERVICE.INAPP-NOTIFICATION-LISTING.FIELDS.TRACKING-STATE', - pipe: this.pipeService.getPipe(NotificationInAppTrackingTypePipe) + cellTemplate: this.state, + maxWidth: 100 + }, + { + prop: nameof(x => x.subject), + sortable: true, + languageName: 'NOTIFICATION-SERVICE.INAPP-NOTIFICATION-LISTING.FIELDS.SUBJECT' + }, + { + prop: nameof(x => x.type), + sortable: true, + languageName: 'NOTIFICATION-SERVICE.INAPP-NOTIFICATION-LISTING.FIELDS.NOTIFICATION-TYPE', + pipe: this.pipeService.getPipe(NotificationTypePipe) }, { prop: nameof(x => x.createdAt), diff --git a/dmp-frontend/src/assets/i18n/en.json b/dmp-frontend/src/assets/i18n/en.json index fffb7922c..94b4bec00 100644 --- a/dmp-frontend/src/assets/i18n/en.json +++ b/dmp-frontend/src/assets/i18n/en.json @@ -1336,11 +1336,13 @@ "FIELDS": { "SUBJECT": "Subject", "TRACKING-STATE": "State", + "NOTIFICATION-TYPE":"Type", "CREATED-AT": "Created" }, "FILTER": { "TITLE": "Filters", "TRACKING-STATE":"State", + "NOTIFICATION-TYPE":"Type", "IS-ACTIVE": "Is Active", "CANCEL": "Cancel", "APPLY-FILTERS": "Apply filters" diff --git a/dmp-frontend/src/common/formatting/common-formatting.module.ts b/dmp-frontend/src/common/formatting/common-formatting.module.ts index 2c54e7751..2ed1bea50 100644 --- a/dmp-frontend/src/common/formatting/common-formatting.module.ts +++ b/dmp-frontend/src/common/formatting/common-formatting.module.ts @@ -9,7 +9,7 @@ import { ReferenceTypePipe } from './pipes/reference-type.pipe'; import { ReferenceSourceTypePipe } from './pipes/reference-source-type.pipe'; import { NotificationTemplateChannelPipe } from './pipes/notification-template-channel.pipe'; import { NotificationTemplateKindPipe } from './pipes/notification-template-kind.pipe'; -import { NotificationInAppTrackingTypePipe } from './pipes/notification-inapp-tracking-type.pipe'; +import { NotificationTypePipe } from './pipes/notification-type.pipe'; // // @@ -31,7 +31,7 @@ import { NotificationInAppTrackingTypePipe } from './pipes/notification-inapp-tr ReferenceSourceTypePipe, NotificationTemplateChannelPipe, NotificationTemplateKindPipe, - NotificationInAppTrackingTypePipe + NotificationTypePipe ], exports: [ DateFormatPipe, @@ -47,7 +47,7 @@ import { NotificationInAppTrackingTypePipe } from './pipes/notification-inapp-tr ReferenceSourceTypePipe, NotificationTemplateChannelPipe, NotificationTemplateKindPipe, - NotificationInAppTrackingTypePipe + NotificationTypePipe ], providers: [ DateFormatPipe, @@ -63,7 +63,7 @@ import { NotificationInAppTrackingTypePipe } from './pipes/notification-inapp-tr ReferenceSourceTypePipe, NotificationTemplateChannelPipe, NotificationTemplateKindPipe, - NotificationInAppTrackingTypePipe + NotificationTypePipe ] }) export class CommonFormattingModule { } diff --git a/dmp-frontend/src/common/formatting/pipes/notification-inapp-tracking-type.pipe.ts b/dmp-frontend/src/common/formatting/pipes/notification-type.pipe.ts similarity index 52% rename from dmp-frontend/src/common/formatting/pipes/notification-inapp-tracking-type.pipe.ts rename to dmp-frontend/src/common/formatting/pipes/notification-type.pipe.ts index 413a7d6b6..4e26ccb69 100644 --- a/dmp-frontend/src/common/formatting/pipes/notification-inapp-tracking-type.pipe.ts +++ b/dmp-frontend/src/common/formatting/pipes/notification-type.pipe.ts @@ -1,11 +1,11 @@ import { Pipe, PipeTransform } from '@angular/core'; import { EnumUtils } from '@app/core/services/utilities/enum-utils.service'; -@Pipe({ name: 'NotificationInAppTrackingTypeFormat' }) -export class NotificationInAppTrackingTypePipe implements PipeTransform { +@Pipe({ name: 'NotificationTypeFormat' }) +export class NotificationTypePipe implements PipeTransform { constructor(private enumUtils: EnumUtils) { } public transform(value): any { - return this.enumUtils.toNotificationInAppTrackingString(value); + return this.enumUtils.toNotificationTypeString(value); } -} +} \ No newline at end of file