Преглед изворни кода

feature: `enableCustomJs` toggle to allow loading ./custom-webui/custom.js (#379)

James Read пре 1 година
родитељ
комит
5b5fca0837
3 измењених фајлова са 10 додато и 0 уклоњено
  1. 2 0
      internal/config/config.go
  2. 2 0
      internal/httpservers/webuiServer.go
  3. 6 0
      webui.dev/main.js

+ 2 - 0
internal/config/config.go

@@ -103,6 +103,7 @@ type Config struct {
 	ShowFooter                      bool
 	ShowNavigation                  bool
 	ShowNewVersions                 bool
+	EnableCustomJs                  bool
 	AuthJwtCookieName               string
 	AuthJwtAud                      string
 	AuthJwtDomain                   string
@@ -165,6 +166,7 @@ func DefaultConfigWithBasePort(basePort int) *Config {
 	config.ShowFooter = true
 	config.ShowNavigation = true
 	config.ShowNewVersions = true
+	config.EnableCustomJs = false
 	config.ExternalRestAddress = "."
 	config.LogLevel = "INFO"
 	config.CheckForUpdates = false

+ 2 - 0
internal/httpservers/webuiServer.go

@@ -31,6 +31,7 @@ type webUISettings struct {
 	DefaultIconForBack     string
 	SshFoundKey            string
 	SshFoundConfig         string
+	EnableCustomJs         bool
 }
 
 func findWebuiDir() string {
@@ -115,6 +116,7 @@ func generateWebUISettings(w http.ResponseWriter, r *http.Request) {
 		DefaultIconForBack:     cfg.DefaultIconForBack,
 		SshFoundKey:            installationinfo.Runtime.SshFoundKey,
 		SshFoundConfig:         installationinfo.Runtime.SshFoundConfig,
+		EnableCustomJs:         cfg.EnableCustomJs,
 	})
 
 	w.Header().Add("Content-Type", "application/json")

+ 6 - 0
webui.dev/main.js

@@ -105,6 +105,12 @@ function processWebuiSettingsJson (settings) {
     document.querySelector('footer[title="footer"]').style.display = 'none'
   }
 
+  if (settings.EnableCustomJs) {
+    const script = document.createElement('script')
+    script.src = './custom-webui/custom.js'
+    document.head.appendChild(script)
+  }
+
   window.pageTitle = 'OliveTin'
 
   if (settings.PageTitle) {