From 0553f70496fdb0a509994bcfcd36996b86b2aa13 Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Mon, 5 Mar 2018 17:23:22 +0000 Subject: [PATCH] LP#626157 Combo experiements Signed-off-by: Bill Erickson --- Open-ILS/eg2-src/package.json | 1 + Open-ILS/eg2-src/src/app/app.module.ts | 44 ++++++++++++++++++++++++++++++++-- Open-ILS/src/templates/staff/base.tt2 | 11 ++++++++- 3 files changed, 53 insertions(+), 3 deletions(-) diff --git a/Open-ILS/eg2-src/package.json b/Open-ILS/eg2-src/package.json index b67069b1d8..b1f8c246ba 100644 --- a/Open-ILS/eg2-src/package.json +++ b/Open-ILS/eg2-src/package.json @@ -21,6 +21,7 @@ "@angular/platform-browser": "^5.0.0", "@angular/platform-browser-dynamic": "^5.0.0", "@angular/router": "^5.0.0", + "@angular/upgrade": "^5.2.6", "@ng-bootstrap/ng-bootstrap": "^1.0.0-beta.5", "core-js": "^2.4.1", "jquery": "^3.2.1", diff --git a/Open-ILS/eg2-src/src/app/app.module.ts b/Open-ILS/eg2-src/src/app/app.module.ts index e7a6198786..e069594d96 100644 --- a/Open-ILS/eg2-src/src/app/app.module.ts +++ b/Open-ILS/eg2-src/src/app/app.module.ts @@ -8,6 +8,10 @@ import {NgModule} from '@angular/core'; import {NgbModule} from '@ng-bootstrap/ng-bootstrap'; // ng-bootstrap import {CookieModule} from 'ngx-cookie'; // import CookieMonster +// XXX required for multi-mode +import {UpgradeModule} from '@angular/upgrade/static'; +import {Router} from '@angular/router'; + import {EgBaseComponent} from './app.component'; import {EgBaseRoutingModule} from './routing.module'; import {WelcomeComponent} from './welcome.component'; @@ -22,12 +26,18 @@ import {EgPermService} from '@eg/core/perm'; import {EgPcrudService} from '@eg/core/pcrud'; import {EgOrgService} from '@eg/core/org'; +// TODO: add environment controls for enabling multi-mode? +// XXX required for multi-mode +declare var angular: any; + + @NgModule({ declarations: [ EgBaseComponent, WelcomeComponent ], imports: [ + UpgradeModule, // XXX multi-mode EgBaseRoutingModule, BrowserModule, NgbModule.forRoot(), @@ -44,8 +54,38 @@ import {EgOrgService} from '@eg/core/org'; EgOrgService ], exports: [], - bootstrap: [EgBaseComponent] + //bootstrap: [EgBaseComponent] // XXX multi-mode }) -export class EgBaseModule {} +export class EgBaseModule { + + // XXX whole class def required for multi-mode only + + constructor( + private upgrade: UpgradeModule, + private router: Router + ) {} + + ngDoBootstrap() { + console.log('ngDoBootstrap()'); + + let myWin: any = window; + + if (!myWin.ang1PageApp) { + console.error('NO PAGE APP DEFINED'); + return; + } + + /* + angular.module(myWin.ang1PageApp).directive('heroDetail', + downgradeComponent({ component: HeroDetailComponent }) + ); + */ + + // some of our ang1 apps are not strict-di compliant :( + this.upgrade.bootstrap(document.body, [myWin.ang1PageApp]); + //this.upgrade.bootstrap(document.body, [myWin.ang1PageApp], { strictDi: true }); + } + +} diff --git a/Open-ILS/src/templates/staff/base.tt2 b/Open-ILS/src/templates/staff/base.tt2 index 7ce42ae73f..a16acc2e6c 100644 --- a/Open-ILS/src/templates/staff/base.tt2 +++ b/Open-ILS/src/templates/staff/base.tt2 @@ -1,9 +1,15 @@ [%- PROCESS 'staff/config.tt2' %] +