Merge pull request #3391 from BookStackApp/drawio_config_event

Made it possible to configure draw.io/diagrams.net integration
This commit is contained in:
Dan Brown 2022-04-24 13:58:59 +01:00 committed by GitHub
commit 0dfe5cb66b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 2 deletions

View File

@ -43,6 +43,8 @@ function drawReceive(event) {
drawEventSave(message); drawEventSave(message);
} else if (message.event === 'export') { } else if (message.event === 'export') {
drawEventExport(message); 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() { function drawEventClose() {
window.removeEventListener('message', drawReceive); window.removeEventListener('message', drawReceive);
if (iFrame) document.body.removeChild(iFrame); if (iFrame) document.body.removeChild(iFrame);

View File

@ -1,7 +1,7 @@
<div component="page-editor" class="page-editor flex-fill flex" <div component="page-editor" class="page-editor flex-fill flex"
option:page-editor:drafts-enabled="{{ $draftsEnabled ? 'true' : 'false' }}" option:page-editor:drafts-enabled="{{ $draftsEnabled ? 'true' : 'false' }}"
@if(config('services.drawio')) @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 @endif
@if($model->name === trans('entities.pages_initial_name')) @if($model->name === trans('entities.pages_initial_name'))
option:page-editor:has-default-title="true" option:page-editor:has-default-title="true"

View File

@ -71,7 +71,7 @@ class DrawioTest extends TestCase
$editor = $this->getEditor(); $editor = $this->getEditor();
$resp = $this->actingAs($editor)->get($page->getUrl('/edit')); $resp = $this->actingAs($editor)->get($page->getUrl('/edit'));
$resp->assertSee('drawio-url="https://embed.diagrams.net/?embed=1&amp;proto=json&amp;spin=1"', false); $resp->assertSee('drawio-url="https://embed.diagrams.net/?embed=1&amp;proto=json&amp;spin=1&amp;configure=1"', false);
config()->set('services.drawio', false); config()->set('services.drawio', false);
$resp = $this->actingAs($editor)->get($page->getUrl('/edit')); $resp = $this->actingAs($editor)->get($page->getUrl('/edit'));