96 lines
2.9 KiB
CoffeeScript
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>`
|
|
|
|
|
|
}) |