]> code.delx.au - comingnext/commitdiff
Work around for bug by fixing the current Date rather than amending calendar dates master
authorJames Bunton <jamesbunton@delx.net.au>
Fri, 5 Oct 2012 11:43:01 +0000 (21:43 +1000)
committerJames Bunton <jamesbunton@delx.net.au>
Sat, 6 Oct 2012 00:14:50 +0000 (10:14 +1000)
comingNext/index.html

index 812ae7f69e6984e039bfd4960b0b165c7f80db05..1d45580d63d013d6d51dc91e79dfecb5c112fdc2 100644 (file)
@@ -86,6 +86,18 @@ var config = {
 //-------------------------------------------------------\r
 // Nothing of interest from here on...\r
 //-------------------------------------------------------\r
+\r
+function fixDate(d) {\r
+       if (d.getTimezoneOffset() < -12*60) {\r
+               d = new Date((new Date(d.getTime()-24*3600*1000)).toLocaleString());\r
+       }\r
+       return d\r
+}\r
+\r
+function newDate() {\r
+       return fixDate(new Date());\r
+}\r
+\r
 var panelNum = 0; // use 1 for second panel\r
 var version = "1.37";\r
 var versionURL = "http://comingnext.sourceforge.net/version.xml";\r
@@ -94,7 +106,7 @@ var cacheEntriesHtml = [];
 var months_translated = [];\r
 var weekdays_translated = [];\r
 var orientation = '';\r
-var now = new Date();\r
+var now = newDate();\r
 var mode = 0; // 0 = homescreen, 1 = fullscreen, 2 = settings, 3 = about, 4 = check for update\r
 var reqV = null; \r
 var settingsCalEntryId = null;\r
@@ -113,7 +125,6 @@ var statupSuccessful = false; // indicates if everything started up wihtout erro
 var use12hoursTimeFormat = false; // defines how time should be formated: 19:00 or 07:00 pm\r
 var timeFormatSeparator = ":"; // format time 19:00 or 19.00 depending on system setting\r
 var defaultFontSize = null; // default browser font size will be set by init\r
-var displayOffset = 0;\r
 \r
 // vars for daylight saving time\r
 var summertime = false; // true, if current date is in summer, false if in winter\r
@@ -256,7 +267,7 @@ function collectLocales()
                }\r
        }\r
        for (weekday = 0; weekday < 7; weekday++) {\r
-               var startDate = new Date(2000, 0, 2 + weekday); // date that we know for sure is a sunday\r
+               var startDate = new Date(2000, 0, 2 + weekday, 12); // date that we know for sure is a sunday\r
 \r
                var item = new Object();\r
                item.Type = "DayEvent";\r
@@ -532,9 +543,6 @@ function parseDate(dateString)
                        log('parseDate(): fixing time +1h: ' + result);\r
                }\r
        }\r
-       if (displayOffset != 0) {\r
-               result = new Date(result.getTime() + displayOffset);\r
-       }\r
 \r
        return result;\r
 }\r
@@ -672,7 +680,7 @@ function updateData()
                lastReloadTime = null; // force calendar data reload on this update\r
        }\r
 \r
-       now = new Date();\r
+       now = newDate();\r
        \r
        // only reload calendar data every 6 hours, visual updates occure more often\r
        if (!lastReloadTime || now.getTime() - lastReloadTime.getTime() > reloadInterval) {\r
@@ -730,7 +738,7 @@ function updateData()
                        } else {\r
                                entryLists = [meetingList];\r
                        }\r
-                       lastReloadTime = new Date();\r
+                       lastReloadTime = newDate();\r
                } catch(e) {\r
                        error('loading Calendar items list:' + e + ', line ' + e.line);\r
                        return;\r
@@ -957,7 +965,7 @@ function updateData()
                        cacheEntriesHtml = entriesHtml;\r
                }\r
                \r
-               lastUpdateTime = new Date();\r
+               lastUpdateTime = newDate();\r
        } catch(e) {\r
                error('displaying list:' + e + ', line ' + e.line);\r
                return;\r
@@ -997,7 +1005,7 @@ function handleOnShow()
 {\r
        updateScreen();\r
 \r
-       var time = new Date();\r
+       var time = newDate();\r
        if (time.getTime() - lastUpdateTime.getTime() > config['updateDataInterval'].Value * 60 * 1000) {\r
                log('updateScreen(): force updateData() because last update was too long ago (' + (time.getTime() - lastUpdateTime.getTime()) / 1000 + 's)');\r
                clearUpdateTimer();\r
@@ -1047,7 +1055,6 @@ function init()
        else {\r
                mode = 1;\r
        }\r
-       checkForOffByOneBug();\r
        log("init(): updateScreen()");\r
        updateScreen();\r
        if (config['useBackgroundImage'].Value)\r
@@ -1062,17 +1069,6 @@ function init()
                statupSuccessful = true;\r
 }\r
 \r
-function checkForOffByOneBug() {\r
-       var tz = new Date().getTimezoneOffset();\r
-       if (tz < 0) {\r
-               tz = -tz;\r
-       }\r
-       tz = tz / 60;\r
-       if (tz > 12) {\r
-               displayOffset = 24*3600*1000;\r
-       }\r
-}\r
-\r
 function checkOrientation()\r
 {\r
        //updateScreen();\r