Add loading indicator to invite screens
This commit is contained in:
		
							parent
							
								
									17ea92a8c2
								
							
						
					
					
						commit
						eec8b0f15b
					
				
					 4 changed files with 9 additions and 10 deletions
				
			
		| 
						 | 
					@ -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)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue