blob: 8c42f2b35d6636dc43820d2e2c45e775f09f4f98 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
<!-- Copyright 2026 Rose Hogenson <r@roseh.moe>
--
-- This file is part of roseh.moe.
--
-- roseh.moe is free software: you can redistribute it and/or modify
-- it under the terms of the GNU Affero General Public License
-- as published by the Free Software Foundation, either version 3 of
-- the License, or (at your option) any later version.
--
-- roseh.moe is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty
-- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU Affero General Public License for more details.
--
-- You should have received a copy of the GNU Affero General Public
-- License along with roseh.moe. If not, see
-- <https://www.gnu.org/licenses/>.
-->
<script src="/static/htmx.min.js"></script>
<title>Notepad</title>
<meta name="viewport" content="interactive-widget=resizes-content"> <!-- https://stackoverflow.com/q/76026292 -->
<form id="form" method="post">
<div class="save-indicator-container">
{{block "saveIndicator" ""}}<span id="save-indicator">{{.}}</span>{{end}}
</div>
<div class="content-container">
<textarea
name="content"
hx-post="/notepad"
hx-on:input="
const indicator = htmx.find('#save-indicator');
htmx.addClass(indicator, 'htmx-indicator');
indicator.innerHTML = 'Saving...';
"
hx-trigger="input delay:1s"
hx-indicator="#save-indicator"
hx-target="#save-indicator"
hx-swap="outerHTML"
autofocus>
{{- .Content -}}
</textarea>
</div>
</form>
|