bus-stop.component.ts 6.28 KB
import { Component, ViewEncapsulation, AfterViewInit } from '@angular/core';
import { TdLoadingService } from '@covalent/core';
import { GridOptions, IGetRowsParams, IRowModel } from 'ag-grid/main';

import { StatementBase } from '../../../models/statement.base';

import { BusStopService } from '../../../services/bus-stop.service';
import { BusStop } from '../../../models/bus-stop';
import { EditorComponent } from '../../../helpers/editor.component';
import { RendererComponent } from '../../../helpers/renderer.component';
import { BusStopCreateService } from '../../../services/bus-stop-create.service';
import { BooleanSelectListService } from '../../../services/boolean-select-list.service';
import { RegionSelectList } from '../../../models/region-select-list';
import { StateCommonSelectList } from '../../../models/state-common-select-list';
import { RoadSelectList } from '../../../models/road-select-list';
import { BooleanSelectList } from '../../../models/boolean-select-list';
import { SettlementSelectList } from '../../../models/settlement-select-list';
import { SurfaceTypeSelectList } from '../../../models/surface-type-select-list';

import { routerTransition } from '../../../animations/router.animation';

@Component({
    // tslint:disable-next-line:component-selector
    selector: 'bus-grid',
    templateUrl: 'bus-stop.component.html',
    styleUrls: ['bus-stop.scss'],
    encapsulation: ViewEncapsulation.None,
})
export class BusStopComponent extends StatementBase {

    public regions: RegionSelectList[];
    public states: StateCommonSelectList[];
    public surfaceTypes: SurfaceTypeSelectList[];
    public settlements: SettlementSelectList[];
    public roads: RoadSelectList[];
    public boolean: BooleanSelectList[];

    constructor(
        protected service: BusStopService,
        protected dataService: BusStopCreateService,
        protected booleanService: BooleanSelectListService,
        protected loadingService: TdLoadingService,
    ) {
        super();
    }

  protected createColumnDefs(): any[] {
    return [
      {
        headerName: '#',
        width: 30,
        checkboxSelection: true,
        suppressSorting: true,
        suppressMenu: true,
        pinned: true,
      },
      {
        headerName: 'ID',
        field: 'id',
      },
      {
        headerName: 'Назва дороги',
        field: 'roadId',
        editable: true,
        cellEditorFramework: EditorComponent,
        cellRendererFramework: RendererComponent,
        cellEditorParams: {
          data: this.roads,
          valueCol: 'roadId',
          labelCol: 'name',
        },
      },
      {
        headerName: 'Область',
        field: 'regionId',
        editable: true,
        cellEditorFramework: EditorComponent,
        cellRendererFramework: RendererComponent,
        cellEditorParams: {
          data: this.regions,
          valueCol: 'regionId',
          labelCol: 'name',
        },
      },
      {
        headerName: 'Місцезнаходження, км+ справа',
        field: 'locationRight',
        editable: true,
      },
      {
        headerName: 'Місцезнаходження, км+ зліва',
        field: 'locationLeft',
        editable: true,
      },
      {
        headerName: 'Тип покриття',
        field: 'surfaceTypeId',
        editable: true,
        cellEditorFramework: EditorComponent,
        cellRendererFramework: RendererComponent,
        cellEditorParams: {
          data: this.surfaceTypes,
          valueCol: 'surfaceTypeId',
          labelCol: 'name',
        },
      },
      {
        headerName: 'Технічний стан',
        field: 'stateCommonId',
        editable: true,
        cellEditorFramework: EditorComponent,
        cellRendererFramework: RendererComponent,
        cellEditorParams: {
          data: this.states,
          valueCol: 'stateCommonId',
          labelCol: 'value',
        },
      },
      ,
      {
        headerName: 'Наявність елементів зупин. майдан',
        field: 'areaStopAvailability',
        editable: true,
        cellEditorFramework: EditorComponent,
        cellRendererFramework: RendererComponent,
        cellEditorParams: {
          data: this.boolean,
          valueCol: 'value',
          labelCol: 'label',
        },
      },
      {
        headerName: 'Наявність елементів посад. майдан',
        field: 'areaLandAvailability',
        editable: true,
        cellEditorFramework: EditorComponent,
        cellRendererFramework: RendererComponent,
        cellEditorParams: {
          data: this.boolean,
          valueCol: 'value',
          labelCol: 'label',
        },
      },
      {
        headerName: 'Наявність елементів заїзна кишеня',
        field: 'pocketAvailability',
        editable: true,
        cellEditorFramework: EditorComponent,
        cellRendererFramework: RendererComponent,
        cellEditorParams: {
          data: this.boolean,
          valueCol: 'value',
          labelCol: 'label',
        },
      },
      {
        headerName: 'Наявність туалету',
        field: 'toiletAvailability',
        editable: true,
        cellEditorFramework: EditorComponent,
        cellRendererFramework: RendererComponent,
        cellEditorParams: {
          data: this.boolean,
          valueCol: 'value',
          labelCol: 'label',
        },
      },
      {
        headerName: 'Рік будівництва',
        field: 'yearBuild',
        editable: true,
      },
      {
        headerName: 'Рік ремонту',
        field: 'yearRepair',
        editable: true,
      },
    ];
  }

  protected initFunction(): void {
    this.booleanService.getModels().then((models: BooleanSelectList[]) => this.boolean = models);
    this.dataService.getModels().then((models: any) => {
            this.regions = models.regionSelectListDsM as RegionSelectList[];
            this.states = models.stateCommonSelectListDsM as StateCommonSelectList[];
            this.surfaceTypes = models.surfaceTypeSelectListDsM as SurfaceTypeSelectList[];
            this.settlements = models.settlementSelectListDsM as SettlementSelectList[];
            this.roads = models.roadSelectListDsM as RoadSelectList[];
      }).then(() => {
            this.bootstrapGrid();
      });
  }
}