$(function(){ 'use strict' // Datepicker found in left sidebar of the page var highlightedDays = ['2018-5-10','2018-5-11','2018-5-12','2018-5-13','2018-5-14','2018-5-15','2018-5-16']; var date = new Date(); $('.fc-datepicker').datepicker({ showOtherMonths: true, selectOtherMonths: true, dateFormat: 'yy-mm-dd', beforeShowDay: function(date) { var m = date.getMonth(), d = date.getDate(), y = date.getFullYear(); for (var i = 0; i < highlightedDays.length; i++) { if($.inArray(y + '-' + (m+1) + '-' + d,highlightedDays) != -1) { return [true, 'ui-date-highlighted', '']; } } return [true]; } }); var generateTime = function(element) { var n = 0, min = 30, periods = [' AM', ' PM'], times = [], hours = [12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]; for (var i = 0; i < hours.length; i++) { times.push(hours[i] + ':' + n + n + periods[0]); while (n < 60 - min) { times.push(hours[i] + ':' + ((n += min) < 10 ? 'O' + n : n) + periods[0]) } n = 0; } times = times.concat(times.slice(0).map(function(time) { return time.replace(periods[0], periods[1]) })); //console.log(times); $.each(times, function(index, val){ $(element).append(''); }); } generateTime('.az-event-time'); // Initialize fullCalendar $('#calendar').fullCalendar({ header: { left: 'prev,next today', center: 'title', right: 'month,agendaWeek,agendaDay,listWeek' }, navLinks: true, selectable: true, selectLongPressDelay: 100, editable: true, nowIndicator: true, defaultView: 'listMonth', views: { agenda: { columnHeaderHtml: function(mom) { return '' + mom.format('ddd') + '' + '' + mom.format('DD') + ''; } }, day: { columnHeader: false }, listMonth: { listDayFormat: 'ddd DD', listDayAltFormat: false }, listWeek: { listDayFormat: 'ddd DD', listDayAltFormat: false }, agendaThreeDay: { type: 'agenda', duration: { days: 3 }, titleFormat: 'MMMM YYYY' } }, eventSources: [azCalendarEvents, azBirthdayEvents, azHolidayEvents, azOtherEvents], eventAfterAllRender: function(view) { if(view.name === 'listMonth' || view.name === 'listWeek') { var dates = view.el.find('.fc-list-heading-main'); dates.each(function(){ var text = $(this).text().split(' '); var now = moment().format('DD'); $(this).html(text[0]+''+text[1]+''); if(now === text[1]) { $(this).addClass('now'); } }); } console.log(view.el); }, eventRender: function(event, element) { if(event.description) { element.find('.fc-list-item-title').append('' + event.description + ''); element.find('.fc-content').append('' + event.description + ''); } var eBorderColor = (event.source.borderColor)? event.source.borderColor : event.borderColor; element.find('.fc-list-item-time').css({ color: eBorderColor, borderColor: eBorderColor }); element.find('.fc-list-item-title').css({ borderColor: eBorderColor }); element.css('borderLeftColor', eBorderColor); }, }); var azCalendar = $('#calendar').fullCalendar('getCalendar'); // change view to week when in tablet if(window.matchMedia('(min-width: 576px)').matches) { azCalendar.changeView('agendaWeek'); } // change view to month when in desktop if(window.matchMedia('(min-width: 992px)').matches) { azCalendar.changeView('month'); } // change view based in viewport width when resize is detected azCalendar.option('windowResize', function(view) { if(view.name === 'listWeek') { if(window.matchMedia('(min-width: 992px)').matches) { azCalendar.changeView('month'); } else { azCalendar.changeView('listWeek'); } } }); // display current date var azDateNow = azCalendar.getDate(); azCalendar.option('select', function(startDate, endDate){ $('#modalSetSchedule').modal('show'); $('#azEventStartDate').val(startDate.format('LL')); $('#azEventEndDate').val(endDate.format('LL')); $('#azEventStartTime').val(startDate.format('LT')).trigger('change'); $('#azEventEndTime').val(endDate.format('LT')).trigger('change'); }); // Display calendar event modal azCalendar.on('eventClick', function(calEvent, jsEvent, view){ var modal = $('#modalCalendarEvent'); modal.modal('show'); modal.find('.event-title').text(calEvent.title); if(calEvent.description) { modal.find('.event-desc').text(calEvent.description); modal.find('.event-desc').prev().removeClass('d-none'); } else { modal.find('.event-desc').text(''); modal.find('.event-desc').prev().addClass('d-none'); } modal.find('.event-start-date').text(moment(calEvent.start).format('LLL')); modal.find('.event-end-date').text(moment(calEvent.end).format('LLL')); //styling modal.find('.modal-header').css('backgroundColor', (calEvent.source.borderColor)? calEvent.source.borderColor : calEvent.borderColor); }); // Enable/disable calendar events from displaying in calendar $('.az-nav-calendar-event a').on('click', function(e){ e.preventDefault(); if($(this).hasClass('exclude')) { $(this).removeClass('exclude'); $(this).is(':first-child')? azCalendar.addEventSource(azCalendarEvents) : ''; $(this).is(':nth-child(2)')? azCalendar.addEventSource(azBirthdayEvents) : ''; $(this).is(':nth-child(3)')? azCalendar.addEventSource(azHolidayEvents) : ''; $(this).is(':nth-child(4)')? azCalendar.addEventSource(azOtherEvents) : ''; } else { $(this).addClass('exclude'); $(this).is(':first-child')? azCalendar.removeEventSource(1) : ''; $(this).is(':nth-child(2)')? azCalendar.removeEventSource(2) : ''; $(this).is(':nth-child(3)')? azCalendar.removeEventSource(3) : ''; $(this).is(':nth-child(4)')? azCalendar.removeEventSource(4) : ''; } azCalendar.render(); if(window.matchMedia('(max-width: 575px)').matches) { $('body').removeClass('az-content-left-show'); } }); })