diff --git a/.drone.yml b/.drone.yml index f3ec9b2..aacebcf 100644 --- a/.drone.yml +++ b/.drone.yml @@ -65,13 +65,13 @@ steps: settings: registry: registry.frontblock.me insecure: true - repo: registry.frontblock.me/vendor/pluginmanager + repo: registry.frontblock.me/vendor/dashboard tags: ${DRONE_BUILD_CREATED} - name: release container image: plugins/docker settings: - repo: frontblockme/pluginmanager + repo: frontblockme/dashboard tags: ${DRONE_TAG} username: frontblockme password: diff --git a/package-lock.json b/package-lock.json index f1f1d43..b86040d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3858,9 +3858,9 @@ } }, "frontblock-generic": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/frontblock-generic/-/frontblock-generic-0.12.0.tgz", - "integrity": "sha512-yVPnj5AMZb2Baxs2ta/BfPdbN6PbG8RoovBcIARPuE83aknDV61xTMo7TKwxQiJ06tnVR13Ot5UiyjNkfXHObA==", + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/frontblock-generic/-/frontblock-generic-0.15.0.tgz", + "integrity": "sha512-ec5ep0U45+y6e1FXMvxE1RvC78E7xRbUFTwY/9u9prxhQYNe79vu/E0vGCX/PLdbqAmkMfSbIOr1+zCHImoiQQ==", "requires": { "@types/node": "^12.7.1", "bsock": "^0.1.9", diff --git a/package.json b/package.json index b16360e..6b6202e 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "bsock": "^0.1.9", "easy-unzip": "^1.1.0", "express": "^4.16.4", - "frontblock-generic": "^0.12.0", + "frontblock-generic": "^0.15.0", "hdkey": "^1.1.1", "http": "0.0.0", "key-file-storage": "^2.2.4", diff --git a/src/backend/PluginManager/Plugin.ts b/src/backend/PluginManager/Plugin.ts index 4aaa61e..224d070 100644 --- a/src/backend/PluginManager/Plugin.ts +++ b/src/backend/PluginManager/Plugin.ts @@ -1,5 +1,5 @@ import { default as PluginManager } from "./PluginManager"; -import { Plugin } from "frontblock-generic/Plugin"; +import { Plugin, socketioRPC } from "frontblock-generic/Plugin"; import * as Logger from 'log4js'; Logger.configure({ @@ -24,7 +24,7 @@ export default class PluginManagerPlugin extends PluginManager implements Plugin this.loadedPlugins[this.name] = {backend: this, frontend: this.loadFrontend(this.name)} } - exportRPCs(): import("frontblock-generic/Plugin").socketioRPC[] { + exportRPCs(): socketioRPC[] { return [ { name: "getAvailablePluginNames", diff --git a/src/frontend/dashboard/package-lock.json b/src/frontend/dashboard/package-lock.json index c17b0b1..da96387 100644 --- a/src/frontend/dashboard/package-lock.json +++ b/src/frontend/dashboard/package-lock.json @@ -4294,9 +4294,9 @@ } }, "frontblock-generic": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/frontblock-generic/-/frontblock-generic-0.12.0.tgz", - "integrity": "sha512-yVPnj5AMZb2Baxs2ta/BfPdbN6PbG8RoovBcIARPuE83aknDV61xTMo7TKwxQiJ06tnVR13Ot5UiyjNkfXHObA==", + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/frontblock-generic/-/frontblock-generic-0.15.0.tgz", + "integrity": "sha512-ec5ep0U45+y6e1FXMvxE1RvC78E7xRbUFTwY/9u9prxhQYNe79vu/E0vGCX/PLdbqAmkMfSbIOr1+zCHImoiQQ==", "requires": { "@types/node": "^12.7.1", "bsock": "^0.1.9", diff --git a/src/frontend/dashboard/package.json b/src/frontend/dashboard/package.json index e2f26d2..7a529d9 100644 --- a/src/frontend/dashboard/package.json +++ b/src/frontend/dashboard/package.json @@ -23,7 +23,7 @@ "@clr/icons": "^2.1.1", "@clr/ui": "^2.1.1", "@webcomponents/custom-elements": "^1.0.0", - "frontblock-generic": "latest", + "frontblock-generic": "^0.15.0", "key-file-storage": "^2.2.4", "rxjs": "~6.5.2", "systemjs": "^0.21.3", diff --git a/src/frontend/dashboard/src/app/app-routing.module.ts b/src/frontend/dashboard/src/app/app-routing.module.ts index 1580cf6..1fd68e6 100644 --- a/src/frontend/dashboard/src/app/app-routing.module.ts +++ b/src/frontend/dashboard/src/app/app-routing.module.ts @@ -2,9 +2,13 @@ import { NgModule } from '@angular/core'; import { Routes, RouterModule, Route } from '@angular/router'; import { HomeComponent } from './home/home.component'; import { ErrorDisplayComponent } from './error-display/error-display.component'; +import { PluginmanagerDevComponent } from './pluginmanager-dev/pluginmanager-dev.component'; const routes: Routes = [{ + path: "dev/pluginmanager", + component: PluginmanagerDevComponent +},{ path: "", component: HomeComponent },{ diff --git a/src/frontend/dashboard/src/app/app.component.html b/src/frontend/dashboard/src/app/app.component.html index 64fcd4d..505b10f 100644 --- a/src/frontend/dashboard/src/app/app.component.html +++ b/src/frontend/dashboard/src/app/app.component.html @@ -1,10 +1,4 @@
diff --git a/src/frontend/dashboard/src/app/app.module.ts b/src/frontend/dashboard/src/app/app.module.ts index 0889cb3..73652f4 100644 --- a/src/frontend/dashboard/src/app/app.module.ts +++ b/src/frontend/dashboard/src/app/app.module.ts @@ -14,6 +14,8 @@ import { MainComponent } from './main/main.component'; import { DynamicLoaderComponent } from './dynamic-loader/dynamic-loader.component'; import { HomeComponent } from './home/home.component'; import { ErrorDisplayComponent } from './error-display/error-display.component'; +import { PluginmanagerDevComponent } from './pluginmanager-dev/pluginmanager-dev.component'; +import { HeaderBarComponent } from './header-bar/header-bar.component'; export function createCompiler(fn: CompilerFactory): Compiler { return fn.createCompiler(); @@ -28,7 +30,9 @@ const entryComps = [] MainComponent, DynamicLoaderComponent, HomeComponent, - ErrorDisplayComponent + ErrorDisplayComponent, + PluginmanagerDevComponent, + HeaderBarComponent ], imports: [ BrowserModule, diff --git a/src/frontend/dashboard/src/app/dynamic-loader/dynamic-loader.component.ts b/src/frontend/dashboard/src/app/dynamic-loader/dynamic-loader.component.ts index 4669dc1..613bc3e 100644 --- a/src/frontend/dashboard/src/app/dynamic-loader/dynamic-loader.component.ts +++ b/src/frontend/dashboard/src/app/dynamic-loader/dynamic-loader.component.ts @@ -33,7 +33,7 @@ import { AfterViewInit, Component, ViewContainerRef, ViewChild } from '@angular/ import { SidebarComponent } from '../sidebar/sidebar.component'; import { MainComponent } from '../main/main.component'; import { Router } from '@angular/router'; -import { FrontendPlugin } from "frontblock-generic/Plugin" +import { FrontendPlugin, SidebarEntries, SidebarEntry } from "frontblock-generic/Plugin" @Component({ @@ -67,15 +67,37 @@ export class DynamicLoaderComponent implements AfterViewInit { private async installWidget(pluginName:string){ const module: FrontendPlugin = await SystemJS.import("plugins/"+pluginName+".js"); const plugin = new module['PluginModule']() - const entry = plugin.getSidebarEntry() - entry.route = 'page/' + entry.route - this.sidebar.entries.unshift(entry) - + const entry:SidebarEntries | SidebarEntry = plugin.getSidebarEntry() const rc = this.router.config - rc.unshift({ - path: "page", - loadChildren: async () => module['PluginModule'] - }) + + switch (typeof (pluginmanager-dev works!
diff --git a/src/frontend/dashboard/src/app/pluginmanager-dev/pluginmanager-dev.component.scss b/src/frontend/dashboard/src/app/pluginmanager-dev/pluginmanager-dev.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/frontend/dashboard/src/app/pluginmanager-dev/pluginmanager-dev.component.spec.ts b/src/frontend/dashboard/src/app/pluginmanager-dev/pluginmanager-dev.component.spec.ts new file mode 100644 index 0000000..c8812b6 --- /dev/null +++ b/src/frontend/dashboard/src/app/pluginmanager-dev/pluginmanager-dev.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { PluginmanagerDevComponent } from './pluginmanager-dev.component'; + +describe('PluginmanagerDevComponent', () => { + let component: PluginmanagerDevComponent; + let fixture: ComponentFixture
+ Press this button to install all plugins.
+
+ Once the installation is done the page will refresh automatically
+