diff options
author | Benjamin Kiessling <mittagessen@l.unchti.me> | 2011-11-29 16:37:10 +0100 |
---|---|---|
committer | Benjamin Kiessling <mittagessen@l.unchti.me> | 2011-11-29 16:37:10 +0100 |
commit | cc25e22f481c0c80528d3fbc9631d46a4aae8eb1 (patch) | |
tree | 9f701b46f72afdded831dab6c95deac8440fbac7 | |
parent | 33679681d5fe8eabfc847c94cd8d8bb341859cc1 (diff) |
Enable Ical event support
-rw-r--r-- | frontend.js | 9 | ||||
-rw-r--r-- | model_fs.js | 24 |
2 files changed, 18 insertions, 15 deletions
diff --git a/frontend.js b/frontend.js index ed50fc7..a069966 100644 --- a/frontend.js +++ b/frontend.js @@ -28,11 +28,10 @@ exports.start = function(config) { } var eventStr = ''; for(var date in slides['events']) { - if(!slides['events'].hasOwnProperty(date)) { continue; } - eventStr = eventStr + '<h4>'+slides['events'][date]['date']+'</h4><hr><ul>'; - for(var ev in slides['events'][date]['events']) { - if(!slides['events'][date]['events'].hasOwnProperty(ev)) { continue; } - eventStr = eventStr + '<li>'+slides['events'][date]['events'][ev]['time']+' - '+slides['events'][date]['events'][ev]['text']+'</li>'; + eventStr = eventStr + '<h4>'+date+'</h4><hr><ul>'; + for(var ev in slides['events'][date]) { + if(!slides['events'][date].hasOwnProperty(ev)) { continue; } + eventStr = eventStr + '<li>'+slides['events'][date][ev]['time']+' - '+slides['events'][date][ev]['text']+'</li>'; } eventStr = eventStr + '</ul>'; } diff --git a/model_fs.js b/model_fs.js index 6c64211..14cb4b5 100644 --- a/model_fs.js +++ b/model_fs.js @@ -17,7 +17,6 @@ exports.start = function(config) { watcher.on('fileCreated', exports.rebuildFiles); watcher.on('fileModified', exports.rebuildFiles); exports.rebuildFiles(); - }; exports.rebuildFiles = function() { @@ -86,27 +85,32 @@ exports.rebuildFiles = function() { } /* collect events and adds them to the slideset */ var collectEvents = function(slideset) { - fs.readFile(path.join(__dirname, configuration.dir, 'default', configuration.events), function(err, data) { + fs.readFile(path.join(__dirname, configuration.dir, slideset, configuration.events), function(err, data) { if(err) { throw err; } var events = JSON.parse(data.toString()); if(events['type'] == 'text') { - files[slideset]['events'] = events['events']; + setEvents(slideset, events['events'], function(err) { + if(err) { throw err; } + }); } else if(events['type'] == 'ical') { - var compEv = []; ical.fromURL(events['url'], {}, function(err, data) { + if(err) { throw err; } + var compEv = []; for (var k in data) { if (data.hasOwnProperty(k)) { var ev = data[k]; if(ev.start && ev.summary) { - compEv.push({ - date: - ev.start, - text: - ev.summary - }); + var curDate = new Date(ev.start); + if(typeof compEv[curDate.toDateString()] == "undefined") { + compEv[curDate.toDateString()] = []; + } + compEv[curDate.toDateString()].push({time: curDate.toTimeString(), text: ev.summary}); } } } + setEvents(slideset, compEv, function(err) { + if(err) { throw err; } + }); }); } }); |