Configurable @room ping discord roles
This commit is contained in:
@@ -188,6 +188,56 @@ block body
|
||||
td(colspan="3")
|
||||
.s-empty-state No channels linked between Discord and Matrix yet...
|
||||
|
||||
if space_id && linkedChannelsWithDetails.length
|
||||
- const customPingRooms = linkedChannelsWithDetails.filter(row => row.ping_role_id)
|
||||
- const defaultPingRooms = linkedChannelsWithDetails.filter(row => !row.ping_role_id)
|
||||
- const pingRoles = [...guild.roles].filter(role => role.id !== guild_id).sort((a, b) => b.position - a.position)
|
||||
h3.mt32.fs-category#room-notifications Room notifications
|
||||
.s-card
|
||||
p.s-description.mt0 Choose which Discord role receives Matrix @room notifications
|
||||
each row in customPingRooms
|
||||
.d-flex.ai-center.g16.mb8
|
||||
label.s-label.fl-grow1(for="ping-role-" + row.channel.id)= "#" + row.channel.name
|
||||
form(method="post" action=rel("/api/room-ping-role"))
|
||||
input(type="hidden" name="guild_id" value=guild_id)
|
||||
input(type="hidden" name="channel_id" value=row.channel.id)
|
||||
.s-select
|
||||
select(name="ping_role_id" id="ping-role-" + row.channel.id onchange="this.form.requestSubmit()")
|
||||
if !pingRoles.some(role => role.id === row.ping_role_id)
|
||||
option(value=row.ping_role_id selected disabled) Deleted role (choose a replacement)
|
||||
each role in pingRoles
|
||||
option(value=role.id selected=row.ping_role_id === role.id)= "@" + role.name
|
||||
noscript
|
||||
button.s-btn.s-btn__outlined.mt8(type="submit") Save
|
||||
form(method="post" action=rel("/api/room-ping-role"))
|
||||
input(type="hidden" name="guild_id" value=guild_id)
|
||||
input(type="hidden" name="channel_id" value=row.channel.id)
|
||||
input(type="hidden" name="ping_role_id" value="")
|
||||
button.s-btn.s-btn__danger.s-btn__outlined(type="submit" aria-label="Remove custom role for #" + row.channel.name) Remove
|
||||
|
||||
if defaultPingRooms.length && pingRoles.length
|
||||
details.mt16
|
||||
summary.s-label.cursor-pointer Add custom role
|
||||
form.mt12(method="post" action=rel("/api/room-ping-role"))
|
||||
input(type="hidden" name="guild_id" value=guild_id)
|
||||
.d-grid.grid__2.g8(class="sm:grid__1")
|
||||
.wmn0
|
||||
label.s-label(for="ping-role-channel") Channel
|
||||
.s-select
|
||||
select.w100.box-border#ping-role-channel(name="channel_id" required)
|
||||
option(value="" selected disabled) Choose a channel
|
||||
each row in defaultPingRooms
|
||||
- const parent = discord.channels.get(row.channel.parent_id)
|
||||
option(value=row.channel.id)= "#" + row.channel.name + (parent ? " - " + parent.name : "")
|
||||
.wmn0
|
||||
label.s-label(for="ping-role-new") Notify role
|
||||
.s-select
|
||||
select.w100.box-border#ping-role-new(name="ping_role_id" required)
|
||||
option(value="" selected disabled) Choose a role
|
||||
each role in pingRoles
|
||||
option(value=role.id)= "@" + role.name
|
||||
button.s-btn.s-btn__filled.mt8(type="submit") Add
|
||||
|
||||
h3.fs-category.mt32 Auto-create
|
||||
.s-card.d-grid.px0
|
||||
form.d-flex.ai-center.g16
|
||||
|
||||
Reference in New Issue
Block a user