area-51/lib/fullcalendar-6.1.14/examples/timegrid-views-modal.html
2025-01-30 04:21:55 +01:00

180 lines
3.8 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8' />
<script src='../dist/index.global.js'></script>
<script>
/*
From https://github.com/fullcalendar/fullcalendar/issues/5026
*/
document.addEventListener('DOMContentLoaded', function() {
var calendarOptions = {
initialDate: '2023-01-12',
initialView: 'timeGridWeek',
nowIndicator: true,
headerToolbar: {
left: 'prev,next today',
center: 'title',
right: 'dayGridMonth,timeGridWeek,timeGridDay,listWeek'
},
navLinks: true, // can click day/week names to navigate views
editable: true,
selectable: true,
selectMirror: true,
dayMaxEvents: true, // allow "more" link when too many events
events: [
{
title: 'All Day Event',
start: '2023-01-01',
},
{
title: 'Long Event',
start: '2023-01-07',
end: '2023-01-10'
},
{
groupId: 999,
title: 'Repeating Event',
start: '2023-01-09T16:00:00'
},
{
groupId: 999,
title: 'Repeating Event',
start: '2023-01-16T16:00:00'
},
{
title: 'Conference',
start: '2023-01-11',
end: '2023-01-13'
},
{
title: 'Meeting',
start: '2023-01-12T10:30:00',
end: '2023-01-12T12:30:00'
},
{
title: 'Lunch',
start: '2023-01-12T12:00:00'
},
{
title: 'Meeting',
start: '2023-01-12T14:30:00'
},
{
title: 'Happy Hour',
start: '2023-01-12T17:30:00'
},
{
title: 'Dinner',
start: '2023-01-12T20:00:00'
},
{
title: 'Birthday Party',
start: '2023-01-13T07:00:00'
},
{
title: 'Click for Google',
url: 'http://google.com/',
start: '2023-01-28'
}
]
};
var calendar = new FullCalendar.Calendar(document.getElementById('calendar'), calendarOptions);
calendar.render();
var calendar2 = new FullCalendar.Calendar(document.getElementById('calendar2'), calendarOptions);
calendar2.render();
/*
Modal
*/
var modal = document.querySelector('.modal');
var modalTrigger = document.querySelector('.modal-trigger');
var modalOverlay = document.querySelector('.modal-overlay');
modalTrigger.addEventListener('click', function() {
modal.classList.add('is-visible');
calendar2.updateSize();
});
modalOverlay.addEventListener('click', function() {
modal.classList.remove('is-visible');
});
});
</script>
<style>
body {
margin: 10px;
padding: 0;
font-family: Arial, Helvetica Neue, Helvetica, sans-serif;
font-size: 14px;
}
#calendar {
max-width: 1100px;
margin: 0 auto;
}
.modal {
display: none;
position: absolute;
z-index: 10000;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.modal.is-visible {
display: block;
}
.modal-overlay {
position: fixed;
z-index: 10;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: hsla(0, 0%, 0%, 0.5);
}
.modal-wrapper {
position: absolute;
z-index: 9999;
top: 6em;
left: 50%;
width: 600px;
margin-left: -16em;
background-color: #fff;
box-shadow: 0 0 1.5em hsla(0, 0%, 0%, 0.35);
}
.modal-content {
padding: 1em;
}
</style>
</head>
<body>
<button class='modal-trigger'>Show modal</button>
<div id='calendar'></div>
<div class='modal'>
<div class='modal-overlay'></div>
<div class='modal-wrapper'>
<div class='modal-content'>
<div id='calendar2'></div>
</div>
</div>
</div>
</body>
</html>