mirror of
https://github.com/MichMich/MagicMirror.git
synced 2025-06-27 11:50:00 +00:00
Added support for rrule handling in ics events
This commit is contained in:
parent
dd5bf51db9
commit
8e4ebde957
@ -26,6 +26,7 @@
|
|||||||
<script src="js/ical_parser.js"></script>
|
<script src="js/ical_parser.js"></script>
|
||||||
<script src="js/moment-with-langs.min.js"></script>
|
<script src="js/moment-with-langs.min.js"></script>
|
||||||
<script src="js/config.js"></script>
|
<script src="js/config.js"></script>
|
||||||
|
<script src="js/rrule.js"></script>
|
||||||
<script src="js/main.js?nocache=<?php echo md5(microtime()) ?>"></script>
|
<script src="js/main.js?nocache=<?php echo md5(microtime()) ?>"></script>
|
||||||
<script src="js/socket.io.min.js"></script>
|
<script src="js/socket.io.min.js"></script>
|
||||||
|
|
||||||
|
27
js/main.js
27
js/main.js
@ -138,8 +138,35 @@ jQuery(document).ready(function($) {
|
|||||||
}else {
|
}else {
|
||||||
var time_string = moment(startDate).calendar()
|
var time_string = moment(startDate).calendar()
|
||||||
}
|
}
|
||||||
|
if (!e.RRULE) {
|
||||||
eventList.push({'description':e.SUMMARY,'seconds':seconds,'days':time_string});
|
eventList.push({'description':e.SUMMARY,'seconds':seconds,'days':time_string});
|
||||||
}
|
}
|
||||||
|
e.seconds = seconds;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Special handling for rrule events
|
||||||
|
if (e.RRULE) {
|
||||||
|
var options = new RRule.parseString(e.RRULE);
|
||||||
|
options.dtstart = e.startDate;
|
||||||
|
var rule = new RRule(options);
|
||||||
|
|
||||||
|
// TODO: don't use fixed end date here, use something like now() + 1 year
|
||||||
|
var dates = rule.between(new Date(), new Date(2016,11,31), true, function (date, i){return i < 10});
|
||||||
|
for (date in dates) {
|
||||||
|
var dt = new Date(dates[date]);
|
||||||
|
var days = moment(dt).diff(moment(), 'days');
|
||||||
|
var seconds = moment(dt).diff(moment(), 'seconds');
|
||||||
|
var startDate = moment(dt);
|
||||||
|
if (seconds >= 0) {
|
||||||
|
if (seconds <= 60*60*5 || seconds >= 60*60*24*2) {
|
||||||
|
var time_string = moment(dt).fromNow();
|
||||||
|
} else {
|
||||||
|
var time_string = moment(dt).calendar()
|
||||||
|
}
|
||||||
|
eventList.push({'description':e.SUMMARY,'seconds':seconds,'days':time_string});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
eventList.sort(function(a,b){return a.seconds-b.seconds});
|
eventList.sort(function(a,b){return a.seconds-b.seconds});
|
||||||
|
|
||||||
|
1910
js/rrule.js
Normal file
1910
js/rrule.js
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user