jam-cloud/web/app/assets/javascripts/react-components/TeacherSetupBasics.js.jsx.c...

96 lines
2.9 KiB
CoffeeScript

context = window
teacherActions = window.JK.Actions.Teacher
logger = context.JK.logger
rest = window.JK.Rest()
@TeacherSetupBasics = React.createClass({
mixins: [
@TeacherSetupMixin,
Reflux.listenTo(@AppStore,"onAppInit"),
Reflux.listenTo(TeacherStore, "onTeacherStateChanged")
]
getInitialState: () ->
{}
screenName: () ->
"basics"
onTeacherStateChanged: (changes) ->
$root = jQuery(this.getDOMNode())
unless this.handleErrors(changes)
teacher = changes.teacher
this.setState({
#validate_basics: true,
instruments: teacher.instruments
genres: teacher.genres
languages: teacher.languages
subjects: teacher.subjects
})
captureFormState: (changes) ->
$root = jQuery(this.getDOMNode())
this.setState({
});
handleListChange: (listName, selectedObjects)->
logger.debug("handleListChange:", listName, selectedObjects)
this.setState({
"#{listName}": selectedObjects
});
navDestination: (instructions) ->
navTo=null
if instructions?
if instructions.direction=="cancel"
navTo = @teacherSetupSource()
else if instructions.direction=="back"
navTo = @teacherSetupDestination("introduction")
else if instructions.direction=="next"
navTo = @teacherSetupDestination("experience")
navTo
handleNav: (e) ->
navTo = this.navDestination(e)
teacherActions.change.trigger(this.state, {navTo: navTo})
render: () ->
# Render the following:
# Instruments
# Subjects
# Genres
# Languages
# All lists will take a list of selected keys,
# and will otherwise self-render the available
`<div className="TeacherSetupBasics TeacherSetupComponent">
<div className="teacher-quarter-column left">
<div className="teacher-field" name="instruments">
<strong>Instruments Taught</strong>
<InstrumentCheckBoxList onItemChanged={this.handleListChange} selectedInstruments={this.state.instruments}/>
</div>
</div>
<div className="teacher-quarter-column left">
<div className="teacher-field" name="subjects">
<strong>Music Subjects Taught</strong>
<SubjectCheckBoxList onItemChanged={this.handleListChange} selectedSubjects={this.state.subjects}/>
</div>
</div>
<div className="teacher-quarter-column left">
<div className="teacher-field" name="genres">
<strong>Genres Taught</strong>
<GenreCheckBoxList onItemChanged={this.handleListChange} selectedGenres={this.state.genres}/>
</div>
</div>
<div className="teacher-quarter-column left">
<div className="teacher-field" name="languages">
<strong>Languages Spoken</strong>
<LanguageCheckBoxList onItemChanged={this.handleListChange} selectedLanguages={this.state.languages}/>
</div>
</div>
<TeacherSetupNav handleNav={this.handleNav}></TeacherSetupNav>
</div>`
})