| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76 | 2×
2×
2×
2×
2×
2×
2×
| var BS, EmptyPanel, React, StudentDashboardStore, _;
React = require('react');
BS = require('react-bootstrap');
StudentDashboardStore = require('../../flux/student-dashboard').StudentDashboardStore;
EmptyPanel = require('./empty-panel');
_ = require('underscore');
module.exports = React.createClass({
displayName: 'DontForgetPanel',
propTypes: {
courseId: React.PropTypes.string.isRequired
},
viewFeedback: function(taskId) {
return alert("TODO: View Feedback for task ID: " + taskId + " in course ID: " + this.props.courseId);
},
viewRecovery: function(taskId) {
return alert("TODO: View Recovery for task ID: " + taskId + " in course ID: " + this.props.courseId);
},
recoverData: function(event) {
return {
name: 'Recovery',
summary: event.exercise_count + " available",
icon: 'recover',
clickHandler: this.viewRecovery
};
},
feedbackData: function(event) {
var summary;
summary = event.correct_exercise_count ? event.correct_exercise_count + "/" + event.exercise_count + " correct" : event.complete_exercise_count + "/" + event.exercise_count + " complete";
return {
name: 'Feedback',
summary: summary,
icon: 'feedback',
clickHandler: this.viewFeedback
};
},
renderBlock: function(event, i, all) {
var data, feedback;
feedback = event.complete_exercise_count + "/" + event.exercise_count + " complete";
data = i % 2 ? this.feedbackData(event) : this.recoverData(event);
return React.createElement(BS.Col, {
"key": event.id,
"xs": 12 / all.length
}, React.createElement("div", null, React.createElement("i", {
"className": "icon-xlg icon-" + data.icon,
"onClick": _.partial(data.clickHandler, event.id)
}), React.createElement("h3", {
"className": 'heading'
}, "View ", data.name), React.createElement("div", {
"className": 'title'
}, event.title), React.createElement("div", {
"className": 'summary'
}, data.summary)));
},
render: function() {
var events;
events = _.last(StudentDashboardStore.pastDueEvents(this.props.courseId), 4);
if (events.length) {
return React.createElement(BS.Panel, {
"className": 'dont-forget',
"header": "Don't Forget"
}, _.map(events, this.renderBlock));
} else {
return React.createElement(EmptyPanel, {
"title": "Don't Forget"
}, "No new reminders");
}
}
});
|