mirror of
https://github.com/pierre42100/ComunicWeb
synced 2024-11-26 13:59:23 +00:00
138 lines
3.5 KiB
HTML
138 lines
3.5 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset='utf-8' />
|
|
<link href='../lib/main.css' rel='stylesheet' />
|
|
<script src='../lib/main.js'></script>
|
|
<script>
|
|
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
var initialTimeZone = 'local';
|
|
var timeZoneSelectorEl = document.getElementById('time-zone-selector');
|
|
var loadingEl = document.getElementById('loading');
|
|
var calendarEl = document.getElementById('calendar');
|
|
|
|
var calendar = new FullCalendar.Calendar(calendarEl, {
|
|
timeZone: initialTimeZone,
|
|
headerToolbar: {
|
|
left: 'prev,next today',
|
|
center: 'title',
|
|
right: 'dayGridMonth,timeGridWeek,timeGridDay,listWeek'
|
|
},
|
|
initialDate: '2020-09-12',
|
|
navLinks: true, // can click day/week names to navigate views
|
|
editable: true,
|
|
selectable: true,
|
|
dayMaxEvents: true, // allow "more" link when too many events
|
|
events: {
|
|
url: 'php/get-events.php',
|
|
failure: function() {
|
|
document.getElementById('script-warning').style.display = 'inline'; // show
|
|
}
|
|
},
|
|
loading: function(bool) {
|
|
if (bool) {
|
|
loadingEl.style.display = 'inline'; // show
|
|
} else {
|
|
loadingEl.style.display = 'none'; // hide
|
|
}
|
|
},
|
|
|
|
eventTimeFormat: { hour: 'numeric', minute: '2-digit', timeZoneName: 'short' },
|
|
|
|
dateClick: function(arg) {
|
|
console.log('dateClick', calendar.formatIso(arg.date));
|
|
},
|
|
select: function(arg) {
|
|
console.log('select', calendar.formatIso(arg.start), calendar.formatIso(arg.end));
|
|
}
|
|
});
|
|
|
|
calendar.render();
|
|
|
|
// load the list of available timezones, build the <select> options
|
|
// it's HIGHLY recommended to use a different library for network requests, not this internal util func
|
|
FullCalendar.requestJson('GET', 'php/get-time-zones.php', {}, function(timeZones) {
|
|
|
|
timeZones.forEach(function(timeZone) {
|
|
var optionEl;
|
|
|
|
if (timeZone !== 'UTC') { // UTC is already in the list
|
|
optionEl = document.createElement('option');
|
|
optionEl.value = timeZone;
|
|
optionEl.innerText = timeZone;
|
|
timeZoneSelectorEl.appendChild(optionEl);
|
|
}
|
|
});
|
|
}, function() {
|
|
// TODO: handle error
|
|
});
|
|
|
|
// when the timezone selector changes, dynamically change the calendar option
|
|
timeZoneSelectorEl.addEventListener('change', function() {
|
|
calendar.setOption('timeZone', this.value);
|
|
});
|
|
});
|
|
|
|
</script>
|
|
<style>
|
|
|
|
body {
|
|
margin: 0;
|
|
padding: 0;
|
|
font-family: Arial, Helvetica Neue, Helvetica, sans-serif;
|
|
font-size: 14px;
|
|
}
|
|
|
|
#top {
|
|
background: #eee;
|
|
border-bottom: 1px solid #ddd;
|
|
padding: 0 10px;
|
|
line-height: 40px;
|
|
font-size: 12px;
|
|
}
|
|
.left { float: left }
|
|
.right { float: right }
|
|
.clear { clear: both }
|
|
|
|
#script-warning, #loading { display: none }
|
|
#script-warning { font-weight: bold; color: red }
|
|
|
|
#calendar {
|
|
max-width: 1100px;
|
|
margin: 40px auto;
|
|
padding: 0 10px;
|
|
}
|
|
|
|
.tzo {
|
|
color: #000;
|
|
}
|
|
|
|
</style>
|
|
</head>
|
|
<body>
|
|
|
|
<div id='top'>
|
|
|
|
<div class='left'>
|
|
Timezone:
|
|
<select id='time-zone-selector'>
|
|
<option value='local' selected>local</option>
|
|
<option value='UTC'>UTC</option>
|
|
</select>
|
|
</div>
|
|
|
|
<div class='right'>
|
|
<span id='loading'>loading...</span>
|
|
<span id='script-warning'><code>php/get-events.php</code> must be running.</span>
|
|
</div>
|
|
|
|
<div class='clear'></div>
|
|
|
|
</div>
|
|
|
|
<div id='calendar'></div>
|
|
|
|
</body>
|
|
</html>
|