diff --git a/src/browser/settings.jsx b/src/browser/settings.jsx
index d509ab3d..3c4595f3 100644
--- a/src/browser/settings.jsx
+++ b/src/browser/settings.jsx
@@ -39,8 +39,10 @@ var SettingsPage = React.createClass({
this.setState({
teams: teams
});
+
+ this.handleSave(false);
},
- handleSave: function() {
+ handleSave: function(backToIndex) {
var config = {
teams: this.state.teams,
hideMenuBar: this.state.hideMenuBar,
@@ -55,7 +57,10 @@ var SettingsPage = React.createClass({
currentWindow.setAutoHideMenuBar(config.hideMenuBar);
currentWindow.setMenuBarVisibility(!config.hideMenuBar);
}
- backToIndex();
+
+ if (typeof backToIndex == 'undefined' || backToIndex) {
+ backToIndex();
+ }
},
handleCancel: function() {
backToIndex();
@@ -151,7 +156,12 @@ var SettingsPage = React.createClass({
var TeamList = React.createClass({
getInitialState: function() {
return {
- showTeamListItemNew: false
+ showTeamListItemNew: false,
+ team: {
+ url: '',
+ name: '',
+ index: false
+ }
};
},
handleTeamRemove: function(index) {
@@ -162,23 +172,50 @@ var TeamList = React.createClass({
},
handleTeamAdd: function(team) {
var teams = this.props.teams;
- teams.push(team);
+
+ // check if team already exists and then change existing team or add new one
+ if (!team.index && teams[team.index]) {
+ teams[team.index].name = team.name;
+ teams[team.index].url = team.url;
+ } else {
+ teams.push(team);
+ }
+
+ this.setState({
+ showTeamListItemNew: false
+ });
+
this.props.onTeamsChange(teams);
},
+ handleTeamEditing: function(teamName, teamUrl, teamIndex) {
+ this.setState({
+ showTeamListItemNew: true,
+ team: {
+ url: teamUrl,
+ name: teamName,
+ index: teamIndex
+ }
+ })
+ },
render: function() {
var thisObj = this;
var teamNodes = this.props.teams.map(function(team, i) {
var handleTeamRemove = function() {
thisObj.handleTeamRemove(i);
};
+
+ var handleTeamEditing = function() {
+ thisObj.handleTeamEditing(team.name, team.url, i);
+ };
+
return (
-