import {WelcomeComponent} from './welcome.component';
// Import and 'provide' globally required services.
-import {EgEventService} from '@eg/core/event';
-import {EgStoreService} from '@eg/core/store';
-import {EgIdlService} from '@eg/core/idl';
-import {EgNetService} from '@eg/core/net';
-import {EgAuthService} from '@eg/core/auth';
-import {EgPermService} from '@eg/core/perm';
-import {EgPcrudService} from '@eg/core/pcrud';
-import {EgOrgService} from '@eg/core/org';
-
@NgModule({
declarations: [
EgBaseComponent,
WelcomeComponent
],
imports: [
- EgCommonModule,
+ EgCommonModule.forRoot(),
EgBaseRoutingModule,
BrowserModule,
NgbModule.forRoot(),
CookieModule.forRoot()
],
- providers: [
- EgEventService,
- EgStoreService,
- EgIdlService,
- EgNetService,
- EgAuthService,
- EgPermService,
- EgPcrudService,
- EgOrgService
- ],
exports: [],
bootstrap: [EgBaseComponent]
})
+/**
+ * Modules, services, and components used by all apps.
+ */
import {CommonModule} from '@angular/common';
-import {NgModule} from '@angular/core';
+import {NgModule, ModuleWithProviders} from '@angular/core';
import {FormsModule} from '@angular/forms';
import {NgbModule} from '@ng-bootstrap/ng-bootstrap';
+
+import {EgEventService} from '@eg/core/event';
+import {EgStoreService} from '@eg/core/store';
+import {EgIdlService} from '@eg/core/idl';
+import {EgNetService} from '@eg/core/net';
+import {EgAuthService} from '@eg/core/auth';
+import {EgPermService} from '@eg/core/perm';
+import {EgPcrudService} from '@eg/core/pcrud';
+import {EgOrgService} from '@eg/core/org';
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,
]
})
-export class EgCommonModule {}
+export class EgCommonModule {
+ /** forRoot() lets us define services that should only be
+ * instantiated once for all loaded routes */
+ static forRoot(): ModuleWithProviders {
+ return {
+ ngModule: EgCommonModule,
+ providers: [
+ EgEventService,
+ EgStoreService,
+ EgIdlService,
+ EgNetService,
+ EgAuthService,
+ EgPermService,
+ EgPcrudService,
+ EgOrgService
+ ]
+ };
+ }
+}
+
private store: EgStoreService
) {
+ console.log("egAuth constructor()");
+
// BroadcastChannel is not yet defined in PhantomJS
this.authChannel = BroadcastChannel ?
new BroadcastChannel('eg.auth') : {};
// TODO: string interpolation a la ang1 egStrings titles
import {Title} from '@angular/platform-browser';
-// Import and 'provide' globally required Evergreen services.
+import {EgCommonModule} from './common.module';
+
+// Import service handles so we can downgrade them.
import {EgEventService} from '@eg/core/event';
import {EgStoreService} from '@eg/core/store';
import {EgIdlService} from '@eg/core/idl';
UpgradeModule,
BrowserModule,
NgbModule.forRoot(),
- CookieModule.forRoot()
- ],
- providers: [
- EgEventService,
- EgStoreService,
- EgIdlService,
- EgNetService,
- EgAuthService,
- EgPermService,
- EgPcrudService,
- EgOrgService
+ CookieModule.forRoot(),
+ EgCommonModule.forRoot()
],
exports: []
})
return new Promise((resolve, reject) => {
this.pcrud.search('ccvm',
- {ctype : CATALOG_CCVM_FILTERS}, {}, {atomic: true}
+ {ctype : CATALOG_CCVM_FILTERS}, {},
+ {atomic: true, anonymous: true}
).subscribe(list => {
this.compileCcvms(list);
resolve();
return new Promise((resolve, reject) => {
this.pcrud.search('cmf',
- {facet_field : 't'}, {}, {atomic : true}
+ {facet_field : 't'}, {}, {atomic: true, anonymous: true}
).subscribe(
cmfs => {
cmfs.forEach(c => this.cmfMap[c.id()] = c);
EgStaffLoginComponent
],
imports: [
- EgStaffCommonModule,
+ EgStaffCommonModule.forRoot(),
EgStaffRoutingModule
]
})
-import {NgModule} from '@angular/core';
+import {NgModule, ModuleWithProviders} from '@angular/core';
import {EgCommonModule} from '@eg/common.module';
import {EgStaffBannerComponent} from './share/staff-banner.component';
import {EgConfirmDialogComponent} from '@eg/share/confirm-dialog.component';
]
})
-export class EgStaffCommonModule {}
+export class EgStaffCommonModule {
+ static forRoot(): ModuleWithProviders {
+ return {
+ ngModule: EgStaffCommonModule,
+ providers: [
+ /* placeholder for exporting staff-only services */
+ ]
+ };
+ }
+
+}
@Component({
selector: 'eg-staff-banner',
template:
- '<div class="lead alert alert-primary text-center pt-1 pb-1 mb-1" role="alert">' +
+ '<div class="lead alert alert-primary text-center pt-1 pb-1" role="alert">' +
'<span>{{bannerText}}</span>' +
'</div>'
})