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
Этот коммит содержится в:
коммит произвёл
Christopher Speller
родитель
5f5f813387
Коммит
fd53e3b786
97
webapp/components/admin_console/generated_setting.jsx
Обычный файл
97
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: (
|
||||
<FormattedMessage
|
||||
id='admin.email.regenerate'
|
||||
defaultMessage='Re-Generate'
|
||||
/>
|
||||
)
|
||||
};
|
||||
}
|
||||
|
||||
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 = (
|
||||
<div className='admin-console__disabled-text'>
|
||||
{this.props.disabledText}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<div className='form-group'>
|
||||
<label
|
||||
className='control-label col-sm-4'
|
||||
htmlFor={this.props.id}
|
||||
>
|
||||
{this.props.label}
|
||||
</label>
|
||||
<div className='col-sm-8'>
|
||||
<input
|
||||
type='text'
|
||||
className='form-control'
|
||||
id={this.props.id}
|
||||
placeholder={this.props.placeholder}
|
||||
value={this.props.value}
|
||||
onChange={this.handleChange}
|
||||
disabled={this.props.disabled}
|
||||
/>
|
||||
{disabledText}
|
||||
<div className='help-text'>
|
||||
{this.props.helpText}
|
||||
</div>
|
||||
<button
|
||||
className='btn btn-default'
|
||||
onClick={this.regenerate}
|
||||
disabled={this.props.disabled}
|
||||
>
|
||||
{this.props.regenerateText}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
Ссылка в новой задаче
Block a user