Skip to content

Commit 58df0a5

Browse files
committedJun 16, 2024
fix: fixup last two commits
1 parent df86f79 commit 58df0a5

File tree

5 files changed

+38
-40
lines changed

5 files changed

+38
-40
lines changed
 

‎esbuild.mjs

-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ let ctx = await esbuild.context({
2525
"./ui/png/ios/180.png",
2626
"./ui/js/index.js",
2727
"./ui/js/helper.js",
28-
"./ui/js/tasks.js",
2928
"./ui/js/edit-task.js",
3029
"./node_modules/htmx.org/dist/ext/path-deps.js",
3130
"./node_modules/htmx.org/dist/ext/json-enc.js",

‎maat/app/maat-ui.hoon

-3
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
/* ttf-soria %ttf /app/ui/ttf/soria/ttf
2727
/* js-index %js /app/ui/js/index/js
2828
/* js-helper %js /app/ui/js/helper/js
29-
/* js-tasks %js /app/ui/js/tasks/js
3029
/* js-edit-task %js /app/ui/js/edit-task/js
3130
/* js-json-enc %js /app/ui/js/json-enc/js
3231
/* js-path-deps %js /app/ui/js/path-deps/js
@@ -155,8 +154,6 @@
155154
[(send [200 ~ [%html html-create]]) state]
156155
[%apps %maat %helper ~]
157156
[(send [200 ~ [%js js-helper]]) state]
158-
[%apps %maat %tasks ~]
159-
[(send [200 ~ [%js js-tasks]]) state]
160157
[%apps %maat %edit-task ~]
161158
[(send [200 ~ [%js js-edit-task]]) state]
162159
[%apps %maat %json-enc ~]

‎ui/html/tasks.html

+4-3
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@
137137
id="{{tid}}"
138138
class="icon icon-circle"
139139
hx-put="/api/lists/{{gid}}/tasks"
140-
hx-vals='js:{gid: "{{gid}}", tid: "{{tid}}", title: "{{title}}", desc: `{{desc}}`, date: {{date}}, done: true, tags: {{tags}}}'
140+
hx-vals='js:{gid: "{{gid}}", tid: "{{tid}}", title: "{{title}}", desc: `{{desc}}`, date: {{date}}, done: true, tags: "{{tags}}"}'
141141
hx-ext="json-enc"
142142
hx-trigger="click"
143143
>
@@ -160,11 +160,13 @@
160160
<template id="tasks-done-template">
161161
{{#.}}
162162
<li>
163+
<!-- mark task as undone -->
164+
<!-- NOTE: be careful with the js prefix for hx-vals when dealing with user input -->
163165
<a
164166
id="{{tid}}"
165167
class="icon icon-circle-checked"
166168
hx-put="/api/lists/{{gid}}/tasks"
167-
hx-vals='{"gid": "{{gid}}", "tid": "{{tid}}", "title": "{{title}}", "desc": "{{desc}}", "date": {{date}}, "done": false, "tags": "{{tags}}"}'
169+
hx-vals='js:{gid: "{{gid}}", tid: "{{tid}}", title: "{{title}}", desc: `{{desc}}`, date: {{date}}, done: false, tags: "{{tags}}"}'
168170
hx-ext="json-enc"
169171
hx-trigger="click"
170172
>
@@ -197,7 +199,6 @@
197199
</form>
198200
</li>
199201
</ul>
200-
<script src="/apps/maat/tasks.js"></script>
201202
<!-- <div class="done"> -->
202203
<!-- <h3>Done</h3> -->
203204
<!-- <ul> -->

‎ui/js/index.js

+30-30
Original file line numberDiff line numberDiff line change
@@ -2,41 +2,41 @@ import htmx from "htmx.org";
22
import Mustache from "mustache";
33

44
htmx.defineExtension("client-side-formats", {
5-
transformResponse: (text, _xhr, elt) => {
6-
switch (elt.id) {
7-
case "invites": {
8-
let data = JSON.parse(text);
9-
if (data.length > 0) {
10-
data = { invites: [true] };
11-
} else {
12-
data = { invites: [] };
5+
transformResponse: (text, _xhr, elt) => {
6+
switch (elt.id) {
7+
case "invites": {
8+
let data = JSON.parse(text);
9+
if (data.length > 0) {
10+
data = { invites: [true] };
11+
} else {
12+
data = { invites: [] };
13+
}
14+
return JSON.stringify(data);
15+
}
16+
case "tags": {
17+
let data = JSON.parse(text);
18+
data = data.join();
19+
return JSON.stringify(data);
20+
}
1321
}
14-
return JSON.stringify(data);
15-
}
16-
case "tags": {
17-
let data = JSON.parse(text);
18-
data = data.join();
19-
return JSON.stringify(data);
20-
}
21-
}
22-
},
22+
},
2323
});
2424

2525
window.addEventListener("htmx:configRequest", (event) => {
26-
// send tags as list
27-
if ("tags" in event.detail.parameters) {
28-
const tags = event.detail.parameters.tags;
29-
console.log(tags);
30-
if (typeof tags === "string" || tags instanceof String) {
31-
console.log("yes");
32-
const tagsArray = tags
33-
.replace(/\s+/g, " ")
34-
.trim()
35-
.replaceAll(" ", "")
36-
.split(",");
37-
event.detail.parameters.tags = tagsArray.filter((str) => str !== "");
26+
// send tags as list
27+
if ("tags" in event.detail.parameters) {
28+
const tags = event.detail.parameters.tags;
29+
if (typeof tags === "string" || tags instanceof String) {
30+
const tagsArray = tags
31+
.replace(/\s+/g, " ")
32+
.trim()
33+
.replaceAll(" ", "")
34+
.split(",");
35+
event.detail.parameters.tags = tagsArray.filter((str) =>
36+
str !== ""
37+
);
38+
}
3839
}
39-
}
4040
});
4141

4242
window.htmx = htmx;

‎ui/templates/tasks.html

+4-3
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
id="{{tid}}"
4545
class="icon icon-circle"
4646
hx-put="/api/lists/{{gid}}/tasks"
47-
hx-vals='js:{gid: "{{gid}}", tid: "{{tid}}", title: "{{title}}", desc: `{{desc}}`, date: {{date}}, done: true, tags: {{tags}}}'
47+
hx-vals='js:{gid: "{{gid}}", tid: "{{tid}}", title: "{{title}}", desc: `{{desc}}`, date: {{date}}, done: true, tags: "{{tags}}"}'
4848
hx-ext="json-enc"
4949
hx-trigger="click"
5050
>
@@ -67,11 +67,13 @@
6767
<template id="tasks-done-template">
6868
{{#.}}
6969
<li>
70+
<!-- mark task as undone -->
71+
<!-- NOTE: be careful with the js prefix for hx-vals when dealing with user input -->
7072
<a
7173
id="{{tid}}"
7274
class="icon icon-circle-checked"
7375
hx-put="/api/lists/{{gid}}/tasks"
74-
hx-vals='{"gid": "{{gid}}", "tid": "{{tid}}", "title": "{{title}}", "desc": "{{desc}}", "date": {{date}}, "done": false, "tags": "{{tags}}"}'
76+
hx-vals='js:{gid: "{{gid}}", tid: "{{tid}}", title: "{{title}}", desc: `{{desc}}`, date: {{date}}, done: false, tags: "{{tags}}"}'
7577
hx-ext="json-enc"
7678
hx-trigger="click"
7779
>
@@ -104,7 +106,6 @@
104106
</form>
105107
</li>
106108
</ul>
107-
<script src="/apps/maat/tasks.js"></script>
108109
<!-- <div class="done"> -->
109110
<!-- <h3>Done</h3> -->
110111
<!-- <ul> -->

0 commit comments

Comments
 (0)
Please sign in to comment.