support loading logs through postMessage in logviewer
This commit is contained in:
parent
a2a17dbf7a
commit
2a729f8969
2 changed files with 21 additions and 1 deletions
|
@ -218,5 +218,20 @@
|
||||||
<main></main>
|
<main></main>
|
||||||
<aside></aside>
|
<aside></aside>
|
||||||
<script type="module" src="main.js"></script>
|
<script type="module" src="main.js"></script>
|
||||||
|
<script type="module">
|
||||||
|
import {loadBlob} from "./main.js";
|
||||||
|
window.addEventListener("message", event => {
|
||||||
|
console.log("message", event);
|
||||||
|
if (event.data.type === "open") {
|
||||||
|
document.getElementById("filename").innerText = "Loading logs from other tab...";
|
||||||
|
loadBlob(event.data.logs).then(() => {
|
||||||
|
document.getElementById("filename").innerText = "Logs from other tab at " + new Date();
|
||||||
|
});
|
||||||
|
} else if (event.data.type === "ping") {
|
||||||
|
document.getElementById("filename").innerText = "Waiting for logs from other tab...";
|
||||||
|
event.source.postMessage({type: "pong"});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -164,7 +164,11 @@ function getRootItemHeader(prevItem, item) {
|
||||||
async function loadFile() {
|
async function loadFile() {
|
||||||
const file = await openFile();
|
const file = await openFile();
|
||||||
document.getElementById("filename").innerText = file.name;
|
document.getElementById("filename").innerText = file.name;
|
||||||
const json = await readFileAsText(file);
|
await loadBlob(file);
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function loadBlob(blob) {
|
||||||
|
const json = await readFileAsText(blob);
|
||||||
const logs = JSON.parse(json);
|
const logs = JSON.parse(json);
|
||||||
logs.items.sort((a, b) => itemStart(a) - itemStart(b));
|
logs.items.sort((a, b) => itemStart(a) - itemStart(b));
|
||||||
rootItem = {c: logs.items};
|
rootItem = {c: logs.items};
|
||||||
|
@ -181,6 +185,7 @@ async function loadFile() {
|
||||||
return fragment;
|
return fragment;
|
||||||
}, document.createDocumentFragment());
|
}, document.createDocumentFragment());
|
||||||
main.replaceChildren(fragment);
|
main.replaceChildren(fragment);
|
||||||
|
main.scrollTop = main.scrollHeight;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: make this use processRecursively
|
// TODO: make this use processRecursively
|
||||||
|
|
Reference in a new issue