Wire up Simple Reporter into the Staff Client Interface
authorJason Boyer <JBoyer@equinoxOLI.org>
Tue, 14 Dec 2021 19:15:13 +0000 (14:15 -0500)
committerJason Boyer <jboyer@equinoxinitiative.org>
Tue, 21 Dec 2021 21:46:27 +0000 (16:46 -0500)
Sponsored-by: C/W MARS
Sponsored-by: Missouri Evergreen Consortium
Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org>
Open-ILS/src/eg2/src/app/staff/nav.component.html
Open-ILS/src/eg2/src/app/staff/routing.module.ts
Open-ILS/src/eg2/src/app/staff/splash.component.html
Open-ILS/src/eg2/src/app/staff/splash.component.ts
Open-ILS/src/templates/staff/navbar.tt2

index 6040ccf..c8b3f0e 100644 (file)
             <span class="material-icons" aria-hidden="true">insert_chart</span>
             <span i18n>Reports</span>
           </a>
+          <a class="dropdown-item" routerLink="/staff/reporter/simple">
+            <span class="material-icons" aria-hidden="true">insert_chart</span>
+            <span i18n>Simple Reports</span>
+          </a>
         </div>
       </div>
     </div>
index 21e7427..d7981d7 100644 (file)
@@ -33,6 +33,9 @@ const routes: Routes = [{
     path: 'login',
     component: StaffLoginComponent
   }, {
+    path: 'no_permission',
+    component: StaffSplashComponent
+  }, {
     path: 'splash',
     component: StaffSplashComponent
   }, {
@@ -48,6 +51,10 @@ const routes: Routes = [{
     loadChildren: () =>
       import('./catalog/catalog.module').then(m => m.CatalogModule)
   }, {
+    path: 'reporter',
+    loadChildren: () =>
+      import('@eg/staff/reporter/routing.module').then(m => m.ReporterRoutingModule)
+  }, {
     path: 'sandbox',
     loadChildren: () =>
       import('./sandbox/sandbox.module').then(m => m.SandboxModule)
index 450a3e5..9230ecd 100644 (file)
   </div>
 </div>
 
+<eg-string #noPermissionString i18n-text text="Sorry, you do not have permission to access this"></eg-string>
index 6756b65..1a1b200 100644 (file)
@@ -1,4 +1,6 @@
-import {Component, OnInit, Renderer2} from '@angular/core';
+import {Component, OnInit, Renderer2, ViewChild} from '@angular/core';
+import {ToastService} from '@eg/share/toast/toast.service';
+import {StringComponent} from '@eg/share/string/string.component';
 import {Router} from '@angular/router';
 
 @Component({
@@ -7,17 +9,27 @@ import {Router} from '@angular/router';
 
 export class StaffSplashComponent implements OnInit {
 
+    @ViewChild('noPermissionString', { static: true }) noPermissionString: StringComponent;
     catSearchQuery: string;
 
     constructor(
         private renderer: Renderer2,
-        private router: Router
+        private router: Router,
+        private toast: ToastService
     ) {}
 
     ngOnInit() {
 
         // Focus catalog search form
         this.renderer.selectRootElement('#catalog-search-input').focus();
+
+        if (this.router.url === '/staff/no_permission') {
+            this.noPermissionString.current()
+                .then(str => {
+                    this.toast.danger(str);
+                    this.router.navigate(['/staff']);
+                });
+        }
     }
 
     searchCatalog(): void {
index bb0409a..972e562 100644 (file)
               [% l('Reports') %]
             </a>
           </li>
+          <li>
+            <a href="/eg2/staff/reporter/simple" target="_self">
+              <span class="glyphicon glyphicon-object-align-bottom" 
+                aria-hidden="true"></span>
+              [% l('Simple Reports') %]
+            </a>
+          </li>
         </ul> <!-- admin dropdown -->
       </li>
     </ul> <!-- end left side entries -->