From 9704fb8165e17487eeeca42e9f85bca54dfee50a Mon Sep 17 00:00:00 2001 From: ansuz Date: Wed, 13 Apr 2022 13:58:12 +0530 Subject: [PATCH] nearly usable QR code tab in share menu --- www/common/common-interface.js | 2 +- www/common/inner/share.js | 34 ++++++++++++++++++++++++++++------ 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/www/common/common-interface.js b/www/common/common-interface.js index bc5979fb1..aa76c4ae6 100644 --- a/www/common/common-interface.js +++ b/www/common/common-interface.js @@ -1492,7 +1492,7 @@ define([ var cb = Util.once(Util.mkAsync(_cb || Util.noop)); require(['/lib/qrcode.min.js'], function () { var div = h('div'); - var code = new window.QRCode(div, data); + /*var code =*/ new window.QRCode(div, data); cb(void 0, div); }, function (err) { cb(err); diff --git a/www/common/inner/share.js b/www/common/inner/share.js index 048f09e37..cc25697b2 100644 --- a/www/common/inner/share.js +++ b/www/common/inner/share.js @@ -13,6 +13,7 @@ define([ '/bower_components/nthen/index.js', '/customize/pages.js', + '/bower_components/file-saver/FileSaver.min.js', '/lib/qrcode.min.js', ], function ($, ApiConfig, Util, Hash, UI, UIElements, Feedback, Modal, h, Clipboard, Messages, nThen, Pages) { @@ -490,25 +491,46 @@ define([ var getQRCode = function (link) { var div = h('div'); - var code = new window.QRCode(div, link); + /*var code =*/ new window.QRCode(div, link); return div; }; var getQRTab = function (Env, data, opts, _cb) { var qr = getQRCode(opts.getLinkValue()); - var link = h('div.cp-share-modal', [ + + var container = h('span#cp-qr-container', [ h('div#cp-qr-link-preview', qr), ]); + var link = h('div.cp-share-modal', [ + container, + ]); + + $(container).css({ + 'background-color': 'white', + display: 'inline-flex', + padding: '5px', + }); + var buttons = [ makeCancelButton(), + { + className: 'primary cp-bar', + name: Messages.share_bar, + onClick: function () { + UI.warn("OOPS: NOT IMPLEMENTED"); // XXX + return true; + }, + }, { className: 'primary cp-nobar', - name: Messages.download_dl, //'PEWPEW', //Messages // XXX + name: Messages.download_dl, iconClass: '.fa.fa-download', onClick: function () { - console.log("TODO SAVE IMAGE"); - UI.warn("NOT IMPLEMENTED"); + qr.querySelector('canvas').toBlob(blob => { + var name = Util.fixFileName((opts.title || 'document') + '-qr.png'); + window.saveAs(blob, name); + }); }, }, ]; @@ -700,7 +722,7 @@ define([ return $rights.parent().find('#cp-embed-link-preview'); }; var getQR = function () { - return $rights.parent().find('#cp-qr-link-preview'); + return $rights.parent().find('#cp-qr-container'); }; // update values for link and embed preview when radio btns change