Code coverage report for src/components/qa/view-book.cjsx

Statements: 47.22% (17 / 36)      Branches: 0% (0 / 8)      Functions: 0% (0 / 7)      Lines: 47.22% (17 / 36)      Ignored: none     

All files » src/components/qa/ » view-book.cjsx
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                                                                                                                                                                                                      
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;