]> BookStack Code Mirror - bookstack/commitdiff
Made it possible to configure draw.io/diagrams.net integration
authorDan Brown <redacted>
Wed, 20 Apr 2022 22:32:02 +0000 (23:32 +0100)
committerDan Brown <redacted>
Wed, 20 Apr 2022 22:32:02 +0000 (23:32 +0100)
Added new editor public event to hook into draw.io configuration step.
Required change of embed url to trigger the configure step.

resources/js/services/drawio.js
resources/views/pages/parts/form.blade.php

index 6e22919fb4d230556d99b6ce6a4382f077866af4..dfca832117f28b8c5ac12014a729bc0fc0610483 100644 (file)
@@ -43,6 +43,8 @@ function drawReceive(event) {
         drawEventSave(message);
     } else if (message.event === 'export') {
         drawEventExport(message);
+    } else if (message.event === 'configure') {
+        drawEventConfigure();
     }
 }
 
@@ -63,6 +65,12 @@ function drawEventInit() {
     });
 }
 
+function drawEventConfigure() {
+    const config = {};
+    window.$events.emitPublic(iFrame, 'editor-drawio::configure', {config});
+    drawPostMessage({action: 'configure', config});
+}
+
 function drawEventClose() {
     window.removeEventListener('message', drawReceive);
     if (iFrame) document.body.removeChild(iFrame);
index 01f68a6c5cf0dfa5ab18e9c6fbbc0c4c5451e3a1..f199b86241ab00d3018c3c50739d2771b186c8fa 100644 (file)
@@ -1,7 +1,7 @@
 <div component="page-editor" class="page-editor flex-fill flex"
      option:page-editor:drafts-enabled="{{ $draftsEnabled ? 'true' : 'false' }}"
      @if(config('services.drawio'))
-        drawio-url="{{ is_string(config('services.drawio')) ? config('services.drawio') : 'https://embed.diagrams.net/?embed=1&proto=json&spin=1' }}"
+        drawio-url="{{ is_string(config('services.drawio')) ? config('services.drawio') : 'https://embed.diagrams.net/?embed=1&proto=json&spin=1&configure=1' }}"
      @endif
      @if($model->name === trans('entities.pages_initial_name'))
         option:page-editor:has-default-title="true"