diff --git a/src/app/app.module.ts b/src/app/app.module.ts index d9f0886..91202a2 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -30,6 +30,7 @@ import { RendererComponent } from '../helpers/renderer.component'; import { FlowIntensityComponent } from './data/flow-intensity/flow-intensity.component'; import { RoadComponent } from './data/road/road.component'; import { RoadServiceComponent } from './data/road-service/road-service.component'; +import { SettlementAddressLinkComponent } from './data/settlement-address-link/settlement-address-link.component'; // Services import { BusStopCreateService } from '../services/bus-stop-create.service'; @@ -49,6 +50,8 @@ import { RoadCreateService } from '../services/road-create.service'; import { RoadService } from '../services/road.service'; import { RoadServiceService } from '../services/road-service.service'; import { RoadServiceCreateService } from '../services/road-service-create.service'; +import { SettlementAddressLinkService } from '../services/settlement-address-link.service'; +import { SettlementAddressLinkCreateService } from '../services/settlement-address-link-create.service'; const httpInterceptorProviders: Type[] = [ RequestInterceptor, @@ -72,6 +75,7 @@ const httpInterceptorProviders: Type[] = [ RoadComponent, CrossSectionComponent, RoadServiceComponent, + SettlementAddressLinkComponent, ], // directives, components, and pipes owned by this NgModule imports: [ BrowserModule, @@ -86,6 +90,7 @@ const httpInterceptorProviders: Type[] = [ RoadComponent, CrossSectionComponent, RoadServiceComponent, + SettlementAddressLinkComponent, ]), CovalentCoreModule.forRoot(), CovalentChartsModule.forRoot(), @@ -121,6 +126,8 @@ const httpInterceptorProviders: Type[] = [ CrossSectionService, RoadServiceService, RoadServiceCreateService, + SettlementAddressLinkService, + SettlementAddressLinkCreateService, ], // additional providers needed for this module entryComponents: [ ], bootstrap: [ AppComponent ], diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts index c77589e..ae94404 100644 --- a/src/app/app.routes.ts +++ b/src/app/app.routes.ts @@ -12,6 +12,7 @@ import { ServiceObjectComponent } from './data/service-object/service-object.com import { FlowIntensityComponent } from './data/flow-intensity/flow-intensity.component'; import { RoadComponent } from './data/road/road.component'; import { RoadServiceComponent } from './data/road-service/road-service.component'; +import { SettlementAddressLinkComponent } from './data/settlement-address-link/settlement-address-link.component'; const routes: Routes = [ {path: 'login', component: LoginComponent}, @@ -26,6 +27,7 @@ const routes: Routes = [ {path: 'cross-section', component: CrossSectionComponent}, {path: 'road', component: RoadComponent}, {path: 'road-service', component: RoadServiceComponent}, + {path: 'settlement-address-link', component: SettlementAddressLinkComponent}, ]}, ]}, ]; diff --git a/src/app/data/data.component.html b/src/app/data/data.component.html index 348a0a9..cf364c0 100644 --- a/src/app/data/data.component.html +++ b/src/app/data/data.component.html @@ -22,7 +22,7 @@ insert_chart Обслуговування - + star Прив'язки населених пунктів diff --git a/src/app/data/settlement-address-link/settlement-address-link.component.html b/src/app/data/settlement-address-link/settlement-address-link.component.html new file mode 100644 index 0000000..7db449a --- /dev/null +++ b/src/app/data/settlement-address-link/settlement-address-link.component.html @@ -0,0 +1,12 @@ +
+ + +
+
+ + +
+
\ No newline at end of file diff --git a/src/app/data/settlement-address-link/settlement-address-link.component.ts b/src/app/data/settlement-address-link/settlement-address-link.component.ts new file mode 100644 index 0000000..ec5c977 --- /dev/null +++ b/src/app/data/settlement-address-link/settlement-address-link.component.ts @@ -0,0 +1,131 @@ +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 { SettlementAddressLinkService } from '../../../services/settlement-address-link.service'; +import { SettlementAddressLink } from '../../../models/settlement-address-link'; +import { EditorComponent } from '../../../helpers/editor.component'; +import { RendererComponent } from '../../../helpers/renderer.component'; +import { SettlementAddressLinkCreateService } from '../../../services/settlement-address-link-create.service'; +import { RegionSelectList } from '../../../models/region-select-list'; +import { RoadSelectList } from '../../../models/road-select-list'; +import { SettlementSelectList } from '../../../models/settlement-select-list'; +import { SettlementLocationSelectList } from '../../../models/settlement-location-select-list'; + +import { routerTransition } from '../../../animations/router.animation'; + +@Component({ + // tslint:disable-next-line:component-selector + selector: 'bus-grid', + templateUrl: 'settlement-address-link.component.html', + styleUrls: ['settlement-address-link.scss'], + encapsulation: ViewEncapsulation.None, +}) +export class SettlementAddressLinkComponent extends StatementBase { + + public regions: RegionSelectList[]; + public settlements: SettlementSelectList[]; + public roads: RoadSelectList[]; + public settlementLocations: SettlementLocationSelectList[]; + + constructor( + protected service: SettlementAddressLinkService, + protected dataService: SettlementAddressLinkCreateService, + 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: 'begin', + editable: true, + }, + { + headerName: 'Місцезнаходження, км+ кінець', + field: 'end', + editable: true, + }, + { + headerName: 'Місце', + field: 'settlementLocationId', + editable: true, + cellEditorFramework: EditorComponent, + cellRendererFramework: RendererComponent, + cellEditorParams: { + data: this.settlementLocations, + valueCol: 'id', + labelCol: 'name', + }, + }, + { + headerName: 'Назва населенного пункту', + field: 'settlementId', + editable: true, + cellEditorFramework: EditorComponent, + cellRendererFramework: RendererComponent, + cellEditorParams: { + data: this.settlements, + valueCol: 'settlementId', + labelCol: 'name', + }, + }, + { + headerName: 'Відстань від проїзної частини до забудови, м', + field: 'distance', + editable: true, + }, + ]; + } + + protected initFunction(): void { + this.dataService.getModels().then((models: any) => { + this.regions = models.regionSelectListDsM as RegionSelectList[]; + this.settlements = models.settlementSelectListDsM as SettlementSelectList[]; + this.roads = models.roadSelectListDsM as RoadSelectList[]; + this.settlementLocations = models.settlementLocationSelectListDsM as SettlementLocationSelectList[]; + }).then(() => { + this.bootstrapGrid(); + }); + } +} diff --git a/src/app/data/settlement-address-link/settlement-address-link.scss b/src/app/data/settlement-address-link/settlement-address-link.scss new file mode 100644 index 0000000..de4dc3d --- /dev/null +++ b/src/app/data/settlement-address-link/settlement-address-link.scss @@ -0,0 +1,4 @@ +.toolbar button { + margin: 2px; + padding: 0; +} \ No newline at end of file diff --git a/src/models/settlement-address-link.ts b/src/models/settlement-address-link.ts new file mode 100644 index 0000000..f7d853d --- /dev/null +++ b/src/models/settlement-address-link.ts @@ -0,0 +1,10 @@ +export class SettlementAddressLink { + id: number; + roadId: number; + regionId: number; + settlementId: number; + settlementLocationId: number; + begin: number; + end: number; + distance: number; +} diff --git a/src/models/settlement-location-select-list.ts b/src/models/settlement-location-select-list.ts new file mode 100644 index 0000000..19f80d6 --- /dev/null +++ b/src/models/settlement-location-select-list.ts @@ -0,0 +1,4 @@ +export class SettlementLocationSelectList { + id: number; + name: string; + } diff --git a/src/services/settlement-address-link-create.service.ts b/src/services/settlement-address-link-create.service.ts new file mode 100644 index 0000000..9b6f3b8 --- /dev/null +++ b/src/services/settlement-address-link-create.service.ts @@ -0,0 +1,12 @@ +import { Injectable } from '@angular/core'; +import { Http } from '@angular/http'; + +import { CreateBaseService } from './create.base.service'; + +@Injectable() +export class SettlementAddressLinkCreateService extends CreateBaseService { + protected apiUrl: string = 'http://localhost:5000/settlementaddresslink/directory'; + constructor(protected http: Http) { + super(http); + } +} diff --git a/src/services/settlement-address-link.service.ts b/src/services/settlement-address-link.service.ts new file mode 100644 index 0000000..52e78ea --- /dev/null +++ b/src/services/settlement-address-link.service.ts @@ -0,0 +1,23 @@ +import { Injectable } from '@angular/core'; +import { Http } from '@angular/http'; + +import { StatementBaseService } from './statement.base.service'; + +import { SettlementAddressLink } from '../models/settlement-address-link'; + +@Injectable() +export class SettlementAddressLinkService extends StatementBaseService { + protected url: string = 'http://localhost:5000/settlementaddresslink'; + constructor(protected http: Http) { + super(http); + } + public createModel(): Object { + return new SettlementAddressLink(); + } + protected parseModels(json: any): any[] { + return json.settlementAddressLinkEditDsM as SettlementAddressLink[]; + }; + protected parseModel(json: any): any { + return json as SettlementAddressLink; + }; +} -- libgit2 0.21.4