update status on in-app-notificatons-dialog "read all"
This commit is contained in:
parent
211e2044dd
commit
05a90d6fbd
|
@ -348,6 +348,9 @@ export class NavbarComponent extends BaseComponent implements OnInit {
|
||||||
position: { top: '71px', right: '4.8em' },
|
position: { top: '71px', right: '4.8em' },
|
||||||
width: "27.0rem"
|
width: "27.0rem"
|
||||||
});
|
});
|
||||||
|
this.inAppNotificationDialog.componentInstance.onReadAll.subscribe(() => {
|
||||||
|
this.countUnreadInappNotifications();
|
||||||
|
});
|
||||||
this.inAppNotificationDialog.afterClosed().pipe(takeUntil(this._destroyed)).subscribe(result => {
|
this.inAppNotificationDialog.afterClosed().pipe(takeUntil(this._destroyed)).subscribe(result => {
|
||||||
this.countUnreadInappNotifications();
|
this.countUnreadInappNotifications();
|
||||||
this.inAppNotificationDialog = null;
|
this.inAppNotificationDialog = null;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { fromEvent, Observable, Subscription } from "rxjs";
|
import { fromEvent, Observable, Subscription } from "rxjs";
|
||||||
import { HttpErrorResponse } from '@angular/common/http';
|
import { HttpErrorResponse } from '@angular/common/http';
|
||||||
import { Component, Inject, OnDestroy, OnInit } from '@angular/core';
|
import { Component, EventEmitter, Inject, OnDestroy, OnInit } from '@angular/core';
|
||||||
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
|
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
|
||||||
import { Router } from '@angular/router';
|
import { Router } from '@angular/router';
|
||||||
import { AuthService } from '@app/core/services/auth/auth.service';
|
import { AuthService } from '@app/core/services/auth/auth.service';
|
||||||
|
@ -26,10 +26,11 @@ export class MineInAppNotificationListingDialogComponent extends BaseComponent i
|
||||||
|
|
||||||
resizeObservable: Observable<Event>;
|
resizeObservable: Observable<Event>;
|
||||||
resizeSubscription: Subscription;
|
resizeSubscription: Subscription;
|
||||||
|
onReadAll = new EventEmitter();
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
public dialogRef: MatDialogRef<MineInAppNotificationListingDialogComponent>,
|
public dialogRef: MatDialogRef<MineInAppNotificationListingDialogComponent>,
|
||||||
@Inject(MAT_DIALOG_DATA) public dialogData: any,
|
@Inject(MAT_DIALOG_DATA) public data: any,
|
||||||
private inappNotificationService: InAppNotificationService,
|
private inappNotificationService: InAppNotificationService,
|
||||||
private router: Router,
|
private router: Router,
|
||||||
private uiNotificationService: UiNotificationService,
|
private uiNotificationService: UiNotificationService,
|
||||||
|
@ -40,32 +41,15 @@ export class MineInAppNotificationListingDialogComponent extends BaseComponent i
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
const lookup = new InAppNotificationLookup();
|
|
||||||
lookup.project = {
|
const lookup: InAppNotificationLookup = this.getLookup();
|
||||||
fields: [
|
this.fetchNotifications(lookup);
|
||||||
nameof<InAppNotification>(x => x.id),
|
|
||||||
nameof<InAppNotification>(x => x.subject),
|
|
||||||
nameof<InAppNotification>(x => x.createdAt),
|
|
||||||
nameof<InAppNotification>(x => x.trackingState),
|
|
||||||
]
|
|
||||||
};
|
|
||||||
lookup.page = { offset: 0, size: 5 };
|
|
||||||
lookup.order = { items: ['-' + nameof<InAppNotification>(x => x.createdAt)] };
|
|
||||||
lookup.isActive = [IsActive.Active];
|
|
||||||
this.inappNotificationService.query(lookup)
|
|
||||||
.pipe(takeUntil(this._destroyed))
|
|
||||||
.subscribe(
|
|
||||||
data => {
|
|
||||||
this.inappNotifications = data.items;
|
|
||||||
},
|
|
||||||
error => this.onCallbackError(error),
|
|
||||||
);
|
|
||||||
|
|
||||||
this.resizeObservable = fromEvent(window, 'resize');
|
this.resizeObservable = fromEvent(window, 'resize');
|
||||||
this.resizeSubscription = this.resizeObservable
|
this.resizeSubscription = this.resizeObservable
|
||||||
.subscribe(evt =>{
|
.subscribe(evt =>{
|
||||||
this.dialogRef.close();
|
this.dialogRef.close();
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -107,7 +91,40 @@ export class MineInAppNotificationListingDialogComponent extends BaseComponent i
|
||||||
this.inappNotificationService.readAll()
|
this.inappNotificationService.readAll()
|
||||||
.pipe(takeUntil(this._destroyed))
|
.pipe(takeUntil(this._destroyed))
|
||||||
.subscribe(
|
.subscribe(
|
||||||
data => {},
|
readAllStatus => {
|
||||||
|
if (readAllStatus) {
|
||||||
|
const lookup: InAppNotificationLookup = this.getLookup();
|
||||||
|
this.fetchNotifications(lookup);
|
||||||
|
this.onReadAll.emit();
|
||||||
|
}
|
||||||
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private getLookup(): InAppNotificationLookup {
|
||||||
|
const lookup = new InAppNotificationLookup();
|
||||||
|
lookup.project = {
|
||||||
|
fields: [
|
||||||
|
nameof<InAppNotification>(x => x.id),
|
||||||
|
nameof<InAppNotification>(x => x.subject),
|
||||||
|
nameof<InAppNotification>(x => x.createdAt),
|
||||||
|
nameof<InAppNotification>(x => x.trackingState),
|
||||||
|
]
|
||||||
|
};
|
||||||
|
lookup.page = { offset: 0, size: 5 };
|
||||||
|
lookup.order = { items: ['-' + nameof<InAppNotification>(x => x.createdAt)] };
|
||||||
|
lookup.isActive = [IsActive.Active];
|
||||||
|
return lookup;
|
||||||
|
}
|
||||||
|
|
||||||
|
private fetchNotifications(lookup: InAppNotificationLookup): void {
|
||||||
|
this.inappNotificationService.query(lookup)
|
||||||
|
.pipe(takeUntil(this._destroyed))
|
||||||
|
.subscribe(
|
||||||
|
data => {
|
||||||
|
this.inappNotifications = data.items;
|
||||||
|
},
|
||||||
|
error => this.onCallbackError(error),
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue