Name | Bookings Allowed After | Bookings Allowed Until | Default Duration | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
No results | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
from now | from now |
I understand and accept that:
and
Want to know even more details? Read our FAQ!
# frozen_string_literal: true div.spinner bind: {visible: 'loadingMessage'} do header 'Please Wait' span bind: {text: 'loadingMessage'} end div.overlay bind: {visible: 'loadingMessage'} div.main_panel do div.purpose bind: {css: {current: "page.current() == 'purpose'", back: "page.isHistorical('purpose')"}} do header "I'm Getting..." div.list bind: {foreach: 'Object.keys(purposes)'} do label bind: {event: {mouseover: '$parent.hoveredPurpose', mouseout: '$parent.clearHoverPurpose'}} do input type: 'radio', name: 'purpose', bind: {checked: '$parent.appointment.purpose', value: '$data'} span bind: {text: '$data'} end end div.description do span bind: {html: 'purposeDescription'} end img bind: {attr: {src: 'purposeImage'}} end div.datetime bind: {css: {current: "page.current() == 'datetime'", back: "page.isHistorical('datetime')"}} do header 'When will we see you?' div.date do # the date picker widget is injected here, at the start of this div span.booking_window bind: {text: 'bookingWindow'} button.today bind: {click: 'function(){ picker.gotoToday()}', enable: '!todayVisible()'} do 'Today' end end div.hour do header 'Availabilities' div.all_hours bind: {visible: 'appointment.date'} do span.prompt do 'Select a time' end span.prompt bind: {visible: 'isFarAwayLands'} do 'All times are in Mountain time zone.' end div.morning_hours do header 'Morning' Knockout::foreach 'morningSlots' do label.hour_slot do input type: 'radio', bind: {checked: '$parent.appointment.time', value: '$data'} span bind: {text: 'humanTime($data.start_stamp, $parent.appointment.timezone())'} end end span.placeholder bind: {visible: 'morningSlots().length == 0'} do '- none -' end end div.early_afternoon_hours do header 'Early Afternoon' Knockout::foreach 'earlyAfternoonSlots' do label.hour_slot do input type: 'radio', bind: {checked: '$parent.appointment.time', value: '$data'} span bind: {text: 'humanTime($data.start_stamp, $parent.appointment.timezone())'} end end span.placeholder bind: {visible: 'earlyAfternoonSlots().length == 0'} do '- none -' end end div.late_afternoon_hours do header 'Late Afternoon' Knockout::foreach 'lateAfternoonSlots' do label.hour_slot do input type: 'radio', bind: {checked: '$parent.appointment.time', value: '$data'} span bind: {text: 'humanTime($data.start_stamp, $parent.appointment.timezone())'} end end span.placeholder bind: {visible: 'lateAfternoonSlots().length == 0'} do '- none -' end end end div.hoursMsg bind: {visible: '!appointment.date()'} do span 'Select a day' end end end div.degree bind: {css: {current: "page.current() == 'degree'", back: "page.isHistorical('degree')"}} do header 'My Degree Is...' degree_chooser params: 'degree: user.degree' end div.signup bind: {css: {current: "page.current() == 'signup'", back: "page.isHistorical('signup')"}} do header 'Register' div.splash do img src: image_path('/assets/SUB_Photo_logo_2013.png') end sign_up params: 'user: user' end div.summary bind: {css: {current: 'page.current() == null}'}} do header bind: {text: 'finishHeader'} appointment_summary params: {user: 'user', appointment: 'appointment', signedIn: 'signedIn'} end end div.controls bind: {visible: 'page.current'} do input type: 'button', bind: {click: 'page.back', visible: 'page.hasBack()'}, value: '< Back' input type: 'button', bind: {click: 'page.next', enable: 'page.isValid', value: 'page.nextText'} endStart Time | End Time | Purpose | User Name | User Email | User Phone | Calendar | Degree Info | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
No results | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
No Owner |
|
Are you sure you want to cancel your appointment on
Select a time - Duration:
Also Accepting Walk-In Sessions!
Select a day
Warning: Deleting is permanent
Please type in the calendar name to confirm:
Last Name | First Name | Phone | Alt. Phone | ? | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
No results | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Warning: Deleting is permanent
Please type in their email to confirm: