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 @@ +