Add Menu bar option to add a new team

This commit is contained in:
Jonas Schwabe
2017-01-30 22:16:16 +01:00
parent 872959af97
commit d63fdccb00
5 changed files with 34 additions and 14 deletions

View File

@@ -130,6 +130,10 @@ const MainPage = React.createClass({
mattermost.goForward();
}
});
ipcRenderer.on('add-server', () => {
this.addServer();
});
},
componentDidUpdate(prevProps, prevState) {
if (prevState.key !== this.state.key) { // i.e. When tab has been changed
@@ -240,7 +244,7 @@ const MainPage = React.createClass({
this.setState({targetURL});
}
},
addTeam() {
addServer() {
this.setState({
showNewTeamModal: true
});
@@ -261,7 +265,7 @@ const MainPage = React.createClass({
mentionAtActiveCounts={this.state.mentionAtActiveCounts}
activeKey={this.state.key}
onSelect={this.handleSelect}
onAddTeam={this.addTeam}
onAddServer={this.addServer}
/>
</Row>
);

View File

@@ -45,6 +45,11 @@ const SettingsPage = React.createClass({
});
});
}
ipcRenderer.on('add-server', () => {
this.setState({
showAddTeamForm: true
});
});
},
handleTeamsChange(teams) {
this.setState({
@@ -161,7 +166,7 @@ const SettingsPage = React.createClass({
});
},
addTeam(team) {
addServer(team) {
var teams = this.state.teams;
teams.push(team);
this.setState({
@@ -179,7 +184,7 @@ const SettingsPage = React.createClass({
toggleAddTeamForm={this.toggleShowTeamForm}
onTeamsChange={this.handleTeamsChange}
updateTeam={this.updateTeam}
addTeam={this.addTeam}
addServer={this.addServer}
/>
</Col>
</Row>

View File

@@ -84,7 +84,7 @@ class TabBar extends React.Component {
return (
<Button
id='tabBarAddNewTeam'
onClick={this.props.onAddTeam}
onClick={this.props.onAddServer}
bsStyle='tabButton'
>
{'+'}
@@ -98,7 +98,7 @@ TabBar.propTypes = {
id: React.PropTypes.string,
onSelect: React.PropTypes.func,
teams: React.PropTypes.array,
onAddTeam: React.PropTypes.func
onAddServer: React.PropTypes.func
};
module.exports = TabBar;

View File

@@ -9,8 +9,9 @@ const TeamList = React.createClass({
onTeamsChange: React.PropTypes.func,
showAddTeamForm: React.PropTypes.bool,
teams: React.PropTypes.array,
addTeam: React.PropTypes.func,
updateTeam: React.PropTypes.func
addServer: React.PropTypes.func,
updateTeam: React.PropTypes.func,
toggleAddTeamForm: React.PropTypes.func
},
getInitialState() {
@@ -94,24 +95,24 @@ const TeamList = React.createClass({
);
});
var addTeamForm;
var addServerForm;
if (this.props.showAddTeamForm || this.state.showEditTeamForm) {
addTeamForm = (
addServerForm = (
<NewTeamModal
onClose={() => {
this.setState({
showNewTeamModal: false,
showEditTeamForm: false,
team: {
name: '',
url: '',
index: false
}
});
this.props.toggleAddTeamForm();
}}
onSave={(newTeam) => {
if (this.props.showAddTeamForm) {
this.props.addTeam(newTeam);
this.props.addServer(newTeam);
} else {
this.props.updateTeam(newTeam.index, newTeam);
}
@@ -131,7 +132,7 @@ const TeamList = React.createClass({
team={this.state.team}
/>);
} else {
addTeamForm = '';
addServerForm = '';
}
const removeServer = this.props.teams[this.state.indexToRemoveServer];
@@ -151,7 +152,7 @@ const TeamList = React.createClass({
return (
<ListGroup className='teamList'>
{ teamNodes }
{ addTeamForm }
{ addServerForm }
{ removeServerModal}
</ListGroup>
);

View File

@@ -27,6 +27,11 @@ function createTemplate(mainWindow, config) {
click() {
mainWindow.loadURL('file://' + __dirname + '/browser/settings.html');
}
}, {
label: 'Sign in to Another Server',
click() {
mainWindow.webContents.send('add-server');
}
}, separatorItem, {
role: 'hide'
}, {
@@ -41,6 +46,11 @@ function createTemplate(mainWindow, config) {
click() {
mainWindow.loadURL('file://' + __dirname + '/browser/settings.html');
}
}, {
label: 'Sign in to Another Server',
click() {
mainWindow.webContents.send('add-server');
}
}, separatorItem, {
role: 'quit',
accelerator: 'CmdOrCtrl+Q',