2020-05-09 00:10:11 +02:00
|
|
|
$(document).ready(function() {
|
|
|
|
function replaceUrlParam(url, param, value) {
|
|
|
|
if (value == null) {
|
|
|
|
value = '';
|
|
|
|
}
|
|
|
|
|
|
|
|
var pattern = new RegExp('\\b('+param+'=).*?(&|#|$)');
|
|
|
|
if (url.search(pattern)>=0) {
|
|
|
|
return url.replace(pattern,'$1' + value + '$2');
|
|
|
|
}
|
|
|
|
|
|
|
|
url = url.replace(/[?#]$/,'');
|
|
|
|
return url + (url.indexOf('?')>0 ? '&' : '?') + param + '=' + value;
|
|
|
|
}
|
|
|
|
|
|
|
|
function resetLanguageSelector() {
|
|
|
|
var url = new URL(document.location);
|
|
|
|
var params = url.searchParams;
|
|
|
|
var lang = params.get("lang");
|
|
|
|
|
|
|
|
if (lang != null) {
|
|
|
|
$("#language-selector").val(lang);
|
|
|
|
} else {
|
|
|
|
if($("#pastebin-code-block").length) {
|
|
|
|
$("#language-selector").val(
|
|
|
|
$("#pastebin-code-block").prop("class").trim().split('-')[1]
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function checkPasswordModal() {
|
|
|
|
if ($("#password-modal").length) {
|
|
|
|
$('#password-modal').modal('toggle');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
var state = {
|
|
|
|
expiry: 0,
|
|
|
|
burn: 0,
|
|
|
|
};
|
|
|
|
|
|
|
|
resetLanguageSelector();
|
|
|
|
checkPasswordModal();
|
|
|
|
|
|
|
|
$("#language-selector").change(function() {
|
|
|
|
if ($("#pastebin-code-block").length) {
|
|
|
|
$('#pastebin-code-block').attr('class', 'language-' + $("#language-selector").val());
|
|
|
|
Prism.highlightElement($('#pastebin-code-block')[0]);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
$("#remove-btn").on("click", function(event) {
|
|
|
|
event.preventDefault();
|
|
|
|
|
|
|
|
$.ajax({
|
|
|
|
url: window.location.pathname,
|
|
|
|
type: 'DELETE',
|
|
|
|
success: function(result) {
|
2020-09-03 01:16:30 +02:00
|
|
|
uri = uri_prefix + "/new";
|
2020-05-09 00:10:11 +02:00
|
|
|
uri = replaceUrlParam(uri, 'level', "info");
|
|
|
|
uri = replaceUrlParam(uri, 'glyph', "fas fa-info-circle");
|
|
|
|
uri = replaceUrlParam(uri, 'msg', "The paste has been successfully removed.");
|
|
|
|
window.location.href = encodeURI(uri);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
$("#copy-btn").on("click", function(event) {
|
|
|
|
event.preventDefault();
|
|
|
|
|
|
|
|
$(".toolbar-item button").get(0).click();
|
|
|
|
|
|
|
|
var $this = $(this);
|
|
|
|
$this.text("Copied!");
|
|
|
|
$this.attr("disabled", "disabled");
|
|
|
|
|
|
|
|
setTimeout(function() {
|
|
|
|
$this.text("Copy");
|
|
|
|
$this.removeAttr("disabled");
|
|
|
|
}, 800);
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
$("#send-btn").on("click", function(event) {
|
|
|
|
event.preventDefault();
|
|
|
|
|
2020-09-03 01:16:30 +02:00
|
|
|
uri = uri_prefix == "" ? "/" : uri_prefix;
|
2020-05-09 00:10:11 +02:00
|
|
|
uri = replaceUrlParam(uri, 'lang', $("#language-selector").val());
|
|
|
|
uri = replaceUrlParam(uri, 'ttl', state.expiry);
|
|
|
|
uri = replaceUrlParam(uri, 'burn', state.burn);
|
|
|
|
|
|
|
|
var data = $("#content-textarea").val();
|
|
|
|
var pass = $("#pastebin-password").val();
|
|
|
|
|
|
|
|
if ($("#pastebin-password").val().length > 0) {
|
|
|
|
data = CryptoJS.AES.encrypt(data, pass).toString();
|
|
|
|
uri = replaceUrlParam(uri, 'encrypted', true);
|
|
|
|
}
|
|
|
|
|
|
|
|
$.ajax({
|
|
|
|
url: uri,
|
|
|
|
type: 'POST',
|
|
|
|
data: data,
|
|
|
|
success: function(result) {
|
2020-09-03 01:16:30 +02:00
|
|
|
uri = uri_prefix + "/new";
|
2020-05-09 00:10:11 +02:00
|
|
|
uri = replaceUrlParam(uri, 'level', "success");
|
|
|
|
uri = replaceUrlParam(uri, 'glyph', "fas fa-check");
|
|
|
|
uri = replaceUrlParam(uri, 'msg', "The paste has been successfully created:");
|
|
|
|
uri = replaceUrlParam(uri, 'url', result);
|
|
|
|
|
|
|
|
window.location.href = encodeURI(uri);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
$('#expiry-dropdown a').click(function(event){
|
|
|
|
event.preventDefault();
|
|
|
|
|
|
|
|
state.expiry = $(this).attr("href");
|
|
|
|
$('#expiry-dropdown-btn').text("Expires: " + this.innerHTML);
|
|
|
|
});
|
|
|
|
|
|
|
|
$('#burn-dropdown a').click(function(event){
|
|
|
|
event.preventDefault();
|
|
|
|
|
|
|
|
state.burn = $(this).attr("href");
|
|
|
|
$('#burn-dropdown-btn').text("Burn: " + this.innerHTML);
|
|
|
|
});
|
|
|
|
|
|
|
|
$('#decrypt-btn').click(function(event) {
|
|
|
|
var pass = $("#modal-password").val();
|
|
|
|
var data = "";
|
|
|
|
|
|
|
|
if ($("#pastebin-code-block").length) {
|
|
|
|
data = $("#pastebin-code-block").text();
|
|
|
|
} else {
|
|
|
|
data = $("#content-textarea").text();
|
|
|
|
}
|
|
|
|
|
|
|
|
var decrypted = CryptoJS.AES.decrypt(data, pass).toString(CryptoJS.enc.Utf8);
|
|
|
|
if (decrypted.length == 0) {
|
|
|
|
$("#modal-alert").removeClass("collapse");
|
|
|
|
} else {
|
|
|
|
if ($("#pastebin-code-block").length) {
|
|
|
|
$("#pastebin-code-block").text(decrypted);
|
|
|
|
Prism.highlightElement($('#pastebin-code-block')[0]);
|
|
|
|
} else {
|
|
|
|
$("#content-textarea").text(decrypted);
|
|
|
|
}
|
|
|
|
|
|
|
|
$("#modal-close-btn").click();
|
|
|
|
$("#modal-alert").alert('close');
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|