<key>Identifier</key> <string>ar.com.cochambre.symbian.wrt.comingnext</string>\r
<key>Version</key> <string>1.25</string>\r
<key>MainHTML</key> <string>index.html</string>\r
- <key>AllowNetworkAccess</key> <false />\r
+ <key>AllowNetworkAccess</key> <true/>\r
<key>MiniViewEnabled</key> <true/> \r
</dict>\r
</plist>\r
localizedText['menu.settings'] = 'Einstellungen';\r
localizedText['menu.openCalendarApp'] = 'Öffne Kalender';\r
localizedText['menu.about'] = 'Über';\r
+localizedText['menu.update'] = 'Nach Updates suchen';\r
+\r
+localizedText['softkey.back'] = 'Zurück';\r
\r
localizedText['settings.restoreDefaults'] = 'Standardeinstellungen wiederherstellen';\r
localizedText['settings.help'] = 'Hilfe';\r
localizedText['settings.name.cssStyle_icon'] = '.icon';\r
localizedText['settings.info.cssStyle_icon'] = 'Definiert das Aussehen Icons';\r
\r
+localizedText['update.current'] = 'Deine Version: ';\r
+localizedText['update.checking'] = 'suche nach Updates...';\r
+localizedText['update.download'] = 'Aktuelle Version: %1<br /><a href=\"%2\">neue Version herunterladen</a>';\r
+localizedText['update.nonewversion'] = 'keine neue Version verfügbar';\r
+localizedText['update.error'] = 'Verbindungsfehler: ';\r
+localizedText['update.checknow'] = 'Jetzt prüfen';\r
localizedText['menu.settings'] = 'Parametres';\r
localizedText['menu.openCalendarApp'] = 'Ouvrir Calendrier';\r
localizedText['menu.about'] = 'A propos';\r
+localizedText['menu.update'] = 'Check for new version';\r
+\r
+localizedText['softkey.back'] = 'Back';\r
\r
localizedText['settings.restoreDefaults'] = 'Restore Defaults';\r
localizedText['settings.help'] = 'Aide';\r
localizedText['settings.name.cssStyle_icon'] = '.icon';\r
localizedText['settings.info.cssStyle_icon'] = 'Définit la taille des icones';\r
\r
+localizedText['update.current'] = 'Your version: ';\r
+localizedText['update.checking'] = 'checking for updates...';\r
+localizedText['update.download'] = 'Current version: %1<br /><a href=\"%2\">download new version</a>';\r
+localizedText['update.nonewversion'] = 'no new versions available';\r
+localizedText['update.error'] = 'connection error: ';\r
+localizedText['update.checknow'] = 'Check now';\r
}\r
\r
\r
+\r
//-------------------------------------------------------\r
// Nothing of interest from here on...\r
//-------------------------------------------------------\r
var panelNum = 0; // use 1 for second panel\r
var version = "1.25";\r
+var versionURL = "http://comingnext.sourceforge.net/version.xml";\r
var calendarService = null;\r
var cacheEntriesHtml = [];\r
var months_translated = [];\r
var orientation = '';\r
var now = new Date();\r
-var mode = 0; // 0 = homescreen, 1 = fullscreen, 2 = settings, 3 = about\r
+var mode = 0; // 0 = homescreen, 1 = fullscreen, 2 = settings, 3 = about, 4 = check for update\r
+var reqV = null; \r
\r
// vars for daylight saving time\r
var daylightsavingWinter = 0;\r
var id = 0;\r
var menuSettings = new MenuItem(getLocalizedText('menu.settings'), id++);\r
var menuCallApp = new MenuItem(getLocalizedText('menu.openCalendarApp'), id++);\r
+ var menuUpdate = new MenuItem(getLocalizedText('menu.update'), id++);\r
var menuAbout = new MenuItem(getLocalizedText('menu.about'), id++);\r
menuSettings.onSelect = showSettings;\r
menuAbout.onSelect = showAbout;\r
menuCallApp.onSelect = launchCalendar;\r
+ menuUpdate.onSelect = showUpdate;\r
window.menu.clear();\r
window.menu.append(menuCallApp);\r
window.menu.append(menuSettings);\r
+ window.menu.append(menuUpdate);\r
window.menu.append(menuAbout); \r
}\r
\r
function showSettings()\r
{\r
mode = 2;\r
- document.getElementById("homescreenView").style.display = "none";\r
- document.getElementById("fullscreenView").style.display = "none";\r
- document.getElementById("aboutView").style.display = "none";\r
+ hideViews();\r
document.getElementById("settingsView").style.display = "block";\r
document.onclick = null;\r
\r
function showAbout()\r
{\r
mode = 3;\r
- document.getElementById("homescreenView").style.display = "none";\r
- document.getElementById("fullscreenView").style.display = "none";\r
+ hideViews();\r
document.getElementById("aboutView").style.display = "block";\r
- document.getElementById("settingsView").style.display = "none";\r
document.onclick = null;\r
\r
window.menu.setLeftSoftkeyLabel(" ", function(){});\r
- window.menu.setRightSoftkeyLabel("Back", function()\r
+ window.menu.setRightSoftkeyLabel(getLocalizedText('softkey.back'), function()\r
{\r
mode = 1;\r
showFullscreen();\r
\r
function showFullscreen()\r
{\r
- document.getElementById("homescreenView").style.display = "none";\r
+ hideViews();\r
document.getElementById("fullscreenView").style.display = "block";\r
- document.getElementById("aboutView").style.display = "none";\r
- document.getElementById("settingsView").style.display = "none";\r
document.getElementById('body').className = "backgroundFullscreen";\r
document.onclick = launchCalendar;\r
createMenu();\r
\r
function showHomescreen()\r
{\r
+ hideViews();\r
document.getElementById("homescreenView").style.display = "block";\r
- document.getElementById("fullscreenView").style.display = "none";\r
- document.getElementById("aboutView").style.display = "none";\r
- document.getElementById("settingsView").style.display = "none";\r
document.getElementById('body').className = "background";\r
document.onclick = null;\r
updateData();\r
else \r
return 'ERROR: missing translation for ' + p_Txt;\r
}\r
+\r
+function showUpdate()\r
+{\r
+ mode = 4;\r
+ hideViews();\r
+ document.getElementById("updateView").style.display = "block";\r
+ document.onclick = null;\r
+ \r
+ window.menu.setLeftSoftkeyLabel(getLocalizedText('update.checknow'), function(){\r
+ checkForUpdate();\r
+ });\r
+ window.menu.setRightSoftkeyLabel(getLocalizedText('softkey.back'), function()\r
+ {\r
+ mode = 1;\r
+ showFullscreen();\r
+ });\r
+ \r
+ document.getElementById("currentVersion").innerHTML = getLocalizedText("update.current") + version;\r
+ checkForUpdate();\r
+}\r
+\r
+function checkForUpdate()\r
+{\r
+ // asynch XHR to server url\r
+ reqV = new XMLHttpRequest();\r
+ reqV.onreadystatechange = checkForUpdateCallback;\r
+ document.getElementById("updateDiv").innerHTML = getLocalizedText("update.checking");\r
+ reqV.open("GET", versionURL, true);\r
+ reqV.setRequestHeader( "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" ); // disable caching\r
+ reqV.send(null);\r
+}\r
+\r
+function checkForUpdateCallback()\r
+{ \r
+ if (reqV.readyState == 4) {\r
+ if (reqV.status == 200) {\r
+ // little overhead here, one could use also string for version info\r
+ var resultXml = reqV.responseText;\r
+ if (resultXml) {\r
+ var div = document.getElementById("tmp");\r
+ div.innerHTML = resultXml;\r
+ var newVersion = div.getElementsByTagName('version')[0].innerHTML;\r
+ var newVersionURL = div.getElementsByTagName('url')[0].innerHTML;\r
+ div.innerHTML = "";\r
+ if (version != newVersion) {\r
+ document.getElementById("updateDiv").innerHTML = getLocalizedText("update.download").replace(/%1/, newVersion).replace(/%2/, newVersionURL);\r
+ }\r
+ else {\r
+ document.getElementById("updateDiv").innerHTML = getLocalizedText("update.nonewversion");\r
+ }\r
+ }\r
+ }\r
+ else {\r
+ document.getElementById("updateDiv").innerHTML = getLocalizedText("update.error") + reqV.status + " " + reqV.responseText;\r
+ }\r
+ }\r
+}\r
+\r
+function hideViews()\r
+{\r
+ document.getElementById("homescreenView").style.display = "none";\r
+ document.getElementById("fullscreenView").style.display = "none";\r
+ document.getElementById("aboutView").style.display = "none";\r
+ document.getElementById("settingsView").style.display = "none";\r
+ document.getElementById("updateView").style.display = "none";\r
+}\r
</script>\r
\r
<style type="text/css">\r
<p>Visit sourceforge.net/projects/comingnext for free updates.</p>\r
<hr />\r
</div>\r
+<div id="updateView" style="display:none">\r
+ <img src="Icon.png" id="smallappicon">\r
+ <h1 class="title">Check for update</h1>\r
+ <hr />\r
+ <div id="currentVersion">Coming Next ??</div>\r
+ <div id="updateDiv"></div>\r
+ <div id="tmp" style="display:none;"></div>\r
+</div>\r
</body>\r
\r
</html>\r
localizedText['menu.settings'] = 'Settings';\r
localizedText['menu.openCalendarApp'] = 'Open Calendar App';\r
localizedText['menu.about'] = 'About';\r
+localizedText['menu.update'] = 'Check for new version';\r
+\r
+localizedText['softkey.back'] = 'Back';\r
\r
localizedText['settings.restoreDefaults'] = 'Restore Defaults';\r
localizedText['settings.help'] = 'Help';\r
localizedText['settings.name.cssStyle_icon'] = '.icon';\r
localizedText['settings.info.cssStyle_icon'] = 'Defines size and appearance of icons';\r
\r
+localizedText['update.current'] = 'Your version: ';\r
+localizedText['update.checking'] = 'checking for updates...';\r
+localizedText['update.download'] = 'Current version: %1<br /><a href=\"%2\">download new version</a>';\r
+localizedText['update.nonewversion'] = 'no new versions available';\r
+localizedText['update.error'] = 'connection error: ';\r
+localizedText['update.checknow'] = 'Check now';\r
<key>Identifier</key> <string>ar.com.cochambre.symbian.wrt.comingnextb</string>\r
<key>Version</key> <string>1.25</string>\r
<key>MainHTML</key> <string>index.html</string>\r
- <key>AllowNetworkAccess</key> <false />\r
+ <key>AllowNetworkAccess</key> <true/>\r
<key>MiniViewEnabled</key> <true/> \r
</dict>\r
</plist>\r
localizedText['menu.settings'] = 'Einstellungen';\r
localizedText['menu.openCalendarApp'] = 'Öffne Kalender';\r
localizedText['menu.about'] = 'Über';\r
+localizedText['menu.update'] = 'Nach Updates suchen';\r
+\r
+localizedText['softkey.back'] = 'Zurück';\r
\r
localizedText['settings.restoreDefaults'] = 'Standardeinstellungen wiederherstellen';\r
localizedText['settings.help'] = 'Hilfe';\r
localizedText['settings.name.cssStyle_icon'] = '.icon';\r
localizedText['settings.info.cssStyle_icon'] = 'Definiert das Aussehen Icons';\r
\r
+localizedText['update.current'] = 'Deine Version: ';\r
+localizedText['update.checking'] = 'suche nach Updates...';\r
+localizedText['update.download'] = 'Aktuelle Version: %1<br /><a href=\"%2\">neue Version herunterladen</a>';\r
+localizedText['update.nonewversion'] = 'keine neue Version verfügbar';\r
+localizedText['update.error'] = 'Verbindungsfehler: ';\r
+localizedText['update.checknow'] = 'Jetzt prüfen';\r
localizedText['menu.settings'] = 'Parametres';\r
localizedText['menu.openCalendarApp'] = 'Ouvrir Calendrier';\r
localizedText['menu.about'] = 'A propos';\r
+localizedText['menu.update'] = 'Check for new version';\r
+\r
+localizedText['softkey.back'] = 'Back';\r
\r
localizedText['settings.restoreDefaults'] = 'Restore Defaults';\r
localizedText['settings.help'] = 'Aide';\r
localizedText['settings.name.cssStyle_icon'] = '.icon';\r
localizedText['settings.info.cssStyle_icon'] = 'Définit la taille des icones';\r
\r
+localizedText['update.current'] = 'Your version: ';\r
+localizedText['update.checking'] = 'checking for updates...';\r
+localizedText['update.download'] = 'Current version: %1<br /><a href=\"%2\">download new version</a>';\r
+localizedText['update.nonewversion'] = 'no new versions available';\r
+localizedText['update.error'] = 'connection error: ';\r
+localizedText['update.checknow'] = 'Check now';\r
}\r
\r
\r
+\r
//-------------------------------------------------------\r
// Nothing of interest from here on...\r
//-------------------------------------------------------\r
var panelNum = 1; // use 1 for second panel\r
var version = "1.25";\r
+var versionURL = "http://comingnext.sourceforge.net/version.xml";\r
var calendarService = null;\r
var cacheEntriesHtml = [];\r
var months_translated = [];\r
var orientation = '';\r
var now = new Date();\r
-var mode = 0; // 0 = homescreen, 1 = fullscreen, 2 = settings, 3 = about\r
+var mode = 0; // 0 = homescreen, 1 = fullscreen, 2 = settings, 3 = about, 4 = check for update\r
+var reqV = null; \r
\r
// vars for daylight saving time\r
var daylightsavingWinter = 0;\r
var id = 0;\r
var menuSettings = new MenuItem(getLocalizedText('menu.settings'), id++);\r
var menuCallApp = new MenuItem(getLocalizedText('menu.openCalendarApp'), id++);\r
+ var menuUpdate = new MenuItem(getLocalizedText('menu.update'), id++);\r
var menuAbout = new MenuItem(getLocalizedText('menu.about'), id++);\r
menuSettings.onSelect = showSettings;\r
menuAbout.onSelect = showAbout;\r
menuCallApp.onSelect = launchCalendar;\r
+ menuUpdate.onSelect = showUpdate;\r
window.menu.clear();\r
window.menu.append(menuCallApp);\r
window.menu.append(menuSettings);\r
+ window.menu.append(menuUpdate);\r
window.menu.append(menuAbout); \r
}\r
\r
function showSettings()\r
{\r
mode = 2;\r
- document.getElementById("homescreenView").style.display = "none";\r
- document.getElementById("fullscreenView").style.display = "none";\r
- document.getElementById("aboutView").style.display = "none";\r
+ hideViews();\r
document.getElementById("settingsView").style.display = "block";\r
document.onclick = null;\r
\r
function showAbout()\r
{\r
mode = 3;\r
- document.getElementById("homescreenView").style.display = "none";\r
- document.getElementById("fullscreenView").style.display = "none";\r
+ hideViews();\r
document.getElementById("aboutView").style.display = "block";\r
- document.getElementById("settingsView").style.display = "none";\r
document.onclick = null;\r
\r
window.menu.setLeftSoftkeyLabel(" ", function(){});\r
- window.menu.setRightSoftkeyLabel("Back", function()\r
+ window.menu.setRightSoftkeyLabel(getLocalizedText('softkey.back'), function()\r
{\r
mode = 1;\r
showFullscreen();\r
\r
function showFullscreen()\r
{\r
- document.getElementById("homescreenView").style.display = "none";\r
+ hideViews();\r
document.getElementById("fullscreenView").style.display = "block";\r
- document.getElementById("aboutView").style.display = "none";\r
- document.getElementById("settingsView").style.display = "none";\r
document.getElementById('body').className = "backgroundFullscreen";\r
document.onclick = launchCalendar;\r
createMenu();\r
\r
function showHomescreen()\r
{\r
+ hideViews();\r
document.getElementById("homescreenView").style.display = "block";\r
- document.getElementById("fullscreenView").style.display = "none";\r
- document.getElementById("aboutView").style.display = "none";\r
- document.getElementById("settingsView").style.display = "none";\r
document.getElementById('body').className = "background";\r
document.onclick = null;\r
updateData();\r
else \r
return 'ERROR: missing translation for ' + p_Txt;\r
}\r
+\r
+function showUpdate()\r
+{\r
+ mode = 4;\r
+ hideViews();\r
+ document.getElementById("updateView").style.display = "block";\r
+ document.onclick = null;\r
+ \r
+ window.menu.setLeftSoftkeyLabel(getLocalizedText('update.checknow'), function(){\r
+ checkForUpdate();\r
+ });\r
+ window.menu.setRightSoftkeyLabel(getLocalizedText('softkey.back'), function()\r
+ {\r
+ mode = 1;\r
+ showFullscreen();\r
+ });\r
+ \r
+ document.getElementById("currentVersion").innerHTML = getLocalizedText("update.current") + version;\r
+ checkForUpdate();\r
+}\r
+\r
+function checkForUpdate()\r
+{\r
+ // asynch XHR to server url\r
+ reqV = new XMLHttpRequest();\r
+ reqV.onreadystatechange = checkForUpdateCallback;\r
+ document.getElementById("updateDiv").innerHTML = getLocalizedText("update.checking");\r
+ reqV.open("GET", versionURL, true);\r
+ reqV.setRequestHeader( "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" ); // disable caching\r
+ reqV.send(null);\r
+}\r
+\r
+function checkForUpdateCallback()\r
+{ \r
+ if (reqV.readyState == 4) {\r
+ if (reqV.status == 200) {\r
+ // little overhead here, one could use also string for version info\r
+ var resultXml = reqV.responseText;\r
+ if (resultXml) {\r
+ var div = document.getElementById("tmp");\r
+ div.innerHTML = resultXml;\r
+ var newVersion = div.getElementsByTagName('version')[0].innerHTML;\r
+ var newVersionURL = div.getElementsByTagName('url')[0].innerHTML;\r
+ div.innerHTML = "";\r
+ if (version != newVersion) {\r
+ document.getElementById("updateDiv").innerHTML = getLocalizedText("update.download").replace(/%1/, newVersion).replace(/%2/, newVersionURL);\r
+ }\r
+ else {\r
+ document.getElementById("updateDiv").innerHTML = getLocalizedText("update.nonewversion");\r
+ }\r
+ }\r
+ }\r
+ else {\r
+ document.getElementById("updateDiv").innerHTML = getLocalizedText("update.error") + reqV.status + " " + reqV.responseText;\r
+ }\r
+ }\r
+}\r
+\r
+function hideViews()\r
+{\r
+ document.getElementById("homescreenView").style.display = "none";\r
+ document.getElementById("fullscreenView").style.display = "none";\r
+ document.getElementById("aboutView").style.display = "none";\r
+ document.getElementById("settingsView").style.display = "none";\r
+ document.getElementById("updateView").style.display = "none";\r
+}\r
</script>\r
\r
<style type="text/css">\r
<p>Visit sourceforge.net/projects/comingnext for free updates.</p>\r
<hr />\r
</div>\r
+<div id="updateView" style="display:none">\r
+ <img src="Icon.png" id="smallappicon">\r
+ <h1 class="title">Check for update</h1>\r
+ <hr />\r
+ <div id="currentVersion">Coming Next ??</div>\r
+ <div id="updateDiv"></div>\r
+ <div id="tmp" style="display:none;"></div>\r
+</div>\r
</body>\r
\r
</html>\r
localizedText['menu.settings'] = 'Settings';\r
localizedText['menu.openCalendarApp'] = 'Open Calendar App';\r
localizedText['menu.about'] = 'About';\r
+localizedText['menu.update'] = 'Check for new version';\r
+\r
+localizedText['softkey.back'] = 'Back';\r
\r
localizedText['settings.restoreDefaults'] = 'Restore Defaults';\r
localizedText['settings.help'] = 'Help';\r
localizedText['settings.name.cssStyle_icon'] = '.icon';\r
localizedText['settings.info.cssStyle_icon'] = 'Defines size and appearance of icons';\r
\r
+localizedText['update.current'] = 'Your version: ';\r
+localizedText['update.checking'] = 'checking for updates...';\r
+localizedText['update.download'] = 'Current version: %1<br /><a href=\"%2\">download new version</a>';\r
+localizedText['update.nonewversion'] = 'no new versions available';\r
+localizedText['update.error'] = 'connection error: ';\r
+localizedText['update.checknow'] = 'Check now';\r