]> BookStack Code Mirror - bookstack/commitdiff
Drawio: Tweaked fail backup handling during testing
authorDan Brown <redacted>
Wed, 23 Aug 2023 17:50:37 +0000 (18:50 +0100)
committerDan Brown <redacted>
Wed, 23 Aug 2023 17:50:37 +0000 (18:50 +0100)
- Tweaked wording of popup title.
- Updated WYSIWYG create handling to properly remove drawing container
  on failure.

Tested across FF and chrome, in both editors for create & editing.

lang/en/entities.php
resources/js/wysiwyg/plugin-drawio.js

index 453d45d56ec1c10a986703a668177ad762742097..4468cd68f9017c3a56224a74462b926b8bc3d4c7 100644 (file)
@@ -239,7 +239,7 @@ return [
     'pages_md_insert_drawing' => 'Insert Drawing',
     'pages_md_show_preview' => 'Show preview',
     'pages_md_sync_scroll' => 'Sync preview scroll',
-    'pages_drawing_unsaved' => 'Unsaved Drawing',
+    'pages_drawing_unsaved' => 'Unsaved Drawing Found',
     'pages_drawing_unsaved_confirm' => 'Unsaved drawing data was found from a previous failed drawing save attempt. Would you like to restore and continue editing this unsaved drawing?',
     'pages_not_in_chapter' => 'Page is not in a chapter',
     'pages_move' => 'Move Page',
index c98b1aa10c51fc697e55ca2dedfd2d7131065a31..3b343a9586b1db0640d722c5cfbef373bff332bc 100644 (file)
@@ -34,7 +34,6 @@ function showDrawingManager(mceEditor, selectedNode = null) {
 }
 
 async function updateContent(pngData) {
-    const id = `image-${Math.random().toString(16).slice(2)}`;
     const loadingImage = window.baseUrl('/loading.gif');
 
     const handleUploadError = error => {
@@ -65,17 +64,19 @@ async function updateContent(pngData) {
 
     await wait(5);
 
-    pageEditor.insertContent(`<div drawio-diagram contenteditable="false"><img src="${loadingImage}" id="${id}"></div>`);
+    const id = `drawing-${Math.random().toString(16).slice(2)}`;
+    const wrapId = `drawing-wrap-${Math.random().toString(16).slice(2)}`;
+    pageEditor.insertContent(`<div drawio-diagram contenteditable="false" id="${wrapId}"><img src="${loadingImage}" id="${id}"></div>`);
     DrawIO.close();
 
     try {
         const img = await DrawIO.upload(pngData, options.pageId);
         pageEditor.undoManager.transact(() => {
             pageEditor.dom.setAttrib(id, 'src', img.url);
-            pageEditor.dom.get(id).parentNode.setAttribute('drawio-diagram', img.id);
+            pageEditor.dom.setAttrib(wrapId, 'drawio-diagram', img.id);
         });
     } catch (err) {
-        pageEditor.dom.remove(id);
+        pageEditor.dom.remove(wrapId);
         handleUploadError(err);
         throw new Error(`Failed to save image with error: ${err}`);
     }