mirror of
https://gitdab.com/cadence/breezewiki.git
synced 2026-03-05 13:40:27 -05:00
60 lines
1.4 KiB
JavaScript
60 lines
1.4 KiB
JavaScript
const loading = document.getElementById("loading")
|
|
loading.textContent = "Loading, please wait..."
|
|
const progress = document.getElementById("progress")
|
|
|
|
let wikiPage = null
|
|
function wikiPageCallback(data) {
|
|
wikiPage = data
|
|
cont()
|
|
}
|
|
|
|
let siteinfo = null
|
|
function siteinfoCallback(data) {
|
|
siteinfo = data
|
|
cont()
|
|
}
|
|
|
|
async function cont() {
|
|
if (!(wikiPage && siteinfo)) return
|
|
|
|
const xhr = new XMLHttpRequest();
|
|
|
|
const uploadFraction = 0.7
|
|
|
|
// Upload progress
|
|
xhr.upload.addEventListener("progress", event => {
|
|
if (event.lengthComputable) {
|
|
progress.value = (event.loaded / event.total) * uploadFraction
|
|
}
|
|
})
|
|
|
|
// Download progress
|
|
xhr.addEventListener("progress", event => {
|
|
if (event.lengthComputable) {
|
|
progress.value = (event.loaded / event.total) * (1 - uploadFraction) + uploadFraction
|
|
}
|
|
})
|
|
|
|
xhr.addEventListener("load", () => {
|
|
console.log(xhr)
|
|
const imported = document.importNode(xhr.responseXML.getElementById("content"), true)
|
|
document.getElementById("content").replaceWith(imported)
|
|
document.title = xhr.responseXML.title
|
|
for (const e of xhr.responseXML.head.children) {
|
|
if (["LINK"].includes(e.tagName)) {
|
|
const imported = document.importNode(e, true)
|
|
document.head.appendChild(imported)
|
|
}
|
|
}
|
|
})
|
|
|
|
xhr.open("POST", "/api/render/wiki")
|
|
xhr.responseType = "document"
|
|
xhr.send(JSON.stringify({
|
|
data: wikiPage,
|
|
siteinfo,
|
|
wikiname,
|
|
path
|
|
}));
|
|
}
|