.
+ const elementNodeType = 1;
+
+ const div = document.createElement('div');
+ div.innerHTML = messageId;
+
+ return Array.from(div.childNodes).some(node => node.nodeType === elementNodeType);
+ }
+
return me;
})();
@@ -3768,7 +3787,7 @@ jQuery.PrivateBin = (function($, RawDeflate) {
/**
* Clear the password input in the top navigation
- *
+ *
* @name TopNav.clearPasswordInput
* @function
*/
@@ -5371,21 +5390,21 @@ jQuery.PrivateBin = (function($, RawDeflate) {
})();
/**
- *
+ *
* @name CopyToClipboard
* @class
*/
const CopyToClipboard = (function () {
const me = {};
- let copyButton = $("#prettymessageCopyBtn"),
- copyIcon = $("#copyIcon"),
- successIcon = $("#copySuccessIcon"),
- shortcutHint = $("#copyShortcutHintText");
+ let copyButton = $('#prettyMessageCopyBtn'),
+ copyIcon = $('#copyIcon'),
+ successIcon = $('#copySuccessIcon'),
+ shortcutHint = $('#copyShortcutHintText');
/**
* Handle copy to clipboard button click
- *
+ *
* @name CopyToClipboard.handleCopyButtonClick
* @private
* @function
@@ -5399,7 +5418,7 @@ jQuery.PrivateBin = (function($, RawDeflate) {
/**
* Handle CTRL+C/CMD+C keyboard shortcut
- *
+ *
* @name CopyToClipboard.handleKeyboardShortcut
* @private
* @function
@@ -5411,31 +5430,31 @@ jQuery.PrivateBin = (function($, RawDeflate) {
saveToClipboard(text);
}
});
- }
+ };
/**
* Check if user selected some text on the page to copy it
- *
+ *
* @name CopyToClipboard.isUserSelectedTextToCopy
* @private
* @function
* @returns {boolean}
*/
function isUserSelectedTextToCopy() {
- let text = "";
-
+ let text = '';
+
if (window.getSelection) {
text = window.getSelection().toString();
- } else if (document.selection && document.selection.type != "Control") {
+ } else if (document.selection && document.selection.type != 'Control') {
text = document.selection.createRange().text;
}
-
+
return text.length > 0;
- }
+ };
/**
* Save text to the clipboard
- *
+ *
* @name CopyToClipboard.saveToClipboard
* @private
* @param {string} text
@@ -5449,55 +5468,65 @@ jQuery.PrivateBin = (function($, RawDeflate) {
/**
* Show alert message after text copy
- *
+ *
* @name CopyToClipboard.showAlertMessage
* @private
* @function
*/
function showAlertMessage() {
- Alert.showStatus("Paste copied to clipboard");
- }
+ Alert.showStatus(I18n._('Paste copied to clipboard'));
+ };
/**
* Toogle success icon after copy
- *
+ *
* @name CopyToClipboard.toggleSuccessIcon
* @private
* @function
*/
function toggleSuccessIcon() {
- $(copyIcon).css("display", "none");
- $(successIcon).css("display", "block");
+ $(copyIcon).css('display', 'none');
+ $(successIcon).css('display', 'block');
setTimeout(function() {
- $(copyIcon).css("display", "block");
- $(successIcon).css("display", "none");
+ $(copyIcon).css('display', 'block');
+ $(successIcon).css('display', 'none');
}, 1000);
};
/**
* Show keyboard shortcut hint
- *
+ *
* @name CopyToClipboard.showKeyboardShortcutHint
* @function
*/
me.showKeyboardShortcutHint = function () {
I18n._(
shortcutHint,
- 'To copy paste press on the copy button or use the clipboard shortcut Ctrl+c/Cmd+c'
+ 'To copy paste press on the copy button or use the clipboard shortcut
Ctrl+
c/
Cmd+
c'
);
- }
+ };
+
+ /**
+ * Hide keyboard shortcut hint
+ *
+ * @name CopyToClipboard.showKeyboardShortcutHint
+ * @function
+ */
+ me.hideKeyboardShortcutHint = function () {
+ $(shortcutHint).html('');
+ };
/**
* Initialize
- *
+ *
* @name CopyToClipboard.init
* @function
*/
me.init = function() {
handleCopyButtonClick();
handleKeyboardShortcut();
- }
+ };
return me;
})();
@@ -5523,6 +5552,7 @@ jQuery.PrivateBin = (function($, RawDeflate) {
{
PasteStatus.hideMessages();
Alert.hideMessages();
+ CopyToClipboard.hideKeyboardShortcutHint();
};
/**
diff --git a/lib/Configuration.php b/lib/Configuration.php
index ec753793..a262e8fe 100644
--- a/lib/Configuration.php
+++ b/lib/Configuration.php
@@ -108,7 +108,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-l9FxMcY99yenozSdmWgraPIfGd0TMdAMs3TBRZCKHrBECJqiYS385wfLdN8D3ffpa0HZHvgjRyk2Txs0r+v6FQ==',
+ 'js/privatebin.js' => 'sha512-4ZwwNQ6GWRx90JqxNJ5SI7qN9A75r1f5vWUd3+GUXEkXvNmygjDGR/unOvKRgGZxXYhW5N42ytNx7CXes0MX/Q==',
'js/purify-3.1.7.js' => 'sha512-LegvqULiMtOfboJZw9MpETN/b+xnLRXZI90gG7oIFHW+yAeHmKvRtEUbiMFx2WvUqQoL9XB3gwU+hWXUT0X+8A==',
'js/rawinflate-0.3.js' => 'sha512-g8uelGgJW9A/Z1tB6Izxab++oj5kdD7B4qC7DHwZkB6DGMXKyzx7v5mvap2HXueI2IIn08YlRYM56jwWdm2ucQ==',
'js/showdown-2.1.0.js' => 'sha512-WYXZgkTR0u/Y9SVIA4nTTOih0kXMEd8RRV6MLFdL6YU8ymhR528NLlYQt1nlJQbYz4EW+ZsS0fx1awhiQJme1Q==',
diff --git a/tpl/bootstrap.php b/tpl/bootstrap.php
index e9777a0a..d0a4aa45 100644
--- a/tpl/bootstrap.php
+++ b/tpl/bootstrap.php
@@ -581,13 +581,9 @@ endif;
diff --git a/tpl/bootstrap5.php b/tpl/bootstrap5.php
index ddd9d6ce..fb45ffd7 100644
--- a/tpl/bootstrap5.php
+++ b/tpl/bootstrap5.php
@@ -437,9 +437,9 @@ endif;