9
0
mirror of https://github.com/donlon/cloudflare-error-page.git synced 2025-12-22 16:29:29 +00:00

editor/web: support exporting generated webpage

This commit is contained in:
Anthony Donlon
2025-12-22 22:01:58 +08:00
parent 728ce52529
commit 6233cec91f
2 changed files with 16 additions and 1 deletions

View File

@@ -532,6 +532,9 @@
<button type="button" data-type="js" class="list-group-item list-group-item-action">
NodeJS Example
</button>
<button type="button" data-type="static" class="list-group-item list-group-item-action">
Static Page
</button>
</div>
<div class="d-flex gap-1 save-as-dialog__buttons">
<button type="button" class="btn btn-success" id="saveAsDialogCopyBtn" data-bs-toggle="popover"

View File

@@ -445,7 +445,15 @@ function updateSaveAsDialog(e) {
}
const params = { ...lastCfg };
delete params.time;
$('saveAsDialogCode').innerHTML = saveAsContent = codegen.generate(params);
if (codegen) {
saveAsContent = codegen.generate(params);
} else if (saveAsType == 'static') {
render() // rerender the page
saveAsContent = lastRenderedHtml;
} else {
throw new Error('unexpected saveAsType=' + saveAsType)
}
$('saveAsDialogCode').innerHTML = saveAsContent;
$('saveAsDialogCode').scrollTop = 0;
document.querySelectorAll('#saveAsDialogTypes button').forEach((element) => {
@@ -489,6 +497,10 @@ $('saveAsDialogSaveBtn').addEventListener('click', (e) => {
case 'python':
saveName = 'cf_error_page_example.py';
break;
case 'static':
saveName = 'cf_error_page.html';
break;
// TODO: name output files using page title
}
saveFile(saveAsContent, saveName);
});