context = window rest = window.JK.Rest() logger = context.JK.logger @TeacherExperienceEditableList = React.createClass({ componentDidUnmount: () -> @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) formatListItem: (obj) -> if obj.end_year? endYear = obj.end_year if endYear == '0' || endYear == 0 endYear = 'Now' else endYear = 'Now' t = "#{obj.name}/#{obj.organization} (#{obj.start_year}" t += "-#{endYear}" if this.props.showEndDate t += ")" getInitialProps: () -> {listItems: []} sortListItems: () -> this.props.listItems ||= [] this.props.listItems = _.sortBy(this.props.listItems, 'start_year') addExperience: (e) -> e.preventDefault() $form = @root.find('.teacher-experience-teaching-form') start_year = parseInt($("[name='start_year']", $form).val()) end_year = parseInt($("[name='end_year']", $form).val()) console.log("end_yeaor", end_year) if this.props.showEndDate && end_year != 0 && start_year > end_year this.setState({errors: ["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() this.setState({errors: null}) getInitialState: () -> {errors:null} onItemChanged: (listName, listObjects) -> this.setState({errors: null}) this.props.onItemChanged(listName, listObjects) render: () -> endDate = [] if this.props.showEndDate endDate.push ` ` dtLabel = "Start & End" else dtLabel = "Date" titleLabel = this.props.titleLabel orgLabel = this.props.orgLabel titleLabel ||= "Title" orgLabel ||= "School/Org" listItems= _.sortBy(this.props.listItems, 'start_year') errorClasses = classNames({hidden: !@state.error?, "error-text": true}) errors = [] if this.state.errors? for error in this.state.errors errors.push(`{error}`) `
{endDate}
{errors}
` })