« Indo European Language Google Site | Main | FOAF in RDFa »
December 10, 2009
FullCalendar Code
This is a genius piece of jQuery:
http://arshaw.com/fullcalendar/
<script type="text/javascript"> var events = [ { title: 'Dummy', start: new Date(1900,1,1)} ,{ title: "Reuters Datastream Training", start: "2009-09-22T16:00:00+01:00", end: "2009-09-22T17:00:00+01:00", allDay: false, url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/reuters-datastream-training" } ,{ title: "Pom tiddly pom", start: "2009-11-23T10:59:00+00:00", end: "2009-11-23T12:49:00+00:00", allDay: false, url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/pom-tiddly-pom" } ,{ title: "Management of R and D and Product Innovation", start: "2009-02-16T16:10:00+00:00", end: "2009-02-16T18:00:00+00:00", allDay: false, url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/management-of-r-and-d-and-product-innovation2" } ]; </script> <script type="text/javascript"> var recurrences = [ { title: 'Dummy' } ,{ title: "Foundations of Finance Theory", start: "2009-09-22T14:00:00+01:00", end: "2009-09-22T15:50:00+01:00", allDay: false, url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/foundations-of-finance-theory", frequency: "FREQ=WEEKLY;INTERVAL=1;UNTIL=20091201T000000", stop_date: "2009-12-01T00:00:00+00:00" } ,{ title: "Analysis of Corporate Financial Information Lecture", start: "2009-09-24T11:10:00+01:00", end: "2009-09-24T13:00:00+01:00", allDay: false, url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/analysis-of-corporate-financial-information-lecture", frequency: "FREQ=WEEKLY;INTERVAL=1;UNTIL=20091203T000000", stop_date: "2009-12-03T00:00:00+00:00" } ,{ title: "My test title", start: "2009-12-02T16:00:00+00:00", end: "2009-12-02T17:50:00+00:00", allDay: false, url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/my-test-title", frequency: "FREQ=WEEKLY;INTERVAL=2;UNTIL=20100324T000000", stop_date: "2010-03-24T00:00:00+00:00" } ,{ title: "Derivatives Tutorial Group 1", start: "2010-01-11T09:00:00+00:00", end: "2010-01-11T10:00:00+00:00", allDay: false, url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/derivatives-tutorial", frequency: "FREQ=WEEKLY;INTERVAL=1;UNTIL=20100221T000000", stop_date: "2010-02-21T00:00:00+00:00" } ,{ title: "Management of R and D and Product Innovation", start: "2010-01-12T16:10:00+00:00", end: "2010-01-12T18:00:00+00:00", allDay: false, url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/management-of-r-and-d-and-product-innovation", frequency: "FREQ=WEEKLY;INTERVAL=1;UNTIL=20100214T000000", stop_date: "2010-02-14T00:00:00+00:00" } ,{ title: "Doing Business Projects in Emerging Markets", start: "2010-01-11T09:00:00+00:00", end: "2010-01-11T10:50:00+00:00", allDay: false, url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/doing-business-projects-in-emerging-markets", frequency: "FREQ=WEEKLY;INTERVAL=1;UNTIL=20100221T000000", stop_date: "2010-02-21T00:00:00+00:00" } ,{ title: "Derivatives Tutorial Group 2", start: "2010-01-11T10:00:00+00:00", end: "2010-01-11T11:00:00+00:00", allDay: false, url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/derivatives-tutorial-group-2", frequency: "FREQ=WEEKLY;INTERVAL=1;UNTIL=20100221T000000", stop_date: "2010-02-21T00:00:00+00:00" } ,{ title: "Corporate Strategy", start: "2010-01-11T21:00:00+00:00", end: "2010-01-11T22:50:00+00:00", allDay: false, url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/corporate-strategy", frequency: "FREQ=WEEKLY;INTERVAL=1;UNTIL=20100221T000000", stop_date: "2010-02-21T00:00:00+00:00" } ,{ title: "Advertising Management", start: "2010-01-11T14:00:00+00:00", end: "2010-01-11T15:50:00+00:00", allDay: false, url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/advertising-management", frequency: "FREQ=WEEKLY;INTERVAL=1;UNTIL=20100221T000000", stop_date: "2010-02-21T00:00:00+00:00" } ]; function get_event_recurrences(recurrences, events){ var end_date; for(i in recurrences){ if(i > 0){ var this_one = recurrences[i]; var number_of_days = 7; if(this_one['frequency'].match(/DAILY/)){ number_of_days = 1; } if(this_one['frequency'].match(/MONTHLY/)){ number_of_days = 30; } if(this_one['frequency'].match(/WEEKLY/)){ number_of_days = 7; } var stop_date = eval($.fullCalendar.parseDate(this_one['stop_date']).getTime()) / 1000; end_date = eval($.fullCalendar.parseDate(this_one['end']).getTime()) / 1000; var start_date = eval($.fullCalendar.parseDate(this_one['start']).getTime()) / 1000; var interval = (60 * 60 * 24) * number_of_days * extract_interval(this_one['frequency']); //alert((eval(stop_date) - eval(start_date)) / interval); for(d = start_date; d < stop_date; d = d + interval){ var start = d; var new_oc = {}; new_oc['title'] = this_one['title']; new_oc['url'] = this_one['url']; new_oc['allDay'] = this_one['allDay']; new_oc['start'] = new Date(start*1000); new_oc['end'] = new Date(end_date*1000); end_date = end_date + interval; events.push(new_oc); } } } return events; } function extract_interval(frequency){ var da_list = frequency.split(';'); var interval = da_list[1]; var da_number = interval.split('='); return eval(da_number[1]); } </script><script type="text/javascript"> var now = new Date(); $(document).ready( function(){ $('#calendar').fullCalendar( {header: {left: 'prev,next today',center: 'title', right: 'month,agendaWeek,agendaDay'}, columnFormat: { week: 'ddd d MMM', // Mon 9/7 day: 'dddd d MMM' // Monday 9/7 }, editable: false, firstHour: 9, //eval(now.getHours()), minTime: '8:30am', maxTime: '8:30pm', timeFormat: 'H:mm', firstDay: 1, defaultView: 'agendaWeek', currentTimezone: 'Europe/London', events: get_event_recurrences(recurrences, events)}); } ); </script>
Tags: jQuery
Posted by pj at December 10, 2009 04:42 PM