UI for linking existing space

This commit is contained in:
Cadence Ember
2025-02-04 02:45:38 +13:00
parent 3d0609f8f1
commit d45a0bdc10
15 changed files with 293 additions and 116 deletions

View File

@@ -2,9 +2,9 @@
const assert = require("assert/strict")
const {z} = require("zod")
const {defineEventHandler, useSession, createError, readValidatedBody} = require("h3")
const {defineEventHandler, useSession, createError, readValidatedBody, getRequestHeader, setResponseHeader, sendRedirect} = require("h3")
const {as, db, sync} = require("../../passthrough")
const {as, db, sync, select} = require("../../passthrough")
const {reg} = require("../../matrix/read-registration")
/** @type {import("../../d2m/actions/create-space")} */
@@ -29,6 +29,17 @@ as.router.post("/api/autocreate", defineEventHandler(async event => {
if (!(session.data.managedGuilds || []).concat(session.data.matrixGuilds || []).includes(parsedBody.guild_id)) throw createError({status: 403, message: "Forbidden", data: "Can't change settings for a guild you don't have Manage Server permissions in"})
db.prepare("UPDATE guild_active SET autocreate = ? WHERE guild_id = ?").run(+!!parsedBody.autocreate, parsedBody.guild_id)
// If showing a partial page due to incomplete setup, need to refresh the whole page to show the alternate version
const spaceID = select("guild_space", "space_id", {guild_id: parsedBody.guild_id}).pluck().get()
if (!spaceID) {
if (getRequestHeader(event, "HX-Request")) {
setResponseHeader(event, "HX-Refresh", "true")
} else {
return sendRedirect(event, "", 302)
}
}
return null // 204
}))