context = window @TestDrivePackageDialog = React.createClass({ mixins: [Reflux.listenTo(@AppStore, "onAppInit")] teacher: null beforeShow: (args) -> # d1 should be a teacher ID (vs a user ID that happens to be a teacher) logger.debug("TestDrivePackageDialog.beforeShow", args.d1) @setState({target: args.d1, page_data: window.page_data}) afterHide: () -> onAppInit: (@app) -> dialogBindings = { 'beforeShow': @beforeShow, 'afterHide': @afterHide }; @app.bindDialog('test-drive-package-dialog', dialogBindings); getInitialState: () -> { target: null, page_data: null } componentDidMount: () -> @root = $(@getDOMNode()) doCancel: (e) -> e.preventDefault() @app.layout.closeDialog('test-drive-package-dialog', true); selectTeachers: (e) -> e.preventDefault() # validate if @state.target == '2' checked = @root.find('input[type="checkbox"]:checked') if checked.length != 2 context.JK.Banner.showNotice('hold on there', 'Please select 2 teachers.') return if @state.target == '1' checked = @root.find('input[type="checkbox"]:checked') if checked.length != 1 context.JK.Banner.showNotice('hold on there', 'Please select a teacher.') return teachers = [] $.each(checked, (i, node) => ( $node = $(node) teachers.push($node.data('teacher')) )) @root.data('result', { package_type: @state.target, teachers: teachers }) render: () -> if @state.target == '2' help = `

Check the boxes under the 2 instructors you want to select for your TestDrive package. Then click the Select button below.

` else help = `

Check the box under the instructor you want to select for your TestDrive package. Then click the Select button below.

` teachers = [] `

select instructors

{help} {teachers}
CANCEL SELECT
` })