From 1c23033f1da81b2f0494ed683caca839071f8746 Mon Sep 17 00:00:00 2001 From: CactusPuppy Date: Wed, 28 Apr 2021 23:53:55 -0700 Subject: [PATCH] Move JS out of view and have calendar start on same day as horizontal schedule --- app/assets/javascripts/application.js | 1 + app/assets/javascripts/fullcalendar.js | 15 +++++++++++++++ app/controllers/schedules_controller.rb | 4 ++++ app/views/schedules/vertical_schedule.haml | 17 ++--------------- 4 files changed, 22 insertions(+), 15 deletions(-) create mode 100644 app/assets/javascripts/fullcalendar.js 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 } }