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:
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