mirror of
https://github.com/openvk/openvk
synced 2024-11-11 09:29:29 +03:00
6e17c446bf
Resolves #604
58 lines
2.5 KiB
XML
58 lines
2.5 KiB
XML
{extends "../@layout.xml"}
|
||
|
||
{block title}{_create_note}{/block}
|
||
|
||
{block header}
|
||
{_create_note}
|
||
{/block}
|
||
|
||
{block content}
|
||
<form id="noteFactory" method="POST">
|
||
<input type="text" name="name" placeholder="{_name_note}" style="width:603px;" />
|
||
<br/><br/>
|
||
<textarea name="html" style="display:none;"></textarea>
|
||
<div id="editor" style="width:600px;height:300px;border:1px solid grey"></div>
|
||
|
||
<p><i><a href="/kb/notes">Кое-что</a> из (X)HTML поддерживается.</i></p>
|
||
|
||
<input type="hidden" name="hash" value="{$csrfToken}" />
|
||
<button class="button">{_save}</button>
|
||
<a href="javascript:openPreviewWindow()" style="float: right;">{_note_preview}</a>
|
||
</form>
|
||
|
||
{script "js/node_modules/monaco-editor/min/vs/loader.js"}
|
||
{script "js/node_modules/requirejs/bin/r.js"}
|
||
<script>
|
||
require.config({
|
||
paths: {
|
||
'vs': '/assets/packages/static/openvk/js/node_modules/monaco-editor/min/vs'
|
||
}
|
||
});
|
||
require(['vs/editor/editor.main'], function() {
|
||
window._editor = monaco.editor.create(document.getElementById('editor'), {
|
||
value: "",
|
||
lineNumbers: "off",
|
||
language: "html"
|
||
});
|
||
});
|
||
|
||
document.querySelector("#noteFactory").addEventListener("submit", function() {
|
||
document.querySelector("textarea").value = window._editor.getValue();
|
||
});
|
||
|
||
window._preview = undefined;
|
||
function openPreviewWindow() {
|
||
if(typeof window._preview != "undefined") {
|
||
window._preview.close();
|
||
window._preview = undefined;
|
||
}
|
||
|
||
window._preview = window.open("data:text/html,", "_blank", { popup: true });
|
||
window._preview.document.write(`<style>form { display: none; }</style><form action="${ location.origin }/notes/prerender" method="POST" enctype="multipart/form-data"><input name="title" /><input name="html" /><input name="hash" /></form>`);
|
||
window._preview.document.querySelector("input[name=title]").value = document.querySelector("input[name=name]").value;
|
||
window._preview.document.querySelector("input[name=html]").value = window._editor.getValue();
|
||
window._preview.document.querySelector("input[name=hash]").value = document.querySelector("meta[name=csrf]").attributes.value.value;
|
||
window._preview.document.querySelector("form").submit();
|
||
}
|
||
</script>
|
||
{/block}
|