summaryrefslogtreecommitdiffstats
path: root/webapp/components
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/components')
-rw-r--r--webapp/components/admin_console/admin_sidebar.jsx10
-rw-r--r--webapp/components/admin_console/link_previews_settings.jsx66
-rw-r--r--webapp/components/user_settings/user_settings_advanced.jsx17
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];