import { Component, Injector, OnInit, ViewChild, ViewEncapsulation, Input, ViewContainerRef } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; import { appModuleAnimation } from '@shared/animations/routerTransition'; import { AppComponentBase } from '@shared/common/app-component-base'; import { ControllerRouteDetailServiceProxy, ControllerOrderPackagesListServiceProxy, OrderIncidentsServiceProxy, OrderTypesServiceProxy} from '@shared/service-proxies/service-proxies'; import { AppSessionService } from '@shared/common/session/app-session.service'; import { Table } from "primeng/table"; import { LazyLoadEvent } from "primeng/primeng"; import { Paginator } from 'primeng/components/paginator/paginator'; import { finalize } from 'rxjs/operators'; import * as _ from 'lodash'; import * as moment from 'moment'; declare var $: any; declare var jquery:any; @Component({ selector:'order-incidents-tab', templateUrl: 'order-incident-list.component.html', encapsulation: ViewEncapsulation.None, animations: [appModuleAnimation()], providers: [OrderIncidentsServiceProxy] }) export class ControllerOrderIncidentsComponent extends AppComponentBase implements OnInit { routeId:number = null; formattedOrderPackagesDateTime: any formattedOrderPackagesPickupBy: any formattedOrderPackagesDeliveryBy: any filterText: any @ViewChild("dataTable", {static: true}) dataTable:Table @ViewChild("paginator", {static: true}) paginator: Paginator @Input() filters: { locationFilter: number; statusFilter: number; typeFilter: number; startDate: Date; endDate: Date; orderStatusCode: string, isLineHaul: boolean } = {}; filteredOrderType: any; orderTypeId: any; advancedFiltersAreShown=false; constructor( injector: Injector, private id:ActivatedRoute, private _controllerRouteDetails: ControllerRouteDetailServiceProxy, private _controllerOrderPackages: ControllerOrderPackagesListServiceProxy, private _appSessionService :AppSessionService, private _orderIncidentAppService: OrderIncidentsServiceProxy, private _orderTypeRepository: OrderTypesServiceProxy, private viewContainerRef: ViewContainerRef, ) { super(injector); } ngOnInit(){ $('#OrderTypeSelect5').select2(); this.filteredOrderType = this.getParentComponent().filteredOrderType; } getOrderIncident(event?: LazyLoadEvent){ let date = moment(this.filters.endDate) let timeId = localStorage.getItem('timeZoneId'); if (this.primengTableHelper.shouldResetPaging(event)) { this.paginator.changePage(0); return; } this.spinnerService.show(); this.orderTypeId = Number((document.getElementById('OrderTypeSelect5')).value) == 0 ? undefined : Number((document.getElementById('OrderTypeSelect5')).value); this._orderIncidentAppService.getAllIncidentTab( this.filterText, undefined, this.filters.locationFilter, moment.tz(localStorage.getItem('loadDate'), timeId), this.orderTypeId, this.filters.isLineHaul, this.primengTableHelper.getSorting(this.dataTable), this.primengTableHelper.getSkipCount(this.paginator, event), this.primengTableHelper.getMaxResultCount(this.paginator, event)) .subscribe(result => { this.primengTableHelper.totalRecordsCount = result.totalCount; this.primengTableHelper.records = result.items; this.filteredOrderType = this.getParentComponent().filteredOrderType; this.spinnerService.hide(); }); } getParentComponent() { return this.viewContainerRef['_data'].componentView.component.viewContainerRef['_view'].component } onShown(){ } }