diff --git a/web/app/assets/javascripts/react-components.js b/web/app/assets/javascripts/react-components.js index ee980b48e..e0afa1c63 100644 --- a/web/app/assets/javascripts/react-components.js +++ b/web/app/assets/javascripts/react-components.js @@ -3,6 +3,8 @@ //= require_directory ./react-components/helpers //= require_directory ./react-components/actions //= require ./react-components/stores/AppStore +//= require ./react-components/stores/InstrumentStore +//= require ./react-components/stores/LanguageStore //= require ./react-components/stores/PlatformStore //= require ./react-components/stores/BrowserMediaStore //= require ./react-components/stores/RecordingStore diff --git a/web/app/assets/javascripts/react-components/AgeRangeList.js.jsx.coffee b/web/app/assets/javascripts/react-components/AgeRangeList.js.jsx.coffee index c42638628..b038a30d6 100644 --- a/web/app/assets/javascripts/react-components/AgeRangeList.js.jsx.coffee +++ b/web/app/assets/javascripts/react-components/AgeRangeList.js.jsx.coffee @@ -11,7 +11,7 @@ logger = context.JK.logger @agesJsx.push(``) render: () -> - ` {this.agesJsx} ` }) \ No newline at end of file diff --git a/web/app/assets/javascripts/react-components/InstrumentCheckBoxList.js.jsx.coffee b/web/app/assets/javascripts/react-components/InstrumentCheckBoxList.js.jsx.coffee index 2be186366..9078d5b4d 100644 --- a/web/app/assets/javascripts/react-components/InstrumentCheckBoxList.js.jsx.coffee +++ b/web/app/assets/javascripts/react-components/InstrumentCheckBoxList.js.jsx.coffee @@ -3,16 +3,17 @@ rest = window.JK.Rest() logger = context.JK.logger @InstrumentCheckBoxList = React.createClass({ - instruments: [] - componentDidUnmount: () -> - @instruments = [] - componentDidMount: () -> - rest.getInstruments().done (instruments) => - @instruments = instruments + mixins: [Reflux.listenTo(@InstrumentStore,"onInstrumentsChanged")] + + getInitialState: () -> + {instruments: []} + + onInstrumentsChanged: (instruments) -> + @setState({instruments: instruments}) render: () -> `
- +
` }) \ No newline at end of file diff --git a/web/app/assets/javascripts/react-components/LanguageCheckBoxList.js.jsx.coffee b/web/app/assets/javascripts/react-components/LanguageCheckBoxList.js.jsx.coffee index 71592d822..59fa3140f 100644 --- a/web/app/assets/javascripts/react-components/LanguageCheckBoxList.js.jsx.coffee +++ b/web/app/assets/javascripts/react-components/LanguageCheckBoxList.js.jsx.coffee @@ -3,16 +3,17 @@ rest = window.JK.Rest() logger = context.JK.logger @LanguageCheckBoxList = React.createClass({ - languages: [] - componentDidUnmount: () -> - @languages = [] - componentDidMount: () -> - rest.getLanguages().done (languages) => - @languages = languages + mixins: [Reflux.listenTo(@LanguageStore,"onLanguagesChanged")] + + getInitialState: () -> + {languages: []} + + onLanguagesChanged: (languages) -> + @setState({languages: languages}) render: () -> `
- +
` }) \ No newline at end of file diff --git a/web/app/assets/javascripts/react-components/TeacherSetupBasics.js.jsx.coffee b/web/app/assets/javascripts/react-components/TeacherSetupBasics.js.jsx.coffee index 67b8f63f5..b0d7636bc 100644 --- a/web/app/assets/javascripts/react-components/TeacherSetupBasics.js.jsx.coffee +++ b/web/app/assets/javascripts/react-components/TeacherSetupBasics.js.jsx.coffee @@ -34,6 +34,12 @@ rest = window.JK.Rest() "#{listName}": selectedObjects }); + handleFieldChange: (fieldName, value)-> + logger.debug("hangeFieldChange:", fieldName, value) + this.setState({ + "#{fieldName}": value + }); + navDestination: (instructions) -> navTo=null if instructions? @@ -58,6 +64,8 @@ rest = window.JK.Rest() # Languages # All lists will take a list of selected keys, # and will otherwise self-render the available + + console.log("STATE!", this.state) `
@@ -87,9 +95,9 @@ rest = window.JK.Rest()

Student Levels Taught:

- - - + + +
@@ -97,9 +105,9 @@ rest = window.JK.Rest()

Student Ages Taught:

- + to - +
diff --git a/web/app/assets/javascripts/react-components/TeacherSetupNav.js.jsx.coffee b/web/app/assets/javascripts/react-components/TeacherSetupNav.js.jsx.coffee index 83f5b39a5..fe0dd785c 100644 --- a/web/app/assets/javascripts/react-components/TeacherSetupNav.js.jsx.coffee +++ b/web/app/assets/javascripts/react-components/TeacherSetupNav.js.jsx.coffee @@ -15,7 +15,7 @@ SessionActions = @SessionActions this.props.handleNav({direction: "next"}) render: () -> - console.log("SetupNav: this.props", this.state, this.ref, this.props.handleNav) + #console.log("SetupNav: this.props", this.state, this.ref, this.props.handleNav) `
BACK diff --git a/web/app/assets/javascripts/react-components/TeacherStudentLevel.js.jsx.coffee b/web/app/assets/javascripts/react-components/TeacherStudentLevel.js.jsx.coffee index 442d75125..300d0be3f 100644 --- a/web/app/assets/javascripts/react-components/TeacherStudentLevel.js.jsx.coffee +++ b/web/app/assets/javascripts/react-components/TeacherStudentLevel.js.jsx.coffee @@ -6,13 +6,18 @@ logger = context.JK.logger render: () -> ` - + {this.props.display} ` studentLevelChanged: (level, e) -> @setState({checked: $(e.target).is(':checked') }) + @props.onChange(this.props.student, $(e.target).is(':checked')) + getInitialState: () -> - {checked:this.props.level} + {checked:@props.level} + + componentWillReceiveProps: (nextProps) -> + @setState({checked: nextProps.level}) }) \ No newline at end of file diff --git a/web/app/assets/javascripts/react-components/YearSelect.js.jsx.coffee b/web/app/assets/javascripts/react-components/YearSelect.js.jsx.coffee index 3cd223d16..a1f9f76bc 100644 --- a/web/app/assets/javascripts/react-components/YearSelect.js.jsx.coffee +++ b/web/app/assets/javascripts/react-components/YearSelect.js.jsx.coffee @@ -3,13 +3,7 @@ rest = window.JK.Rest() logger = context.JK.logger @YearSelect = React.createClass({ - instruments: [] - componentDidUnmount: () -> - @instruments = [] - componentDidMount: () -> - rest.getInstruments().done (instruments) => - @instruments = instruments render: () -> options = [] diff --git a/web/app/assets/javascripts/react-components/actions/InstrumentActions.js.coffee b/web/app/assets/javascripts/react-components/actions/InstrumentActions.js.coffee new file mode 100644 index 000000000..4cd8c006e --- /dev/null +++ b/web/app/assets/javascripts/react-components/actions/InstrumentActions.js.coffee @@ -0,0 +1,5 @@ +context = window + +@InstrumentActions = Reflux.createActions({ + +}) \ No newline at end of file diff --git a/web/app/assets/javascripts/react-components/actions/LanguageActions.js.coffee b/web/app/assets/javascripts/react-components/actions/LanguageActions.js.coffee new file mode 100644 index 000000000..4b2d0308d --- /dev/null +++ b/web/app/assets/javascripts/react-components/actions/LanguageActions.js.coffee @@ -0,0 +1,5 @@ +context = window + +@LanguageActions = Reflux.createActions({ + +}) \ No newline at end of file diff --git a/web/app/assets/javascripts/react-components/mixins/TeacherProfileMixin.js.coffee b/web/app/assets/javascripts/react-components/mixins/TeacherProfileMixin.js.coffee index 970061d7c..fbda3cfbb 100644 --- a/web/app/assets/javascripts/react-components/mixins/TeacherProfileMixin.js.coffee +++ b/web/app/assets/javascripts/react-components/mixins/TeacherProfileMixin.js.coffee @@ -19,7 +19,4 @@ teacherActions = window.JK.Actions.Teacher teacherActions.load.trigger({teacher_id: @teacherId}) else teacherActions.load.trigger({}) - - - } \ No newline at end of file diff --git a/web/app/assets/javascripts/react-components/stores/InstrumentStore.js.coffee b/web/app/assets/javascripts/react-components/stores/InstrumentStore.js.coffee new file mode 100644 index 000000000..eb7fb6f76 --- /dev/null +++ b/web/app/assets/javascripts/react-components/stores/InstrumentStore.js.coffee @@ -0,0 +1,20 @@ +$ = jQuery +context = window +logger = context.JK.logger + +@InstrumentStore = Reflux.createStore( + { + listenables: @InstrumentActions + instruments: [] + + init: -> + # Register with the app store to get @app + this.listenTo(context.AppStore, this.onAppInit) + + onAppInit: (@app) -> + rest.getInstruments().done (instruments) => + @instruments = instruments + @trigger(@instruments) + + } +) diff --git a/web/app/assets/javascripts/react-components/stores/LanguageStore.js.coffee b/web/app/assets/javascripts/react-components/stores/LanguageStore.js.coffee new file mode 100644 index 000000000..615a19d8d --- /dev/null +++ b/web/app/assets/javascripts/react-components/stores/LanguageStore.js.coffee @@ -0,0 +1,20 @@ +$ = jQuery +context = window +logger = context.JK.logger + +@LanguageStore = Reflux.createStore( + { + listenables: @LanguageActions + languages: [] + + init: -> + # Register with the app store to get @app + this.listenTo(context.AppStore, this.onAppInit) + + onAppInit: (@app) -> + rest.getLanguages().done (languages) => + @languages = languages + @trigger(@languages) + + } +)