From 838ca3d38e53b8f1320736ab01dc4bddfc04e4e4 Mon Sep 17 00:00:00 2001 From: thororm Date: Sat, 13 May 2017 21:27:41 +0200 Subject: [PATCH] Call removeAttachment on a new paste Improved disabled attachments handling --- js/privatebin.js | 37 ++++++++++++++++++++++++++----------- tpl/bootstrap.php | 2 +- tpl/page.php | 2 +- 3 files changed, 28 insertions(+), 13 deletions(-) diff --git a/js/privatebin.js b/js/privatebin.js index dc68dbce..2d7badd8 100644 --- a/js/privatebin.js +++ b/js/privatebin.js @@ -1594,8 +1594,10 @@ jQuery.PrivateBin = function($, sjcl, Base64, RawDeflate) { // show preview PasteViewer.setText($message.val()); - var attachmentData = AttachmentViewer.attachmentData || AttachmentViewer.$attachmentLink.attr('href'); - AttachmentViewer.handleAttachmentPreview(AttachmentViewer.$attachmentPreview, attachmentData); + if (AttachmentViewer.$attachment.length) { + var attachmentData = AttachmentViewer.attachmentData || AttachmentViewer.$attachmentLink.attr('href'); + AttachmentViewer.handleAttachmentPreview(AttachmentViewer.$attachmentPreview, attachmentData); + } PasteViewer.run(); // finish @@ -2037,6 +2039,9 @@ jQuery.PrivateBin = function($, sjcl, Base64, RawDeflate) { */ me.removeAttachment = function() { + if (!me.$attachment.length) { + return; + } me.hideAttachment(); me.hideAttachmentPreview(); me.$attachmentLink.prop('href', ''); @@ -2070,7 +2075,9 @@ jQuery.PrivateBin = function($, sjcl, Base64, RawDeflate) { */ me.hideAttachmentPreview = function() { - me.$attachmentPreview.addClass('hidden'); + if(me.$attachmentPreview){ + me.$attachmentPreview.addClass('hidden'); + } } /** @@ -2081,6 +2088,9 @@ jQuery.PrivateBin = function($, sjcl, Base64, RawDeflate) { */ me.hasAttachment = function() { + if (!AttachmentViewer.$attachment.length) { + return false; + } var link = me.$attachmentLink.prop('href'); return (typeof link !== 'undefined' && link !== '') } @@ -2299,11 +2309,13 @@ jQuery.PrivateBin = function($, sjcl, Base64, RawDeflate) { me.init = function() { me.$attachment = $('#attachment'); - me.$attachmentLink = $('#attachment a'); - me.$attachmentPreview = $('#attachmentPreview'); + if(me.$attachment.length){ + me.$attachmentLink = $('#attachment a'); + me.$attachmentPreview = $('#attachmentPreview'); - me.$fileInput = $('#file'); - me.addDragDropHandler(); + me.$fileInput = $('#file'); + me.addDragDropHandler(); + } } return me; @@ -3913,10 +3925,12 @@ jQuery.PrivateBin = function($, sjcl, Base64, RawDeflate) { try { // decrypt attachments if (paste.attachment) { - // try to decrypt paste and if it fails (because the password is - // missing) return to let JS continue and wait for user - if (!decryptAttachment(paste, key, password)) { - return; + if (AttachmentViewer.$attachment.length) { + // try to decrypt paste and if it fails (because the password is + // missing) return to let JS continue and wait for user + if (!decryptAttachment(paste, key, password)) { + return; + } } // ignore empty paste, as this is allowed when pasting attachments decryptPaste(paste, key, password, true); @@ -3999,6 +4013,7 @@ jQuery.PrivateBin = function($, sjcl, Base64, RawDeflate) { Editor.resetInput(); Editor.show(); Editor.focusInput(); + AttachmentViewer.removeAttachment(); TopNav.showCreateButtons(); Alert.hideLoading(); diff --git a/tpl/bootstrap.php b/tpl/bootstrap.php index 3e1fd780..0c5f6197 100644 --- a/tpl/bootstrap.php +++ b/tpl/bootstrap.php @@ -69,7 +69,7 @@ if ($MARKDOWN): - + diff --git a/tpl/page.php b/tpl/page.php index 447f0ba4..b6fb26a4 100644 --- a/tpl/page.php +++ b/tpl/page.php @@ -47,7 +47,7 @@ if ($MARKDOWN): - +