| 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 | 1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
| var BS, BookLink, EcosystemsStore, LoadableItem, QAContent, QAContentToggle, QAExercises, QAViewBook, React, ReferenceBook, ReferenceBookActions, ReferenceBookStore, SpyMode, TeacherContentToggle, UserActionsMenu, classnames, ref;
React = require('react');
classnames = require('classnames');
BS = require('react-bootstrap');
SpyMode = require('openstax-react-components').SpyMode;
EcosystemsStore = require('../../flux/ecosystems').EcosystemsStore;
ref = require('../../flux/reference-book'), ReferenceBookActions = ref.ReferenceBookActions, ReferenceBookStore = ref.ReferenceBookStore;
ReferenceBook = require('../reference-book/reference-book');
TeacherContentToggle = require('../reference-book/teacher-content-toggle');
LoadableItem = require('../loadable-item');
QAContent = require('./content');
QAExercises = require('./exercises');
BookLink = require('./book-link');
QAContentToggle = require('./content-toggle');
UserActionsMenu = require('../navbar/user-actions-menu');
QAViewBook = React.createClass({displayName: "QAViewBook",
propTypes: {
section: React.PropTypes.string,
ecosystemId: React.PropTypes.string.isRequired
},
getInitialState: function() {
return {
isShowingTeacherContent: true,
isShowingBook: false
};
},
renderNavbarControls: function() {
var book, teacherContent;
if (this.state.isShowingBook) {
teacherContent = React.createElement(TeacherContentToggle, {
"isShowing": this.state.isShowingTeacherContent,
"onChange": this.setTeacherContent
});
}
return React.createElement(BS.Nav, {
"navbar": true,
"right": true
}, React.createElement(BS.NavItem, null, teacherContent, React.createElement(QAContentToggle, {
"isShowingBook": this.state.isShowingBook,
"onChange": this.setContentShowing
})), React.createElement(BS.DropdownButton, {
"title": "Available Books",
"className": "available-books"
}, (function() {
var i, len, ref1, results;
ref1 = EcosystemsStore.allBooks();
results = [];
for (i = 0, len = ref1.length; i < len; i++) {
book = ref1[i];
results.push(React.createElement("li", {
"key": book.id,
"className": (this.props.ecosystemId === book.ecosystemId ? 'active' : void 0)
}, React.createElement(BookLink, {
"book": book
})));
}
return results;
}).call(this)), React.createElement(UserActionsMenu, null));
},
setContentShowing: function(visible) {
return this.setState({
isShowingBook: visible.book
});
},
setTeacherContent: function(isShowing) {
return this.setState({
isShowingTeacherContent: isShowing
});
},
renderBook: function() {
var contentComponent, section;
section = this.props.section || ReferenceBookStore.getFirstSection(this.props.ecosystemId).join('.');
contentComponent = this.state.isShowingBook ? QAContent : QAExercises;
return React.createElement(SpyMode.Wrapper, null, React.createElement("div", {
"className": "qa"
}, React.createElement(ReferenceBook, {
"pageNavRouterLinkTarget": 'QAViewBookSection',
"menuRouterLinkTarget": 'QAViewBookSection',
"navbarControls": this.renderNavbarControls(),
"section": section,
"className": classnames('is-teacher'),
"className": classnames({
'is-teacher': this.state.isShowingTeacherContent
}),
"ecosystemId": this.props.ecosystemId,
"contentComponent": contentComponent
})));
},
render: function() {
return React.createElement(LoadableItem, {
"id": this.props.ecosystemId,
"store": ReferenceBookStore,
"actions": ReferenceBookActions,
"renderItem": this.renderBook
});
}
});
module.exports = QAViewBook;
|