context = window @RateUserDialog = React.createClass({ mixins: [Reflux.listenTo(@AppStore, "onAppInit")] teacher: false parseId:(id) -> if !id? {id: null, type: null} else bits = id.split('_') if bits.length == 2 {id: bits[1], type: bits[0]} else {id: null, type: null} beforeShow: (args) -> logger.debug("RateUserDialog.beforeShow", args.d1) @firstName = '' @lastName = '' @email = '' @setState({target: null}) rest.getUserDetail({id: args.d1}).done((response) => @userLookupDone(response)).fail((jqXHR) => @userLookupFail(jqXHR)) afterHide: () -> userLookupDone: (response) -> @setState({target: response}) userLookupFail: (jqXHR) -> @app.ajaxError(jqXHR, null, null) onAppInit: (@app) -> dialogBindings = { 'beforeShow': @beforeShow, 'afterHide': @afterHide }; @app.bindDialog('rate-user', dialogBindings); componentDidMount: () -> @root = $(@getDOMNode()) getInitialState: () -> {inviteErrors: null} doCancel: (e) -> e.preventDefault() @app.layout.closeDialog('rate-user', true); doRating: (e) -> e.preventDefault() rest.createReview({id: target}) createDone:(response) -> context.SchoolActions.addInvitation(@state.teacher, response) context.JK.Banner.showNotice("invitation sent", "Your invitation has been sent!") @app.layout.closeDialog('invite-school-user') createFail: (jqXHR) -> handled = false if jqXHR.status == 422 errors = JSON.parse(jqXHR.responseText) @setState({inviteErrors: errors}) handled = true if !handled @app.ajaxError(jqXHR, null, null) render: () -> if @state.user?.teacher? title = 'Rate Teacher' help = `
Please rate this teacher based on your experience with them.
` else title = 'Rate Student' help = `Please rate this student based on your experience with them.
` `