diff --git a/files/assets/js/award_modal.js b/files/assets/js/award_modal.js index 48c2307d1..0b130fa96 100644 --- a/files/assets/js/award_modal.js +++ b/files/assets/js/award_modal.js @@ -147,18 +147,13 @@ function buy(mb) { let data try {data = JSON.parse(xhr.response)} catch(e) {console.log(e)} - if (xhr.status >= 200 && xhr.status < 300 && data && data["message"]) { - document.getElementById('toast-post-success-text2').innerText = data["message"]; - bootstrap.Toast.getOrCreateInstance(document.getElementById('toast-post-success2')).show(); + success = xhr.status >= 200 && xhr.status < 300; + showToast(success, getMessageFromJsonData(success, data), true); + if (success) { document.getElementById('giveaward').disabled=false; let owned = document.getElementById(`${kind}-owned`) let ownednum = Number(owned.textContent); owned.textContent = ownednum + 1 - } else { - document.getElementById('toast-post-error-text').innerText = "Error, please try again later." - if (data && data["error"]) document.getElementById('toast-post-error-text2').innerText = data["error"]; - if (data && data["details"]) document.getElementById('toast-post-error-text2').innerText = data["details"]; - bootstrap.Toast.getOrCreateInstance(document.getElementById('toast-post-error2')).show(); } }; diff --git a/files/assets/js/core.js b/files/assets/js/core.js index 78a4920c7..c7264f432 100644 --- a/files/assets/js/core.js +++ b/files/assets/js/core.js @@ -14,12 +14,28 @@ function prePostToastNonShopActions(t, url, button1, button2, className) { } } -function showToast(success, message) { - let element = success ? "toast-post-success" : "toast-post-error" +function getMessageFromJsonData(success, json) { + let message = success ? "Success!" : "Error, please try again later"; + let key = success ? "message" : "error"; + if (!json || !json[key]) return message; + message = json[key]; + if (!success && json["details"]) { + message = json["details"]; + } + return message; +} + +function showToast(success, message, isToastTwo=false) { + let element = success ? "toast-post-success" : "toast-post-error"; + let textElement = element + "-text"; + if (isToastTwo) { + element = element + "2"; + textElement = textElement + "2"; + } if (!message) { message = success ? "Success" : "Error, please try again later"; } - document.getElementById(element + "-text").innerText = message; + document.getElementById(textElement).innerText = message; bootstrap.Toast.getOrCreateInstance(document.getElementById(element)).show(); } @@ -31,22 +47,20 @@ function postToastLoad(xhr, className, extraActionsOnSuccess, extraActionsOnErro catch (e) { console.log(e) } - if (xhr.status >= 200 && xhr.status < 300) { - showToast(true, data && data["message"] ? data["message"] : "Success!"); + success = xhr.status >= 200 && xhr.status < 300; + showToast(success, getMessageFromJsonData(success, data)); + if (success) { if (button1) { if (typeof(button1) == 'boolean') { location.reload() - } else { + } else { document.getElementById(button1).classList.toggle(className); document.getElementById(button2).classList.toggle(className); } } if (extraActionsOnSuccess) extraActionsOnSuccess(xhr); } else { - let message = data && data["error"] ? data["error"] : "Error, please try again later" - if (data && data["details"]) message = data["details"]; - showToast(false, message); if (extraActionsOnError) extraActionsOnError(xhr); } } diff --git a/files/assets/js/delete_post_modal.js b/files/assets/js/delete_post_modal.js index 542e098b3..f8336f50e 100644 --- a/files/assets/js/delete_post_modal.js +++ b/files/assets/js/delete_post_modal.js @@ -9,14 +9,14 @@ function delete_postModal(id) { let data try {data = JSON.parse(xhr.response)} catch(e) {console.log(e)} - if (xhr.status >= 200 && xhr.status < 300 && data && data['message']) { + success = xhr.status >= 200 && xhr.status < 300; + showToast(success, getMessageFromJsonData(success, data)); + if (success && data["message"]) { document.getElementById(`post-${id}`).classList.add('deleted'); document.getElementById(`delete-${id}`).classList.add('d-none'); document.getElementById(`undelete-${id}`).classList.remove('d-none'); document.getElementById(`delete2-${id}`).classList.add('d-none'); document.getElementById(`undelete2-${id}`).classList.remove('d-none'); - document.getElementById('toast-post-success-text').innerText = data["message"]; - bootstrap.Toast.getOrCreateInstance(document.getElementById('toast-post-success')).show(); } else { showToast(false, getMessageFromJsonData(false, data)); }