www.spaceplanner.app

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

commit de36b0540e2969e56ed012b9f71e2dbffccd165c
parent db80033711b80826914b35835746446904521ea3
Author: Jacob R. Edwards <jacob@jacobedwards.org>
Date:   Fri,  4 Oct 2024 15:57:54 -0700

Use floorplan IDs instead of names to support new api

The api was updated to reference floorplans by ID rather than name.
This will make things a bit less error-prone and whatnot.

Diffstat:
Mfiles/floorplans/floorplan/main.js | 11+++++++++--
Mfiles/floorplans/main.js | 10+++++-----
2 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/files/floorplans/floorplan/main.js b/files/floorplans/floorplan/main.js @@ -38,13 +38,20 @@ function init() { // Just to get stuff out of the way for now let debug = (new URLSearchParams(new URL(document.URL).search)).get("debug") != undefined - let floorplan = (new URLSearchParams(new URL(document.URL).search)).get("name") + let floorplan = (new URLSearchParams(new URL(document.URL).search)).get("id") if (!floorplan) { document.location.href = "/floorplans" } + let h1 = document.querySelector("h1") - h1.textContent = floorplan let suffix = h1.appendChild(document.createTextNode("")) + api.fetch("GET", `floorplans/:user/${floorplan}`) + .then(function(metadata) { + h1.textContent = metadata.name + }) + .catch(function(err) { + document.location.href = "/floorplans" + }) let draw = SVG() .addTo("#editor") diff --git a/files/floorplans/main.js b/files/floorplans/main.js @@ -84,7 +84,7 @@ function commit_editable_floorplan_func(element, data) { return } - return api.fetch("PUT", `floorplans/:user/${etc.url_literal(data.name)}`, newdata) + return api.fetch("PUT", `floorplans/:user/${data.id}`, newdata) .then(function(rdata) { for (let i in rdata) { data[i] = rdata[i] @@ -175,7 +175,7 @@ function floorplan_info_name(classname) { function delete_floorplan_func(item, floorplan) { return function() { - api.fetch("DELETE", `floorplans/:user/${etc.url_literal(floorplan.name)}`) + api.fetch("DELETE", `floorplans/:user/${floorplan.id}`) .then(function() { item.parentElement.remove() }) @@ -219,7 +219,7 @@ function create_floorplan(floorplan) { if (!floorplan.name) { throw new Error("Expected floorplan name") } - header.append(create_field.name(floorplan.name)) + header.append(create_field.name(floorplan.name, floorplan.id)) if (floorplan.synopsis) { header.append(create_field.synopsis(floorplan.synopsis)) } @@ -239,11 +239,11 @@ function create_floorplan(floorplan) { } var create_field = { - name: function(text) { + name: function(text, id) { let heading = document.createElement("h2") heading.setAttribute("class", floorplan_info_class("name")) let link = document.createElement("a") - link.href = `./floorplan/?name=${etc.url_literal(text)}` + link.href = `./floorplan/?id=${id}` link.appendChild(document.createTextNode(text)) heading.append(link) return heading