Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/Sketchometry.activity/js/cache.js
diff options
context:
space:
mode:
Diffstat (limited to 'Sketchometry.activity/js/cache.js')
-rw-r--r--Sketchometry.activity/js/cache.js61
1 files changed, 61 insertions, 0 deletions
diff --git a/Sketchometry.activity/js/cache.js b/Sketchometry.activity/js/cache.js
new file mode 100644
index 0000000..a01a04e
--- /dev/null
+++ b/Sketchometry.activity/js/cache.js
@@ -0,0 +1,61 @@
+/*
+ Copyright 2011 / 2012
+
+ Alfred Wassermann
+ Michael Gerhaeuser,
+ Carsten Miller,
+ Matthias Ehmann,
+ Heiko Vogel,
+
+ This file is part of the JSXGraph GUI project.
+ This code isn't licensed yet.
+*/
+
+(function () {
+ if ($.browser.msie) {
+ // Internet Explorer doesn't really support this stuff. At least not IE <= 9
+ return;
+ }
+
+ var appCache = window.applicationCache;
+
+ if (typeof appCache == 'undefined') {
+ // in case app cache is not supported by the browser we don't need to tell the user.
+ // besides: GUI.Lang.std is not initialized by now, all the alert box would tell us is "undefined".
+ //GUI.alert(GUI.Lang.std.appcache_error);
+ }
+
+ appCache.on = appCache.addEventListener;
+
+ var report = function (ev) {
+
+ console.log('appCacheEvent: ' + ev.type + ' -- ' + new Date().toISOString());
+
+ if (!('progress' === ev.type || 'downloading' === ev.type || 'checking' === ev.type
+ || 'noupdate' === ev.type || 'cached' === ev.type)) {
+
+ if ('updateready' == ev.type) {
+ if (!GUI.release) {
+ GUI.alert('new version available, updating');
+ }
+ window.location.reload();
+ }
+
+ if ('error' === ev.type && !GUI.release) {
+ if (navigator.onLine)
+ GUI.alert('appcache error!');
+ else
+ console.log('appcache error!');
+ }
+ }
+ };
+
+ appCache.on('checking', report, false);
+ appCache.on('error', report, false);
+ appCache.on('noupdate', report, false);
+ appCache.on('downloading', report, false);
+ appCache.on('progress', report, false);
+ appCache.on('updateready', report, false);
+ appCache.on('cached', report, false);
+
+}()); \ No newline at end of file