diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 18c5d6f6..c5b49ae7 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -56,6 +56,7 @@ //= require osem-survey //= require pagy //= require fullcalendar-scheduler/main.js +//= require fullcalendar $(document).ready(function() { $('a[disabled=disabled]').click(function(event){ diff --git a/app/assets/javascripts/fullcalendar.js b/app/assets/javascripts/fullcalendar.js new file mode 100644 index 00000000..e29a3d27 --- /dev/null +++ b/app/assets/javascripts/fullcalendar.js @@ -0,0 +1,15 @@ +$( document ).ready(function() { + let calendarEl = document.getElementById('vert-schedule-full-calendar'); + if (!calendarEl) return; //check that we need a vertical schedule + let fullcalData = $('#fullcalendar'); + + var calendar = new FullCalendar.Calendar(calendarEl, { + timeZone: 'UTC', + initialDate: fullcalData.data('day'), + initialView: 'resourceTimeGridDay', + resources: fullcalData.data('rooms'), + events: fullcalData.data('events') + }); + + calendar.render(); +}); diff --git a/app/controllers/schedules_controller.rb b/app/controllers/schedules_controller.rb index 28e20549..a22ded39 100644 --- a/app/controllers/schedules_controller.rb +++ b/app/controllers/schedules_controller.rb @@ -79,6 +79,10 @@ class SchedulesController < ApplicationController end def vertical_schedule + dates = @conference.start_date..@conference.end_date + # the schedule takes you to today if it is a date of the schedule + current_day = @conference.current_conference_day + @day = current_day.present? ? current_day : dates.first event_schedules = @program.selected_event_schedules( includes: [{ event: %i[event_type speakers submitter] }] ) diff --git a/app/views/schedules/vertical_schedule.haml b/app/views/schedules/vertical_schedule.haml index a494bfd5..ee6c49c5 100644 --- a/app/views/schedules/vertical_schedule.haml +++ b/app/views/schedules/vertical_schedule.haml @@ -5,18 +5,5 @@ Vertical Schedule for = @conference.title - #calendar - -:javascript - document.addEventListener('DOMContentLoaded', function() { - var calendarEl = document.getElementById('calendar'); - - var calendar = new FullCalendar.Calendar(calendarEl, { - timeZone: 'UTC', - initialView: 'resourceTimeGridDay', - resources: #{@rooms.html_safe}, - events: #{@event_schedules.html_safe} - }); - - calendar.render(); - }); + #vert-schedule-full-calendar + #fullcalendar{ data: { rooms: @rooms, events: @event_schedules, day: @day } }