From 026fffbd1e6d662f0744057dfdf8e7c89f0cdd2f Mon Sep 17 00:00:00 2001 From: yarik Date: Mon, 13 Feb 2017 13:05:15 +0200 Subject: [PATCH] Awesome --- src/app/data/bus-stop/bus-stop.component.ts | 28 +++++++++++++--------------- src/app/data/service-object/service-object.component.ts | 32 +++++++++++++++----------------- src/models/statement.base.ts | 18 ++++++++++++++---- src/services/boolean-select-list.service.ts | 15 +++++++++++---- src/services/bus-stop-create.service.ts | 21 ++++++--------------- src/services/bus-stop.service.ts | 9 +++++++-- src/services/create.base.service.ts | 17 +++++++++++++++++ src/services/service-object-create.service.ts | 21 ++++++--------------- src/services/service-object.service.ts | 48 +++++++++++++++--------------------------------- src/services/statement.base.service.ts | 2 ++ 10 files changed, 106 insertions(+), 105 deletions(-) create mode 100644 src/services/create.base.service.ts diff --git a/src/app/data/bus-stop/bus-stop.component.ts b/src/app/data/bus-stop/bus-stop.component.ts index cc93ab1..f57a194 100644 --- a/src/app/data/bus-stop/bus-stop.component.ts +++ b/src/app/data/bus-stop/bus-stop.component.ts @@ -42,21 +42,6 @@ export class BusStopComponent extends StatementBase { protected loadingService: TdLoadingService, ) { super(); - this.initGrid(); - 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(); - }); - } - - protected createModel(): Object { - return new BusStop(); } protected createColumnDefs(): any[] { @@ -192,4 +177,17 @@ export class BusStopComponent extends StatementBase { }, ]; } + + 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(); + }); + } } diff --git a/src/app/data/service-object/service-object.component.ts b/src/app/data/service-object/service-object.component.ts index 4910768..d830d88 100644 --- a/src/app/data/service-object/service-object.component.ts +++ b/src/app/data/service-object/service-object.component.ts @@ -35,25 +35,10 @@ export class ServiceObjectComponent extends StatementBase { constructor( protected service: ServiceObjectService, - private dataService: ServiceObjectCreateService, - private booleanService: BooleanSelectListService, + protected dataService: ServiceObjectCreateService, + protected booleanService: BooleanSelectListService, ) { super(); - this.initGrid(); - 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.departmentAffiliation = models.departmentAffiliationListDsM as DepartmentAffiliationList[]; - this.settlements = models.settlementSelectListDsM as SettlementSelectList[]; - this.roads = models.roadSelectListDsM as RoadSelectList[]; - }).then(() => { - this.bootstrapGrid(); - }); - } - - protected createModel(): Object { - return new ServiceObject(); } protected createColumnDefs(): any[] { @@ -106,4 +91,17 @@ export class ServiceObjectComponent extends StatementBase { }, ]; } + + 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.departmentAffiliation = models.departmentAffiliationListDsM as DepartmentAffiliationList[]; + this.settlements = models.settlementSelectListDsM as SettlementSelectList[]; + this.roads = models.roadSelectListDsM as RoadSelectList[]; + }).then(() => { + this.bootstrapGrid(); + }); + } } diff --git a/src/models/statement.base.ts b/src/models/statement.base.ts index 596e588..2ed96e9 100644 --- a/src/models/statement.base.ts +++ b/src/models/statement.base.ts @@ -1,11 +1,12 @@ -import { AfterViewInit } from '@angular/core'; +import { AfterViewInit, OnInit } from '@angular/core'; import { TdLoadingService } from '@covalent/core'; import { GridOptions, IGetRowsParams, IRowModel, RowNode } from 'ag-grid/main'; +import { StatementBaseService } from '../services/statement.base.service'; -export abstract class StatementBase implements AfterViewInit { +export abstract class StatementBase implements AfterViewInit, OnInit { protected columnDefs: any[]; protected gridOptions: GridOptions; - protected service: any; + protected service: StatementBaseService; protected loadingService: TdLoadingService; public showGrid: boolean; public rowCount: string; @@ -14,6 +15,11 @@ export abstract class StatementBase implements AfterViewInit { public isSelected: boolean = false; public isNew: boolean = false; + ngOnInit(): void { + this.initGrid(); + this.initFunction(); + } + ngAfterViewInit(): void { this.gridOptions.api.setDatasource(this.setRowData()); } @@ -46,6 +52,7 @@ export abstract class StatementBase implements AfterViewInit { this.gridOptions.enableServerSideSorting = true; this.showGrid = true; this.gridOptions.rowModelType = 'virtual'; + this.gridOptions.paginationPageSize = 25; } protected bootstrapGrid(): void { @@ -212,6 +219,9 @@ export abstract class StatementBase implements AfterViewInit { console.log('onColumnEvent: ' + $event); } - protected abstract createModel(): Object; + protected createModel(): Object { + return this.service.createModel(); + }; protected abstract createColumnDefs(): any[]; + protected abstract initFunction(): void; } diff --git a/src/services/boolean-select-list.service.ts b/src/services/boolean-select-list.service.ts index 5336c22..b290f1e 100644 --- a/src/services/boolean-select-list.service.ts +++ b/src/services/boolean-select-list.service.ts @@ -1,15 +1,22 @@ import { Injectable } from '@angular/core'; +import { Http } from '@angular/http'; + +import { CreateBaseService } from './create.base.service'; import { BooleanSelectList } from '../models/boolean-select-list'; @Injectable() -export class BooleanSelectListService { +export class BooleanSelectListService extends CreateBaseService { + protected apiUrl: string = ''; + constructor(protected http: Http) { + super(http); + } getModels(): Promise { - let values = []; - let trueValue = new BooleanSelectList(); + let values: BooleanSelectList[] = []; + let trueValue: BooleanSelectList = new BooleanSelectList(); trueValue.value = 1; trueValue.label = 'Да'; - let falseValue = new BooleanSelectList(); + let falseValue: BooleanSelectList = new BooleanSelectList(); falseValue.value = 0; falseValue.label = 'Нет'; values.push(falseValue); diff --git a/src/services/bus-stop-create.service.ts b/src/services/bus-stop-create.service.ts index 7d55bcb..5eacc54 100644 --- a/src/services/bus-stop-create.service.ts +++ b/src/services/bus-stop-create.service.ts @@ -1,21 +1,12 @@ import { Injectable } from '@angular/core'; -import { Headers, Http } from '@angular/http'; +import { Http } from '@angular/http'; -import 'rxjs/add/operator/toPromise'; +import { CreateBaseService } from './create.base.service'; @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); +export class BusStopCreateService extends CreateBaseService { + protected apiUrl: string = 'http://localhost:5000/busstop/directory'; + constructor(protected http: Http) { + super(http); } } diff --git a/src/services/bus-stop.service.ts b/src/services/bus-stop.service.ts index 56bd3dd..400ad19 100644 --- a/src/services/bus-stop.service.ts +++ b/src/services/bus-stop.service.ts @@ -1,14 +1,19 @@ -import { BusStop } from '../models/bus-stop'; import { Injectable } from '@angular/core'; -import { StatementBaseService } from '../services/statement.base.service'; import { Http } from '@angular/http'; +import { StatementBaseService } from './statement.base.service'; + +import { BusStop } from '../models/bus-stop'; + @Injectable() export class BusStopService extends StatementBaseService { protected url: string = 'http://localhost:5000/busstop'; constructor(protected http: Http) { super(http); } + public createModel(): Object { + return new BusStop(); + } protected parseModels(json: any): any[] { return json.busStopEditDsM as BusStop[]; }; diff --git a/src/services/create.base.service.ts b/src/services/create.base.service.ts new file mode 100644 index 0000000..81ea0f0 --- /dev/null +++ b/src/services/create.base.service.ts @@ -0,0 +1,17 @@ +import { Headers, Http, Response } from '@angular/http'; + +export abstract class CreateBaseService { + protected abstract apiUrl: string; + protected headers: Headers = new Headers({'Content-Type': 'applicaton/json'}); + constructor(protected http: Http) { } + getModels(): Promise { + return this.http.get(this.apiUrl) + .toPromise() + .then((response: Response) => response.json()) + .catch(this.handleError); + } + protected handleError(error: any): Promise { + console.error('An error occured', error); + return Promise.reject(error.message || error); + } +} diff --git a/src/services/service-object-create.service.ts b/src/services/service-object-create.service.ts index 52f72aa..3987a9a 100644 --- a/src/services/service-object-create.service.ts +++ b/src/services/service-object-create.service.ts @@ -1,21 +1,12 @@ import { Injectable } from '@angular/core'; -import { Headers, Http } from '@angular/http'; +import { Http } from '@angular/http'; -import 'rxjs/add/operator/toPromise'; +import { CreateBaseService } from './create.base.service'; @Injectable() -export class ServiceObjectCreateService { - private apiUrl = 'http://localhost:5000/serviceobject/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); +export class ServiceObjectCreateService extends CreateBaseService { + protected apiUrl: string = 'http://localhost:5000/serviceobject/directory'; + constructor(protected http: Http) { + super(http); } } diff --git a/src/services/service-object.service.ts b/src/services/service-object.service.ts index f23c568..0703934 100644 --- a/src/services/service-object.service.ts +++ b/src/services/service-object.service.ts @@ -1,41 +1,23 @@ import { Injectable } from '@angular/core'; import { Headers, Http } from '@angular/http'; -import 'rxjs/add/operator/toPromise'; +import { StatementBaseService } from './statement.base.service'; import { ServiceObject } from '../models/service-object'; @Injectable() -export class ServiceObjectService { - private url = 'http://localhost:5000/serviceobject'; - private headers = new Headers({'Content-Type': 'application/json'}); - constructor(private http: Http) { } - getData(): Promise { - return this.http.get(this.url) - .toPromise() - .then(response => response.json().serviceObjectEditDsM as ServiceObject[]) - .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 ServiceObject) - .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); - } +export class ServiceObjectService extends StatementBaseService { + protected url: string = 'http://localhost:5000/serviceobject'; + constructor(protected http: Http) { + super(http); + } + public createModel(): Object { + return new ServiceObject(); + } + protected parseModels(json: any): any { + return json.serviceObjectEditDsM as ServiceObject[]; + } + protected parseModel(json: any): any { + return json as ServiceObject; + } } diff --git a/src/services/statement.base.service.ts b/src/services/statement.base.service.ts index 71e0cb6..600fc8e 100644 --- a/src/services/statement.base.service.ts +++ b/src/services/statement.base.service.ts @@ -41,6 +41,8 @@ export abstract class StatementBaseService { .catch(this.handleError); } + public abstract createModel(): Object; + protected handleError(error: any): Promise { console.error('An error occured', error); return Promise.reject(error.message || error); -- libgit2 0.21.4