@ViewChildren(InvoiceResultsComponent) invResults: QueryList<PurchaseOrderResultsComponent>;
@ViewChildren(PicklistResultsComponent) plResults: QueryList<PurchaseOrderResultsComponent>;
+ previousUrl: string = null;
+
constructor(
private router: Router,
private route: ActivatedRoute,
});
this.router.events.subscribe(routeEvent => {
if (routeEvent instanceof NavigationEnd) {
+ // force reset of grid data source if we're navigating from
+ // a search tab to the same search tab
+ if (this.previousUrl != null) {
+ let prevRoute = this.previousUrl.match(/acq\/search\/([a-z]+)/);
+ let newRoute = routeEvent.url.match(/acq\/search\/([a-z]+)/);
+ let prevTab = prevRoute == null ? 'lineitems' : prevRoute[1];
+ let newTab = newRoute == null ? 'lineitems' : newRoute[1];
+ if (prevTab === newTab) {
+ switch (newTab) {
+ case 'lineitems':
+ this.liResults.toArray()[0].gridSource.reset();
+ break;
+ case 'purchaseorders':
+ this.poResults.toArray()[0].gridSource.reset();
+ break;
+ case 'invoices':
+ this.invResults.toArray()[0].gridSource.reset();
+ break;
+ case 'selectionlists':
+ this.plResults.toArray()[0].gridSource.reset();
+ break;
+ }
+ }
+ }
+ this.previousUrl = routeEvent.url;
this.ngOnInit(); // TODO: probably overkill
}
});