From 7f52e0caecdcb46d6037716d1aa01d66f2dbc93e Mon Sep 17 00:00:00 2001
From: Carmine D'Amico
Date: Wed, 25 May 2016 20:31:57 +0200
Subject: [PATCH 1/6] changed the way how to add a new team
---
src/browser/settings.jsx | 40 +++++++++++++++++++++++++++++++++++++---
1 file changed, 37 insertions(+), 3 deletions(-)
diff --git a/src/browser/settings.jsx b/src/browser/settings.jsx
index 74442c1d..d509ab3d 100644
--- a/src/browser/settings.jsx
+++ b/src/browser/settings.jsx
@@ -28,6 +28,11 @@ var SettingsPage = React.createClass({
} catch (e) {
config = settings.loadDefault();
}
+
+ this.setState({
+ showAddTeamForm: false
+ });
+
return config;
},
handleTeamsChange: function(teams) {
@@ -75,12 +80,28 @@ var SettingsPage = React.createClass({
trayIconTheme: this.refs.trayIconTheme.getValue()
});
},
+ handleShowTeamForm: function() {
+ if (!this.state.showAddTeamForm) {
+ this.setState({
+ showAddTeamForm: true
+ });
+ } else {
+ this.setState({
+ showAddTeamForm: false
+ });
+ }
+ },
render: function() {
var teams_row = (
- Teams
-
+
+ Teams
+
+
+
);
@@ -128,6 +149,11 @@ var SettingsPage = React.createClass({
});
var TeamList = React.createClass({
+ getInitialState: function() {
+ return {
+ showTeamListItemNew: false
+ };
+ },
handleTeamRemove: function(index) {
console.log(index);
var teams = this.props.teams;
@@ -149,10 +175,18 @@ var TeamList = React.createClass({
);
});
+
+ var addTeamForm;
+ if (this.props.showAddTeamForm) {
+ addTeamForm = ;
+ } else {
+ addTeamForm = '';
+ }
+
return (
{ teamNodes }
-
+ { addTeamForm }
);
}
From 510f49a99b6840f8ffa0dd4dc499d6c85c99d621 Mon Sep 17 00:00:00 2001
From: Carmine D'Amico
Date: Wed, 25 May 2016 22:18:48 +0200
Subject: [PATCH 2/6] editing teams is possible now
---
src/browser/settings.jsx | 83 ++++++++++++++++++++++++++++++++++------
1 file changed, 71 insertions(+), 12 deletions(-)
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 (
-
+
);
});
var addTeamForm;
- if (this.props.showAddTeamForm) {
- addTeamForm = ;
+ if (this.props.showAddTeamForm || this.state.showTeamListItemNew) {
+ addTeamForm = ;
} else {
addTeamForm = '';
}
@@ -196,6 +233,9 @@ var TeamListItem = React.createClass({
handleTeamRemove: function() {
this.props.onTeamRemove();
},
+ handleTeamEditing: function() {
+ this.props.onTeamEditing();
+ },
render: function() {
var style = {
left: {
@@ -211,6 +251,10 @@ var TeamListItem = React.createClass({
+
+ { ' ' }
@@ -223,8 +267,9 @@ var TeamListItem = React.createClass({
var TeamListItemNew = React.createClass({
getInitialState: function() {
return {
- name: '',
- url: ''
+ name: this.props.teamName,
+ url: this.props.teamUrl,
+ index: this.props.teamIndex
};
},
handleSubmit: function(e) {
@@ -232,7 +277,8 @@ var TeamListItemNew = React.createClass({
e.preventDefault();
this.props.onTeamAdd({
name: this.state.name.trim(),
- url: this.state.url.trim()
+ url: this.state.url.trim(),
+ index: this.state.index,
});
this.setState(this.getInitialState());
},
@@ -249,9 +295,22 @@ var TeamListItemNew = React.createClass({
});
},
shouldEnableAddButton: function() {
- return (this.state.name.trim() !== '') && (this.state.url.trim() !== '');
+ return (this.state.name.trim() !== '' || this.props.teamName !== '') && (this.state.url.trim() !== '' || this.props.teamUrl !== '');
},
render: function() {
+
+ var existingTeam = false;
+ if (this.state.name !== '' && this.state.url !== '') {
+ existingTeam = true;
+ }
+
+ var btnAddText;
+ if (existingTeam) {
+ btnAddText = 'Save';
+ } else {
+ btnAddText = 'Add';
+ }
+
return (
{ ' ' }
-
+
);
From c0e5cbd9ef9d8a37e9b0fde67b377bc3dfa2da37 Mon Sep 17 00:00:00 2001
From: Carmine D'Amico
Date: Wed, 25 May 2016 22:28:47 +0200
Subject: [PATCH 3/6] run prettify on code
---
src/browser/settings.jsx | 24 ++++++++++++++----------
1 file changed, 14 insertions(+), 10 deletions(-)
diff --git a/src/browser/settings.jsx b/src/browser/settings.jsx
index 3c4595f3..928b9179 100644
--- a/src/browser/settings.jsx
+++ b/src/browser/settings.jsx
@@ -42,7 +42,7 @@ var SettingsPage = React.createClass({
this.handleSave(false);
},
- handleSave: function(backToIndex) {
+ handleSave: function(toIndex) {
var config = {
teams: this.state.teams,
hideMenuBar: this.state.hideMenuBar,
@@ -58,7 +58,7 @@ var SettingsPage = React.createClass({
currentWindow.setMenuBarVisibility(!config.hideMenuBar);
}
- if (typeof backToIndex == 'undefined' || backToIndex) {
+ if (typeof toIndex == 'undefined' || toIndex) {
backToIndex();
}
},
@@ -101,11 +101,11 @@ var SettingsPage = React.createClass({
- Teams
-
-
+ Teams
+
+
@@ -209,7 +209,8 @@ var TeamList = React.createClass({
};
return (
-
+
);
});
@@ -295,7 +296,8 @@ var TeamListItemNew = React.createClass({
});
},
shouldEnableAddButton: function() {
- return (this.state.name.trim() !== '' || this.props.teamName !== '') && (this.state.url.trim() !== '' || this.props.teamUrl !== '');
+ return (this.state.name.trim() !== '' || this.props.teamName !== '')
+ && (this.state.url.trim() !== '' || this.props.teamUrl !== '');
},
render: function() {
@@ -326,7 +328,9 @@ var TeamListItemNew = React.createClass({
{ ' ' }
-
+
);
From 712cff2680dda2631e6c3fc4873d8fcf5051b292 Mon Sep 17 00:00:00 2001
From: Carmine D'Amico
Date: Wed, 25 May 2016 23:19:36 +0200
Subject: [PATCH 4/6] changed jsx code to a better code style
---
src/browser/settings.jsx | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)
diff --git a/src/browser/settings.jsx b/src/browser/settings.jsx
index 928b9179..4c51fed0 100644
--- a/src/browser/settings.jsx
+++ b/src/browser/settings.jsx
@@ -97,15 +97,22 @@ var SettingsPage = React.createClass({
}
},
render: function() {
+
+ var buttonStyle = {
+ marginTop: 20,
+ };
+
var teams_row = (
+
+ Teams
+
+
+
+
-
- Teams
-
-
From 186c520ab158c3f443c02811244c013a3e33cc4c Mon Sep 17 00:00:00 2001
From: Carmine D'Amico
Date: Tue, 31 May 2016 15:27:14 +0200
Subject: [PATCH 5/6] BUGFIX: fixed a problem with state, when editing first a
team and then add a new one
---
src/browser/settings.jsx | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/src/browser/settings.jsx b/src/browser/settings.jsx
index 4c51fed0..b8593d27 100644
--- a/src/browser/settings.jsx
+++ b/src/browser/settings.jsx
@@ -189,7 +189,12 @@ var TeamList = React.createClass({
}
this.setState({
- showTeamListItemNew: false
+ showTeamListItemNew: false,
+ team: {
+ url: '',
+ name: '',
+ index: false
+ }
});
this.props.onTeamsChange(teams);
@@ -288,7 +293,12 @@ var TeamListItemNew = React.createClass({
url: this.state.url.trim(),
index: this.state.index,
});
- this.setState(this.getInitialState());
+
+ this.setState({
+ name: '',
+ url: '',
+ index: ''
+ });
},
handleNameChange: function(e) {
console.log('name');
From 9677607ae4014118264f2dc8373d202406fcd6bd Mon Sep 17 00:00:00 2001
From: Carmine D'Amico
Date: Fri, 3 Jun 2016 18:21:15 +0200
Subject: [PATCH 6/6] move "Add Team"-Button nearer to the "Teams" headline
---
src/browser/settings.jsx | 20 +++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)
diff --git a/src/browser/settings.jsx b/src/browser/settings.jsx
index b8593d27..224d9601 100644
--- a/src/browser/settings.jsx
+++ b/src/browser/settings.jsx
@@ -99,19 +99,11 @@ var SettingsPage = React.createClass({
render: function() {
var buttonStyle = {
- marginTop: 20,
+ marginTop: 20
};
var teams_row = (
-
- Teams
-
-
-
-
@@ -146,6 +138,16 @@ var SettingsPage = React.createClass({
return (
+
+
+ Teams
+
+
+
+
+
{ teams_row }
{ options_row }