context = window rest = context.JK.Rest() logger = context.JK.logger UserStore = context.UserStore @TestDriveSelection = React.createClass({ mixins: [ Reflux.listenTo(AppStore, "onAppInit"), Reflux.listenTo(UserStore, "onUserChanged") ] onAppInit: (@app) -> @app.bindScreen('jamclass/test-drive-selection', {afterShow: @afterShow, beforeHide: @beforeHide, navName: 'TestDrive Selection'}) onUserChanged: (userState) -> @setState({user: userState?.user}) beforeHide: (e) -> afterShow: (e) -> logger.debug("TestDriveSelection: afterShow", e.id) parsed = @parseId(e.id) id = parsed.id if id? && id != 'none' && id != 'default' @setState({teacherId: id, teacher: null}) else @setState({teacherId: null, teacher: null}) rest.getUserDetail({ id: id, show_teacher: true }).done((response) => @userDetailDone(response)).fail(@app.ajaxError) parseId: (id) -> if !id? {id: null} else {id: id} userDetailDone: (response) -> if response.id == @state.teacherId @setState({teacher: response, isSelf: response.id == context.JK.currentUserId}) else logger.debug("TestDriveSelection: ignoring teacher details", response.id, @state.teacherId) getInitialState: () -> { user: null, teacher: null, teacherId: null, } packageSelect: (packageType, e) -> e.preventDefault() logger.debug("user selected test-drive-#{packageType}") rest.updateUser({desired_package: "test-drive-#{packageType}"}).done((response) => @packageSelectedDone(response)).fail((jqXHR) => @packageSelectedFail(jqXHR)) packageSelectedFail: (jqXHR) -> console.log("package selected fail: " + jqXHR.responseText) @app.ajaxError(jqXHR) packageSelectedDone:(response) -> url = "/client#/jamclass/book-lesson/test-drive" if @state.teacher? url += '_' + @state.teacher.id else url = "/client#/jamclass/lesson-payment/test-drive" window.location.href = url avatar: (name = 'your choice', photo_url = '/assets/shared/avatar_generic.png') -> `
` render: () -> teacher_name = @state.teacher?.name photo_url = @state.teacher?.photo_url if !photo_url? photo_url = '/assets/shared/avatar_generic.png' `
` })