diff --git a/src/MyWebLog/Handlers/Helpers.fs b/src/MyWebLog/Handlers/Helpers.fs index ee7075c..2edefe8 100644 --- a/src/MyWebLog/Handlers/Helpers.fs +++ b/src/MyWebLog/Handlers/Helpers.fs @@ -120,7 +120,6 @@ module ViewContext = /// The current web log [] let WebLog = "web_log" - /// The HTTP item key for loading the session diff --git a/src/admin-theme/wwwroot/admin.js b/src/admin-theme/wwwroot/admin.js index 555b81b..308b78a 100644 --- a/src/admin-theme/wwwroot/admin.js +++ b/src/admin-theme/wwwroot/admin.js @@ -334,27 +334,34 @@ this.Admin = { const theToast = new bootstrap.Toast(toast, options) theToast.show() }) + }, + + /** + * Initialize any toasts that were pre-rendered from the server + */ + showPreRenderedMessages() { + [...document.querySelectorAll(".toast")].forEach(el => { + if (el.getAttribute("data-mwl-shown") === "true" && el.className.indexOf("hide") >= 0) { + document.removeChild(el) + } else { + const toast = new bootstrap.Toast(el, + el.getAttribute("data-bs-autohide") === "false" + ? { autohide: false } : { delay: 6000, autohide: true }) + toast.show() + el.setAttribute("data-mwl-shown", "true") + } + }) } } htmx.on("htmx:afterOnLoad", function (evt) { const hdrs = evt.detail.xhr.getAllResponseHeaders() + // Initialize any toasts that were pre-rendered from the server + Admin.showPreRenderedMessages() // Show messages if there were any in the response if (hdrs.indexOf("x-message") >= 0) { Admin.showMessage(evt.detail.xhr.getResponseHeader("x-message")) } - // Initialize any toasts that were pre-rendered from the server - [...document.querySelectorAll(".toast")].forEach(el => { - if (el.getAttribute("data-mwl-shown") === "true" && el.className.indexOf("hide") >= 0) { - document.removeChild(el) - } else { - const toast = new bootstrap.Toast(el, - el.getAttribute("data-bs-autohide") === "false" - ? { autohide: false } : { delay: 6000, autohide: true }) - toast.show() - el.setAttribute("data-mwl-shown", "true") - } - }) }) htmx.on("htmx:responseError", function (evt) { @@ -365,3 +372,5 @@ htmx.on("htmx:responseError", function (evt) { Admin.showMessage(`danger|||${xhr.status}: ${xhr.statusText}`) } }) + +document.addEventListener("DOMContentLoaded", Admin.showPreRenderedMessages, { once: true})