2026-07-20 10:03:41 +03:00

48 lines
1.5 KiB
HTML

{% extends ".base.min.html" %}
{% block title %}{{ filename }}{% endblock %}
{% block header %}
<a href="{{ back_link }}" class="back-link" onmouseover="this.style.color='#ffffff'" onmouseout="this.style.color='#90a4ae'">
<span></span> Back
</a>
<a href="/random">🎲 Random note</a>
<a class="copy-path-btn" onclick="copyPath('{{ copy_path }}')">Copy edit command</a>
{% endblock %}
{% block content %}
{{ content|safe }}
{% endblock %}
{% block scripts %}
const sseUrl = "{{ sse_url }}";
function connect() {
const evtSource = new EventSource(sseUrl);
evtSource.onerror = (err) => {
evtSource.close();
setTimeout(connect, 3000);
};
evtSource.addEventListener("reload", (event) => {
console.log("Get new update event");
location.reload();
});
}
connect();
document.querySelectorAll('.task-list-item-checkbox').forEach(cb => {
cb.addEventListener('change', function() {
const taskText = this.parentElement.textContent.trim();
const items = JSON.parse(localStorage.getItem('taskStates') || '{}');
items[taskText] = this.checked;
localStorage.setItem('taskStates', JSON.stringify(items));
});
// Восстановление состояния
const taskText = this.parentElement.textContent.trim();
const items = JSON.parse(localStorage.getItem('taskStates') || '{}');
if (items[taskText] !== undefined) {
this.checked = items[taskText];
}
});
{% endblock %}