| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- /*
- * Document : be_comp_calendar.js
- * Author : pixelcave
- * Description: Custom JS code used in Calendar Page
- */
- var BeCompCalendar = function() {
- // Add new event in the event list
- var addEvent = function() {
- var eventInput = jQuery('.js-add-event');
- var eventInputVal = '';
- // When the add event form is submitted
- jQuery('.js-form-add-event').on('submit', function(){
- eventInputVal = eventInput.prop('value'); // Get input value
- // Check if the user entered something
- if ( eventInputVal ) {
- // Add it to the events list
- jQuery('.js-events')
- .prepend('<li>' +
- jQuery('<div />').text(eventInputVal).html() +
- '</li>');
- // Clear input field
- eventInput.prop('value', '');
- // Re-Init Events
- initEvents();
- }
- return false;
- });
- };
- // Init drag and drop event functionality
- var initEvents = function() {
- jQuery('.js-events')
- .find('li')
- .each(function() {
- var event = jQuery(this);
- // create an Event Object
- var eventObject = {
- title: jQuery.trim(event.text()),
- color: event.css('background-color')
- };
- // store the Event Object in the DOM element so we can get to it later
- jQuery(this).data('eventObject', eventObject);
- // make the event draggable using jQuery UI
- jQuery(this).draggable({
- zIndex: 999,
- revert: true,
- revertDuration: 0
- });
- });
- };
- // Init FullCalendar
- var initCalendar = function(){
- var date = new Date();
- var d = date.getDate();
- var m = date.getMonth();
- var y = date.getFullYear();
- jQuery('.js-calendar').fullCalendar({
- firstDay: 1,
- editable: true,
- droppable: true,
- header: {
- left: 'title',
- right: 'prev,next today month,agendaWeek,agendaDay,listWeek'
- },
- drop: function(date, allDay) { // this function is called when something is dropped
- // retrieve the dropped element's stored Event Object
- var originalEventObject = jQuery(this).data('eventObject');
- // we need to copy it, so that multiple events don't have a reference to the same object
- var copiedEventObject = jQuery.extend({}, originalEventObject);
- // assign it the date that was reported
- copiedEventObject.start = date;
- // render the event on the calendar
- // the last `true` argument determines if the event "sticks" (http://arshaw.com/fullcalendar/docs/event_rendering/renderEvent/)
- jQuery('.js-calendar').fullCalendar('renderEvent', copiedEventObject, true);
- // remove the element from the "Draggable Events" list
- jQuery(this).remove();
- },
- events: [
- {
- title: 'Gaming Day',
- start: new Date(y, m, 1),
- allDay: true,
- color: '#fcf7e6'
- },
- {
- title: 'Skype Meeting',
- start: new Date(y, m, 3)
- },
- {
- title: 'Project X',
- start: new Date(y, m, 9),
- end: new Date(y, m, 12),
- allDay: true,
- color: '#fae9e8'
- },
- {
- title: 'Work',
- start: new Date(y, m, 17),
- end: new Date(y, m, 19),
- allDay: true,
- color: '#fae9e8'
- },
- {
- id: 999,
- title: 'Hiking (repeated)',
- start: new Date(y, m, d - 1, 15, 0)
- },
- {
- id: 999,
- title: 'Hiking (repeated)',
- start: new Date(y, m, d + 3, 15, 0)
- },
- {
- title: 'Landing Template',
- start: new Date(y, m, d - 3),
- end: new Date(y, m, d - 3),
- allDay: true,
- color: '#fcf7e6'
- },
- {
- title: 'Lunch',
- start: new Date(y, m, d + 7, 15, 00),
- color: '#ebf5df'
- },
- {
- title: 'Coding',
- start: new Date(y, m, d, 8, 0),
- end: new Date(y, m, d, 14, 0),
- color: '#fcf7e6'
- },
- {
- title: 'Trip',
- start: new Date(y, m, 25),
- end: new Date(y, m, 27),
- allDay: true,
- color: '#fcf7e6'
- },
- {
- title: 'Reading',
- start: new Date(y, m, d + 8, 20, 0),
- end: new Date(y, m, d + 8, 22, 00)
- },
- {
- title: 'Follow me on Twitter',
- start: new Date(y, m, 22),
- allDay: true,
- url: 'http://twitter.com/pixelcave'
- }
- ]
- });
- };
- return {
- init: function () {
- // Add Event functionality
- addEvent();
- // FullCalendar, for more examples you can check out http://fullcalendar.io/
- initEvents();
- initCalendar();
- }
- };
- }();
- // Initialize when page loads
- jQuery(function(){ BeCompCalendar.init(); });
|