diff options
Diffstat (limited to 'webapp/components')
3 files changed, 87 insertions, 6 deletions
diff --git a/webapp/components/admin_console/admin_sidebar.jsx b/webapp/components/admin_console/admin_sidebar.jsx index c53836ef6..2f299bdeb 100644 --- a/webapp/components/admin_console/admin_sidebar.jsx +++ b/webapp/components/admin_console/admin_sidebar.jsx @@ -690,6 +690,16 @@ export default class AdminSidebar extends React.Component { } /> <AdminSidebarSection + name='link_previews' + title={ + <FormattedMessage + id='admin.sidebar.linkPreviews' + defaultMessage='Link Previews' + /> + + } + /> + <AdminSidebarSection name='legal_and_support' title={ <FormattedMessage diff --git a/webapp/components/admin_console/link_previews_settings.jsx b/webapp/components/admin_console/link_previews_settings.jsx new file mode 100644 index 000000000..aea8a56f1 --- /dev/null +++ b/webapp/components/admin_console/link_previews_settings.jsx @@ -0,0 +1,66 @@ +// Copyright (c) 2017 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import React from 'react'; + +import AdminSettings from './admin_settings.jsx'; +import BooleanSetting from './boolean_setting.jsx'; +import {FormattedMessage} from 'react-intl'; +import SettingsGroup from './settings_group.jsx'; + +export default class LinkPreviewsSettings extends AdminSettings { + constructor(props) { + super(props); + + this.getConfigFromState = this.getConfigFromState.bind(this); + + this.renderSettings = this.renderSettings.bind(this); + } + + getConfigFromState(config) { + config.ServiceSettings.EnableLinkPreviews = this.state.enableLinkPreviews; + + return config; + } + + getStateFromConfig(config) { + return { + enableLinkPreviews: config.ServiceSettings.EnableLinkPreviews + }; + } + + renderTitle() { + return ( + <h3> + <FormattedMessage + id='admin.customization.linkPreviews' + defaultMessage='Link Previews' + /> + </h3> + ); + } + + renderSettings() { + return ( + <SettingsGroup> + <BooleanSetting + id='enableLinkPreviews' + label={ + <FormattedMessage + id='admin.customization.enableLinkPreviewsTitle' + defaultMessage='Enable Link Previews:' + /> + } + helpText={ + <FormattedMessage + id='admin.customization.enableLinkPreviewsDesc' + defaultMessage='Enable users to display a preview of website content below the message, if available. When true, website previews can be enabled from Account Settings > Advanced > Preview pre-release features.' + /> + } + value={this.state.enableLinkPreviews} + onChange={this.handleChange} + /> + </SettingsGroup> + ); + } +} diff --git a/webapp/components/user_settings/user_settings_advanced.jsx b/webapp/components/user_settings/user_settings_advanced.jsx index 6e3d488e1..3459af8b3 100644 --- a/webapp/components/user_settings/user_settings_advanced.jsx +++ b/webapp/components/user_settings/user_settings_advanced.jsx @@ -53,14 +53,19 @@ export default class AdvancedSettingsDisplay extends React.Component { ) }; - let enabledFeatures = 0; - for (const [name, value] of advancedSettings) { - const webrtcEnabled = global.mm_config.EnableWebrtc === 'true'; + const webrtcEnabled = global.mm_config.EnableWebrtc === 'true'; + const linkPreviewsEnabled = global.mm_config.EnableLinkPreviews === 'true'; - if (!webrtcEnabled) { - preReleaseFeaturesKeys = preReleaseFeaturesKeys.filter((f) => f !== 'WEBRTC_PREVIEW'); - } + if (!webrtcEnabled) { + preReleaseFeaturesKeys = preReleaseFeaturesKeys.filter((f) => f !== 'WEBRTC_PREVIEW'); + } + if (!linkPreviewsEnabled) { + preReleaseFeaturesKeys = preReleaseFeaturesKeys.filter((f) => f !== 'EMBED_PREVIEW'); + } + + let enabledFeatures = 0; + for (const [name, value] of advancedSettings) { for (const key of preReleaseFeaturesKeys) { const feature = PreReleaseFeatures[key]; |