Importing the route-parent module wreaks havoc with the router.
Instead, put shared imports into separate "Common" modules for direct
import of child modules.
Signed-off-by: Bill Erickson <berickxx@gmail.com>
import {NgbModule} from '@ng-bootstrap/ng-bootstrap'; // ng-bootstrap
import {CookieModule} from 'ngx-cookie'; // import CookieMonster
+import {EgCommonModule} from './common.module';
import {EgBaseComponent} from './app.component';
import {EgBaseRoutingModule} from './routing.module';
import {WelcomeComponent} from './welcome.component';
WelcomeComponent
],
imports: [
+ EgCommonModule,
EgBaseRoutingModule,
BrowserModule,
NgbModule.forRoot(),
--- /dev/null
+import {CommonModule} from '@angular/common';
+import {NgModule} from '@angular/core';
+import {FormsModule} from '@angular/forms';
+import {NgbModule} from '@ng-bootstrap/ng-bootstrap';
+import {EgOrgSelectComponent} from '@eg/share/org-select.component';
+import {EgConfirmDialogComponent} from '@eg/share/confirm-dialog.component';
+
+/**
+ * Collection of common modules and components used by all apps.
+ */
+
+@NgModule({
+ declarations: [
+ EgOrgSelectComponent,
+ EgConfirmDialogComponent
+ ],
+ imports: [
+ CommonModule,
+ FormsModule,
+ NgbModule
+ ],
+ exports: [
+ CommonModule,
+ NgbModule,
+ FormsModule,
+ EgOrgSelectComponent,
+ EgConfirmDialogComponent
+ ]
+})
+
+export class EgCommonModule {}
-import { NgModule } from '@angular/core';
-import { RouterModule, Routes } from '@angular/router';
-import { EgBaseResolver } from './resolver.service';
-import { WelcomeComponent } from './welcome.component';
+import {NgModule} from '@angular/core';
+import {RouterModule, Routes} from '@angular/router';
+import {EgBaseResolver} from './resolver.service';
+import {WelcomeComponent} from './welcome.component';
/**
* Avoid loading all application JS up front by lazy-loading sub-modules.
];
@NgModule({
- imports: [ RouterModule.forRoot(routes) ],
- exports: [ RouterModule ],
- providers: [ EgBaseResolver ]
+ imports: [RouterModule.forRoot(routes)],
+ exports: [RouterModule],
+ providers: [EgBaseResolver]
})
export class EgBaseRoutingModule {}
+<eg-staff-banner bannerText="Workstation Administration" i18n-bannerText>
+</eg-staff-banner>
<!-- this will remain hidden until opened -->
<eg-confirm-dialog
import {NgModule} from '@angular/core';
-import {CommonModule} from '@angular/common';
-import {EgStaffModule} from '@eg/staff/app.module';
+import {EgStaffCommonModule} from '@eg/staff/common.module';
import {WorkstationsRoutingModule} from './routing.module';
import {WorkstationsComponent} from './app.component';
WorkstationsComponent,
],
imports: [
- CommonModule,
- EgStaffModule,
+ EgStaffCommonModule,
WorkstationsRoutingModule
- ],
- providers: [
]
})
-export class ManageWorkstationsModule {
- constructor() {console.log('Loading ManageWorkstationsModule')}
-}
+export class ManageWorkstationsModule {}
+
-import {CommonModule} from '@angular/common';
import {NgModule} from '@angular/core';
-import {FormsModule} from '@angular/forms';
-import {NgbModule} from '@ng-bootstrap/ng-bootstrap';
-import {EgBaseModule} from '@eg/app.module';
+import {EgStaffCommonModule} from '@eg/staff/common.module';
import {EgStaffComponent} from './app.component';
import {EgStaffRoutingModule} from './routing.module';
import {EgStaffNavComponent} from './nav.component';
import {EgStaffLoginComponent} from './login.component';
import {EgStaffSplashComponent} from './splash.component';
-import {EgOrgSelectComponent} from '@eg/share/org-select.component';
-import {EgConfirmDialogComponent} from '@eg/share/confirm-dialog.component';
-
@NgModule({
declarations: [
EgStaffComponent,
EgStaffNavComponent,
EgStaffSplashComponent,
- EgStaffLoginComponent,
- EgOrgSelectComponent,
- EgConfirmDialogComponent
+ EgStaffLoginComponent
],
imports: [
- CommonModule,
- EgStaffRoutingModule,
- FormsModule,
- NgbModule
- ],
- exports: [
- // Components available to all staff/sub modules
- EgOrgSelectComponent,
- EgConfirmDialogComponent,
- FormsModule,
- NgbModule
+ EgStaffCommonModule,
+ EgStaffRoutingModule
]
})
-export class EgStaffModule {
+export class EgStaffModule {}
-}
-import {CommonModule} from '@angular/common';
import {NgModule} from '@angular/core';
-import {EgStaffModule} from '../app.module';
+import {EgStaffCommonModule} from '@eg/staff/common.module';
import {EgUnapiService} from '@eg/share/unapi';
import {EgCatalogRoutingModule} from './routing.module';
import {EgCatalogService} from '@eg/share/catalog/catalog.service';
RecordPaginationComponent
],
imports: [
- EgStaffModule,
- CommonModule,
+ EgStaffCommonModule,
EgCatalogRoutingModule
],
providers: [
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
- providers: [EgCatalogResolver ]
+ providers: [EgCatalogResolver]
})
export class EgCatalogRoutingModule {}
-<h2 i18n="Barcode Search Header">Search for Patron by Barcode</h2>
-<span i18n>Barcode:</span><input type='text' [ngModel]='barcode'/>
+<eg-staff-banner bannerText="Search for Patron by Barcode" i18n-bannerText>
+</eg-staff-banner>
+
+<div class="col-4">
+ <div class="input-group">
+ <div class="input-group-prepend">
+ <span class="input-group-text" i18n>Barcode:</span>
+ </div>
+ <input type='text' id='barcode-search-input'
+ class="form-control" placeholder="Barcode" i18n-placeholder
+ [ngModel]='barcode'/>
+ <div class="input-group-append">
+ <button class="btn btn-outline-secondary"
+ (click)="findUser()">Submit</button>
+ </div>
+ </div>
+</div>
+
-<br/>
-<ul>
- <li *ngFor="let str of strList">{{str}}</li>
-</ul>
-import { Component, OnInit } from '@angular/core';
-import { ActivatedRoute } from '@angular/router';
-import { EgNetService } from '@eg/core/net';
-import { EgAuthService } from '@eg/core/auth';
+import {Component, OnInit, Renderer} from '@angular/core';
+import {ActivatedRoute} from '@angular/router';
+import {EgNetService} from '@eg/core/net';
+import {EgAuthService} from '@eg/core/auth';
@Component({
templateUrl: 'app.component.html'
export class EgBcSearchComponent implements OnInit {
- barcode: String = '';
- strList: String[] = [];
+ barcode: string = '';
constructor(
private route: ActivatedRoute,
+ private renderer: Renderer,
private net: EgNetService,
private auth: EgAuthService
) {}
ngOnInit() {
+ this.renderer.selectRootElement('#barcode-search-input').focus();
this.barcode = this.route.snapshot.paramMap.get('barcode');
if (this.barcode) {
- // Find the user and redirect to the
+ this.findUser();
}
-
- this.route.data.subscribe((data: { startup : any }) => {
- console.debug('EgBcSearch ngOnInit complete');
- });
-
- this.net.request(
- 'open-ils.actor',
- 'opensrf.system.echo',
- 'hello', 'goodbye', 'in the middle'
- ).subscribe(res => this.strList.push(res));
}
findUser(): void {
- // find user by this.barcode;
+ alert('Searching for user ' + this.barcode);
}
}
-import { CommonModule } from '@angular/common';
-import { NgModule } from '@angular/core';
-import { FormsModule } from '@angular/forms';
-import { EgBcSearchComponent } from './app.component';
-import { EgBcSearchRoutingModule } from './routing.module';
+import {NgModule} from '@angular/core';
+import {EgStaffCommonModule} from '@eg/staff/common.module';
+import {EgBcSearchRoutingModule} from './routing.module';
+import {EgBcSearchComponent} from './app.component';
@NgModule({
declarations: [
EgBcSearchComponent
],
imports: [
+ EgStaffCommonModule,
EgBcSearchRoutingModule,
- CommonModule,
- FormsModule
],
})
-import { NgModule } from '@angular/core';
-import { RouterModule, Routes } from '@angular/router';
-import { EgBcSearchComponent } from './app.component';
+import {NgModule} from '@angular/core';
+import {RouterModule, Routes} from '@angular/router';
+import {EgBcSearchComponent} from './app.component';
const routes: Routes = [
{ path: '',
];
@NgModule({
- imports: [ RouterModule.forChild(routes) ],
- exports: [ RouterModule ]
+ imports: [RouterModule.forChild(routes)],
+ exports: [RouterModule]
})
export class EgBcSearchRoutingModule {}
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
-const routes: Routes = [{
- path: '',
- children : [{
- path: 'patron',
+const routes: Routes = [
+ { path: 'patron',
children: [{
path: 'bcsearch',
loadChildren: '@eg/staff/circ/patron/bcsearch/app.module#EgBcSearchModule'
}]
- }]
-}];
+ }
+];
@NgModule({
- imports: [ RouterModule.forChild(routes) ],
- exports: [ RouterModule ]
+ imports: [RouterModule.forChild(routes)],
+ exports: [RouterModule]
})
export class EgCircRoutingModule {}
--- /dev/null
+import {NgModule} from '@angular/core';
+import {EgCommonModule} from '@eg/common.module';
+import {EgStaffBannerComponent} from './share/staff-banner.component';
+import {EgConfirmDialogComponent} from '@eg/share/confirm-dialog.component';
+
+/**
+ * Imports the EG common modules and adds modules common to all staff UI's.
+ */
+
+@NgModule({
+ declarations: [
+ EgStaffBannerComponent,
+ ],
+ imports: [
+ EgCommonModule
+ ],
+ exports: [
+ EgCommonModule,
+ EgStaffBannerComponent
+ ]
+})
+
+export class EgStaffCommonModule {}
--- /dev/null
+import {Component, OnInit, Input} from '@angular/core';
+
+@Component({
+ selector: 'eg-staff-banner',
+ template:
+ '<div class="lead alert alert-primary text-center pt-1 pb-1 mb-1" role="alert">' +
+ '<span>{{bannerText}}</span>' +
+ '</div>'
+})
+
+export class EgStaffBannerComponent {
+ @Input() public bannerText: string;
+}
+
+
</a>
</li>
<li>
+ <a href="/eg2/staff/catalog/search" target="_self">
+ <span class="glyphicon glyphicon-search"></span>
+ <span>[% l('Staff Catalog (Experimental)') %]</span>
+ </a>
+ </li>
+ <li>
<a href="./cat/bucket/record/view" target="_self">
<span class="glyphicon glyphicon-list-alt"></span>
[% l('Record Buckets') %]