import '../web_modules/ContentTools/build/content-tools.min.js'; window.addEventListener('DOMContentLoaded', () => { let editor = ContentTools.EditorApp.get(); editor.init('*[data-editable]', 'data-name'); let {pageTitle} = document.getElementById('wiki-page').dataset; editor.addEventListener('saved', async function (ev) { document.getElementById("warning-panel").close(); let {regions} = ev.detail(); if (Object.getOwnPropertyNames(regions).length === 0) { // Nothing changed. return; } this.busy(true); let requestParams = new URLSearchParams(); for (let name of Object.getOwnPropertyNames(regions)) { requestParams.append(name, regions[name]); } let response = await fetch(`/wiki/${pageTitle}`, { method: 'POST', body: requestParams }); if (!response.ok) { document.getElementById("warning-panel").open(); document.getElementById("warning-text").innerText = `Failed to save page: ${response.statusText}`; this.busy(false); return; } let status = await response.json(); if (status.status !== "ok") { document.getElementById("warning-panel").open(); document.getElementById("warning-text").innerText = `Failed to save page: ${JSON.stringify(status)}`; this.busy(false); return; } if (status.hasOwnProperty("content")) { document.getElementById("wiki-content").innerHTML = status.content; } if (status.hasOwnProperty("title")) { pageTitle = status.title; } this.busy(false); }); });