| 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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136 | 2×
2×
2×
2×
2×
2×
2×
2×
2×
2×
2×
2×
2×
2×
2×
2×
396×
396×
3168×
3168×
396×
396×
396×
36×
36×
36×
36×
36×
36×
288×
288×
288×
288×
288×
36×
36×
36×
36×
36×
| var AddPeriodLink, BS, BindStoreMixin, CourseActions, CourseStore, DeletePeriodLink, NoPeriods, PeriodEnrollmentCode, PeriodRoster, React, RenamePeriodLink, RosterActions, RosterStore, _, classnames, ref, ref1;
React = require('react');
BS = require('react-bootstrap');
_ = require('underscore');
classnames = require('classnames');
BindStoreMixin = require('../bind-store-mixin');
NoPeriods = require('../no-periods');
ref = require('../../flux/course'), CourseStore = ref.CourseStore, CourseActions = ref.CourseActions;
ref1 = require('../../flux/roster'), RosterStore = ref1.RosterStore, RosterActions = ref1.RosterActions;
PeriodRoster = require('./period-roster');
PeriodEnrollmentCode = require('./period-enrollment-code');
AddPeriodLink = require('./add-period');
RenamePeriodLink = require('./rename-period');
DeletePeriodLink = require('./delete-period');
module.exports = React.createClass({
displayName: 'PeriodRoster',
mixins: [BindStoreMixin],
bindStore: RosterStore,
propTypes: {
courseId: React.PropTypes.string.isRequired
},
getInitialState: function() {
return {
key: 0
};
},
handleSelect: function(key) {
return this.setState({
key: key
});
},
getActivePeriod: function(active, periods) {
var i, id, j, len, name, period;
for (i = j = 0, len = periods.length; j < len; i = ++j) {
period = periods[i];
if (i === active) {
name = period.name;
id = period.id;
}
}
return {
name: name,
id: id
};
},
selectPreviousTab: function() {
var previous;
if (this.state.key > 0) {
previous = this.state.key - 1;
} else {
previous = 0;
}
return this.handleSelect(previous);
},
render: function() {
var course, deleteButton, enrollmentButton, is_concept_coach, noPeriodMessage, periods, renameButton, tabs;
course = CourseStore.get(this.props.courseId);
is_concept_coach = course.is_concept_coach;
periods = course.periods.length > 0;
tabs = _.map(course.periods, (function(_this) {
return function(period, index) {
var className, name, tooltip;
className = classnames({
'is-trouble': period.is_trouble
});
tooltip = React.createElement(BS.Tooltip, null, period.name);
name = React.createElement(BS.OverlayTrigger, {
"placement": 'top',
"delayShow": 1000.,
"delayHide": 0.,
"overlay": tooltip
}, React.createElement("span", {
"className": 'tab-item-period-name'
}, period.name));
return React.createElement(BS.TabPane, {
"key": period.id,
"eventKey": index,
"tab": name,
"className": className
}, React.createElement(PeriodRoster, {
"period": period,
"courseId": _this.props.courseId,
"activeTab": _this.getActivePeriod(_this.state.key, course.periods),
"isConceptCoach": is_concept_coach
}));
};
})(this));
enrollmentButton = React.createElement(PeriodEnrollmentCode, {
"activeTab": this.getActivePeriod(this.state.key, course.periods),
"periods": course.periods,
"bookUrl": course.webview_url,
"bookName": course.salesforce_book_name
});
renameButton = React.createElement(RenamePeriodLink, {
"courseId": this.props.courseId,
"periods": course.periods,
"activeTab": this.getActivePeriod(this.state.key, course.periods)
});
deleteButton = React.createElement(DeletePeriodLink, {
"courseId": this.props.courseId,
"periods": course.periods,
"activeTab": this.getActivePeriod(this.state.key, course.periods),
"selectPreviousTab": this.selectPreviousTab
});
noPeriodMessage = React.createElement(NoPeriods, {
"noPanel": true
});
return React.createElement(BS.TabbedArea, {
"activeKey": this.state.key,
"onSelect": this.handleSelect
}, React.createElement("div", {
"className": 'period-edit-ui'
}, React.createElement(AddPeriodLink, {
"courseId": this.props.courseId,
"periods": course.periods
}), (periods ? renameButton : void 0), (periods ? deleteButton : void 0)), (periods && is_concept_coach ? enrollmentButton : void 0), React.createElement("div", null, React.createElement("span", {
"className": 'course-settings-subtitle tabbed'
}, "Roster")), (!periods ? noPeriodMessage : void 0), tabs);
}
});
|