var LoadableItem, QuickStats, QuickStatsShell, React, TaskPlanStatsActions, TaskPlanStatsStore, _, ref;
React = require('react');
_ = require('underscore');
ref = require('../../flux/task-plan-stats'), TaskPlanStatsStore = ref.TaskPlanStatsStore, TaskPlanStatsActions = ref.TaskPlanStatsActions;
LoadableItem = require('../loadable-item');
QuickStats = React.createClass({displayName: "QuickStats",
propTypes: {
id: React.PropTypes.string.isRequired,
periodId: React.PropTypes.string.isRequired
},
getInitialState: function() {
return this.getStatsByPeriod(this.props);
},
componentWillReceiveProps: function(nextProps) {
var stats;
stats = this.getStatsByPeriod(nextProps);
return this.setState(stats);
},
getStatsByPeriod: function(props) {
var id, periodId, plan, stats;
periodId = props.periodId, id = props.id;
plan = TaskPlanStatsStore.get(id);
stats = _(plan.stats).findWhere({
period_id: periodId
});
return {
stats: stats
};
},
renderStats: function(data) {
return data.complete_count + "/" + data.total_count + " clicked";
},
render: function() {
var className, classes, course, id, ref1, stats;
ref1 = this.props, id = ref1.id, className = ref1.className;
stats = this.state.stats;
classes = 'quick-external-stats';
if (className != null) {
classes += " " + className;
}
if (stats != null) {
course = this.renderStats(stats);
}
return React.createElement("span", {
"className": classes
}, course);
}
});
QuickStatsShell = React.createClass({displayName: "QuickStatsShell",
render: function() {
var id;
id = this.props.id;
return React.createElement(LoadableItem, {
"id": id,
"store": TaskPlanStatsStore,
"actions": TaskPlanStatsActions,
"renderItem": ((function(_this) {
return function() {
return React.createElement(QuickStats, React.__spread({}, _this.props));
};
})(this))
});
}
});
module.exports = {
QuickStats: QuickStats,
QuickStatsShell: QuickStatsShell
};
|