ViewChild} from '@angular/core';
import {Router, ActivatedRoute, ParamMap} from '@angular/router';
import {Observable, of} from 'rxjs';
-import {tap} from 'rxjs/operators';
+import {tap, map} from 'rxjs/operators';
import {Pager} from '@eg/share/util/pager';
import {IdlService, IdlObject} from '@eg/core/idl.service';
import {OrgService} from '@eg/core/org.service';
canDeactivate(): Observable<boolean> {
if (this.dirty) {
- return this.leaveConfirm.open();
+ return this.leaveConfirm.open().pipe(map(confirmed => {
+ if (confirmed) {
+ // fire-and-forget fetching the line item to restore it
+ // to its previous state
+ this.liService.getFleshedLineitems([ this.lineitemId ], {toCache: true}).toPromise();
+ }
+ return confirmed;
+ }));
} else {
return of(true);
}