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

View File

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

View File

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

View File

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

View File

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