Просмотр исходного кода

fix: Attachment disappears after a "paste" in the message area

Ribas160 7 месяцев назад
Родитель
Сommit
54d002d26f
3 измененных файлов с 7 добавлено и 4 удалено
  1. 1 0
      CHANGELOG.md
  2. 5 3
      js/privatebin.js
  3. 1 1
      lib/Configuration.php

+ 1 - 0
CHANGELOG.md

@@ -5,6 +5,7 @@
 * CHANGED: Deduplicate JSON error message translations
 * CHANGED: Deduplicate JSON error message translations
 * CHANGED: Refactored translation of exception messages
 * CHANGED: Refactored translation of exception messages
 * FIXED: Some exceptions not getting translated
 * FIXED: Some exceptions not getting translated
+* FIXED: Attachment disappears after a "paste" in the message area (#1731)
 
 
 ## 1.7.9 (2025-11-13)
 ## 1.7.9 (2025-11-13)
 * CHANGED: Upgrading libraries to: base-x 5.0.1, bootstrap 5.3.8, DOMpurify 3.2.7, ip-lib 1.21.0 & kjua 0.10.0
 * CHANGED: Upgrading libraries to: base-x 5.0.1, bootstrap 5.3.8, DOMpurify 3.2.7, ip-lib 1.21.0 & kjua 0.10.0

+ 5 - 3
js/privatebin.js

@@ -3399,19 +3399,21 @@ jQuery.PrivateBin = (function($) {
          * @function
          * @function
          */
          */
         function addClipboardEventHandler() {
         function addClipboardEventHandler() {
-            $('#message').on('paste', function (event) {
+            document.addEventListener('paste', (event) => {
                 const items = (event.clipboardData || event.originalEvent.clipboardData).items;
                 const items = (event.clipboardData || event.originalEvent.clipboardData).items;
                 const files = [...items]
                 const files = [...items]
                                     .filter(item => item.kind === 'file')
                                     .filter(item => item.kind === 'file')
                                     .map(item => item.getAsFile());
                                     .map(item => item.getAsFile());
 
 
-                if (TopNav.isAttachmentReadonly()) {
+                if (TopNav.isAttachmentReadonly() && files.length) {
                     event.stopPropagation();
                     event.stopPropagation();
                     event.preventDefault();
                     event.preventDefault();
                     return false;
                     return false;
                 }
                 }
 
 
-                readFileData(files);
+                if (files.length) {
+                    readFileData(files);
+                }
             });
             });
         }
         }
 
 

+ 1 - 1
lib/Configuration.php

@@ -122,7 +122,7 @@ class Configuration
             'js/kjua-0.10.0.js'      => 'sha512-BYj4xggowR7QD150VLSTRlzH62YPfhpIM+b/1EUEr7RQpdWAGKulxWnOvjFx1FUlba4m6ihpNYuQab51H6XlYg==',
             'js/kjua-0.10.0.js'      => 'sha512-BYj4xggowR7QD150VLSTRlzH62YPfhpIM+b/1EUEr7RQpdWAGKulxWnOvjFx1FUlba4m6ihpNYuQab51H6XlYg==',
             'js/legacy.js'           => 'sha512-rGXYUpIqbFoHAgBXZ0UlJBdNAIMOC9EQ67MG0X46D5uRB8LvwzgKirbSQRGdYfk8I2jsUcm+tvHXYboUnC6DUg==',
             'js/legacy.js'           => 'sha512-rGXYUpIqbFoHAgBXZ0UlJBdNAIMOC9EQ67MG0X46D5uRB8LvwzgKirbSQRGdYfk8I2jsUcm+tvHXYboUnC6DUg==',
             'js/prettify.js'         => 'sha512-puO0Ogy++IoA2Pb9IjSxV1n4+kQkKXYAEUtVzfZpQepyDPyXk8hokiYDS7ybMogYlyyEIwMLpZqVhCkARQWLMg==',
             'js/prettify.js'         => 'sha512-puO0Ogy++IoA2Pb9IjSxV1n4+kQkKXYAEUtVzfZpQepyDPyXk8hokiYDS7ybMogYlyyEIwMLpZqVhCkARQWLMg==',
-            'js/privatebin.js'       => 'sha512-v2ROwoYhqiYYi2ayUTOOtsU4KVf4oy947SmZ5zJr5H0fGLmu7bXbo7TAzxnpgJ7B2cxq/yWQtk5tXb/VFmtyfA==',
+            'js/privatebin.js'       => 'sha512-WyXqnKduXRN1dClbnznN/GoOAhjpEzmtc4d3xrgoaMlFR/7YtfJtMvGIoLbX8S2Bx5GMhvbGOocRa28INaewcQ==',
             'js/purify-3.3.0.js'     => 'sha512-lsHD5zxs4lu/NDzaaibe27Vd2t7Cy9JQ3qDHUvDfb4oZvKoWDNEhwUY+4bT3R68cGgpgCYp8U1x2ifeVxqurdQ==',
             'js/purify-3.3.0.js'     => 'sha512-lsHD5zxs4lu/NDzaaibe27Vd2t7Cy9JQ3qDHUvDfb4oZvKoWDNEhwUY+4bT3R68cGgpgCYp8U1x2ifeVxqurdQ==',
             'js/showdown-2.1.0.js'   => 'sha512-WYXZgkTR0u/Y9SVIA4nTTOih0kXMEd8RRV6MLFdL6YU8ymhR528NLlYQt1nlJQbYz4EW+ZsS0fx1awhiQJme1Q==',
             'js/showdown-2.1.0.js'   => 'sha512-WYXZgkTR0u/Y9SVIA4nTTOih0kXMEd8RRV6MLFdL6YU8ymhR528NLlYQt1nlJQbYz4EW+ZsS0fx1awhiQJme1Q==',
             'js/zlib-1.3.1-1.js'     => 'sha512-5bU9IIP4PgBrOKLZvGWJD4kgfQrkTz8Z3Iqeu058mbQzW3mCumOU6M3UVbVZU9rrVoVwaW4cZK8U8h5xjF88eQ==',
             'js/zlib-1.3.1-1.js'     => 'sha512-5bU9IIP4PgBrOKLZvGWJD4kgfQrkTz8Z3Iqeu058mbQzW3mCumOU6M3UVbVZU9rrVoVwaW4cZK8U8h5xjF88eQ==',