From e5148d40862f3c1fa80a3ac45c8993d2e922e506 Mon Sep 17 00:00:00 2001 From: rxdn <29165304+rxdn@users.noreply.github.com> Date: Fri, 23 Dec 2022 23:11:53 +0000 Subject: [PATCH] Add option to disable panels --- .../api/panel/multipanelmessagedata.go | 1 + app/http/endpoints/api/panel/panelcreate.go | 25 ++++++++++-------- .../endpoints/api/panel/panelmessagedata.go | 26 ++++++++++--------- app/http/endpoints/api/panel/panelupdate.go | 4 ++- .../manage/PanelCreationForm.svelte | 13 ++++++++++ .../components/manage/PanelEditModal.svelte | 1 + go.mod | 2 +- go.sum | 2 ++ 8 files changed, 49 insertions(+), 25 deletions(-) diff --git a/app/http/endpoints/api/panel/multipanelmessagedata.go b/app/http/endpoints/api/panel/multipanelmessagedata.go index 221a8cb..4cf8b1e 100644 --- a/app/http/endpoints/api/panel/multipanelmessagedata.go +++ b/app/http/endpoints/api/panel/multipanelmessagedata.go @@ -90,6 +90,7 @@ func (d *multiPanelMessageData) send(ctx *botcontext.BotContext, panels []databa CustomId: panel.CustomId, Style: component.ButtonStyle(panel.ButtonStyle), Emoji: emoji, + Disabled: panel.Disabled, }) } diff --git a/app/http/endpoints/api/panel/panelcreate.go b/app/http/endpoints/api/panel/panelcreate.go index aa87e25..074e2bd 100644 --- a/app/http/endpoints/api/panel/panelcreate.go +++ b/app/http/endpoints/api/panel/panelcreate.go @@ -45,21 +45,23 @@ type panelBody struct { ButtonLabel string `json:"button_label"` FormId *int `json:"form_id"` NamingScheme *string `json:"naming_scheme"` + Disabled bool `json:"disabled"` } func (p *panelBody) IntoPanelMessageData(customId string, isPremium bool) panelMessageData { return panelMessageData{ - ChannelId: p.ChannelId, - Title: p.Title, - Content: p.Content, - CustomId: customId, - Colour: int(p.Colour), - ImageUrl: p.ImageUrl, - ThumbnailUrl: p.ThumbnailUrl, - Emoji: p.getEmoji(), - ButtonStyle: p.ButtonStyle, - ButtonLabel: p.ButtonLabel, - IsPremium: isPremium, + ChannelId: p.ChannelId, + Title: p.Title, + Content: p.Content, + CustomId: customId, + Colour: int(p.Colour), + ImageUrl: p.ImageUrl, + ThumbnailUrl: p.ThumbnailUrl, + Emoji: p.getEmoji(), + ButtonStyle: p.ButtonStyle, + ButtonLabel: p.ButtonLabel, + ButtonDisabled: p.Disabled, + IsPremium: isPremium, } } @@ -171,6 +173,7 @@ func CreatePanel(ctx *gin.Context) { ButtonLabel: data.ButtonLabel, FormId: data.FormId, NamingScheme: data.NamingScheme, + Disabled: data.Disabled, } panelId, err := dbclient.Client.Panel.Create(panel) diff --git a/app/http/endpoints/api/panel/panelmessagedata.go b/app/http/endpoints/api/panel/panelmessagedata.go index 749015e..8fed239 100644 --- a/app/http/endpoints/api/panel/panelmessagedata.go +++ b/app/http/endpoints/api/panel/panelmessagedata.go @@ -19,6 +19,7 @@ type panelMessageData struct { Emoji *emoji.Emoji ButtonStyle component.ButtonStyle ButtonLabel string + ButtonDisabled bool IsPremium bool } @@ -38,17 +39,18 @@ func panelIntoMessageData(panel database.Panel, isPremium bool) panelMessageData } return panelMessageData{ - ChannelId: panel.ChannelId, - Title: panel.Title, - Content: panel.Content, - CustomId: panel.CustomId, - Colour: int(panel.Colour), - ImageUrl: panel.ImageUrl, - ThumbnailUrl: panel.ThumbnailUrl, - Emoji: emote, - ButtonStyle: component.ButtonStyle(panel.ButtonStyle), - ButtonLabel: panel.ButtonLabel, - IsPremium: isPremium, + ChannelId: panel.ChannelId, + Title: panel.Title, + Content: panel.Content, + CustomId: panel.CustomId, + Colour: int(panel.Colour), + ImageUrl: panel.ImageUrl, + ThumbnailUrl: panel.ThumbnailUrl, + Emoji: emote, + ButtonStyle: component.ButtonStyle(panel.ButtonStyle), + ButtonLabel: panel.ButtonLabel, + ButtonDisabled: panel.Disabled, + IsPremium: isPremium, } } @@ -79,7 +81,7 @@ func (p *panelMessageData) send(ctx *botcontext.BotContext) (uint64, error) { Style: p.ButtonStyle, Emoji: p.Emoji, Url: nil, - Disabled: false, + Disabled: p.ButtonDisabled, })), }, } diff --git a/app/http/endpoints/api/panel/panelupdate.go b/app/http/endpoints/api/panel/panelupdate.go index 5cce52f..4dec7a9 100644 --- a/app/http/endpoints/api/panel/panelupdate.go +++ b/app/http/endpoints/api/panel/panelupdate.go @@ -87,7 +87,8 @@ func UpdatePanel(ctx *gin.Context) { existing.ImageUrl != data.ImageUrl || existing.ThumbnailUrl != data.ThumbnailUrl || component.ButtonStyle(existing.ButtonStyle) != data.ButtonStyle || - existing.ButtonLabel != data.ButtonLabel + existing.ButtonLabel != data.ButtonLabel || + existing.Disabled != data.Disabled newMessageId := existing.MessageId @@ -168,6 +169,7 @@ func UpdatePanel(ctx *gin.Context) { FormId: data.FormId, NamingScheme: data.NamingScheme, ForceDisabled: existing.ForceDisabled, + Disabled: data.Disabled, } if err = dbclient.Client.Panel.Update(panel); err != nil { diff --git a/frontend/src/components/manage/PanelCreationForm.svelte b/frontend/src/components/manage/PanelCreationForm.svelte index 2efe008..4cd46fa 100644 --- a/frontend/src/components/manage/PanelCreationForm.svelte +++ b/frontend/src/components/manage/PanelCreationForm.svelte @@ -136,6 +136,18 @@ +
+
+
+
+ +
+ {#if data.disabled} + You will be unable to open any tickets with this panel + {/if} +
+
+
@@ -156,6 +168,7 @@ import Select from 'svelte-select'; import Dropdown from "../form/Dropdown.svelte"; import Toggle from "svelte-toggle"; + import Checkbox from "../form/Checkbox.svelte"; export let guildId; export let seedDefault = true; diff --git a/frontend/src/components/manage/PanelEditModal.svelte b/frontend/src/components/manage/PanelEditModal.svelte index e3ebc5e..8757942 100644 --- a/frontend/src/components/manage/PanelEditModal.svelte +++ b/frontend/src/components/manage/PanelEditModal.svelte @@ -75,6 +75,7 @@ display: flex; width: 75%; margin: 10% auto auto auto; + padding-bottom: 5%; } @media only screen and (max-width: 1280px) { diff --git a/go.mod b/go.mod index bc0a184..9007082 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/BurntSushi/toml v0.3.1 github.com/TicketsBot/archiverclient v0.0.0-20220326163414-558fd52746dc github.com/TicketsBot/common v0.0.0-20220703211704-f792aa9f0c42 - github.com/TicketsBot/database v0.0.0-20221213140509-14ca97c65cbf + github.com/TicketsBot/database v0.0.0-20221223231047-b0d3d36c563b github.com/TicketsBot/logarchiver v0.0.0-20220326162808-cdf0310f5e1c github.com/TicketsBot/worker v0.0.0-20220830131837-12d85aca5c71 github.com/apex/log v1.1.2 diff --git a/go.sum b/go.sum index 599fc27..235482e 100644 --- a/go.sum +++ b/go.sum @@ -43,6 +43,8 @@ github.com/TicketsBot/database v0.0.0-20220830131231-b5540b57f6cb h1:mXBn09KBzbV github.com/TicketsBot/database v0.0.0-20220830131231-b5540b57f6cb/go.mod h1:gAtOoQKZfCkQ4AoNWQUSl51Fnlqk+odzD/hZ1e1sXyI= github.com/TicketsBot/database v0.0.0-20221213140509-14ca97c65cbf h1:85dMD4l9KoOolfkCi32FYJ8A+rsCFJW1nls3ZNNFIaA= github.com/TicketsBot/database v0.0.0-20221213140509-14ca97c65cbf/go.mod h1:gAtOoQKZfCkQ4AoNWQUSl51Fnlqk+odzD/hZ1e1sXyI= +github.com/TicketsBot/database v0.0.0-20221223231047-b0d3d36c563b h1:ZlPTCuJVEjvt6Rdz1mUgkJUVMj8XrLOwrbh05vcl1KI= +github.com/TicketsBot/database v0.0.0-20221223231047-b0d3d36c563b/go.mod h1:gAtOoQKZfCkQ4AoNWQUSl51Fnlqk+odzD/hZ1e1sXyI= github.com/TicketsBot/logarchiver v0.0.0-20220326162808-cdf0310f5e1c h1:OqGjFH6mbE6gd+NqI2ARJdtH3UUvhiAkD0r0fhGJK2s= github.com/TicketsBot/logarchiver v0.0.0-20220326162808-cdf0310f5e1c/go.mod h1:jgi2OXQKsd5nUnTIRkwvPmeuD/i7OhN68LKMssuQY1c= github.com/TicketsBot/ttlcache v1.6.1-0.20200405150101-acc18e37b261 h1:NHD5GB6cjlkpZFjC76Yli2S63/J2nhr8MuE6KlYJpQM=