$(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) { uri = "/new"; 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(); uri = "/"; 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) { uri = "/new"; 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'); } }); });