svoydom/public/assets/js/fullcalendar.js
2023-05-17 09:57:20 +03:00

227 lines
6.5 KiB
JavaScript
Executable File

// 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();
});