[ACA-1591] Load extensions from multiple files (#521)

* rework extension service, separate file with config

* improve loading, optional entries

* simplify config and unify content actions

* load and merge multiple files

* improve plugin loading, introduce second demo

* move demo stuff to a plugin

* rework navbar to make it pluggable

* code and naming convention cleanup

* extension schema

* switch off custom navbar group by default

* hotfix for facetQueries issue

* consolidate files, final renames
This commit is contained in:
Denys Vuika
2018-07-19 20:54:39 +01:00
committed by GitHub
parent 43a71aa1c8
commit 8c9ffc1160
34 changed files with 1209 additions and 1048 deletions

View File

@@ -24,7 +24,7 @@
*/
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { NgModule, APP_INITIALIZER } from '@angular/core';
import { RouterModule, RouteReuseStrategy } from '@angular/router';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
@@ -84,7 +84,11 @@ import { NodePermissionsDialogComponent } from './dialogs/node-permissions/node-
import { NodePermissionsDirective } from './directives/node-permissions.directive';
import { PermissionsManagerComponent } from './components/permission-manager/permissions-manager.component';
import { AppRouteReuseStrategy } from './app.routes.strategy';
import { ExtensionService } from './extensions/extension.service';
export function setupExtensionServiceFactory(service: ExtensionService): Function {
return () => service.load();
}
@NgModule({
imports: [
BrowserModule,
@@ -96,7 +100,7 @@ import { AppRouteReuseStrategy } from './app.routes.strategy';
enableTracing: false // enable for debug only
}),
MaterialModule,
CoreModule,
CoreModule.forRoot(),
ContentModule,
AppStoreModule,
CoreExtensionsModule,
@@ -159,7 +163,13 @@ import { AppRouteReuseStrategy } from './app.routes.strategy';
NodePermissionService,
ProfileResolver,
ExperimentalGuard,
ContentApiService
ContentApiService,
{
provide: APP_INITIALIZER,
useFactory: setupExtensionServiceFactory,
deps: [ExtensionService],
multi: true
}
],
entryComponents: [
LibraryDialogComponent,