Skip to content

Commit 0d4ec4d

Browse files
fix: make setting public flag work
1 parent 9f0918d commit 0d4ec4d

10 files changed

+97
-60
lines changed

esbuild.mjs

-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ let ctx = await esbuild.context({
2828
"./ui/png/ios/180.png",
2929
"./ui/js/index.js",
3030
"./ui/js/helper.js",
31-
"./ui/js/edit-task.js",
3231
"./node_modules/htmx-ext-path-deps/path-deps.js",
3332
"./node_modules/htmx-ext-json-enc/json-enc.js",
3433
"./node_modules/htmx-ext-client-side-templates/client-side-templates.js",

maat/desk.docket-0

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
:~ title+'Maat (alpha)'
1+
:~ title+'Maat (beta)'
22
info+'A todo app'
33
color+0xff.fff3
44
image+'https://raw.githubusercontent.com/matthiasschaub/maat/main/ui/png/ios/512.png'

ui/html/edit-list.html

+9-11
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,9 @@
103103
hx-get="/api/lists/{gid}"
104104
hx-trigger="load"
105105
hx-ext="client-side-templates"
106-
mustache-template="list-template"
106+
mustache-template="list_edit__template"
107107
></div>
108-
<template id="list-template">
108+
<template id="list_edit__template">
109109
<h1>Update {{host}}/{{title}}</h1>
110110
<form
111111
id="update-list"
@@ -117,26 +117,24 @@ <h1>Update {{host}}/{{title}}</h1>
117117
<fieldset class="stack">
118118
<label for="update-title">Title:</label>
119119
<input
120-
autocomplete="false"
121120
id="update-title"
122121
name="title"
123-
placeholder="{{title}}"
124-
required
122+
aria-label="Title"
123+
autocomplete="false"
125124
spellcheck="false"
126125
type="text"
127-
aria-label="Title"
126+
value="{{title}}"
127+
required
128128
/>
129129
<label for="update-public">Public:</label>
130130
<select
131-
autocomplete="false"
132131
id="update-public"
133132
name="public"
134-
required
135-
spellcheck="false"
133+
aria-label="Public"
136134
type="text"
137-
aria-label="Title"
135+
required
138136
>
139-
<option hidden disabled selected value>-- select an option --</option>
137+
<option hidden disabled selected value>-- Select an option --</option>
140138
<option>Yes</option>
141139
<option>No</option>
142140
</select>

ui/html/edit-task.html

+20-8
Original file line numberDiff line numberDiff line change
@@ -104,9 +104,9 @@ <h1>Update Task</h1>
104104
hx-get="/api/lists/{gid}/tasks/{tid}"
105105
hx-trigger="load"
106106
hx-ext="client-side-templates,client-side-formats"
107-
mustache-template="task-template"
107+
mustache-template="task_edit__template"
108108
></div>
109-
<template id="task-template">
109+
<template id="task_edit__template">
110110
<form
111111
id="update-task"
112112
hx-put="/api/lists/{{gid}}/tasks"
@@ -118,15 +118,14 @@ <h1>Update Task</h1>
118118
<fieldset class="stack">
119119
<label for="update-title">Title:</label>
120120
<input
121-
autocomplete="false"
122121
id="update-title"
123122
name="title"
124-
placeholder="{{title}}"
125-
required
126-
spellcheck="false"
127-
type="text"
128123
aria-label="Title"
124+
type="text"
129125
value="{{title}}"
126+
autocomplete="false"
127+
spellcheck="false"
128+
required
130129
/>
131130
<div class="stack--1">
132131
<label for="update-desc">Description:</label>
@@ -167,7 +166,20 @@ <h1>Update Task</h1>
167166
</button>
168167
</fieldset>
169168
</form>
170-
<script src="/apps/maat/edit-task.js"></script>
169+
<script>
170+
document
171+
.getElementById("update")
172+
.addEventListener("htmx:afterSettle", (_event) => {
173+
document.querySelectorAll("textarea").forEach((element) => {
174+
element.dispatchEvent(
175+
new Event("input", {
176+
bubbles: true,
177+
cancelable: true,
178+
}),
179+
);
180+
});
181+
});
182+
</script>
171183
</template>
172184

173185
</main>

ui/html/show-task.html

+15-2
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@
130130
<form>
131131
<fieldset class="stack">
132132
<label for="update-title">Title:</label>
133-
<input type="text" aria-label="Title" value="{{title}}" disabled/>
133+
<input type="text" aria-label="Title" value="{{title}}" disabled />
134134
<div class="stack--1">
135135
<label for="update-desc">Description:</label>
136136
<div class="grow-wrap">
@@ -157,7 +157,20 @@
157157
</button>
158158
</fieldset>
159159
</form>
160-
<script src="/apps/maat/edit-task.js"></script>
160+
<script>
161+
document
162+
.getElementById("update")
163+
.addEventListener("htmx:afterSettle", (_event) => {
164+
document.querySelectorAll("textarea").forEach((element) => {
165+
element.dispatchEvent(
166+
new Event("input", {
167+
bubbles: true,
168+
cancelable: true,
169+
}),
170+
);
171+
});
172+
});
173+
</script>
161174
</template>
162175

163176
</main>

ui/js/edit-task.js

-12
This file was deleted.

ui/js/index.js

+8-4
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ htmx.defineExtension("json-enc-maat", {
4242
xhr.overrideMimeType("text/json");
4343

4444
const params = JSON.parse(JSON.stringify(parameters));
45-
console.log(params);
4645

4746
// send tags as list
4847
if (Object.keys(params).includes("tags")) {
@@ -59,9 +58,14 @@ htmx.defineExtension("json-enc-maat", {
5958

6059
// send public flag as boolean
6160
if (Object.keys(params).includes("public")) {
62-
// cast to bool
63-
params.public = params.public === "true";
64-
// console.log(params.public === "true");
61+
if (params.public === "Yes") {
62+
params.public = true;
63+
} else if (params.public === "No") {
64+
params.public = false;
65+
} else {
66+
// cast to bool
67+
params.public = params.public === "true";
68+
}
6569
}
6670

6771
// send done flag as boolean

ui/templates/edit-list.html

+9-11
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
hx-get="/api/lists/{gid}"
55
hx-trigger="load"
66
hx-ext="client-side-templates"
7-
mustache-template="list-template"
7+
mustache-template="list_edit__template"
88
></div>
9-
<template id="list-template">
9+
<template id="list_edit__template">
1010
<h1>Update {{host}}/{{title}}</h1>
1111
<form
1212
id="update-list"
@@ -18,26 +18,24 @@ <h1>Update {{host}}/{{title}}</h1>
1818
<fieldset class="stack">
1919
<label for="update-title">Title:</label>
2020
<input
21-
autocomplete="false"
2221
id="update-title"
2322
name="title"
24-
placeholder="{{title}}"
25-
required
23+
aria-label="Title"
24+
autocomplete="false"
2625
spellcheck="false"
2726
type="text"
28-
aria-label="Title"
27+
value="{{title}}"
28+
required
2929
/>
3030
<label for="update-public">Public:</label>
3131
<select
32-
autocomplete="false"
3332
id="update-public"
3433
name="public"
35-
required
36-
spellcheck="false"
34+
aria-label="Public"
3735
type="text"
38-
aria-label="Title"
36+
required
3937
>
40-
<option hidden disabled selected value>-- select an option --</option>
38+
<option hidden disabled selected value>-- Select an option --</option>
4139
<option>Yes</option>
4240
<option>No</option>
4341
</select>

ui/templates/edit-task.html

+20-8
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ <h1>Update Task</h1>
55
hx-get="/api/lists/{gid}/tasks/{tid}"
66
hx-trigger="load"
77
hx-ext="client-side-templates,client-side-formats"
8-
mustache-template="task-template"
8+
mustache-template="task_edit__template"
99
></div>
10-
<template id="task-template">
10+
<template id="task_edit__template">
1111
<form
1212
id="update-task"
1313
hx-put="/api/lists/{{gid}}/tasks"
@@ -19,15 +19,14 @@ <h1>Update Task</h1>
1919
<fieldset class="stack">
2020
<label for="update-title">Title:</label>
2121
<input
22-
autocomplete="false"
2322
id="update-title"
2423
name="title"
25-
placeholder="{{title}}"
26-
required
27-
spellcheck="false"
28-
type="text"
2924
aria-label="Title"
25+
type="text"
3026
value="{{title}}"
27+
autocomplete="false"
28+
spellcheck="false"
29+
required
3130
/>
3231
<div class="stack--1">
3332
<label for="update-desc">Description:</label>
@@ -68,5 +67,18 @@ <h1>Update Task</h1>
6867
</button>
6968
</fieldset>
7069
</form>
71-
<script src="/apps/maat/edit-task.js"></script>
70+
<script>
71+
document
72+
.getElementById("update")
73+
.addEventListener("htmx:afterSettle", (_event) => {
74+
document.querySelectorAll("textarea").forEach((element) => {
75+
element.dispatchEvent(
76+
new Event("input", {
77+
bubbles: true,
78+
cancelable: true,
79+
}),
80+
);
81+
});
82+
});
83+
</script>
7284
</template>

ui/templates/show-task.html

+15-2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
<form>
1919
<fieldset class="stack">
2020
<label for="update-title">Title:</label>
21-
<input type="text" aria-label="Title" value="{{title}}" disabled/>
21+
<input type="text" aria-label="Title" value="{{title}}" disabled />
2222
<div class="stack--1">
2323
<label for="update-desc">Description:</label>
2424
<div class="grow-wrap">
@@ -45,5 +45,18 @@
4545
</button>
4646
</fieldset>
4747
</form>
48-
<script src="/apps/maat/edit-task.js"></script>
48+
<script>
49+
document
50+
.getElementById("update")
51+
.addEventListener("htmx:afterSettle", (_event) => {
52+
document.querySelectorAll("textarea").forEach((element) => {
53+
element.dispatchEvent(
54+
new Event("input", {
55+
bubbles: true,
56+
cancelable: true,
57+
}),
58+
);
59+
});
60+
});
61+
</script>
4962
</template>

0 commit comments

Comments
 (0)