From 501ec7783427e20c33cf38b73b8410f7424e5caf Mon Sep 17 00:00:00 2001
From: Yusei Tahara <yusei@nexedi.com>
Date: Thu, 26 Oct 2017 15:01:04 +0900
Subject: [PATCH] =?UTF-8?q?erp5=5Fdms:=20PDF=20reader=20is=20very=20slow?=
 =?UTF-8?q?=20to=20open=20a=20large=20base64=20encoded=20PDF=20embedded=20?=
 =?UTF-8?q?in=E2=80=A6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

… HTML or it fails to open such a large PDF. Thus, now PDF reader opens a PDF using URL. It is faster and stable.

/reviewed-on https://lab.nexedi.com/nexedi/erp5/merge_requests/468
---
 .../erp5_dms/PDF_viewPDFJSPreview/my_data.xml          |  6 +++++-
 .../portal_skins/erp5_dms/pdf_js/pdf.gadget.js.js      | 10 +---------
 2 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/PDF_viewPDFJSPreview/my_data.xml b/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/PDF_viewPDFJSPreview/my_data.xml
index 1e08504d81..f507c551e8 100644
--- a/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/PDF_viewPDFJSPreview/my_data.xml
+++ b/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/PDF_viewPDFJSPreview/my_data.xml
@@ -50,6 +50,10 @@
             <key> <string>tales</string> </key>
             <value>
               <dictionary>
+                <item>
+                    <key> <string>data_url</string> </key>
+                    <value> <string></string> </value>
+                </item>
                 <item>
                     <key> <string>default</string> </key>
                     <value>
@@ -111,7 +115,7 @@
       <dictionary>
         <item>
             <key> <string>_text</string> </key>
-            <value> <string>python: context.getData().encode("base64")</string> </value>
+            <value> <string>python: context.absolute_url()+\'/getData\'</string> </value>
         </item>
       </dictionary>
     </pickle>
diff --git a/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/pdf_js/pdf.gadget.js.js b/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/pdf_js/pdf.gadget.js.js
index ede8e19359..83d54980d0 100644
--- a/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/pdf_js/pdf.gadget.js.js
+++ b/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/pdf_js/pdf.gadget.js.js
@@ -21,15 +21,7 @@
         window.document.head.removeChild(el);
       });
       this.props.key = options.key;
-      var raw = window.atob(options.value);
-      var rawLength = raw.length;
-      var array = new Uint8Array(new ArrayBuffer(rawLength));
-
-      for (var i = 0; i < rawLength; i++) {
-        array[i] = raw.charCodeAt(i);
-      }
-
-      webViewerLoad(array);
+      webViewerLoad(options.value);
 
       // hide few buttons for now
       this.props.element.querySelector('#viewBookmark').hidden = true;
-- 
2.30.9