From 8e75560aeda05dfc0c096cff0bff8179cd88e4f1 Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Mon, 20 Nov 2017 17:47:29 -0500 Subject: [PATCH] LP#626157 Ang2 experiments Signed-off-by: Bill Erickson --- Open-ILS/webby-src/src/app/base.module.ts | 12 +++++++++--- Open-ILS/webby-src/src/app/core/eg-auth.service.ts | 10 ++++++---- .../src/app/core/{eg-event.ts => eg-event.service.ts} | 8 +++++++- Open-ILS/webby-src/src/app/core/eg-net.service.ts | 8 +++++--- 4 files changed, 27 insertions(+), 11 deletions(-) rename Open-ILS/webby-src/src/app/core/{eg-event.ts => eg-event.service.ts} (90%) diff --git a/Open-ILS/webby-src/src/app/base.module.ts b/Open-ILS/webby-src/src/app/base.module.ts index 7358b00a72..ecb4d28662 100644 --- a/Open-ILS/webby-src/src/app/base.module.ts +++ b/Open-ILS/webby-src/src/app/base.module.ts @@ -11,9 +11,12 @@ import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; import { EgBaseComponent } from './base.component'; import { EgBaseRoutingModule } from './base-routing.module'; import { WelcomeComponent } from './welcome.component'; -import { EgIdlService } from '@eg/core/eg-idl.service'; -import { EgNetService } from '@eg/core/eg-net.service'; -import { EgAuthService } from '@eg/core/eg-auth.service'; + +// Import and 'provide' globally required services. +import { EgEventService } from '@eg/core/eg-event.service'; +import { EgIdlService } from '@eg/core/eg-idl.service'; +import { EgNetService } from '@eg/core/eg-net.service'; +import { EgAuthService } from '@eg/core/eg-auth.service'; @NgModule({ declarations: [ @@ -26,6 +29,7 @@ import { EgAuthService } from '@eg/core/eg-auth.service'; NgbModule.forRoot() ], providers: [ + EgEventService, EgIdlService, EgNetService, EgAuthService @@ -35,7 +39,9 @@ import { EgAuthService } from '@eg/core/eg-auth.service'; export class EgBaseModule { constructor(router: Router) { + /* console.debug('Routes: ', JSON.stringify(router.config, undefined, 2)); + */ } } diff --git a/Open-ILS/webby-src/src/app/core/eg-auth.service.ts b/Open-ILS/webby-src/src/app/core/eg-auth.service.ts index f73720b6d7..920a48c67f 100644 --- a/Open-ILS/webby-src/src/app/core/eg-auth.service.ts +++ b/Open-ILS/webby-src/src/app/core/eg-auth.service.ts @@ -4,7 +4,7 @@ import { Injectable, EventEmitter } from '@angular/core'; import { Observable } from 'rxjs/Rx'; import { EgNetService } from './eg-net.service'; -import { EgEvent } from './eg-event'; +import { EgEventService, EgEvent } from './eg-event.service'; import { EgIdlService, EgIdlObject } from './eg-idl.service'; class EgAuthUser { @@ -49,15 +49,17 @@ export class EgAuthService { return this.activeUser.authtime }; - constructor(private egNet: EgNetService) { - } + constructor( + private egEvt: EgEventService, + private egNet: EgNetService + ) {} login(args: EgAuthArgs, ops?: Object): Promise { return new Promise((resolve, reject) => { this.egNet.request('open-ils.auth', 'open-ils.auth.login', args) .subscribe(res => { - let evt = EgEvent.parse(res); + let evt = this.egEvt.parse(res); if (evt) { if (evt.textcode == 'SUCCESS') { this.handleLoginOk(args, evt); diff --git a/Open-ILS/webby-src/src/app/core/eg-event.ts b/Open-ILS/webby-src/src/app/core/eg-event.service.ts similarity index 90% rename from Open-ILS/webby-src/src/app/core/eg-event.ts rename to Open-ILS/webby-src/src/app/core/eg-event.service.ts index 1b5903d9fd..3f6afc7d30 100644 --- a/Open-ILS/webby-src/src/app/core/eg-event.ts +++ b/Open-ILS/webby-src/src/app/core/eg-event.service.ts @@ -1,3 +1,4 @@ +import { Injectable } from '@angular/core'; export class EgEvent { code : Number; @@ -19,11 +20,15 @@ export class EgEvent { s += `\n${this.note}`; return s; } +} + +@Injectable() +export class EgEventService { /** * Returns an EgEvent if 'thing' is an event, null otherwise. */ - public static parse(thing: any): EgEvent { + parse(thing: any): EgEvent { // All events have a textcode if (thing && typeof thing == 'object' && 'textcode' in thing) { @@ -45,3 +50,4 @@ export class EgEvent { } } + diff --git a/Open-ILS/webby-src/src/app/core/eg-net.service.ts b/Open-ILS/webby-src/src/app/core/eg-net.service.ts index c279cca027..9232828bc7 100644 --- a/Open-ILS/webby-src/src/app/core/eg-net.service.ts +++ b/Open-ILS/webby-src/src/app/core/eg-net.service.ts @@ -17,7 +17,7 @@ */ import { Injectable, EventEmitter } from '@angular/core'; import { Observable, Observer } from 'rxjs/Rx'; -import { EgEvent } from './eg-event'; +import { EgEventService, EgEvent } from './eg-event.service'; // Global vars from opensrf.js // These are availavble at runtime, but are not exported. @@ -52,7 +52,9 @@ export class EgNetService { // and the active request is marked as superseded. permFailedHasHandler: Boolean = false; - constructor() { + constructor( + private egEvt: EgEventService + ) { this.permFailed$ = new EventEmitter(); this.authExpired$ = new EventEmitter(); } @@ -111,7 +113,7 @@ export class EgNetService { // Relay response object to the caller for typical/successful responses. // Applies special handling to response events that require global attention. private dispatchResponse = function(request, response) { - request.evt = EgEvent.parse(response); + request.evt = this.egEvt.parse(response); if (request.evt) { switch(request.evt.textcode) { -- 2.11.0