فهرست منبع

Call removeAttachment on a new paste
Improved disabled attachments handling

thororm 9 سال پیش
والد
کامیت
838ca3d38e
3فایلهای تغییر یافته به همراه28 افزوده شده و 13 حذف شده
  1. 26 11
      js/privatebin.js
  2. 1 1
      tpl/bootstrap.php
  3. 1 1
      tpl/page.php

+ 26 - 11
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();

+ 1 - 1
tpl/bootstrap.php

@@ -69,7 +69,7 @@ if ($MARKDOWN):
 <?php
 endif;
 ?>
-		<script type="text/javascript" src="js/privatebin.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-ofGEJHbk5slAxfzMIcULyZI7a4XcqdyTnATIZPbYv+Ngr+EEt7GZ2QXE8bjt1/Q9EuwQrjsMhiPeGlbaAGqFgA==" crossorigin="anonymous"></script>
+		<script type="text/javascript" src="js/privatebin.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-pOe2H/Z6no88ilmHnSzSPrN5jYaj4B0VrxeVKHZ728CwUxNKwI8xIAUH+B/UPnKXgT33IV2EHbBIXYJERQxinA==" crossorigin="anonymous"></script>
 		<!--[if lt IE 10]>
 		<style type="text/css">body {padding-left:60px;padding-right:60px;} #ienotice {display:block;} #oldienotice {display:block;}</style>
 		<![endif]-->

+ 1 - 1
tpl/page.php

@@ -47,7 +47,7 @@ if ($MARKDOWN):
 <?php
 endif;
 ?>
-		<script type="text/javascript" src="js/privatebin.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-ofGEJHbk5slAxfzMIcULyZI7a4XcqdyTnATIZPbYv+Ngr+EEt7GZ2QXE8bjt1/Q9EuwQrjsMhiPeGlbaAGqFgA==" crossorigin="anonymous"></script>
+		<script type="text/javascript" src="js/privatebin.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-pOe2H/Z6no88ilmHnSzSPrN5jYaj4B0VrxeVKHZ728CwUxNKwI8xIAUH+B/UPnKXgT33IV2EHbBIXYJERQxinA==" crossorigin="anonymous"></script>
 		<!--[if lt IE 10]>
 		<style type="text/css">body {padding-left:60px;padding-right:60px;} #ienotice {display:block;} #oldienotice {display:block;}</style>
 		<![endif]-->