227 lines
6.5 KiB
JavaScript
227 lines
6.5 KiB
JavaScript
|
// npm package: fullcalendar
|
||
|
// github link: https://github.com/fullcalendar/fullcalendar
|
||
|
|
||
|
$(function() {
|
||
|
|
||
|
// sample calendar events data
|
||
|
|
||
|
var Draggable = FullCalendar.Draggable;
|
||
|
var calendarEl = document.getElementById('fullcalendar');
|
||
|
var containerEl = document.getElementById('external-events');
|
||
|
|
||
|
var curYear = moment().format('YYYY');
|
||
|
var curMonth = moment().format('MM');
|
||
|
|
||
|
// Calendar Event Source
|
||
|
var calendarEvents = {
|
||
|
id: 1,
|
||
|
backgroundColor: 'rgba(1,104,250, .15)',
|
||
|
borderColor: '#0168fa',
|
||
|
events: [
|
||
|
{
|
||
|
id: '1',
|
||
|
start: curYear+'-'+curMonth+'-08T08:30:00',
|
||
|
end: curYear+'-'+curMonth+'-08T13:00:00',
|
||
|
title: 'Google Developers Meetup',
|
||
|
description: 'In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis az pede mollis...',
|
||
|
display: 'dot'
|
||
|
},{
|
||
|
id: '2',
|
||
|
start: curYear+'-'+curMonth+'-10T09:00:00',
|
||
|
end: curYear+'-'+curMonth+'-10T17:00:00',
|
||
|
title: 'Design/Code Review',
|
||
|
description: 'In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis az pede mollis...'
|
||
|
},{
|
||
|
id: '3',
|
||
|
start: curYear+'-'+curMonth+'-13T12:00:00',
|
||
|
end: curYear+'-'+curMonth+'-13T18:00:00',
|
||
|
title: 'Lifestyle Conference',
|
||
|
description: 'Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi...'
|
||
|
},{
|
||
|
id: '4',
|
||
|
start: curYear+'-'+curMonth+'-15T07:30:00',
|
||
|
end: curYear+'-'+curMonth+'-15T15:30:00',
|
||
|
title: 'Team Weekly Trip',
|
||
|
description: 'In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis az pede mollis...'
|
||
|
},{
|
||
|
id: '5',
|
||
|
start: curYear+'-'+curMonth+'-17T10:00:00',
|
||
|
end: curYear+'-'+curMonth+'-19T15:00:00',
|
||
|
title: 'DJ Festival',
|
||
|
description: 'In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis az pede mollis...'
|
||
|
},{
|
||
|
id: '6',
|
||
|
start: curYear+'-'+curMonth+'-08T13:00:00',
|
||
|
end: curYear+'-'+curMonth+'-08T18:30:00',
|
||
|
title: 'Carl Henson\'s Wedding',
|
||
|
description: 'In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis az pede mollis...'
|
||
|
}
|
||
|
]
|
||
|
};
|
||
|
|
||
|
// Birthday Events Source
|
||
|
var birthdayEvents = {
|
||
|
id: 2,
|
||
|
backgroundColor: 'rgba(16,183,89, .25)',
|
||
|
borderColor: '#10b759',
|
||
|
events: [
|
||
|
{
|
||
|
id: '7',
|
||
|
start: curYear+'-'+curMonth+'-01T18:00:00',
|
||
|
end: curYear+'-'+curMonth+'-01T23:30:00',
|
||
|
title: 'Jensen Birthday',
|
||
|
description: 'In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis az pede mollis...'
|
||
|
},
|
||
|
{
|
||
|
id: '8',
|
||
|
start: curYear+'-'+curMonth+'-21T15:00:00',
|
||
|
end: curYear+'-'+curMonth+'-21T21:00:00',
|
||
|
title: 'Carl\'s Birthday',
|
||
|
description: 'In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis az pede mollis...'
|
||
|
},
|
||
|
{
|
||
|
id: '9',
|
||
|
start: curYear+'-'+curMonth+'-23T15:00:00',
|
||
|
end: curYear+'-'+curMonth+'-23T21:00:00',
|
||
|
title: 'Yaretzi\'s Birthday',
|
||
|
description: 'In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis az pede mollis...'
|
||
|
}
|
||
|
]
|
||
|
};
|
||
|
|
||
|
|
||
|
var holidayEvents = {
|
||
|
id: 3,
|
||
|
backgroundColor: 'rgba(241,0,117,.25)',
|
||
|
borderColor: '#f10075',
|
||
|
events: [
|
||
|
{
|
||
|
id: '10',
|
||
|
start: curYear+'-'+curMonth+'-04',
|
||
|
end: curYear+'-'+curMonth+'-06',
|
||
|
title: 'Feast Day'
|
||
|
},
|
||
|
{
|
||
|
id: '11',
|
||
|
start: curYear+'-'+curMonth+'-26',
|
||
|
end: curYear+'-'+curMonth+'-27',
|
||
|
title: 'Memorial Day'
|
||
|
},
|
||
|
{
|
||
|
id: '12',
|
||
|
start: curYear+'-'+curMonth+'-28',
|
||
|
end: curYear+'-'+curMonth+'-29',
|
||
|
title: 'Veteran\'s Day'
|
||
|
}
|
||
|
]
|
||
|
};
|
||
|
|
||
|
var discoveredEvents = {
|
||
|
id: 4,
|
||
|
backgroundColor: 'rgba(0,204,204,.25)',
|
||
|
borderColor: '#00cccc',
|
||
|
events: [
|
||
|
{
|
||
|
id: '13',
|
||
|
start: curYear+'-'+curMonth+'-17T08:00:00',
|
||
|
end: curYear+'-'+curMonth+'-18T11:00:00',
|
||
|
title: 'Web Design Workshop Seminar'
|
||
|
}
|
||
|
]
|
||
|
};
|
||
|
|
||
|
var meetupEvents = {
|
||
|
id: 5,
|
||
|
backgroundColor: 'rgba(91,71,251,.2)',
|
||
|
borderColor: '#5b47fb',
|
||
|
events: [
|
||
|
{
|
||
|
id: '14',
|
||
|
start: curYear+'-'+curMonth+'-03',
|
||
|
end: curYear+'-'+curMonth+'-05',
|
||
|
title: 'UI/UX Meetup Conference'
|
||
|
},
|
||
|
{
|
||
|
id: '15',
|
||
|
start: curYear+'-'+curMonth+'-18',
|
||
|
end: curYear+'-'+curMonth+'-20',
|
||
|
title: 'Angular Conference Meetup'
|
||
|
}
|
||
|
]
|
||
|
};
|
||
|
|
||
|
|
||
|
var otherEvents = {
|
||
|
id: 6,
|
||
|
backgroundColor: 'rgba(253,126,20,.25)',
|
||
|
borderColor: '#fd7e14',
|
||
|
events: [
|
||
|
{
|
||
|
id: '16',
|
||
|
start: curYear+'-'+curMonth+'-06',
|
||
|
end: curYear+'-'+curMonth+'-08',
|
||
|
title: 'My Rest Day'
|
||
|
},
|
||
|
{
|
||
|
id: '17',
|
||
|
start: curYear+'-'+curMonth+'-29',
|
||
|
end: curYear+'-'+curMonth+'-31',
|
||
|
title: 'My Rest Day'
|
||
|
}
|
||
|
]
|
||
|
};
|
||
|
|
||
|
new Draggable(containerEl, {
|
||
|
itemSelector: '.fc-event',
|
||
|
eventData: function(eventEl) {
|
||
|
return {
|
||
|
title: eventEl.innerText
|
||
|
};
|
||
|
}
|
||
|
});
|
||
|
|
||
|
|
||
|
// initialize the calendar
|
||
|
var calendar = new FullCalendar.Calendar(calendarEl, {
|
||
|
headerToolbar: {
|
||
|
left: "prev,today,next",
|
||
|
center: 'title',
|
||
|
right: 'dayGridMonth,timeGridWeek,timeGridDay,listMonth'
|
||
|
},
|
||
|
editable: true,
|
||
|
droppable: true, // this allows things to be dropped onto the calendar
|
||
|
fixedWeekCount: true,
|
||
|
// height: 300,
|
||
|
initialView: 'dayGridMonth',
|
||
|
timeZone: 'UTC',
|
||
|
hiddenDays:[],
|
||
|
navLinks: 'true',
|
||
|
// weekNumbers: true,
|
||
|
// weekNumberFormat: {
|
||
|
// week:'numeric',
|
||
|
// },
|
||
|
dayMaxEvents: 2,
|
||
|
events: [],
|
||
|
eventSources: [calendarEvents, birthdayEvents, holidayEvents, discoveredEvents, meetupEvents, otherEvents],
|
||
|
drop: function(info) {
|
||
|
// remove the element from the "Draggable Events" list
|
||
|
// info.draggedEl.parentNode.removeChild(info.draggedEl);
|
||
|
},
|
||
|
eventClick: function(info) {
|
||
|
var eventObj = info.event;
|
||
|
console.log(info);
|
||
|
$('#modalTitle1').html(eventObj.title);
|
||
|
$('#modalBody1').html(eventObj._def.extendedProps.description);
|
||
|
$('#eventUrl').attr('href',eventObj.url);
|
||
|
$('#fullCalModal').modal("show");
|
||
|
},
|
||
|
dateClick: function(info) {
|
||
|
$("#createEventModal").modal("show");
|
||
|
console.log(info);
|
||
|
},
|
||
|
});
|
||
|
|
||
|
calendar.render();
|
||
|
|
||
|
|
||
|
});
|