commit 66fe7332f7452b85805892af252c7bf5fce49063
parent 2c37a164adbc85038b73be98622f48d56bf72184
Author: Jacob R. Edwards <jacob@jacobedwards.org>
Date: Tue, 8 Oct 2024 21:18:47 -0700
Add floorplan deletion confirmation
Diffstat:
2 files changed, 56 insertions(+), 1 deletion(-)
diff --git a/files/floorplans/main.css b/files/floorplans/main.css
@@ -71,3 +71,23 @@ input.fp_name, input.fp_synopsis, input.fp_address {
display: block;
max-width: 60%;
}
+
+.delete_dialog {
+ background-color: #F3F3F3;
+ position: absolute;
+ top: 20vh;
+ left: 20vw;
+ width: 60vw;
+ align-content: center;
+ border: thin solid black;
+ border-radius: .25em;
+ padding: 1em;
+}
+
+.delete_dialog > * {
+}
+
+.delete_dialog > input {
+ margin: .5em;
+ font-size: larger;
+}
diff --git a/files/floorplans/main.js b/files/floorplans/main.js
@@ -185,6 +185,41 @@ function delete_floorplan_func(item, floorplan) {
}
}
+function ask_delete_floorplan_func(item, floorplan) {
+ return function() {
+ document.querySelectorAll(".delete_dialog").forEach(function(e) { e.remove() })
+ let c = document.body.appendChild(document.createElement("div"))
+ c.classList.add("delete_dialog")
+ let mkbutton = function(value) {
+ let b = document.createElement("input")
+ b.type = "button"
+ b.value = value
+ return b
+ }
+
+ let t = c.appendChild(document.createElement("p"))
+ t.appendChild(document.createTextNode("Delete "))
+ let q = t.appendChild(document.createElement("q"))
+ q.appendChild(document.createTextNode(floorplan.name))
+ t.append(document.createTextNode("?"))
+
+ let yes = c.appendChild(mkbutton("Yes"))
+ let no = c.appendChild(mkbutton("No"))
+
+ let p = new Promise(function(res, rej) {})
+ let hand = function(ev) {
+ if (ev.target.value == "Yes") {
+ delete_floorplan_func(item, floorplan)()
+ }
+ c.remove()
+ }
+ yes.addEventListener("click", hand)
+ no.addEventListener("click", hand)
+
+ return p
+ }
+}
+
function create_floorplan_item(floorplan) {
let item = document.createElement("li")
item.append(create_floorplan(floorplan))
@@ -204,7 +239,7 @@ function create_floorplan(floorplan) {
{ button: ui.button("Save", "Save floorplan", "save"), func: commit_editable_floorplan_func(root, floorplan) },
)
)
- aside.append(ui.button("Delete", "Delete floorplan", "trash", { handlers: { click: delete_floorplan_func(root, floorplan) } }))
+ aside.append(ui.button("Delete", "Delete floorplan", "trash", { handlers: { click: ask_delete_floorplan_func(root, floorplan) } }))
} else {
aside.append(ui.button("Create", "Create floorplan", "create", { handlers: { click: editable_floorplan_create_func(root) } }))
}