X-Git-Url: https://code.delx.au/comingnext/blobdiff_plain/ec325e40b6f6bc5d73da616b7cdf235ea26108e3..221517ab0531bd5f0e3557da95c7e8e7f10b0211:/comingNext/index.html
diff --git a/comingNext/index.html b/comingNext/index.html
index cd61eaa..7e774b9 100644
--- a/comingNext/index.html
+++ b/comingNext/index.html
@@ -56,7 +56,7 @@ var config = {
daylightSavingOffset: { Type: 'Int', Default: 1, Value: 1,},
hideWidgetOnCalendarOpen: { Type: 'Bool', Default: false, Value: false,},
showCalendarIndicator: { Type: 'Bool', Default: true, Value: true,},
- excludedCalendars: { Type: 'Array', Default: '', Value: '',},
+ excludedCalendars: { Type: 'Array', Default: [], Value: [],},
cssStyle_background: { Type: 'String', Default: 'color:#ffffff; background-color:#000000', Value: 'color:#ffffff; background-color:#000000',},
cssStyle_backgroundFullscreen: { Type: 'String', Default: 'color:#ffffff; background-color:#000000', Value: 'color:#ffffff; background-color:#000000',},
cssStyle_weekDay: { Type: 'String', Default: '', Value: '',},
@@ -98,6 +98,8 @@ var calendarList = [];
var calendarColors = [];
var updateTimer = null;
var screenRotationTimer = null;
+var lastUpdateTime = now;
+var errorOccured = false;
// vars for daylight saving time
var summertime = false; // true, if current date is in summer, false if in winter
@@ -192,6 +194,9 @@ function error(message)
{
console.info('Error: ' + message);
document.getElementById("calendarList").innerHTML = 'Error: ' + message;
+ document.getElementById("fullscreenCalendarList").innerHTML = 'Error: ' + message;
+ errorOccured = true;
+ document.onclick = null;
}
function areDatesEqual(date1, date2)
@@ -514,6 +519,9 @@ function formatTime(date)
function updateData()
{
console.info('updateData()');
+ if (errorOccured) {
+ return;
+ }
// check if we got additional or less calendars since our last update
var newCalendarList = listCalendars();
@@ -786,6 +794,8 @@ function updateData()
document.getElementById('fullscreenCalendarList').innerHTML = entriesHtml;
cacheEntriesHtml = entriesHtml;
}
+
+ lastUpdateTime = new Date();
} catch(e) {
error('displaying list:' + e + ', line ' + e.line);
return;
@@ -811,6 +821,14 @@ function updateScreen()
updateHomescreen();
else if (mode == 1)
updateFullscreen();
+
+ var time = new Date();
+ if (time.getTime() - lastUpdateTime.getTime() > config['updateDataInterval'].Value * 60 * 1000) {
+ console.info('updateScreen(): force updateData() because last update was too long ago (' + (time.getTime() - lastUpdateTime.getTime()) / 1000 + 's)');
+ clearUpdateTimer();
+ updateData();
+ setUpdateTimer(); // reinitialize update timer
+ }
}
function launchCalendar()
@@ -836,8 +854,8 @@ function init()
else
throw('device object does not exist');
} catch(e) {
- error('loading Calendar service: ' + e + ', line ' + e.line);
- return;
+ error('loading Calendar service: ' + e + ', line ' + e.line + '
' + getLocalizedText('menu.help') + '');
+ //return;
}
calendarList = listCalendars();
@@ -885,15 +903,18 @@ function createMenu()
var id = 0;
var menuSettings = new MenuItem(getLocalizedText('menu.settings'), id++);
var menuCallApp = new MenuItem(getLocalizedText('menu.openCalendarApp'), id++);
+ var menuHelp = new MenuItem(getLocalizedText('menu.help'), id++);
var menuUpdate = new MenuItem(getLocalizedText('menu.update'), id++);
var menuAbout = new MenuItem(getLocalizedText('menu.about'), id++);
menuSettings.onSelect = showSettings;
menuAbout.onSelect = showAbout;
menuCallApp.onSelect = launchCalendar;
menuUpdate.onSelect = showUpdate;
+ menuHelp.onSelect = showHelp;
window.menu.clear();
window.menu.append(menuCallApp);
window.menu.append(menuSettings);
+ window.menu.append(menuHelp);
window.menu.append(menuUpdate);
window.menu.append(menuAbout);
}
@@ -1097,8 +1118,12 @@ function loadSettings()
config[key].Value = value;
else if (config[key].Type == 'UID')
config[key].Value = Number(value);
- else if (config[key].Type == 'Array')
+ else if (config[key].Type == 'Array') {
config[key].Value = value.split("^");
+ if (config[key].Value.length == 1 && config[key].Value[0] == "") {
+ config[key].Value = [];
+ }
+ }
}
settingsCache = entry.Summary;
updateCssClasses();
@@ -1188,6 +1213,10 @@ function showAbout()
document.getElementById("name").innerHTML = "Coming Next " + version;
}
+function showHelp() {
+ widget.openURL('http://comingnext.sf.net/help');
+}
+
function updateFullscreen()
{
}
@@ -1198,13 +1227,16 @@ function showFullscreen()
hideViews();
document.getElementById("fullscreenView").style.display = "block";
document.getElementById('body').className = "backgroundFullscreen";
- document.onclick = launchCalendar;
+ if (!errorOccured)
+ document.onclick = launchCalendar;
createMenu();
updateData();
}
function getBackgroundImage()
{
+ if (errorOccured)
+ return '';
var bgImage;
if (config['backgroundImageLocation'].Value == config['backgroundImageLocation'].ValidValues[0]) // internal
bgImage = 'background_' + orientation + '.png';
@@ -1480,6 +1512,7 @@ function updateCalendarColors()