]> code.delx.au - comingnext/blobdiff - comingNext/index.html
fixed DayEvents to be shown although they already passed (+12h bug in WRT API)
[comingnext] / comingNext / index.html
index 4a1c267ec53247c16923a8a2fa311785964bf3e2..5ce4fd4bc951fb706a9e72bd6eed7493ed32c7ed 100644 (file)
@@ -370,6 +370,7 @@ function updateData(){
                                        eventIds[entry.id] = 1;\r
                                }                                                       \r
 \r
+                               // skip events for the first panel in case this is the second one\r
                                if (panelNum == 1 && counter < eventsPerWidget + 1)\r
                                        continue;\r
 \r
@@ -391,31 +392,40 @@ function updateData(){
                                \r
                                // Convert date/time string to Date object\r
                                var date = parseDate(entryDate);\r
-                               console.info(date);\r
+                               console.info('date: ' + date);\r
+                               var endDate = ((entryEndTime == null) ? null : parseDate(entryEndTime));\r
+                               console.info('endDate: ' + endDate);\r
                                \r
-                               // check if event has already passed\r
-                               if (entry.Type == 'Meeting' || entry.Type == 'Reminder'){\r
-                                       if (entryEndTime == null){\r
-                                               if (now.getTime() > date.getTime()){\r
-                                                       counter--;\r
-                                                       continue;\r
-                                               }\r
-                                       }else if (entryEndTime != null){\r
-                                               var endDate = parseDate(entryEndTime);\r
-                                               if (now.getTime() > endDate.getTime()){\r
-                                                       counter--;\r
-                                                       continue;\r
-                                               }\r
+                               // check if meeting event has already passed\r
+                               if (entry.Type == 'Meeting'){\r
+                                       var compareTime = ((endDate == null) ? date.getTime() : endDate.getTime());\r
+                                       if (now.getTime() > compareTime){\r
+                                               console.info('skipped (already passed) ' + entry.id);\r
+                                               counter--;\r
+                                               continue;\r
                                        }\r
                                }\r
                                \r
+                               // fix DayEvents end time. A bug in WRT causes end times to be off by +12 hours. It's possible that the event has already passed\r
+                               if (entry.Type == 'DayEvent' && endDate != null){\r
+                                       endDate.setHours(endDate.getHours() - 12);\r
+                                       endDate.setMinutes(endDate.getMinutes() - 1);\r
+                                       console.info('fixing DayEvent endDate: ' + endDate);\r
+                                       if (now.getTime() > endDate.getTime()){\r
+                                               console.info('event already passed');\r
+                                               counter--;\r
+                                               continue;                                               \r
+                                       }\r
+                               }\r
+\r
                                // check if the event is currently taking place\r
-                               if (entryStartTime != null && entryEndTime != null && date != null)\r
+                               if (entryStartTime != null && entryEndTime != null && date != null && endDate != null)\r
                                {\r
                                        // check if we are between start and endtime\r
-                                       var endDate = parseDate(entryEndTime);\r
-                                       if (endDate != null && (date.getTime() < now.getTime()) && (now.getTime() < endDate.getTime()))\r
+                                       if ((date.getTime() < now.getTime()) && (now.getTime() < endDate.getTime())) {\r
                                                date = now; // change appointment date/time to now\r
+                                               console.info('event is currently taking place: ' + date);\r
+                                       }\r
                                }\r
                                \r
                                // generate html output\r