diff --git a/web/app/assets/javascripts/react-components/TeacherExperienceEditableList.js.jsx.coffee b/web/app/assets/javascripts/react-components/TeacherExperienceEditableList.js.jsx.coffee index 5d2f56c0c..d40a33c10 100644 --- a/web/app/assets/javascripts/react-components/TeacherExperienceEditableList.js.jsx.coffee +++ b/web/app/assets/javascripts/react-components/TeacherExperienceEditableList.js.jsx.coffee @@ -4,11 +4,11 @@ logger = context.JK.logger @TeacherExperienceEditableList = React.createClass({ componentDidUnmount: () -> - $root.off("submit", ".teacher-experience-teaching-form") + @root.off("submit", ".teacher-experience-teaching-form") componentDidMount: () -> - $root = jQuery(this.getDOMNode()) - $root.off("submit", ".teacher-experience-teaching-form").on("submit", ".teacher-experience-teaching-form", @addExperience) + @root = jQuery(this.getDOMNode()) + @root.off("submit", ".teacher-experience-teaching-form").on("submit", ".teacher-experience-teaching-form", @addExperience) formatListItem: (obj) -> t = "#{obj.name}/#{obj.organization} (#{obj.start_year}" @@ -22,19 +22,31 @@ logger = context.JK.logger this.props.listItems ||= [] this.props.listItems = _.sortBy(this.props.listItems, 'start_year') + addError: (k,v) -> + teacherField = @root#.find(".teacher-field[name='#{k}'] > td").first() + teacherField.prepend("
#{v.join()}
") + $("input", teacherField).addClass("input-error") + addExperience: (e) -> e.preventDefault() logger.debug("addExperience", this.props.listItems, this.props) $form = e.target - this.props.listItems.push { - name: $("[name='title_input']", $form).val() - organization: $("[name='organization_input']", $form).val() - start_year: $("[name='start_year']", $form).val() - end_year: $("[name='end_year']", $form).val() - } - logger.debug("addExperience", this.props.listItems) - this.props.onItemChanged(this.props.experienceType, this.props.listItems) - $form.reset() + + start_year = $("[name='start_year']", $form).val() + end_year = $("[name='end_year']", $form).val() + + if this.props.showEndDate && start_year > end_year + this.addError("date", ["End year must be greater than start year"]) + else + this.props.listItems.push { + name: $("[name='title_input']", $form).val() + organization: $("[name='organization_input']", $form).val() + start_year: start_year + end_year: end_year + } + logger.debug("addExperience", this.props.listItems) + this.props.onItemChanged(this.props.experienceType, this.props.listItems) + $form.reset() false render: () -> @@ -56,15 +68,15 @@ logger = context.JK.logger `
- + - + - +
diff --git a/web/app/assets/javascripts/react-components/TeacherSetupExperience.js.jsx.coffee b/web/app/assets/javascripts/react-components/TeacherSetupExperience.js.jsx.coffee index 37c94d387..e2750152e 100644 --- a/web/app/assets/javascripts/react-components/TeacherSetupExperience.js.jsx.coffee +++ b/web/app/assets/javascripts/react-components/TeacherSetupExperience.js.jsx.coffee @@ -71,10 +71,10 @@ rest = window.JK.Rest()
- @@ -82,11 +82,11 @@ rest = window.JK.Rest()
-
diff --git a/web/app/assets/javascripts/react-components/mixins/TeacherSetupMixin.js.coffee b/web/app/assets/javascripts/react-components/mixins/TeacherSetupMixin.js.coffee index 8f74f1291..ff38aa753 100644 --- a/web/app/assets/javascripts/react-components/mixins/TeacherSetupMixin.js.coffee +++ b/web/app/assets/javascripts/react-components/mixins/TeacherSetupMixin.js.coffee @@ -7,7 +7,7 @@ teacherActions = window.JK.Actions.Teacher screenBindings = { 'beforeShow': @beforeShow } - + @root = jQuery(this.getDOMNode()) @app.bindScreen("teachers/setup/#{@screenName()}", screenBindings) beforeShow: (data) -> @@ -26,16 +26,17 @@ teacherActions = window.JK.Actions.Teacher # @postmark = params.p handleErrors: (changes) -> - $root = jQuery(this.getDOMNode()) - $(".error-text", $root).remove() + $(".error-text", @root).remove() if changes.errors? - for k,v of changes.errors - teacherField = $root.find(".teacher-field[name='#{k}']") - teacherField.append("
#{v.join()}
") - $("input", teacherField).addClass("input-error") + addError(k,v) for k,v of changes.errors changes.errors? + addError: (k,v) -> + teacherField = @root.find(".teacher-field[name='#{k}']") + teacherField.append("
#{v.join()}
") + $("input", teacherField).addClass("input-error") + getParams:() => params = {} q = window.location.href.split("?")[1]