www.spaceplanner.app

Web client to the spaceplanner API
git clone git://jacobedwards.org/www.spaceplanner.app
Log | Files | Refs

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:
Mfiles/floorplans/main.css | 20++++++++++++++++++++
Mfiles/floorplans/main.js | 37++++++++++++++++++++++++++++++++++++-
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) } })) }