diff --git a/deployments/examples/ocis_hello/config/ocis/web-config.dist.json b/deployments/examples/ocis_hello/config/ocis/web-config.dist.json index f8dc0ab6f9..1a8b7f8b85 100644 --- a/deployments/examples/ocis_hello/config/ocis/web-config.dist.json +++ b/deployments/examples/ocis_hello/config/ocis/web-config.dist.json @@ -1,6 +1,6 @@ { "server": "https://ocis.owncloud.test", - "theme": "owncloud", + "theme": "https://ocis.owncloud.test/themes/owncloud/theme.json", "version": "0.1.0", "openIdConnect": { "metadata_url": "https://ocis.owncloud.test/.well-known/openid-configuration", diff --git a/tests/config/drone/ocis-config.json b/tests/config/drone/ocis-config.json index a11c3b72fd..86a064b5c4 100644 --- a/tests/config/drone/ocis-config.json +++ b/tests/config/drone/ocis-config.json @@ -1,6 +1,6 @@ { "server": "https://ocis-server:9200", - "theme": "owncloud", + "theme": "https://ocis-server:9200/themes/owncloud/theme.json", "version": "0.1.0", "openIdConnect": { "metadata_url": "https://ocis-server:9200/.well-known/openid-configuration", diff --git a/web/pkg/config/config.go b/web/pkg/config/config.go index 4ea408ec2f..76a1c085a5 100644 --- a/web/pkg/config/config.go +++ b/web/pkg/config/config.go @@ -43,6 +43,8 @@ type Asset struct { // WebConfig defines the available web configuration for a dynamically rendered config.json. type WebConfig struct { Server string `json:"server,omitempty"` + ThemeServer string `json:"omit"` // only used to build Theme + ThemePath string `json:"omit"` // only used to build Theme Theme string `json:"theme,omitempty"` Version string `json:"version,omitempty"` // TODO what is version used for? OpenIDConnect OIDC `json:"openIdConnect,omitempty"` diff --git a/web/pkg/flagset/flagset.go b/web/pkg/flagset/flagset.go index 678e8dad84..b72ccd9546 100644 --- a/web/pkg/flagset/flagset.go +++ b/web/pkg/flagset/flagset.go @@ -164,16 +164,23 @@ func ServerWithConfig(cfg *config.Config) []cli.Flag { &cli.StringFlag{ Name: "web-config-server", Value: flags.OverrideDefaultString(cfg.Web.Config.Server, "https://localhost:9200"), - Usage: "Server URL", + Usage: "Configuration server URL", EnvVars: []string{"WEB_UI_CONFIG_SERVER", "OCIS_URL"}, // WEB_UI_CONFIG_SERVER takes precedence over OCIS_URL Destination: &cfg.Web.Config.Server, }, + &cli.StringFlag{ + Name: "web-theme-server", + Value: flags.OverrideDefaultString(cfg.Web.Config.ThemeServer, "https://localhost:9200"), + Usage: "Theme server URL", + EnvVars: []string{"WEB_UI_THEME_SERVER", "OCIS_URL"}, // WEB_UI_THEME_SERVER takes precedence over OCIS_URL + Destination: &cfg.Web.Config.ThemeServer, + }, &cli.StringFlag{ Name: "web-config-theme", - Value: flags.OverrideDefaultString(cfg.Web.Config.Theme, "owncloud"), - Usage: "Theme", - EnvVars: []string{"WEB_UI_CONFIG_THEME"}, - Destination: &cfg.Web.Config.Theme, + Value: flags.OverrideDefaultString(cfg.Web.Config.ThemePath, "/themes/owncloud/theme.json"), + Usage: "Theme path on the theme server", + EnvVars: []string{"WEB_UI_THEME_PATH"}, + Destination: &cfg.Web.Config.ThemePath, }, &cli.StringFlag{ Name: "web-config-version", diff --git a/web/pkg/service/v0/service.go b/web/pkg/service/v0/service.go index 413e2ffcb2..7a8a32e530 100644 --- a/web/pkg/service/v0/service.go +++ b/web/pkg/service/v0/service.go @@ -4,6 +4,7 @@ import ( "encoding/json" "io/ioutil" "net/http" + "net/url" "os" "strings" "time" @@ -69,6 +70,13 @@ func (p Web) getPayload() (payload []byte, err error) { p.config.Web.Config.Options["hideSearchBar"] = true } + // build theme url + if themeServer, err := url.Parse(p.config.Web.Config.ThemeServer); err == nil { + p.config.Web.Config.Theme = themeServer.String() + p.config.Web.Config.ThemePath + } else { + p.config.Web.Config.Theme = p.config.Web.Config.ThemePath + } + if p.config.Web.Config.ExternalApps == nil { p.config.Web.Config.ExternalApps = []config.ExternalApp{ {