Get week range from server

This commit is contained in:
2015-03-22 20:23:18 +07:00
parent b172e131e0
commit fc4a95545d
7 changed files with 48 additions and 18 deletions
+1 -1
View File
@@ -143,7 +143,7 @@ var BarChart = React.createClass({
return (
<div className="barchart-container">
<div className="whatsgoingon">
This bar chart shows <em>{words.values[this.state.sort]}</em> {words.actions[this.state.item +'-'+ this.state.sort]} <em>{words.items[this.state.item]}</em> {words.whatHappened[this.state.item +'-'+ target]} <em>{subject}</em> {words.targetSuffix[target]}<br /><WeekIntervalSelector />
This bar chart shows <em>{words.values[this.state.sort]}</em> {words.actions[this.state.item +'-'+ this.state.sort]} <em>{words.items[this.state.item]}</em> {words.whatHappened[this.state.item +'-'+ target]} <em>{subject}</em> {words.targetSuffix[target]}<br /><WeekIntervalSelector org={this.getParams().org} />
</div>
<div className="filters">
<Selector thing="sort"
+1 -1
View File
@@ -301,7 +301,7 @@ var StackedAreaChart = React.createClass({
return (
<div ref="container" className="sac">
<div className="whatsgoingon">
This stacked area chart shows <em>the number of commits</em> {words.actions[this.state.item]} <em>{words.items[this.state.item]}</em> {words.whatHappened[this.state.item +'-'+ target]} <em>{subject}</em> {words.targetSuffix[target]}<br /><WeekIntervalSelector />
This stacked area chart shows <em>the number of commits</em> {words.actions[this.state.item]} <em>{words.items[this.state.item]}</em> {words.whatHappened[this.state.item +'-'+ target]} <em>{subject}</em> {words.targetSuffix[target]}<br /><WeekIntervalSelector org={this.getParams().org} />
</div>
<div className="filters">
<Selector thing="sort"
@@ -2,31 +2,39 @@ var WeekIntervalSelector = React.createClass({
mixins: [ReactRouter.Navigation, ReactRouter.State],
getInitialState: function() {
var ms = 1000,
daySeconds = 86400,
weekSeconds = daySeconds*7,
today = new Date(),
sunday = new Date(today - daySeconds*ms*today.getDay()),
perfectSunday = new Date(Date.UTC(sunday.getFullYear(), sunday.getMonth(), sunday.getDate())),
lastWeek = perfectSunday.setHours(0)/ms,
firstWeek = lastWeek - 51*weekSeconds;
var weeks = [];
for (var i = lastWeek; i >= firstWeek; i -= weekSeconds) {
weeks.push(i);
};
return {
weeks: weeks.sort()
weeks: []
};
},
componentDidMount: function() {
this.loadWeekRange(this.props.org);
},
componentWillReceiveProps: function(newProps) {
this.loadWeekRange(newProps.org);
},
handleChange: function(thing, e) {
var params = this.getQuery();
params[thing.slice(0, 1)] = e.target.value/100;
this.transitionTo(document.location.pathname, null, params);
},
loadWeekRange: function(org) {
getURL("/api/weeks", {org: org}, function(res){
var weeks = [],
min = res[0],
max = res[1];
for (var i = min; i <= max; i += 86400*7) {
weeks.push(i);
};
this.setState({
weeks: weeks
});
}.bind(this));
},
render: function() {
var daySeconds = 86400,
weekSeconds = daySeconds*7,