diff --git a/changelog/unreleased/web-embed-mode-config.md b/changelog/unreleased/web-embed-mode-config.md new file mode 100644 index 00000000000..580ad220740 --- /dev/null +++ b/changelog/unreleased/web-embed-mode-config.md @@ -0,0 +1,9 @@ +Enhancement: Configs for Web embed mode + +Two new configs for the Web embed mode have been added: + +* `mode` Defines the mode in which Web will be running. +* `embedTarget` Defines how Web is being integrated when running in embed mode. + +https://github.com/owncloud/ocis/pull/7670 +https://github.com/owncloud/web/issues/9768 diff --git a/services/web/README.md b/services/web/README.md index ae2067dd921..ad459c31c0a 100644 --- a/services/web/README.md +++ b/services/web/README.md @@ -20,3 +20,7 @@ Beside theming, the behavior of the web UI can be configured via options. See th ### Web UI Config File When defined via the `WEB_UI_CONFIG_FILE` environment variable, the configuration of the web UI can be made with a [json based](https://github.com/owncloud/web/tree/master/config) file. + +### Embedding Web + +Web can be consumed by another application in a stripped down version called “Embed mode”. This mode is supposed to be used in the context of selecting or sharing resources. For more details see the developer documentation [ownCloud Web / Embed Mode](https://owncloud.dev/clients/web/embed-mode/). See the environment variables: `WEB_OPTION_MODE` and `WEB_OPTION_EMBED_TARGET` to configure the embedded mode. diff --git a/services/web/pkg/config/options.go b/services/web/pkg/config/options.go index cf0a8cd7194..09706f43943 100644 --- a/services/web/pkg/config/options.go +++ b/services/web/pkg/config/options.go @@ -26,7 +26,10 @@ type Options struct { AccessDeniedHelpURL string `json:"accessDeniedHelpUrl,omitempty" yaml:"accessDeniedHelpUrl" env:"WEB_OPTION_ACCESS_DENIED_HELP_URL" desc:"Specifies the target URL valid for the ocis instance for the generic logged out / access denied page."` TokenStorageLocal bool `json:"tokenStorageLocal" yaml:"tokenStorageLocal" env:"WEB_OPTION_TOKEN_STORAGE_LOCAL" desc:"Specifies whether the access token will be stored in the local storage when set to 'true' or in the session storage when set to 'false'. If stored in the local storage, login state will be persisted across multiple browser tabs, means no additional logins are required. Defaults to 'true'."` DisabledExtensions []string `json:"disabledExtensions,omitempty" yaml:"disabledExtensions" env:"WEB_OPTION_DISABLED_EXTENSIONS" desc:"Disable specific Web extensions identified by their ID. The ID can e.g. be taken from the 'index.ts' file of the web extension. Multiple ID's can be written as comma separated list like: 'com.github.owncloud.web.files.search','com.github.owncloud.web.files.print'. See the Environment Variable Types documentation for details."` + Mode string `json:"mode,omitempty" yaml:"mode" env:"WEB_OPTION_MODE" desc:"Defines the mode in which Web will be running. Currently, the only supported options are '' (empty) and 'embed'. With '' which is the default, Web will run as usual with all functionality enabled. 'embed' will enable a stripped down version of Web with reduced functionality used to integrate Web into other applications like via iFrame. See the documnetation for more details."` + EmbedTarget string `json:"embedTarget,omitempty" yaml:"embedTarget" env:"WEB_OPTION_EMBED_TARGET" desc:"Defines how Web is being integrated when running in 'embed' mode. Currently, the only supported options are '' (empty) and 'location'. With '' which is the default, Web will run regular as defined via the 'mode' config option. With 'location', Web will run embedded as location picker. Resource selection will be disabled and the selected resources array always includes the current folder as the only item. See the documnetation for more details."` } + // AccountEditLink are the AccountEditLink options type AccountEditLink struct { Href string `json:"href,omitempty" yaml:"href" env:"WEB_OPTION_ACCOUNT_EDIT_LINK_HREF" desc:"Set a different target URL for the edit link. Make sure to prepend it with 'http(s)://'."`