123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326 |
- /* ------------------------------------------------------------------------------
- *
- * # Fullcalendar advanced options
- *
- * Demo JS code for extra_fullcalendar_advanced.html page
- *
- * ---------------------------------------------------------------------------- */
- // Setup module
- // ------------------------------
- var FullCalendarAdvanced = function() {
- //
- // Setup module components
- //
- // External events
- var _componentFullCalendarEvents = function() {
- if (!$().fullCalendar || typeof Switchery == 'undefined' || !$().draggable) {
- console.warn('Warning - fullcalendar.min.js, switchery.min.js or jQuery UI is not loaded.');
- return;
- }
- // Add demo events
- // ------------------------------
- // Event colors
- var eventColors = [
- {
- title: 'All Day Event',
- start: '2014-11-01',
- color: '#EF5350'
- },
- {
- title: 'Long Event',
- start: '2014-11-07',
- end: '2014-11-10',
- color: '#26A69A'
- },
- {
- id: 999,
- title: 'Repeating Event',
- start: '2014-11-09T16:00:00',
- color: '#26A69A'
- },
- {
- id: 999,
- title: 'Repeating Event',
- start: '2014-11-16T16:00:00',
- color: '#5C6BC0'
- },
- {
- title: 'Conference',
- start: '2014-11-11',
- end: '2014-11-13',
- color: '#546E7A'
- },
- {
- title: 'Meeting',
- start: '2014-11-12T10:30:00',
- end: '2014-11-12T12:30:00',
- color: '#546E7A'
- },
- {
- title: 'Lunch',
- start: '2014-11-12T12:00:00',
- color: '#546E7A'
- },
- {
- title: 'Meeting',
- start: '2014-11-12T14:30:00',
- color: '#546E7A'
- },
- {
- title: 'Happy Hour',
- start: '2014-11-12T17:30:00',
- color: '#546E7A'
- },
- {
- title: 'Dinner',
- start: '2014-11-12T20:00:00',
- color: '#546E7A'
- },
- {
- title: 'Birthday Party',
- start: '2014-11-13T07:00:00',
- color: '#546E7A'
- },
- {
- title: 'Click for Google',
- url: 'http://google.com/',
- start: '2014-11-28',
- color: '#FF7043'
- }
- ];
- // External events
- // ------------------------------
- // Add switcher for events removal
- var remove = document.querySelector('.form-check-input-switchery');
- var removeInit = new Switchery(remove);
- // Initialize the calendar
- $('.fullcalendar-external').fullCalendar({
- header: {
- left: 'prev,next today',
- center: 'title',
- right: 'month,agendaWeek,agendaDay'
- },
- editable: true,
- defaultDate: '2014-11-12',
- events: eventColors,
- locale: 'en',
- droppable: true, // this allows things to be dropped onto the calendar
- drop: function() {
- if ($('#drop-remove').is(':checked')) { // is the "remove after drop" checkbox checked?
- $(this).remove(); // if so, remove the element from the "Draggable Events" list
- }
- },
- isRTL: $('html').attr('dir') == 'rtl' ? true : false
- });
- // Initialize the external events
- $('#external-events .fc-event').each(function() {
- // Different colors for events
- $(this).css({'backgroundColor': $(this).data('color'), 'borderColor': $(this).data('color')});
- // Store data so the calendar knows to render an event upon drop
- $(this).data('event', {
- title: $.trim($(this).html()), // use the element's text as the event title
- color: $(this).data('color'),
- stick: true // maintain when user navigates (see docs on the renderEvent method)
- });
- // Make the event draggable using jQuery UI
- $(this).draggable({
- zIndex: 999,
- revert: true, // will cause the event to go back to its
- revertDuration: 0 // original position after the drag
- });
- });
- };
- // FullCalendar RTL direction
- var _componentFullCalendarRTL = function() {
- if (!$().fullCalendar) {
- console.warn('Warning - fullcalendar.min.js is not loaded.');
- return;
- }
- // Add demo events
- // ------------------------------
- // Default events
- var events = [
- {
- title: 'All Day Event',
- start: '2014-11-01'
- },
- {
- title: 'Long Event',
- start: '2014-11-07',
- end: '2014-11-10'
- },
- {
- id: 999,
- title: 'Repeating Event',
- start: '2014-11-09T16:00:00'
- },
- {
- id: 999,
- title: 'Repeating Event',
- start: '2014-11-16T16:00:00'
- },
- {
- title: 'Conference',
- start: '2014-11-11',
- end: '2014-11-13'
- },
- {
- title: 'Meeting',
- start: '2014-11-12T10:30:00',
- end: '2014-11-12T12:30:00'
- },
- {
- title: 'Lunch',
- start: '2014-11-12T12:00:00'
- },
- {
- title: 'Meeting',
- start: '2014-11-12T14:30:00'
- },
- {
- title: 'Happy Hour',
- start: '2014-11-12T17:30:00'
- },
- {
- title: 'Dinner',
- start: '2014-11-12T20:00:00'
- },
- {
- title: 'Birthday Party',
- start: '2014-11-13T07:00:00'
- },
- {
- title: 'Click for Google',
- url: 'http://google.com/',
- start: '2014-11-28'
- }
- ];
- // Event colors
- var eventColors = [
- {
- title: 'All Day Event',
- start: '2014-11-01',
- color: '#EF5350'
- },
- {
- title: 'Long Event',
- start: '2014-11-07',
- end: '2014-11-10',
- color: '#26A69A'
- },
- {
- id: 999,
- title: 'Repeating Event',
- start: '2014-11-09T16:00:00',
- color: '#26A69A'
- },
- {
- id: 999,
- title: 'Repeating Event',
- start: '2014-11-16T16:00:00',
- color: '#5C6BC0'
- },
- {
- title: 'Conference',
- start: '2014-11-11',
- end: '2014-11-13',
- color: '#546E7A'
- },
- {
- title: 'Meeting',
- start: '2014-11-12T10:30:00',
- end: '2014-11-12T12:30:00',
- color: '#546E7A'
- },
- {
- title: 'Lunch',
- start: '2014-11-12T12:00:00',
- color: '#546E7A'
- },
- {
- title: 'Meeting',
- start: '2014-11-12T14:30:00',
- color: '#546E7A'
- },
- {
- title: 'Happy Hour',
- start: '2014-11-12T17:30:00',
- color: '#546E7A'
- },
- {
- title: 'Dinner',
- start: '2014-11-12T20:00:00',
- color: '#546E7A'
- },
- {
- title: 'Birthday Party',
- start: '2014-11-13T07:00:00',
- color: '#546E7A'
- },
- {
- title: 'Click for Google',
- url: 'http://google.com/',
- start: '2014-11-28',
- color: '#FF7043'
- }
- ];
- // RTL direction
- // ------------------------------
- $('.fullcalendar-rtl').fullCalendar({
- header: {
- left: 'prev,next today',
- center: 'title',
- right: 'month,agendaWeek,agendaDay'
- },
- defaultDate: '2014-11-12',
- editable: true,
- isRTL: true,
- locale: 'ar',
- events: events
- });
- };
- //
- // Return objects assigned to module
- //
- return {
- init: function() {
- _componentFullCalendarEvents();
- _componentFullCalendarRTL();
- }
- }
- }();
- // Initialize module
- // ------------------------------
- document.addEventListener('DOMContentLoaded', function() {
- FullCalendarAdvanced.init();
- });
|