loleaflet/src/control/Control.AlertDialog.js |   13 -------------
 loleaflet/src/layer/tile/TileLayer.js        |    5 ++++-
 wsd/LOOLWSD.cpp                              |    6 +++++-
 3 files changed, 9 insertions(+), 15 deletions(-)

New commits:
commit 2e21cf5dcdf97d81223711ecae34022f5cabbbd5
Author: Pranav Kant <pran...@collabora.co.uk>
Date:   Mon May 28 16:33:04 2018 +0530

    loleaflet: Open pdf file in new tab instead of asking to download
    
    new parameter to download POST requests, ?attachment=0 to instruct wsd
    to not set the Content-Disposition header.
    
    Change-Id: Id7694d940e1b4d616263ad720d29f1474164eb68
    Reviewed-on: https://gerrit.libreoffice.org/54918
    Reviewed-by: Jan Holesovsky <ke...@collabora.com>
    Tested-by: Jan Holesovsky <ke...@collabora.com>

diff --git a/loleaflet/src/control/Control.AlertDialog.js 
b/loleaflet/src/control/Control.AlertDialog.js
index 1d9b9e48c..a87b494f3 100644
--- a/loleaflet/src/control/Control.AlertDialog.js
+++ b/loleaflet/src/control/Control.AlertDialog.js
@@ -8,7 +8,6 @@ L.Control.AlertDialog = L.Control.extend({
                // TODO: Better distinction between warnings and errors
                map.on('error', this._onError, this);
                map.on('warn', this._onError, this);
-               map.on('print', this._onPrint, this);
        },
 
        _onError: function(e) {
@@ -33,18 +32,6 @@ L.Control.AlertDialog = L.Control.extend({
 
                // Remember the current dialog ID to close it later.
                vex.dialogID = vex.globalID - 1;
-       },
-
-       _onPrint: function (e) {
-               var url = e.url;
-               vex.dialog.confirm({
-                       message: _('Download PDF export?'),
-                       callback: L.bind(function (value) {
-                               if (value) {
-                                       this._map._fileDownloader.src = url;
-                               }
-                       }, this)
-               });
        }
 });
 
diff --git a/loleaflet/src/layer/tile/TileLayer.js 
b/loleaflet/src/layer/tile/TileLayer.js
index 4b04d1ebf..39586c155 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -572,7 +572,10 @@ L.TileLayer = L.GridLayer.extend({
                if (command.id === 'print') {
                        if (L.Browser.gecko || L.Browser.edge || 
this._map.options.print === false) {
                                // the print dialog doesn't work well on firefox
-                               this._map.fire('print', {url: url});
+                               // due to a pdf.js issue - 
https://github.com/mozilla/pdf.js/issues/5397
+                               // open the pdf file in a new tab so that that 
user can print it directly in the browser's
+                               // pdf viewer
+                               window.open(url + '?attachment=0', '_blank');
                        }
                        else {
                                this._map.fire('filedownloadready', {url: url});
diff --git a/wsd/LOOLWSD.cpp b/wsd/LOOLWSD.cpp
index d7cb6a473..3bc6d73e6 100644
--- a/wsd/LOOLWSD.cpp
+++ b/wsd/LOOLWSD.cpp
@@ -2215,11 +2215,15 @@ private:
             LOG_INF("HTTP request for: " << filePath.toString());
             if (filePath.isAbsolute() && File(filePath).exists())
             {
+                int serveAsAttachment = 1;
+                if (tokens.count() >= 7)
+                    getTokenInteger(tokens[6], "attachment", 
serveAsAttachment);
+
                 // Instruct browsers to download the file, not display it
                 // with the exception of SVG where we need the browser to
                 // actually show it.
                 std::string contentType = getContentType(fileName);
-                if (contentType != "image/svg+xml")
+                if (serveAsAttachment != 0 && contentType != "image/svg+xml")
                     response.set("Content-Disposition", "attachment; 
filename=\"" + fileName + "\"");
 
                 try
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to