From 3b09a9dd4783f18ab3b416e2357f1010c9423850 Mon Sep 17 00:00:00 2001 From: "Felipe M." Date: Mon, 23 Jun 2025 11:06:17 +0200 Subject: [PATCH] feat: allow enabling all plugins into a channel --- internal/admin/admin.go | 7 + internal/admin/templates/channel_detail.html | 9 + internal/app/app.go | 28 +- internal/db/db.go | 43 ++- internal/db/db_test.go | 203 ++++++++++++ internal/migration/migrations.go | 58 ++++ internal/model/message.go | 6 + internal/model/message_test.go | 234 +++++++++++++ internal/plugin/plugin.go | 13 + internal/plugin/plugin_test.go | 331 +++++++++++++++++++ 10 files changed, 915 insertions(+), 17 deletions(-) create mode 100644 internal/db/db_test.go create mode 100644 internal/model/message_test.go create mode 100644 internal/plugin/plugin_test.go diff --git a/internal/admin/admin.go b/internal/admin/admin.go index cfa2595..abefb72 100644 --- a/internal/admin/admin.go +++ b/internal/admin/admin.go @@ -564,6 +564,13 @@ func (a *Admin) handleChannelDetail(w http.ResponseWriter, r *http.Request) { return } + // Update enable_all_plugins + enableAllPlugins := r.FormValue("enable_all_plugins") == "true" + if err := a.db.UpdateChannelEnableAllPlugins(id, enableAllPlugins); err != nil { + http.Error(w, "Failed to update channel enable all plugins", http.StatusInternalServerError) + return + } + a.addFlash(w, r, "Channel updated", "success") http.Redirect(w, r, "/admin/channels/"+channelID, http.StatusSeeOther) return diff --git a/internal/admin/templates/channel_detail.html b/internal/admin/templates/channel_detail.html index 78909df..9f9a78d 100644 --- a/internal/admin/templates/channel_detail.html +++ b/internal/admin/templates/channel_detail.html @@ -27,6 +27,15 @@ +
+ +
+ When enabled, all registered plugins will be automatically enabled for this channel. Individual plugin settings will be ignored. +
+