Files
mattermost/web/react/components/team_settings_modal.jsx

71 lines
2.9 KiB
React
Raw Normal View History

2015-06-14 23:53:32 -08:00
// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved.
// See License.txt for license information.
var SettingsSidebar = require('./settings_sidebar.jsx');
var TeamSettings = require('./team_settings.jsx');
2015-06-14 23:53:32 -08:00
module.exports = React.createClass({
2015-08-18 09:43:22 -04:00
displayName: 'Team Settings Modal',
propTypes: {
teamDisplayName: React.PropTypes.string.isRequired
},
2015-06-14 23:53:32 -08:00
componentDidMount: function() {
2015-08-18 09:43:22 -04:00
$('body').on('click', '.modal-back', function onClick() {
2015-06-14 23:53:32 -08:00
$(this).closest('.modal-dialog').removeClass('display--content');
});
2015-08-18 09:43:22 -04:00
$('body').on('click', '.modal-header .close', function onClick() {
setTimeout(function removeContent() {
2015-06-14 23:53:32 -08:00
$('.modal-dialog.display--content').removeClass('display--content');
}, 500);
});
},
updateTab: function(tab) {
this.setState({activeTab: tab, activeSection: ''});
2015-06-14 23:53:32 -08:00
},
updateSection: function(section) {
2015-08-18 09:43:22 -04:00
this.setState({activeSection: section});
2015-06-14 23:53:32 -08:00
},
getInitialState: function() {
return {activeTab: 'general', activeSection: ''};
2015-06-14 23:53:32 -08:00
},
render: function() {
var tabs = [];
tabs.push({name: 'general', uiName: 'General', icon: 'glyphicon glyphicon-cog'});
2015-08-18 09:43:22 -04:00
tabs.push({name: 'import', uiName: 'Import', icon: 'glyphicon glyphicon-upload'});
tabs.push({name: 'feature', uiName: 'Advanced', icon: 'glyphicon glyphicon-wrench'});
2015-06-14 23:53:32 -08:00
return (
2015-08-18 09:43:22 -04:00
<div className='modal fade' ref='modal' id='team_settings' role='dialog' tabIndex='-1' aria-hidden='true'>
<div className='modal-dialog settings-modal'>
<div className='modal-content'>
<div className='modal-header'>
<button type='button' className='close' data-dismiss='modal' aria-label='Close'><span aria-hidden='true'>&times;</span></button>
<h4 className='modal-title' ref='title'>Team Settings</h4>
2015-06-14 23:53:32 -08:00
</div>
2015-08-18 09:43:22 -04:00
<div className='modal-body'>
<div className='settings-table'>
<div className='settings-links'>
2015-06-14 23:53:32 -08:00
<SettingsSidebar
tabs={tabs}
2015-08-18 09:43:22 -04:00
activeTab={this.state.activeTab}
2015-06-14 23:53:32 -08:00
updateTab={this.updateTab}
/>
</div>
2015-08-18 09:43:22 -04:00
<div className='settings-content minimize-settings'>
<TeamSettings
2015-08-18 09:43:22 -04:00
activeTab={this.state.activeTab}
activeSection={this.state.activeSection}
2015-06-14 23:53:32 -08:00
updateSection={this.updateSection}
teamDisplayName={this.props.teamDisplayName}
2015-06-14 23:53:32 -08:00
/>
</div>
</div>
</div>
</div>
</div>
</div>
);
}
});