diff --git a/src/integrations/Widget.ts b/src/integrations/Widget.ts
index e29da8c..c348834 100644
--- a/src/integrations/Widget.ts
+++ b/src/integrations/Widget.ts
@@ -5,6 +5,10 @@ export interface EtherpadWidgetOptions {
defaultUrl: string;
}
+export interface WhiteboardWidgetOptions {
+ defaultUrl: string;
+}
+
export interface JitsiWidgetOptions {
jitsiDomain: string;
scriptUrl: string;
diff --git a/web/app/admin/widgets/whiteboard/whiteboard.component.html b/web/app/admin/widgets/whiteboard/whiteboard.component.html
new file mode 100644
index 0000000..68fc80c
--- /dev/null
+++ b/web/app/admin/widgets/whiteboard/whiteboard.component.html
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
diff --git a/web/app/admin/widgets/whiteboard/whiteboard.component.scss b/web/app/admin/widgets/whiteboard/whiteboard.component.scss
new file mode 100644
index 0000000..e69de29
diff --git a/web/app/admin/widgets/whiteboard/whiteboard.component.ts b/web/app/admin/widgets/whiteboard/whiteboard.component.ts
new file mode 100644
index 0000000..6b9c01b
--- /dev/null
+++ b/web/app/admin/widgets/whiteboard/whiteboard.component.ts
@@ -0,0 +1,35 @@
+import { Component } from "@angular/core";
+import { FE_WhiteBoardWidget } from "../../../shared/models/integration";
+import { ToasterService } from "angular2-toaster";
+import { DialogRef, ModalComponent } from "ngx-modialog";
+import { WidgetConfigDialogContext } from "../widgets.component";
+import { AdminIntegrationsApiService } from "../../../shared/services/admin/admin-integrations-api.service";
+
+@Component({
+ templateUrl: "./whiteboard.component.html",
+ styleUrls: ["./whiteboard.component.scss", "../config-dialog.scss"],
+})
+export class AdminWidgetWhiteboardConfigComponent implements ModalComponent {
+
+ public isUpdating = false;
+ public widget: FE_WhiteBoardWidget;
+ private originalWidget: FE_WhiteBoardWidget;
+
+ constructor(public dialog: DialogRef, private adminIntegrationsApi: AdminIntegrationsApiService, private toaster: ToasterService) {
+ this.originalWidget = dialog.context.widget;
+ this.widget = JSON.parse(JSON.stringify(this.originalWidget));
+ }
+
+ public save() {
+ this.isUpdating = true;
+ this.adminIntegrationsApi.setIntegrationOptions(this.widget.category, this.widget.type, this.widget.options).then(() => {
+ this.originalWidget.options = this.widget.options;
+ this.toaster.pop("success", "Widget updated");
+ this.dialog.close();
+ }).catch(err => {
+ this.isUpdating = false;
+ console.error(err);
+ this.toaster.pop("error", "Error updating widget");
+ });
+ }
+}
diff --git a/web/app/admin/widgets/widgets.component.ts b/web/app/admin/widgets/widgets.component.ts
index 5debd8e..6aab37c 100644
--- a/web/app/admin/widgets/widgets.component.ts
+++ b/web/app/admin/widgets/widgets.component.ts
@@ -6,6 +6,7 @@ import { Modal, overlayConfigFactory } from "ngx-modialog";
import { BSModalContext } from "ngx-modialog/plugins/bootstrap";
import { AdminWidgetJitsiConfigComponent } from "./jitsi/jitsi.component";
import { AdminIntegrationsApiService } from "../../shared/services/admin/admin-integrations-api.service";
+import { AdminWidgetWhiteboardConfigComponent } from "./whiteboard/whiteboard.component";
export class WidgetConfigDialogContext extends BSModalContext {
public widget: FE_Widget;
@@ -50,6 +51,7 @@ export class AdminWidgetsComponent {
if (widget.type === "etherpad") component = AdminWidgetEtherpadConfigComponent;
if (widget.type === "jitsi") component = AdminWidgetJitsiConfigComponent;
+ if (widget.type === "whiteboard") component = AdminWidgetWhiteboardConfigComponent;
if (!component) {
console.error("No known dialog component for " + widget.type);
@@ -67,6 +69,6 @@ export class AdminWidgetsComponent {
public hasConfiguration(widget: FE_Widget) {
// Currently only Jitsi and Etherpad have additional configuration
- return widget.type === "jitsi" || widget.type === "etherpad";
+ return widget.type === "jitsi" || widget.type === "etherpad" || widget.type === "whiteboard";
}
}
diff --git a/web/app/app.module.ts b/web/app/app.module.ts
index 7263068..7eb6e69 100644
--- a/web/app/app.module.ts
+++ b/web/app/app.module.ts
@@ -119,6 +119,7 @@ import { AdminNewEditTermsComponent } from "./admin/terms/new-edit/new-edit.comp
import { AdminTermsNewEditPublishDialogComponent } from "./admin/terms/new-edit/publish/publish.component";
import { TermsWidgetWrapperComponent } from "./widget-wrappers/terms/terms.component";
import { WhiteboardWidgetComponent } from "./configs/widget/whiteboard/whiteboard.widget.component";
+import { AdminWidgetWhiteboardConfigComponent } from "./admin/widgets/whiteboard/whiteboard.component";
@NgModule({
imports: [
@@ -216,7 +217,8 @@ import { WhiteboardWidgetComponent } from "./configs/widget/whiteboard/whiteboar
AdminNewEditTermsComponent,
AdminTermsNewEditPublishDialogComponent,
TermsWidgetWrapperComponent,
- WhiteboardWidgetComponent
+ WhiteboardWidgetComponent,
+ AdminWidgetWhiteboardConfigComponent
// Vendor
],
@@ -273,6 +275,7 @@ import { WhiteboardWidgetComponent } from "./configs/widget/whiteboard/whiteboar
AdminSlackBridgeManageSelfhostedComponent,
AdminLogoutConfirmationDialogComponent,
AdminTermsNewEditPublishDialogComponent,
+ AdminWidgetWhiteboardConfigComponent
]
})
export class AppModule {