@wycliffeusa/add-to-calendar-buttons
Version:
A simple JS library that enables you to add an "add to calendar" button for your upcoming events - forked from commonpike
54 lines (44 loc) • 2.11 kB
JavaScript
document.getElementById('calendar-generator').onsubmit = function() {
// Get values for the calendar
var title = document.getElementById('event-title').value;
var startString = document.getElementById('start-time').value;
var start = new Date(startString.replace(/-/g, ",").replace(/T/, " "));
var endString = document.getElementById('end-time').value;
var end = new Date(endString.replace(/-/g, ",").replace(/T/, " "));
var address = document.getElementById('event-address').value;
var description = document.getElementById('event-description').value;
var eventId = document.getElementById('event-id').value;
var eventClass = document.getElementById('event-class').value;
// Make sure basic info is passed in
if (!(title && start)) {
console.log('Add some details');
return false;
}
// Create the calendar
var myCalendar = addToCalendar({
options: {
class: eventClass,
id: eventId
},
data: {
title: title,
start: start,
end: end,
address: address,
description: description
}
});
// Add the calendar result and an example
document.getElementById('live-example').appendChild(myCalendar);
var embedTextArea = document.createElement('textarea');
embedTextArea.setAttribute('rows', 10);
embedTextArea.setAttribute('cols', 80);
document.getElementById('html-result').innerHTML += '<p class="instructions">Copy and paste this code:</p>';
var calendarStyleNode = document.getElementById('add-to-calendar-css');
var calendarCSS = (calendarStyleNode)?calendarStyleNode.textContent:'/* error */';
var calendarJS = 'function closeCalenderOnMouseDown(e){var n=function(){setTimeout(function(){e.checked=!1},750),document.removeEventListener("mousedown",n)};document.addEventListener("mousedown",n)}';
myCalendar.innerHTML += ('<style type="text/css">' + calendarCSS + '</style>');
myCalendar.innerHTML += ('<script>' + calendarJS + '</script>');
document.getElementById('html-result').appendChild(embedTextArea).value = myCalendar.innerHTML;
return false;
};