From 6c0454b938d5c7d64f428dee9b69cbab56b53fd7 Mon Sep 17 00:00:00 2001 From: yarik Date: Wed, 8 Feb 2017 18:29:42 +0200 Subject: [PATCH] Table --- src/app/app.module.ts | 28 ++++++++++++++++++++++------ src/app/components/grid/busStop.service.ts | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/app/components/grid/busStop.ts | 16 ++++++++++++++++ src/app/components/grid/rich-grid.component.html | 75 +++++++++++++++++++++++++++++++++------------------------------------------ src/app/components/grid/rich-grid.component.ts | 329 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------- src/app/helpers/editor.component.ts | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/app/helpers/renderer.component.ts | 42 ++++++++++++++++++++++++++++++++++++++++++ src/app/models/booleanselectlist.ts | 4 ++++ src/app/models/regionselectlist.ts | 4 ++++ src/app/models/roadselectlist.ts | 4 ++++ src/app/models/settlementselectlist.ts | 4 ++++ src/app/models/statecommonselectlist.ts | 4 ++++ src/app/models/surfacetypeselectlist.ts | 4 ++++ src/app/services/booleanselectlist.service.ts | 19 +++++++++++++++++++ src/app/services/busstopcreate.service.ts | 21 +++++++++++++++++++++ src/app/services/regionselectlist.service.ts | 23 +++++++++++++++++++++++ src/app/services/roadselectlist.service.ts | 0 src/app/services/settlementselectlist.service.ts | 0 src/app/services/statecommonselectlist.service.ts | 23 +++++++++++++++++++++++ src/app/services/surfacetypeselectlist.service.ts | 0 20 files changed, 551 insertions(+), 163 deletions(-) create mode 100644 src/app/components/grid/busStop.service.ts create mode 100644 src/app/components/grid/busStop.ts create mode 100644 src/app/helpers/editor.component.ts create mode 100644 src/app/helpers/renderer.component.ts create mode 100644 src/app/models/booleanselectlist.ts create mode 100644 src/app/models/regionselectlist.ts create mode 100644 src/app/models/roadselectlist.ts create mode 100644 src/app/models/settlementselectlist.ts create mode 100644 src/app/models/statecommonselectlist.ts create mode 100644 src/app/models/surfacetypeselectlist.ts create mode 100644 src/app/services/booleanselectlist.service.ts create mode 100644 src/app/services/busstopcreate.service.ts create mode 100644 src/app/services/regionselectlist.service.ts create mode 100644 src/app/services/roadselectlist.service.ts create mode 100644 src/app/services/settlementselectlist.service.ts create mode 100644 src/app/services/statecommonselectlist.service.ts create mode 100644 src/app/services/surfacetypeselectlist.service.ts diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 8db7e7b..74c42da 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -5,7 +5,15 @@ import { FormsModule } from '@angular/forms'; import { HttpModule } from '@angular/http'; import { MaterialModule } from '@angular/material'; import { AgGridModule } from 'ag-grid-ng2/main'; -import { RichGridComponent } from "./components/grid/rich-grid.component"; + +// Services +import { BusStopCreateService } from './services/busstopcreate.service'; +import { BooleanSelectListService } from './services/booleanselectlist.service'; +import { BusStopService } from './components/grid/busStop.service'; + +import { EditorComponent } from './helpers/editor.component'; +import { RendererComponent } from './helpers/renderer.component'; +import { RichGridComponent } from './components/grid/rich-grid.component'; import 'hammerjs'; @@ -14,7 +22,9 @@ import { AppComponent } from './components/app/app.component'; @NgModule({ declarations: [ AppComponent, - RichGridComponent + RichGridComponent, + EditorComponent, + RendererComponent ], imports: [ RouterModule.forRoot([ @@ -24,11 +34,17 @@ import { AppComponent } from './components/app/app.component'; FormsModule, HttpModule, MaterialModule.forRoot(), - AgGridModule.withComponents([ - RichGridComponent - ]) + AgGridModule.withComponents([ + RichGridComponent, + EditorComponent, + RendererComponent, + ]) + ], + providers: [ + BusStopCreateService, + BooleanSelectListService, + BusStopService ], - providers: [], bootstrap: [AppComponent] }) export class AppModule { } diff --git a/src/app/components/grid/busStop.service.ts b/src/app/components/grid/busStop.service.ts new file mode 100644 index 0000000..793e093 --- /dev/null +++ b/src/app/components/grid/busStop.service.ts @@ -0,0 +1,57 @@ +import { Injectable } from '@angular/core'; +import { Headers, Http } from '@angular/http'; + +import 'rxjs/add/operator/toPromise'; + +import { busStop } from './busStop'; + +@Injectable() +export class BusStopService { + private url = 'http://localhost:5000/busstop'; + private headers = new Headers({'Content-Type': 'application/json'}); + constructor(private http: Http) { } + getData(): Promise { + // let busStops: busStop2[] = [{ + // roadId: 1, + // regionId: 1, + // settlementId: 1, + // surfaceTypeId: '1', + // locationLeft: '1', + // locationRight: '1', + // stateCommonId: 1, + // areaStopAvailability: '', + // areaLandAvailability: '', + // pocketAvailability: '', + // toiletAvailability: '', + // yearBuild: '', + // yearRepair: '', + // }]; + // return Promise.resolve(busStops); + return this.http.get(this.url) + .toPromise() + .then(response => response.json().busStopEditDsM as busStop[]) + .catch(this.handleError); + } + update(id: number, data: string): Promise { + return this.http.post(this.url + '/update?id=' + id, data, { headers: this.headers }) + .toPromise() + .then(response => response.json()) + .catch(this.handleError); + } + create(data: string): Promise { + return this.http.post(this.url + '/create', data, { headers: this.headers }) + .toPromise() + .then(response => response.json() as busStop) + .catch(this.handleError); + } + delete(id: number): Promise { + return this.http.delete(this.url + '/delete?id=' + id, { headers: this.headers }) + .toPromise() + .then(response => response.json()) + .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/components/grid/busStop.ts b/src/app/components/grid/busStop.ts new file mode 100644 index 0000000..050ee6f --- /dev/null +++ b/src/app/components/grid/busStop.ts @@ -0,0 +1,16 @@ +export class busStop { + busStopID: number; + roadId: number; + regionId: number; + settlementId: number; + locationLeft: string; + locationRight: string; + surfaceTypeId: number; + areaStopAvailability: string; + areaLandAvailability: string; + pocketAvailability: string; + toiletAvailability: string; + yearBuild: string; + yearRepair: string; + stateCommonId: number; +} diff --git a/src/app/components/grid/rich-grid.component.html b/src/app/components/grid/rich-grid.component.html index de2848d..743e1ef 100644 --- a/src/app/components/grid/rich-grid.component.html +++ b/src/app/components/grid/rich-grid.component.html @@ -1,50 +1,41 @@

Rich Grid with Pure JavaScript

-
-
- - - -
-
- Employees Skills and Contact Details {{rowCount}} -
-
-
- - - -
- - Grid API: - - - - - Column API: - - - + + +
+ ...Loading
-
-
- - -
-
- - +
diff --git a/src/app/components/grid/rich-grid.component.ts b/src/app/components/grid/rich-grid.component.ts index e0822a2..a4865ca 100644 --- a/src/app/components/grid/rich-grid.component.ts +++ b/src/app/components/grid/rich-grid.component.ts @@ -1,8 +1,22 @@ import {Component, ViewEncapsulation} from "@angular/core"; import {GridOptions} from "ag-grid/main"; + import ProficiencyFilter from "./proficiencyFilter"; import SkillFilter from "./skillFilter"; import RefData from "./refData"; +import { BusStopService } from './busStop.service'; +import { busStop } from './busStop'; +import { EditorComponent } from '../../helpers/editor.component'; +import { RendererComponent } from '../../helpers/renderer.component'; +import { BusStopCreateService } from '../../services/busstopcreate.service'; +import { BooleanSelectListService } from '../../services/booleanselectlist.service'; +import { RegionSelectList } from '../../models/regionselectlist'; +import { StateCommonSelectList } from '../../models/statecommonselectlist'; +import { RoadSelectList } from '../../models/roadselectlist'; +import { BooleanSelectList } from '../../models/booleanselectlist'; +import { SettlementSelectList } from '../../models/settlementselectlist'; +import { SurfaceTypeSelectList } from '../../models/surfacetypeselectlist'; + // only import this if you are using the ag-Grid-Enterprise @@ -14,82 +28,221 @@ import RefData from "./refData"; }) export class RichGridComponent { - private gridOptions: GridOptions; public showGrid: boolean; public rowData: any[]; - private columnDefs: any[]; public rowCount: string; + public regions: RegionSelectList[]; + public states: StateCommonSelectList[]; + public surfaceTypes: SurfaceTypeSelectList[]; + public settlements: SettlementSelectList[]; + public roads: RoadSelectList[]; + public boolean: BooleanSelectList[]; + public isLoading: boolean = false; + public isBootstrapping: boolean = true; + private columnDefs: any[]; + private gridOptions: GridOptions; - constructor() { - // we pass an empty gridOptions in, so we can grab the api out + constructor( + protected service: BusStopService, + private dataService: BusStopCreateService, + private booleanService: BooleanSelectListService + ) { this.gridOptions = {}; - this.createRowData(); - this.createColumnDefs(); - this.showGrid = true; - } - - private createRowData() { - var rowData: any[] = []; - - for (var i = 0; i < 100; i++) { - var countryData = RefData.countries[i % RefData.countries.length]; - rowData.push({ - name: RefData.firstNames[i % RefData.firstNames.length] + ' ' + RefData.lastNames[i % RefData.lastNames.length], - skills: { - android: Math.random() < 0.4, - html5: Math.random() < 0.4, - mac: Math.random() < 0.4, - windows: Math.random() < 0.4, - css: Math.random() < 0.4 - }, - address: RefData.addresses[i % RefData.addresses.length], - years: Math.round(Math.random() * 100), - proficiency: Math.round(Math.random() * 100), - country: countryData.country, - continent: countryData.continent, - language: countryData.language, - mobile: createRandomPhoneNumber(), - landline: createRandomPhoneNumber() - }); - } - - this.rowData = rowData; + this.gridOptions.enableSorting = true; + this.showGrid = true; + this.gridOptions.rowModelType = 'virtual'; + this.booleanService.getModels().then((models) => this.boolean = models); + this.dataService.getModels().then(models => { + 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.createColumnDefs(); + this.isBootstrapping = false; + }); + this.service.getData().then((data) => { + if (data.length){ + this.rowData = data; + } else { + this.rowData = [new busStop]; + } + }).then(() => { + this.gridOptions.api.setDatasource(this.setRowData(this.rowData)); + this.gridOptions.api.refreshVirtualPageCache(); + }); } - private createColumnDefs() { - this.columnDefs = [ - { - headerName: '#', width: 30, checkboxSelection: true, suppressSorting: true, - suppressMenu: true, pinned: true - } - ]; + setRowData(allOfTheData) { + let dataSource = { + rowCount: null, // behave as infinite scroll + getRows: function (params) { + console.log('asking for ' + params.startRow + ' to ' + params.endRow); + // At this point in your code, you would call the server, using $http if in AngularJS. + // To make the demo look real, wait for 500ms before returning + // take a slice of the total rows + let rowsThisPage = allOfTheData.slice(params.startRow, params.endRow); + // if on or after the last page, work out the last row. + let lastRow = -1; + if (allOfTheData.length <= params.endRow) { + lastRow = allOfTheData.length; + } + // call the success callback + params.successCallback(rowsThisPage, lastRow); + } + }; + return dataSource; + + } + onDeleteConfirm(event): void { + if (window.confirm('Вы уверены что хотите удалить??')) { + event.confirm.resolve(); + } else { + event.confirm.reject(); } - - private calculateRowCount() { - if (this.gridOptions.api && this.rowData) { - var model = this.gridOptions.api.getModel(); - var totalRows = this.rowData.length; - var processedRows = model.getRowCount(); - this.rowCount = processedRows.toLocaleString() + ' / ' + totalRows.toLocaleString(); + } + public addNewRow() { + this.rowData.unshift(new busStop()); + this.gridOptions.api.setDatasource(this.setRowData(this.rowData)); + this.gridOptions.api.refreshVirtualPageCache(); + } + + private createColumnDefs() { + this.columnDefs = [ + { + headerName: '#', + width: 30, + checkboxSelection: true, + suppressSorting: true, + suppressMenu: true, + pinned: true + }, + { + headerName: 'ID', + field: 'busStopId', + width: 150 + }, + { + headerName: 'Назва дороги', + field: 'roadId', + editable: true, + width: 150, + cellEditorFramework: EditorComponent, + cellRendererFramework: RendererComponent, + cellEditorParams: { + data: this.roads, + valueCol: 'roadId', + labelCol: 'name' } - } - - private onModelUpdated() { - console.log('onModelUpdated'); - this.calculateRowCount(); - } - - private onReady() { - console.log('onReady'); - this.calculateRowCount(); - } + }, + { + headerName: 'Область', + field: 'regionId', + editable: true, + width: 150, + cellEditorFramework: EditorComponent, + cellRendererFramework: RendererComponent, + cellEditorParams: { + data: this.regions, + valueCol: 'regionId', + labelCol: 'name' + } + }, + { + headerName: 'Місцезнаходження, км+ справа', + field: 'locationRight', + editable: true, + width: 150 + }, + { + headerName: 'Місцезнаходження, км+ зліва', + field: 'locationLeft', + editable: true, + width: 150 + }, + { + headerName: 'Технічний стан', + field: 'stateCommonId', + editable: true, + width: 150, + cellEditorFramework: EditorComponent, + cellRendererFramework: RendererComponent, + cellEditorParams: { + data: this.states, + valueCol: 'stateCommonId', + labelCol: 'value' + } + }, + { + headerName: 'Наявність туалету', + field: 'toiletAvailability', + editable: true, + width: 150, + cellEditorFramework: EditorComponent, + cellRendererFramework: RendererComponent, + cellEditorParams: { + data: this.boolean, + valueCol: 'value', + labelCol: 'label' + } + } + ]; + } private onCellClicked($event) { console.log('onCellClicked: ' + $event.rowIndex + ' ' + $event.colDef.field); } private onCellValueChanged($event) { - console.log('onCellValueChanged: ' + $event.oldValue + ' to ' + $event.newValue); + if ($event.oldValue !== $event.newValue) { + let data = JSON.stringify($event.data); + let id = $event.data.busStopId; + let result = null; + if (id) { + this.isLoading = true; + result = this.service.update(id, data).then(() => this.isLoading = false); + } else { + // Protection of posting new row being already sent. + if (this.isLoading) { + return ; + } + this.isLoading = true; + result = this.service.create(data).then((busStop) => { + this.rowData[$event.node.rowIndex] = busStop; + this.gridOptions.api.setDatasource(this.setRowData(this.rowData)); + this.gridOptions.api.refreshVirtualPageCache(); + this.isLoading = false; + }); + } + } + } + + private deleteRows() { + let rows = this.gridOptions.api.getSelectedNodes(); + if (!rows.length) { + return ; + } + rows.forEach(element => { + let id = element.data.busStopId; + if (id) { + this.isLoading = true; + this.service.delete(id).then(() => this.isLoading = false); + } + }); + // Sort in order to protect array from reindexing (remove rear elements first) + let sorted = rows.sort((a, b) => { + if (a > b) { + return -1; + } else { + return 1; + } + }); + sorted.forEach(item => { + this.rowData.splice(item.rowIndex, 1); + }); + this.gridOptions.api.setDatasource(this.setRowData(this.rowData)); + this.gridOptions.api.refreshVirtualPageCache(); } private onCellDoubleClicked($event) { @@ -152,58 +305,4 @@ export class RichGridComponent { private onColumnEvent($event) { console.log('onColumnEvent: ' + $event); } - -} - -function skillsCellRenderer(params) { - var data = params.data; - var skills = []; - RefData.IT_SKILLS.forEach(function (skill) { - if (data && data.skills && data.skills[skill]) { - skills.push(''); - } - }); - return skills.join(' '); -} - -function countryCellRenderer(params) { - var flag = ""; - return flag + " " + params.value; -} - -function createRandomPhoneNumber() { - var result = '+'; - for (var i = 0; i < 12; i++) { - result += Math.round(Math.random() * 10); - if (i === 2 || i === 5 || i === 8) { - result += ' '; - } - } - return result; -} - -function percentCellRenderer(params) { - var value = params.value; - - var eDivPercentBar = document.createElement('div'); - eDivPercentBar.className = 'div-percent-bar'; - eDivPercentBar.style.width = value + '%'; - if (value < 20) { - eDivPercentBar.style.backgroundColor = 'red'; - } else if (value < 60) { - eDivPercentBar.style.backgroundColor = '#ff9900'; - } else { - eDivPercentBar.style.backgroundColor = '#00A000'; - } - - var eValue = document.createElement('div'); - eValue.className = 'div-percent-value'; - eValue.innerHTML = value + '%'; - - var eOuterDiv = document.createElement('div'); - eOuterDiv.className = 'div-outer-div'; - eOuterDiv.appendChild(eValue); - eOuterDiv.appendChild(eDivPercentBar); - - return eOuterDiv; } diff --git a/src/app/helpers/editor.component.ts b/src/app/helpers/editor.component.ts new file mode 100644 index 0000000..eb4aa0d --- /dev/null +++ b/src/app/helpers/editor.component.ts @@ -0,0 +1,57 @@ +import { Component, ViewContainerRef, ViewChild, AfterViewInit } from '@angular/core'; + +import { AgEditorComponent } from 'ag-grid-ng2/main'; + +@Component({ + selector: 'editor-cell', + template: ` + + + {{item[this.params.labelCol]}} + + + ` +}) +export class EditorComponent implements AgEditorComponent, AfterViewInit { + @ViewChild('container', {read: ViewContainerRef}) public container; + @ViewChild('container') public child; + public item: Object = null; + public data: Object[]; + private params: any; + ngAfterViewInit() { + this.container.element.nativeElement.focus(); + } + + agInit(params: any): void { + this.params = params; + if (!this.params.valueCol) { + this.params.valueCol = 'id'; + } + if (!this.params.labelCol) { + this.params.labelCol = 'name'; + } + this.data = params.data || []; + } + + getValue(): any { + return this.item; + } + + isPopup(): boolean { + return true; + } + + setValue(item: Object): void { + this.item = item; + } + + onClick(item: Object) { + this.setValue(item); + this.params.api.stopEditing(); + } + + onKeyDown(event): boolean { + event.stopPropagation(); + return false; + } +} diff --git a/src/app/helpers/renderer.component.ts b/src/app/helpers/renderer.component.ts new file mode 100644 index 0000000..55c44ea --- /dev/null +++ b/src/app/helpers/renderer.component.ts @@ -0,0 +1,42 @@ +import { Component } from '@angular/core'; + +import { AgRendererComponent } from 'ag-grid-ng2/main'; + +import { RegionSelectList } from '../models/regionselectlist'; + +@Component({ + selector: 'render-cell', + template: `{{this.label}}` +}) +export class RendererComponent implements AgRendererComponent { + private params: any; + private valueCol: string = 'id'; + private labelCol: string = 'name'; + private model: Object = null; + private label: string = null; + agInit(params: any): void { + this.params = params; + if (params.colDef.cellEditorParams && params.colDef.cellEditorParams.valueCol) { + this.valueCol = params.colDef.cellEditorParams.valueCol; + } + if (params.colDef.cellEditorParams && params.colDef.cellEditorParams.labelCol) { + this.labelCol = params.colDef.cellEditorParams.labelCol; + } + this.setValue(params); + } + refresh(params: any): void { + this.params = params; + this.setValue(params); + } + private setValue(params) { + this.model = params.value; + let label = this.params.colDef.cellEditorParams.data.find((element, index, array) => { + if (element[this.valueCol] === params.value) { + return true; + } + }); + if (label) { + this.label = label[this.labelCol]; + } + } +} diff --git a/src/app/models/booleanselectlist.ts b/src/app/models/booleanselectlist.ts new file mode 100644 index 0000000..edd03a0 --- /dev/null +++ b/src/app/models/booleanselectlist.ts @@ -0,0 +1,4 @@ +export class BooleanSelectList { + value: number; + label: string; + } 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..ab0bb31 --- /dev/null +++ b/src/app/models/roadselectlist.ts @@ -0,0 +1,4 @@ +export class RoadSelectList { + roadId: number; + name: string; +} diff --git a/src/app/models/settlementselectlist.ts b/src/app/models/settlementselectlist.ts new file mode 100644 index 0000000..760fbc9 --- /dev/null +++ b/src/app/models/settlementselectlist.ts @@ -0,0 +1,4 @@ +export class SettlementSelectList { + settlementId: number; + name: string; + } diff --git a/src/app/models/statecommonselectlist.ts b/src/app/models/statecommonselectlist.ts new file mode 100644 index 0000000..f6cd860 --- /dev/null +++ b/src/app/models/statecommonselectlist.ts @@ -0,0 +1,4 @@ +export class StateCommonSelectList { + stateCommonId: number; + value: string; + } diff --git a/src/app/models/surfacetypeselectlist.ts b/src/app/models/surfacetypeselectlist.ts new file mode 100644 index 0000000..d5cc5bf --- /dev/null +++ b/src/app/models/surfacetypeselectlist.ts @@ -0,0 +1,4 @@ +export class SurfaceTypeSelectList { + surfaceTypeId: number; + name: string; + } diff --git a/src/app/services/booleanselectlist.service.ts b/src/app/services/booleanselectlist.service.ts new file mode 100644 index 0000000..82d54ee --- /dev/null +++ b/src/app/services/booleanselectlist.service.ts @@ -0,0 +1,19 @@ +import { Injectable } from '@angular/core'; + +import { BooleanSelectList } from '../models/booleanselectlist'; + +@Injectable() +export class BooleanSelectListService { + getModels(): Promise { + let values = []; + let trueValue = new BooleanSelectList(); + trueValue.value = 1; + trueValue.label = 'Да'; + let falseValue = new BooleanSelectList(); + falseValue.value = 0; + falseValue.label = 'Нет'; + values.push(falseValue); + values.push(trueValue); + return Promise.resolve(values); + } +} diff --git a/src/app/services/busstopcreate.service.ts b/src/app/services/busstopcreate.service.ts new file mode 100644 index 0000000..7d55bcb --- /dev/null +++ b/src/app/services/busstopcreate.service.ts @@ -0,0 +1,21 @@ +import { Injectable } from '@angular/core'; +import { Headers, Http } from '@angular/http'; + +import 'rxjs/add/operator/toPromise'; + +@Injectable() +export class BusStopCreateService { + private apiUrl = 'http://localhost:5000/busstop/directory'; + 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()) + .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/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..11634b7 --- /dev/null +++ b/src/app/services/statecommonselectlist.service.ts @@ -0,0 +1,23 @@ +import { Injectable } from '@angular/core'; +import { Headers, Http } from '@angular/http'; + +import 'rxjs/add/operator/toPromise'; + +import { StateCommonSelectList } from '../models/statecommonselectlist'; + +@Injectable() +export class StateCommonSelectListService { + private apiUrl = 'http://localhost:5000/directory/statecommonds'; + 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().stateCommonSelectListDsM as StateCommonSelectList[]) + .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/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