diff --git a/css/privatebin.css b/css/privatebin.css
index 8b4e6a0a..f852d396 100644
--- a/css/privatebin.css
+++ b/css/privatebin.css
@@ -249,6 +249,10 @@ button img {
padding: 1px 0 1px 0;
}
+#downloadtextbutton img {
+ padding: 1px 0 1px 0;
+}
+
#remainingtime, #password {
color: #94a3b4;
display: inline;
diff --git a/js/privatebin.js b/js/privatebin.js
index e549dd61..50908856 100644
--- a/js/privatebin.js
+++ b/js/privatebin.js
@@ -3525,6 +3525,7 @@ jQuery.PrivateBin = (function($, RawDeflate) {
$password,
$passwordInput,
$rawTextButton,
+ $downloadTextButton,
$qrCodeLink,
$emailLink,
$sendButton,
@@ -3666,6 +3667,30 @@ jQuery.PrivateBin = (function($, RawDeflate) {
newDoc.close();
}
+ /**
+ * download text
+ *
+ * @name TopNav.downloadText
+ * @private
+ * @function
+ */
+ function downloadText()
+ {
+ var filename='paste.txt';
+ var text = PasteViewer.getText();
+
+ var element = document.createElement('a');
+ element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
+ element.setAttribute('download', filename);
+
+ element.style.display = 'none';
+ document.body.appendChild(element);
+
+ element.click();
+
+ document.body.removeChild(element);
+ }
+
/**
* saves the language in a cookie and reloads the page
*
@@ -3892,6 +3917,7 @@ jQuery.PrivateBin = (function($, RawDeflate) {
$newButton.removeClass('hidden');
$cloneButton.removeClass('hidden');
$rawTextButton.removeClass('hidden');
+ $downloadTextButton.removeClass('hidden');
$qrCodeLink.removeClass('hidden');
viewButtonsDisplayed = true;
@@ -3912,6 +3938,7 @@ jQuery.PrivateBin = (function($, RawDeflate) {
$cloneButton.addClass('hidden');
$newButton.addClass('hidden');
$rawTextButton.addClass('hidden');
+ $downloadTextButton.addClass('hidden');
$qrCodeLink.addClass('hidden');
me.hideEmailButton();
@@ -4073,6 +4100,17 @@ jQuery.PrivateBin = (function($, RawDeflate) {
$rawTextButton.addClass('hidden');
};
+ /**
+ * only hides the download text button
+ *
+ * @name TopNav.hideRawButton
+ * @function
+ */
+ me.hideDownloadButton = function()
+ {
+ $downloadTextButton.addClass('hidden');
+ };
+
/**
* only hides the qr code button
*
@@ -4334,6 +4372,7 @@ jQuery.PrivateBin = (function($, RawDeflate) {
$password = $('#password');
$passwordInput = $('#passwordinput');
$rawTextButton = $('#rawtextbutton');
+ $downloadTextButton = $('#downloadtextbutton');
$retryButton = $('#retrybutton');
$sendButton = $('#sendbutton');
$qrCodeLink = $('#qrcodelink');
@@ -4351,6 +4390,7 @@ jQuery.PrivateBin = (function($, RawDeflate) {
$sendButton.click(PasteEncrypter.sendPaste);
$cloneButton.click(Controller.clonePaste);
$rawTextButton.click(rawText);
+ $downloadTextButton.click(downloadText);
$retryButton.click(clickRetryButton);
$fileRemoveButton.click(removeAttachment);
$qrCodeLink.click(displayQrCode);
@@ -4689,6 +4729,7 @@ jQuery.PrivateBin = (function($, RawDeflate) {
TopNav.showEmailButton();
TopNav.hideRawButton();
+ TopNav.hideDownloadButton();
Editor.hide();
// parse and show text
diff --git a/tpl/bootstrap.php b/tpl/bootstrap.php
index ffea8720..c43ddbf2 100644
--- a/tpl/bootstrap.php
+++ b/tpl/bootstrap.php
@@ -72,7 +72,7 @@ endif;
?>
-
+
@@ -212,6 +212,9 @@ endif;
+
diff --git a/tpl/page.php b/tpl/page.php
index e58617d1..096a9e60 100644
--- a/tpl/page.php
+++ b/tpl/page.php
@@ -50,7 +50,7 @@ endif;
?>
-
+