From fd53e3b7868234af328cd73150318fc8e7a26b89 Mon Sep 17 00:00:00 2001 From: Harrison Healey Date: Tue, 17 May 2016 07:21:39 -0400 Subject: PLT-2257 Reorganized System Console (#3003) * Reorganized system console * Fixed the names of some components * Fixed timestamp for BrandImageSetting * Fixed merge issues * Updated push notification settings to match master branch * Removed top level setting pages and moved enable Gitlab/LDAP settings onto their respective pages * Re-added restrictDirectMessage setting to system console * Re-added email connection test and fixed some margins * Fixed ESLint errors * Renamed Authentication > Onboarding to Authentication > Email in the system console * Renamed Customization > Whitelabeling to Customization > Custom Branding in System Console * Re-added EnableOpenServer to system console --- .../components/admin_console/generated_setting.jsx | 97 ++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 webapp/components/admin_console/generated_setting.jsx (limited to 'webapp/components/admin_console/generated_setting.jsx') diff --git a/webapp/components/admin_console/generated_setting.jsx b/webapp/components/admin_console/generated_setting.jsx new file mode 100644 index 000000000..a83407cb6 --- /dev/null +++ b/webapp/components/admin_console/generated_setting.jsx @@ -0,0 +1,97 @@ +// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import React from 'react'; + +import crypto from 'crypto'; + +import {FormattedMessage} from 'react-intl'; + +export default class GeneratedSetting extends React.Component { + static get propTypes() { + return { + id: React.PropTypes.string.isRequired, + label: React.PropTypes.node.isRequired, + placeholder: React.PropTypes.string, + value: React.PropTypes.string.isRequired, + onChange: React.PropTypes.func.isRequired, + disabled: React.PropTypes.bool.isRequired, + disabledText: React.PropTypes.node, + helpText: React.PropTypes.node.isRequired, + regenerateText: React.PropTypes.node + }; + } + + static get defaultProps() { + return { + disabled: false, + regenerateText: ( + + ) + }; + } + + constructor(props) { + super(props); + + this.handleChange = this.handleChange.bind(this); + this.regenerate = this.regenerate.bind(this); + } + + handleChange(e) { + this.props.onChange(this.props.id, e.target.value === 'true'); + } + + regenerate(e) { + e.preventDefault(); + + this.props.onChange(this.props.id, crypto.randomBytes(256).toString('base64').substring(0, 32)); + } + + render() { + let disabledText = null; + if (this.props.disabled && this.props.disabledText) { + disabledText = ( +
+ {this.props.disabledText} +
+ ); + } + + return ( +
+ +
+ + {disabledText} +
+ {this.props.helpText} +
+ +
+
+ ); + } +} -- cgit v1.2.3-1-g7c22