Add system console switch for enabling link previews (#5663)
Этот коммит содержится в:
коммит произвёл
Christopher Speller
родитель
f99658152a
Коммит
e87f5c6cf9
@@ -623,6 +623,10 @@ export function redirectUserToDefaultTeam() {
|
||||
|
||||
requestOpenGraphMetadata.openGraphMetadataOnGoingRequests = {}; // Format: {<url>: true}
|
||||
export function requestOpenGraphMetadata(url) {
|
||||
if (global.mm_config.EnableLinkPreviews !== 'true') {
|
||||
return;
|
||||
}
|
||||
|
||||
const onself = requestOpenGraphMetadata;
|
||||
|
||||
if (!onself.openGraphMetadataOnGoingRequests[url]) {
|
||||
|
||||
@@ -689,6 +689,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={
|
||||
|
||||
66
webapp/components/admin_console/link_previews_settings.jsx
Обычный файл
66
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>
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -53,14 +53,19 @@ export default class AdvancedSettingsDisplay extends React.Component {
|
||||
)
|
||||
};
|
||||
|
||||
const webrtcEnabled = global.mm_config.EnableWebrtc === 'true';
|
||||
const linkPreviewsEnabled = global.mm_config.EnableLinkPreviews === 'true';
|
||||
|
||||
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) {
|
||||
const webrtcEnabled = global.mm_config.EnableWebrtc === 'true';
|
||||
|
||||
if (!webrtcEnabled) {
|
||||
preReleaseFeaturesKeys = preReleaseFeaturesKeys.filter((f) => f !== 'WEBRTC_PREVIEW');
|
||||
}
|
||||
|
||||
for (const key of preReleaseFeaturesKeys) {
|
||||
const feature = PreReleaseFeatures[key];
|
||||
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
{
|
||||
"admin.customization.enableLinkPreviewsDesc": "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.",
|
||||
"admin.customization.enableLinkPreviewsTitle": "Enable Link Previews:",
|
||||
"admin.customization.linkPreviews": "Link Previews",
|
||||
"admin.sidebar.linkPreviews": "Link Previews",
|
||||
"multiselect.go": "Go",
|
||||
"multiselect.instructions": "Use up/down arrows to navigate and enter to select",
|
||||
"multiselect.placeholder": "Search and add members",
|
||||
|
||||
@@ -35,6 +35,7 @@ import StorageSettings from 'components/admin_console/storage_settings.jsx';
|
||||
import ImageSettings from 'components/admin_console/image_settings.jsx';
|
||||
import CustomBrandSettings from 'components/admin_console/custom_brand_settings.jsx';
|
||||
import CustomEmojiSettings from 'components/admin_console/custom_emoji_settings.jsx';
|
||||
import LinkPreviewsSettings from 'components/admin_console/link_previews_settings.jsx';
|
||||
import LegalAndSupportSettings from 'components/admin_console/legal_and_support_settings.jsx';
|
||||
import NativeAppLinkSettings from 'components/admin_console/native_app_link_settings.jsx';
|
||||
import ComplianceSettings from 'components/admin_console/compliance_settings.jsx';
|
||||
@@ -180,6 +181,10 @@ export default (
|
||||
path='custom_emoji'
|
||||
component={CustomEmojiSettings}
|
||||
/>
|
||||
<Route
|
||||
path='link_previews'
|
||||
component={LinkPreviewsSettings}
|
||||
/>
|
||||
<Route
|
||||
path='legal_and_support'
|
||||
component={LegalAndSupportSettings}
|
||||
|
||||
Ссылка в новой задаче
Block a user