Sha256: ee0c610e2a1361740460dac0d54ac354fc55f727fd7b4df89a0759d312d1280b
Contents?: true
Size: 1.12 KB
Versions: 17
Compression:
Stored size: 1.12 KB
Contents
function isPageDirty() { return $("#element_area").find("alchemy-element-editor.dirty").length > 0 } function checkPageDirtyness(element) { let callback = () => {} if ($(element).is("form")) { callback = function () { const $form = $( `<form action="${element.action}" method="POST" style="display: none" />` ) $form.append($(element).find("input")) $form.appendTo("body") Alchemy.pleaseWaitOverlay() $form.submit() } } else if ($(element).is("a")) { callback = () => Turbo.visit(element.pathname) } if (isPageDirty()) { Alchemy.openConfirmDialog(Alchemy.t("page_dirty_notice"), { title: Alchemy.t("warning"), ok_label: Alchemy.t("ok"), cancel_label: Alchemy.t("cancel"), on_ok: function () { window.onbeforeunload = void 0 callback() } }) return false } return true } function PageLeaveObserver() { $("#main_navi a").on("click", function (event) { if (!checkPageDirtyness(event.currentTarget)) { event.preventDefault() } }) } export default { checkPageDirtyness, PageLeaveObserver }
Version data entries
17 entries across 17 versions & 1 rubygems