diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 6026d66..bf923cf 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -5,6 +5,9 @@ import { HttpModule } from '@angular/http';
import { RouterModule } from '@angular/router';
import { removeNgStyles, createNewHosts, createInputTransfer } from '@angularclass/hmr';
+// Services
+import { RegionSelectListService } from './services/regionselectlist.service';
+
/*
* Platform and Environment providers/directives/pipes
*/
@@ -50,7 +53,8 @@ export type StoreType = {
],
providers: [ // expose our Services and Providers into Angular's dependency injection
ENV_PROVIDERS,
- APP_PROVIDERS
+ APP_PROVIDERS,
+ RegionSelectListService
]
})
diff --git a/src/app/components/editor.component.ts b/src/app/components/editor.component.ts
new file mode 100644
index 0000000..0f6ad9d
--- /dev/null
+++ b/src/app/components/editor.component.ts
@@ -0,0 +1,51 @@
+import { Component, ViewContainerRef, ViewChild, AfterViewInit } from '@angular/core';
+
+import { AgEditorComponent } from 'ag-grid-ng2/main';
+
+import { RegionSelectList } from '../models/regionselectlist';
+
+@Component({
+ selector: 'editor-cell',
+ template: `
+
+ `
+})
+export class EditorComponent implements AgEditorComponent, AfterViewInit {
+ @ViewChild('container', {read: ViewContainerRef}) public container;
+ public item: any;
+ public data: RegionSelectList[];
+ private params: any;
+ ngAfterViewInit() {
+ this.container.element.nativeElement.focus();
+ }
+
+ agInit(params: any): void {
+ this.params = params;
+ this.data = params.data || [];
+ // this.setHappy(params.value === "Happy");
+ }
+
+ getValue(): any {
+ return this.item;
+ }
+
+ isPopup(): boolean {
+ return true;
+ }
+
+ setValue(item: any): void {
+ this.item = item;
+ }
+
+ onClick(item: any) {
+ this.setValue(item);
+ this.params.api.stopEditing();
+ }
+
+ onKeyDown(event): boolean {
+ event.stopPropagation();
+ return false;
+ }
+}
diff --git a/src/app/components/renderer.component.ts b/src/app/components/renderer.component.ts
new file mode 100644
index 0000000..c59be85
--- /dev/null
+++ b/src/app/components/renderer.component.ts
@@ -0,0 +1,28 @@
+import { Component } from '@angular/core';
+
+import { AgRendererComponent } from 'ag-grid-ng2/main';
+
+import { RegionSelectList } from '../models/regionselectlist';
+
+@Component({
+ selector: 'render-cell',
+ template: `{{this.region.name}}`
+})
+export class RendererComponent implements AgRendererComponent {
+ private params: any;
+ private region: RegionSelectList;
+ agInit(params: any): void {
+ this.params = params;
+ console.log(params);
+ this.setValue(params);
+ }
+ refresh(params: any): void {
+ this.params = params;
+ console.log(params);
+ this.setValue(params);
+ }
+ private setValue(params) {
+ this.region = params.value;
+ console.log(params);
+ }
+}
diff --git a/src/app/models/regionselectlist.ts b/src/app/models/regionselectlist.ts
new file mode 100644
index 0000000..900eb7f
--- /dev/null
+++ b/src/app/models/regionselectlist.ts
@@ -0,0 +1,4 @@
+export class RegionSelectList {
+ regionId: number;
+ name: string;
+ }
diff --git a/src/app/models/roadselectlist.ts b/src/app/models/roadselectlist.ts
new file mode 100644
index 0000000..df966f3
--- /dev/null
+++ b/src/app/models/roadselectlist.ts
@@ -0,0 +1 @@
+export class RoadSelectList { }
diff --git a/src/app/models/settlementselectlist.ts b/src/app/models/settlementselectlist.ts
new file mode 100644
index 0000000..cdf7f7a
--- /dev/null
+++ b/src/app/models/settlementselectlist.ts
@@ -0,0 +1 @@
+export class SettlementSelectList { }
diff --git a/src/app/models/statecommonselectlist.ts b/src/app/models/statecommonselectlist.ts
new file mode 100644
index 0000000..427ab20
--- /dev/null
+++ b/src/app/models/statecommonselectlist.ts
@@ -0,0 +1 @@
+export class StateCommonSelectList { }
diff --git a/src/app/models/surfacetypeselectlist.ts b/src/app/models/surfacetypeselectlist.ts
new file mode 100644
index 0000000..1820309
--- /dev/null
+++ b/src/app/models/surfacetypeselectlist.ts
@@ -0,0 +1 @@
+export class SurfaceTypeSelectList { }
diff --git a/src/app/pages/statements/components/busStop2/busStop2.component.ts b/src/app/pages/statements/components/busStop2/busStop2.component.ts
index 677b079..252ee2b 100644
--- a/src/app/pages/statements/components/busStop2/busStop2.component.ts
+++ b/src/app/pages/statements/components/busStop2/busStop2.component.ts
@@ -4,6 +4,10 @@ import { BusStop2Service } from './busStop2.service';
import { busStop2 } from './busStop2';
import { LocalDataSource } from 'ng2-smart-table';
import { GridOptions } from 'ag-grid/main';
+import { RegionSelectListService } from '../../../../services/regionselectlist.service';
+import { RegionSelectList } from '../../../../models/regionselectlist';
+import { EditorComponent } from '../../../../components/editor.component';
+import { RendererComponent } from '../../../../components/renderer.component';
@Component({
selector: 'statement-table',
@@ -19,24 +23,27 @@ export class BusStop2 {
public showGrid: boolean;
public rowData: any[];
public rowCount: string;
+ public regions: RegionSelectList[];
private gridOptions: GridOptions;
private columnDefs: any[];
- constructor(protected service: BusStop2Service) {
+ constructor(protected service: BusStop2Service, private regionlistservice: RegionSelectListService) {
+ this.regionlistservice.getModels().then(models => {
+ this.regions = models;
+ this.createColumnDefs();
+ });
this.gridOptions = {};
// this.gridOptions.rowModelType = 'virtual';
this.service.getData().then((data) => {
console.log(data);
- if(data.length){
+ if (data.length){
// this.source.load(data);
this.rowData = data;
} else {
- this.rowData = [new busStop2]
+ this.rowData = [new busStop2];
}
-
});
- this.createColumnDefs();
this.showGrid = true;
}
@@ -66,15 +73,20 @@ export class BusStop2 {
},
{
headerName: 'Назва дороги',
- field: 'road',
+ field: 'roadId',
editable: true,
width: 150
},
{
headerName: 'Область',
- field: 'region',
+ field: 'regionId',
editable: true,
- width: 150
+ width: 150,
+ cellEditorFramework: EditorComponent,
+ cellRendererFramework: RendererComponent,
+ cellEditorParams: {
+ data: this.regions
+ }
},
{
headerName: 'Місцезнаходження, км+ справа',
@@ -90,7 +102,7 @@ export class BusStop2 {
},
{
headerName: 'Технічний стан',
- field: 'state',
+ field: 'stateCommonId',
editable: true,
width: 150
}
diff --git a/src/app/pages/statements/components/busStop2/busStop2.ts b/src/app/pages/statements/components/busStop2/busStop2.ts
index 9f40691..7766d57 100644
--- a/src/app/pages/statements/components/busStop2/busStop2.ts
+++ b/src/app/pages/statements/components/busStop2/busStop2.ts
@@ -1,15 +1,15 @@
export class busStop2 {
- RoadId: number;
- RegionId: number;
- SettlementId: number;
- LocationLeft: string;
- LocationRight: string;
- SurfaceTypeId: string;
- AreaStopAvailability: string;
- AreaLandAvailability: string;
- PocketAvailability: string;
- ToiletAvailability: string;
- YearBuild: string;
- YearRepair: string;
- StateCommonId: number;
+ roadId: number;
+ regionId: number;
+ settlementId: number;
+ locationLeft: string;
+ locationRight: string;
+ surfaceTypeId: string;
+ areaStopAvailability: string;
+ areaLandAvailability: string;
+ pocketAvailability: string;
+ toiletAvailability: string;
+ yearBuild: string;
+ yearRepair: string;
+ stateCommonId: number;
}
diff --git a/src/app/pages/statements/statements.module.ts b/src/app/pages/statements/statements.module.ts
index 48a0540..3c91a4c 100644
--- a/src/app/pages/statements/statements.module.ts
+++ b/src/app/pages/statements/statements.module.ts
@@ -9,6 +9,8 @@ import { routing } from './statements.routing';
import { Statements } from './statements.component';
import { BusStop } from './components/busStop/busStop.component';
import { BusStop2 } from './components/busStop2/busStop2.component';
+import { EditorComponent } from '../../components/editor.component';
+import { RendererComponent } from '../../components/renderer.component';
import { BusStopService } from './components/busStop/busStop.service';
import { BusStop2Service } from './components/busStop2/busStop2.service';
@@ -20,13 +22,17 @@ import { BusStop2Service } from './components/busStop2/busStop2.service';
routing,
Ng2SmartTableModule,
AgGridModule.withComponents([
- BusStop2
+ BusStop2,
+ EditorComponent,
+ RendererComponent,
]),
],
declarations: [
Statements,
BusStop,
- BusStop2
+ BusStop2,
+ EditorComponent,
+ RendererComponent,
],
providers: [
BusStopService,
diff --git a/src/app/services/regionselectlist.service.ts b/src/app/services/regionselectlist.service.ts
new file mode 100644
index 0000000..8f7e3f7
--- /dev/null
+++ b/src/app/services/regionselectlist.service.ts
@@ -0,0 +1,23 @@
+import { Injectable } from '@angular/core';
+import { Headers, Http } from '@angular/http';
+
+import 'rxjs/add/operator/toPromise';
+
+import { RegionSelectList } from '../models/regionselectlist';
+
+@Injectable()
+export class RegionSelectListService {
+ private apiUrl = 'http://localhost:5000/directory/regionds';
+ private headers = new Headers({'Content-Type': 'applicaton/json'});
+ constructor(private http: Http) { }
+ getModels(): Promise {
+ return this.http.get(this.apiUrl)
+ .toPromise()
+ .then(response => response.json().regionSelectListDsM as RegionSelectList[])
+ .catch(this.handleError);
+ }
+ private handleError(error: any): Promise {
+ console.error('An error occured', error);
+ return Promise.reject(error.message || error);
+ }
+}
diff --git a/src/app/services/roadselectlist.service.ts b/src/app/services/roadselectlist.service.ts
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/app/services/roadselectlist.service.ts
diff --git a/src/app/services/settlementselectlist.service.ts b/src/app/services/settlementselectlist.service.ts
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/app/services/settlementselectlist.service.ts
diff --git a/src/app/services/statecommonselectlist.service.ts b/src/app/services/statecommonselectlist.service.ts
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/app/services/statecommonselectlist.service.ts
diff --git a/src/app/services/surfacetypeselectlist.service.ts b/src/app/services/surfacetypeselectlist.service.ts
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/app/services/surfacetypeselectlist.service.ts
--
libgit2 0.21.4