From 38955754f37957029f070e9fff86a64c5f7cbfd8 Mon Sep 17 00:00:00 2001 From: Ribas160 Date: Fri, 4 Jul 2025 18:18:00 +0300 Subject: [PATCH] Fixed hightlight file upload on bootstrap5 template --- js/privatebin.js | 17 ++++++++++++++++- js/test/Helper.js | 13 +++++++++++++ lib/Configuration.php | 2 +- 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/js/privatebin.js b/js/privatebin.js index d97745bf..c6d2c772 100644 --- a/js/privatebin.js +++ b/js/privatebin.js @@ -628,6 +628,17 @@ jQuery.PrivateBin = (function($, RawDeflate) { baseUri = null; }; + /** + * check if bootstrap5 object detected + * + * @name Helper.isBootstrap5 + * @returns {Boolean} + */ + me.isBootstrap5 = function () + { + return typeof bootstrap !== 'undefined'; + }; + return me; })(); @@ -4632,7 +4643,11 @@ jQuery.PrivateBin = (function($, RawDeflate) { // visually indicate file uploaded const $attachDropdownToggle = $attach.children('.dropdown-toggle'); if ($attachDropdownToggle.attr('aria-expanded') === 'false') { - $attachDropdownToggle.click(); + if (Helper.isBootstrap5()) { + new bootstrap.Dropdown($attachDropdownToggle).toggle(); + } else { + $attachDropdownToggle.click(); + } } $fileWrap.addClass('highlight'); setTimeout(function () { diff --git a/js/test/Helper.js b/js/test/Helper.js index 6308fdc0..a9ae41ab 100644 --- a/js/test/Helper.js +++ b/js/test/Helper.js @@ -316,5 +316,18 @@ describe('Helper', function () { return $.PrivateBin.Helper.formatBytes(1234567) === '1.18 MiB'; }); }); + + + describe('isBootstrap5', function () { + jsc.property('Bootstrap 5 has been detected', function () { + global.bootstrap = {}; + return $.PrivateBin.Helper.isBootstrap5() === true; + }); + + jsc.property('Bootstrap 5 has not been detected', function () { + delete global.bootstrap; + return $.PrivateBin.Helper.isBootstrap5() === false; + }); + }); }); diff --git a/lib/Configuration.php b/lib/Configuration.php index 828eb813..db171b01 100644 --- a/lib/Configuration.php +++ b/lib/Configuration.php @@ -118,7 +118,7 @@ class Configuration 'js/kjua-0.9.0.js' => 'sha512-CVn7af+vTMBd9RjoS4QM5fpLFEOtBCoB0zPtaqIDC7sF4F8qgUSRFQQpIyEDGsr6yrjbuOLzdf20tkHHmpaqwQ==', 'js/legacy.js' => 'sha512-UxW/TOZKon83n6dk/09GsYKIyeO5LeBHokxyIq+r7KFS5KMBeIB/EM7NrkVYIezwZBaovnyNtY2d9tKFicRlXg==', 'js/prettify.js' => 'sha512-puO0Ogy++IoA2Pb9IjSxV1n4+kQkKXYAEUtVzfZpQepyDPyXk8hokiYDS7ybMogYlyyEIwMLpZqVhCkARQWLMg==', - 'js/privatebin.js' => 'sha512-ET6BA8TNB62Rm2aM6EKp8nEGsU8+fggmaZ3aWddwEP1SaThWisIOZFKMcaLs7ztcH8Ye89H6+bzJ+/Uy8hkCMQ==', + 'js/privatebin.js' => 'sha512-9X1Ns+w/WPlWde118Mbl1UFDPsFmBcXK2zr6ny7oDOuZMVP1hFCPzXjKbC+59xDQW0Q+NmyT4NC6/5B6UzkkDw==', 'js/purify-3.2.6.js' => 'sha512-zqwL4OoBLFx89QPewkz4Lz5CSA2ktU+f31fuECkF0iK3Id5qd3Zpq5dMby8KwHjIEpsUgOqwF58cnmcaNem0EA==', 'js/rawinflate-0.3.js' => 'sha512-g8uelGgJW9A/Z1tB6Izxab++oj5kdD7B4qC7DHwZkB6DGMXKyzx7v5mvap2HXueI2IIn08YlRYM56jwWdm2ucQ==', 'js/showdown-2.1.0.js' => 'sha512-WYXZgkTR0u/Y9SVIA4nTTOih0kXMEd8RRV6MLFdL6YU8ymhR528NLlYQt1nlJQbYz4EW+ZsS0fx1awhiQJme1Q==',