summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoram Wilander <jwawilander@gmail.com>2018-07-05 10:23:55 -0400
committerChristopher Speller <crspeller@gmail.com>2018-07-05 07:23:55 -0700
commit7bfb5aec26c6bb8c49fa19e8347bc91acc86fe92 (patch)
tree6e62d8756c483e67611c9d66b10b0435c97f8bda
parent83a3ac089cff0d05559e6ba5c2c60b09f5cae176 (diff)
downloadchat-7bfb5aec26c6bb8c49fa19e8347bc91acc86fe92.tar.gz
chat-7bfb5aec26c6bb8c49fa19e8347bc91acc86fe92.tar.bz2
chat-7bfb5aec26c6bb8c49fa19e8347bc91acc86fe92.zip
Add back enable/disable WS events (#9052)
-rw-r--r--app/plugin.go12
-rw-r--r--app/plugin_install.go6
-rw-r--r--model/websocket_message.go4
3 files changed, 21 insertions, 1 deletions
diff --git a/app/plugin.go b/app/plugin.go
index af4bae649..d68579311 100644
--- a/app/plugin.go
+++ b/app/plugin.go
@@ -170,6 +170,12 @@ func (a *App) EnablePlugin(id string) *model.AppError {
cfg.PluginSettings.PluginStates[id] = &model.PluginState{Enable: true}
})
+ if manifest.HasClient() {
+ message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_PLUGIN_ENABLED, "", "", "", nil)
+ message.Add("manifest", manifest.ClientManifest())
+ a.Publish(message)
+ }
+
// This call will cause SyncPluginsActiveState to be called and the plugin to be activated
if err := a.SaveConfig(a.Config(), true); err != nil {
if err.Id == "ent.cluster.save_config.error" {
@@ -208,6 +214,12 @@ func (a *App) DisablePlugin(id string) *model.AppError {
cfg.PluginSettings.PluginStates[id] = &model.PluginState{Enable: false}
})
+ if manifest.HasClient() {
+ message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_PLUGIN_DISABLED, "", "", "", nil)
+ message.Add("manifest", manifest.ClientManifest())
+ a.Publish(message)
+ }
+
if err := a.SaveConfig(a.Config(), true); err != nil {
return model.NewAppError("DisablePlugin", "app.plugin.config.app_error", nil, err.Error(), http.StatusInternalServerError)
}
diff --git a/app/plugin_install.go b/app/plugin_install.go
index c03ad2108..e49f6f83e 100644
--- a/app/plugin_install.go
+++ b/app/plugin_install.go
@@ -108,6 +108,12 @@ func (a *App) removePlugin(id string) *model.AppError {
return model.NewAppError("removePlugin", "app.plugin.not_installed.app_error", nil, "", http.StatusBadRequest)
}
+ if a.Plugins.IsActive(id) && manifest.HasClient() {
+ message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_PLUGIN_DISABLED, "", "", "", nil)
+ message.Add("manifest", manifest.ClientManifest())
+ a.Publish(message)
+ }
+
a.Plugins.Deactivate(id)
err = os.RemoveAll(pluginPath)
diff --git a/model/websocket_message.go b/model/websocket_message.go
index cd249ff27..ea8872d76 100644
--- a/model/websocket_message.go
+++ b/model/websocket_message.go
@@ -44,7 +44,9 @@ const (
WEBSOCKET_EVENT_RESPONSE = "response"
WEBSOCKET_EVENT_EMOJI_ADDED = "emoji_added"
WEBSOCKET_EVENT_CHANNEL_VIEWED = "channel_viewed"
- WEBSOCKET_EVENT_PLUGIN_STATUSES_CHANGED = "plugin_statuses_changed" // EXPERIMENTAL - SUBJECT TO CHANGE
+ WEBSOCKET_EVENT_PLUGIN_STATUSES_CHANGED = "plugin_statuses_changed"
+ WEBSOCKET_EVENT_PLUGIN_ENABLED = "plugin_enabled"
+ WEBSOCKET_EVENT_PLUGIN_DISABLED = "plugin_disabled"
WEBSOCKET_EVENT_ROLE_UPDATED = "role_updated"
WEBSOCKET_EVENT_LICENSE_CHANGED = "license_changed"
WEBSOCKET_EVENT_CONFIG_CHANGED = "config_changed"