LP#626157 Ang2 experiments
authorBill Erickson <berickxx@gmail.com>
Wed, 22 Nov 2017 15:46:37 +0000 (10:46 -0500)
committerBill Erickson <berickxx@gmail.com>
Mon, 11 Dec 2017 17:39:51 +0000 (12:39 -0500)
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Open-ILS/webby-src/src/app/staff/common-data-resolver.service.ts [deleted file]
Open-ILS/webby-src/src/app/staff/data-resolver.service.ts [new file with mode: 0644]
Open-ILS/webby-src/src/app/staff/routing.module.ts
Open-ILS/webby-src/src/app/staff/splash.component.html
Open-ILS/webby-src/src/app/staff/splash.component.ts

diff --git a/Open-ILS/webby-src/src/app/staff/common-data-resolver.service.ts b/Open-ILS/webby-src/src/app/staff/common-data-resolver.service.ts
deleted file mode 100644 (file)
index 6908cf0..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-import { Injectable }             from '@angular/core';
-import { Router, Resolve, RouterStateSnapshot,
-         ActivatedRouteSnapshot } from '@angular/router';
-import { EgAuthService }          from '@eg/core/auth.service';
-
-/**
- * Check auth token and load data required by all staff components.
- */
-@Injectable()
-export class EgStaffCommonDataResolver implements Resolve<Promise<boolean>> {
-
-    constructor(
-        private router: Router, 
-        private egAuth: EgAuthService
-    ) {}
-
-    resolve(
-        route: ActivatedRouteSnapshot, 
-        state: RouterStateSnapshot): Promise<boolean> {
-
-        console.debug('EgStaffCommonDataResolver:resolve()');
-
-        // TODO verify workstation
-
-        return Promise.resolve(true);
-    }
-}
-
diff --git a/Open-ILS/webby-src/src/app/staff/data-resolver.service.ts b/Open-ILS/webby-src/src/app/staff/data-resolver.service.ts
new file mode 100644 (file)
index 0000000..1819802
--- /dev/null
@@ -0,0 +1,37 @@
+import { Injectable }             from '@angular/core';
+import { Router, Resolve, RouterStateSnapshot,
+         ActivatedRouteSnapshot } from '@angular/router';
+import { EgAuthService }          from '@eg/core/auth.service';
+
+/**
+ * Load post-authentication data required by  all staff UI's
+ */
+@Injectable()
+export class EgStaffDataResolver implements Resolve<Promise<boolean>> {
+
+    constructor(
+        private router: Router, 
+        private egAuth: EgAuthService
+    ) {}
+
+    resolve(
+        route: ActivatedRouteSnapshot, 
+        state: RouterStateSnapshot): Promise<boolean> {
+
+        console.debug('EgStaffDataResolver:resolve()');
+
+        // TODO verify workstation
+
+        let wsPath = '/staff/admin/workstation';
+
+        if (false) { // WS is invalid
+            if (this.router.url != wsPath) { 
+                console.debug('re-routing to workstation admin page');
+                this.router.navigate([wsPath]);
+            }
+        }
+
+        return Promise.resolve(true);
+    }
+}
+
index 92a2897..df2d784 100644 (file)
@@ -1,44 +1,48 @@
 import { NgModule } from '@angular/core';
 import { RouterModule, Routes } from '@angular/router';
 import { EgStaffResolver } from './resolver.service';
-import { EgStaffCommonDataResolver } from './common-data-resolver.service';
+import { EgStaffDataResolver } from './data-resolver.service';
 import { EgStaffAuthGuard } from './auth-guard.service';
 import { EgStaffComponent } from './staff.component';
 import { EgStaffLoginComponent } from './login.component';
 import { EgStaffLogoutComponent } from './logout.component';
 import { EgStaffSplashComponent } from './splash.component';
 
-const routes: Routes = [
-  { path: '',
+const routes: Routes = [{
+  path: '',
+  resolve: {staffResolver : EgStaffResolver},
+  children: [{
+    path: 'login',
+    component: EgStaffLoginComponent
+  }, {
+    path: 'logout',
+    component: EgStaffLogoutComponent
+  }, {
+    // Every path below here requires a valid authtoken.
+    path: '',
+    canActivate : [EgStaffAuthGuard],
+    resolve: {dataResolver: EgStaffDataResolver},
     component: EgStaffComponent,
-    resolve : {staffResolver : EgStaffResolver},
-    children : [
-      {   path: 'login',
-          component: EgStaffLoginComponent
-      }, {   
-          path: 'logout',
-          component: EgStaffLogoutComponent
-      }, {   
-          path : 'splash',
-          canActivate : [EgStaffAuthGuard],
-          resolve : {commonDataResolver : EgStaffCommonDataResolver},
-          component: EgStaffSplashComponent
-       }, {   
-          path : 'circ',
-          canActivate : [EgStaffAuthGuard],
-          resolve : {commonDataResolver : EgStaffCommonDataResolver},
-          loadChildren : '@eg/staff/circ/circ.module#EgCircModule'
-        }
-    ],
-  }
-];
+    children: [{
+        path: '',
+        redirectTo: 'splash'
+        pathMatch: 'full',
+      }, {
+        path: 'splash',
+        component: EgStaffSplashComponent
+      }, {
+        path: 'circ',
+        loadChildren : '@eg/staff/circ/circ.module#EgCircModule'
+    }]
+  }]
+}];
 
 @NgModule({
   imports: [ RouterModule.forChild(routes) ],
   exports: [ RouterModule ],
   providers: [ 
     EgStaffResolver,
-    EgStaffCommonDataResolver,
+    EgStaffDataResolver,
     EgStaffAuthGuard
   ]
 })
index 64a54a3..101f464 100644 (file)
@@ -10,6 +10,7 @@ export class EgStaffSplashComponent implements OnInit {
     constructor(private route: ActivatedRoute) {}
 
     ngOnInit() {
+      console.log('EgStaffSplashComponent:ngOnInit()');
 
     }
 }