Add loading indicator to invite screens
This commit is contained in:
@@ -56,7 +56,7 @@ block body
|
|||||||
.fl-grow1
|
.fl-grow1
|
||||||
h2.fs-headline1 Invite a Matrix user
|
h2.fs-headline1 Invite a Matrix user
|
||||||
|
|
||||||
form.d-grid.g-af-column.gy4.gx8.jc-start(method="post" action="/api/invite" style="grid-template-rows: repeat(2, auto)")
|
form.d-grid.g-af-column.gy4.gx8.jc-start(method="post" action="/api/invite" hx-post="/api/invite" hx-indicator="#invite-button")
|
||||||
label.s-label(for="mxid") Matrix ID
|
label.s-label(for="mxid") Matrix ID
|
||||||
input.fl-grow1.s-input.wmx3#mxid(name="mxid" required placeholder="@user:example.org")
|
input.fl-grow1.s-input.wmx3#mxid(name="mxid" required placeholder="@user:example.org")
|
||||||
label.s-label(for="permissions") Permissions
|
label.s-label(for="permissions") Permissions
|
||||||
@@ -67,12 +67,10 @@ block body
|
|||||||
option(value="admin") Admin
|
option(value="admin") Admin
|
||||||
input(type="hidden" name="guild_id" value=guild_id)
|
input(type="hidden" name="guild_id" value=guild_id)
|
||||||
.grid--row-start2
|
.grid--row-start2
|
||||||
button.s-btn.s-btn__filled Invite
|
button.s-btn.s-btn__filled#invite-button Invite
|
||||||
div
|
div
|
||||||
!= svg
|
!= svg
|
||||||
|
|
||||||
h2.mt48.fs-headline1 Moderation
|
|
||||||
|
|
||||||
h2.mt48.fs-headline1 Matrix setup
|
h2.mt48.fs-headline1 Matrix setup
|
||||||
|
|
||||||
h3.mt32.fs-category Linked channels
|
h3.mt32.fs-category Linked channels
|
||||||
|
@@ -13,11 +13,11 @@ block body
|
|||||||
.s-page-title.mb24
|
.s-page-title.mb24
|
||||||
h1.s-page-title--header= guild.name
|
h1.s-page-title--header= guild.name
|
||||||
|
|
||||||
.d-flex.g16
|
.d-flex.g16#form-container
|
||||||
.fl-grow1
|
.fl-grow1
|
||||||
h2.fs-headline1 Invite a Matrix user
|
h2.fs-headline1 Invite a Matrix user
|
||||||
|
|
||||||
form.d-flex.gy16.fd-column(method="post" action="/api/invite" style="grid-template-rows: repeat(2, auto)")
|
form.d-flex.gy16.fd-column(method="post" action="/api/invite" hx-post="/api/invite" hx-indicator="#invite-button" hx-select="#ok" hx-target="#form-container")
|
||||||
.d-flex.gy4.fd-column
|
.d-flex.gy4.fd-column
|
||||||
label.s-label(for="mxid") Matrix ID
|
label.s-label(for="mxid") Matrix ID
|
||||||
input.fl-grow1.s-input.wmx3#mxid(name="mxid" required placeholder="@user:example.org")
|
input.fl-grow1.s-input.wmx3#mxid(name="mxid" required placeholder="@user:example.org")
|
||||||
@@ -30,4 +30,4 @@ block body
|
|||||||
option(value="admin") Admin
|
option(value="admin") Admin
|
||||||
input(type="hidden" name="nonce" value=nonce)
|
input(type="hidden" name="nonce" value=nonce)
|
||||||
div
|
div
|
||||||
button.s-btn.s-btn__filled.htmx-indicator Invite
|
button.s-btn.s-btn__filled#invite-button Invite
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
extends includes/template.pug
|
extends includes/template.pug
|
||||||
|
|
||||||
block body
|
block body
|
||||||
.ta-center.wmx5.p48.mx-auto
|
.ta-center.wmx5.p48.mx-auto#ok
|
||||||
!= icons.Spots.SpotApproveXL
|
!= icons.Spots.SpotApproveXL
|
||||||
p.mt24.fs-body2= msg
|
p.mt24.fs-body2= msg
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
const assert = require("assert/strict")
|
const assert = require("assert/strict")
|
||||||
const {z} = require("zod")
|
const {z} = require("zod")
|
||||||
const {H3Event, defineEventHandler, sendRedirect, useSession, createError, getValidatedQuery, readValidatedBody} = require("h3")
|
const {H3Event, defineEventHandler, sendRedirect, useSession, createError, getValidatedQuery, readValidatedBody, setResponseHeader} = require("h3")
|
||||||
const {randomUUID} = require("crypto")
|
const {randomUUID} = require("crypto")
|
||||||
const {LRUCache} = require("lru-cache")
|
const {LRUCache} = require("lru-cache")
|
||||||
const Ty = require("../../types")
|
const Ty = require("../../types")
|
||||||
@@ -191,9 +191,10 @@ as.router.post("/api/invite", defineEventHandler(async event => {
|
|||||||
( parsedBody.permissions === "admin" ? 100
|
( parsedBody.permissions === "admin" ? 100
|
||||||
: parsedBody.permissions === "moderator" ? 50
|
: parsedBody.permissions === "moderator" ? 50
|
||||||
: 0)
|
: 0)
|
||||||
await api.setUserPowerCascade(spaceID, parsedBody.mxid, powerLevel)
|
if (powerLevel) await api.setUserPowerCascade(spaceID, parsedBody.mxid, powerLevel)
|
||||||
|
|
||||||
if (parsedBody.guild_id) {
|
if (parsedBody.guild_id) {
|
||||||
|
setResponseHeader(event, "HX-Refresh", true)
|
||||||
return sendRedirect(event, `/guild?guild_id=${guild_id}`, 302)
|
return sendRedirect(event, `/guild?guild_id=${guild_id}`, 302)
|
||||||
} else {
|
} else {
|
||||||
return sendRedirect(event, "/ok?msg=User has been invited.", 302)
|
return sendRedirect(event, "/ok?msg=User has been invited.", 302)
|
||||||
|
Reference in New Issue
Block a user