2015-08-08 20:01:22 +00:00
|
|
|
context = window
|
|
|
|
|
teacherActions = window.JK.Actions.Teacher
|
|
|
|
|
logger = context.JK.logger
|
|
|
|
|
rest = window.JK.Rest()
|
|
|
|
|
|
|
|
|
|
@TeacherSetupBasics = React.createClass({
|
|
|
|
|
mixins: [
|
2015-08-12 18:03:32 +00:00
|
|
|
@TeacherSetupMixin,
|
2015-08-08 20:01:22 +00:00
|
|
|
Reflux.listenTo(@AppStore,"onAppInit"),
|
|
|
|
|
Reflux.listenTo(TeacherStore, "onTeacherStateChanged")
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
getInitialState: () ->
|
|
|
|
|
{}
|
|
|
|
|
|
2015-08-12 18:03:32 +00:00
|
|
|
screenName: () ->
|
|
|
|
|
"basics"
|
|
|
|
|
|
2015-08-08 20:01:22 +00:00
|
|
|
onTeacherStateChanged: (changes) ->
|
2015-08-20 19:44:50 +00:00
|
|
|
$root = jQuery(this.getDOMNode())
|
2015-08-12 18:03:32 +00:00
|
|
|
unless this.handleErrors(changes)
|
2015-08-20 19:44:50 +00:00
|
|
|
teacher = changes.teacher
|
2015-12-29 16:59:37 +00:00
|
|
|
this.setState(teacher)
|
2015-08-08 20:01:22 +00:00
|
|
|
|
|
|
|
|
captureFormState: (changes) ->
|
|
|
|
|
$root = jQuery(this.getDOMNode())
|
|
|
|
|
this.setState({
|
2015-08-14 21:56:36 +00:00
|
|
|
|
2015-08-20 19:44:50 +00:00
|
|
|
});
|
2015-08-20 19:15:51 +00:00
|
|
|
|
2015-08-21 13:30:44 +00:00
|
|
|
handleListChange: (listName, selectedObjects)->
|
2015-08-28 18:30:01 +00:00
|
|
|
logger.debug("handleListChange:", listName, selectedObjects)
|
2015-08-20 19:15:51 +00:00
|
|
|
this.setState({
|
2015-08-21 13:30:44 +00:00
|
|
|
"#{listName}": selectedObjects
|
2015-08-08 20:01:22 +00:00
|
|
|
});
|
2015-08-20 19:15:51 +00:00
|
|
|
|
2016-01-04 23:25:29 +00:00
|
|
|
handleFieldChange: (fieldName, value)->
|
2016-01-07 11:12:11 +00:00
|
|
|
logger.debug("handleFieldChange:", fieldName, value)
|
2016-01-04 23:25:29 +00:00
|
|
|
this.setState({
|
|
|
|
|
"#{fieldName}": value
|
|
|
|
|
});
|
|
|
|
|
|
2015-08-12 18:03:32 +00:00
|
|
|
navDestination: (instructions) ->
|
|
|
|
|
navTo=null
|
2015-08-20 19:44:50 +00:00
|
|
|
if instructions?
|
2015-08-12 18:03:32 +00:00
|
|
|
if instructions.direction=="cancel"
|
|
|
|
|
navTo = @teacherSetupSource()
|
|
|
|
|
else if instructions.direction=="back"
|
|
|
|
|
navTo = @teacherSetupDestination("introduction")
|
|
|
|
|
else if instructions.direction=="next"
|
2015-08-14 21:56:36 +00:00
|
|
|
navTo = @teacherSetupDestination("experience")
|
2015-08-12 18:03:32 +00:00
|
|
|
|
|
|
|
|
navTo
|
|
|
|
|
|
2015-08-20 19:44:50 +00:00
|
|
|
handleNav: (e) ->
|
2015-08-14 21:56:36 +00:00
|
|
|
navTo = this.navDestination(e)
|
2016-01-07 11:12:11 +00:00
|
|
|
this.state.validate_basics = true
|
2016-02-09 16:14:37 +00:00
|
|
|
teacherActions.change.trigger(this.state, {navTo: navTo, instructions:e})
|
2015-08-08 20:01:22 +00:00
|
|
|
|
2015-12-29 16:59:37 +00:00
|
|
|
render: () ->
|
2015-08-15 21:36:42 +00:00
|
|
|
# Render the following:
|
|
|
|
|
# Instruments
|
|
|
|
|
# Subjects
|
|
|
|
|
# Genres
|
|
|
|
|
# Languages
|
|
|
|
|
# All lists will take a list of selected keys,
|
|
|
|
|
# and will otherwise self-render the available
|
2016-01-04 23:25:29 +00:00
|
|
|
|
2015-08-14 21:56:36 +00:00
|
|
|
`<div className="TeacherSetupBasics TeacherSetupComponent">
|
2015-12-28 16:43:14 +00:00
|
|
|
<div className="teacher-quarter-column">
|
2015-08-20 19:15:51 +00:00
|
|
|
<div className="teacher-field" name="instruments">
|
2015-12-28 16:43:14 +00:00
|
|
|
<h3>Instruments Taught:</h3>
|
2015-08-28 18:30:01 +00:00
|
|
|
<InstrumentCheckBoxList onItemChanged={this.handleListChange} selectedInstruments={this.state.instruments}/>
|
2015-08-08 20:01:22 +00:00
|
|
|
</div>
|
|
|
|
|
</div>
|
2015-12-28 16:43:14 +00:00
|
|
|
<div className="teacher-quarter-column">
|
2015-08-20 19:15:51 +00:00
|
|
|
<div className="teacher-field" name="subjects">
|
2015-12-28 16:43:14 +00:00
|
|
|
<h3>Music Subjects Taught:</h3>
|
2015-08-28 18:30:01 +00:00
|
|
|
<SubjectCheckBoxList onItemChanged={this.handleListChange} selectedSubjects={this.state.subjects}/>
|
2015-08-08 20:01:22 +00:00
|
|
|
</div>
|
2015-08-14 21:56:36 +00:00
|
|
|
</div>
|
2015-12-28 16:43:14 +00:00
|
|
|
<div className="teacher-quarter-column">
|
2015-08-20 19:15:51 +00:00
|
|
|
<div className="teacher-field" name="genres">
|
2015-12-28 16:43:14 +00:00
|
|
|
<h3>Genres Taught:</h3>
|
2015-08-28 18:30:01 +00:00
|
|
|
<GenreCheckBoxList onItemChanged={this.handleListChange} selectedGenres={this.state.genres}/>
|
2015-08-08 20:01:22 +00:00
|
|
|
</div>
|
2015-08-14 21:56:36 +00:00
|
|
|
</div>
|
2015-12-28 16:43:14 +00:00
|
|
|
<div className="teacher-quarter-column">
|
2015-08-20 19:15:51 +00:00
|
|
|
<div className="teacher-field" name="languages">
|
2015-12-28 16:43:14 +00:00
|
|
|
<h3>Languages Spoken:</h3>
|
2015-08-28 18:30:01 +00:00
|
|
|
<LanguageCheckBoxList onItemChanged={this.handleListChange} selectedLanguages={this.state.languages}/>
|
2015-08-08 20:01:22 +00:00
|
|
|
</div>
|
|
|
|
|
</div>
|
2016-01-07 11:12:11 +00:00
|
|
|
<br className="clearall"/>
|
2015-12-28 16:43:14 +00:00
|
|
|
<div className="teacher-half-column">
|
2016-01-07 11:12:11 +00:00
|
|
|
<div className="teacher-field" name="levels_taught">
|
2015-12-28 16:43:14 +00:00
|
|
|
<h3>Student Levels Taught:</h3>
|
|
|
|
|
<div className="student-levels">
|
2016-01-04 23:25:29 +00:00
|
|
|
<TeacherStudentLevel onChange={this.handleFieldChange} student="teaches_beginner" display="Beginner" level={this.state.teaches_beginner} />
|
|
|
|
|
<TeacherStudentLevel onChange={this.handleFieldChange} student="teaches_intermediate" display="Intermediate" level={this.state.teaches_intermediate} />
|
|
|
|
|
<TeacherStudentLevel onChange={this.handleFieldChange} student="teaches_advanced" display="Advanced" level={this.state.teaches_advanced} />
|
2015-12-28 16:43:14 +00:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div className="teacher-half-column">
|
2016-01-07 11:12:11 +00:00
|
|
|
<div className="teacher-field" name="ages_taught">
|
2015-12-28 16:43:14 +00:00
|
|
|
<h3>Student Ages Taught:</h3>
|
|
|
|
|
<div className="student-ages">
|
2016-01-07 11:12:11 +00:00
|
|
|
<AgeRangeList onItemChanged={this.handleFieldChange} objectName="teaches_age_lower" selectedAge={this.state.teaches_age_lower} />
|
2015-12-28 16:43:14 +00:00
|
|
|
<span className="age-to-age">to</span>
|
2016-01-07 11:12:11 +00:00
|
|
|
<AgeRangeList onItemChanged={this.handleFieldChange} objectName="teaches_age_upper" selectedAge={this.state.teaches_age_upper} />
|
2015-12-28 16:43:14 +00:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2015-08-14 21:56:36 +00:00
|
|
|
<TeacherSetupNav handleNav={this.handleNav}></TeacherSetupNav>
|
|
|
|
|
</div>`
|
|
|
|
|
|
2015-08-08 20:01:22 +00:00
|
|
|
|
|
|
|
|
})
|