From 5723906af96c9dcd7bdbf4fc2d0c19b63800d2e1 Mon Sep 17 00:00:00 2001
From: Jacek Kowalski <Jacek@jacekk.info>
Date: Sat, 15 Apr 2017 14:19:48 +0000
Subject: [PATCH] Reload page on script changes
---
index.js | 4 +++-
common.js | 27 +++++++++++++++++++++++++++
version.php | 2 ++
lang_en.js | 1 +
lang_pl.js | 1 +
5 files changed, 34 insertions(+), 1 deletions(-)
diff --git a/common.js b/common.js
index bd564a6..1f236aa 100644
--- a/common.js
+++ b/common.js
@@ -4,6 +4,33 @@
'Zajezdnia Podgórze' : 'P',
};
+var script_version;
+var script_version_xhr;
+
+// Check for website updates
+function checkVersion() {
+ if(script_version_xhr) script_version_xhr.abort();
+
+ script_version_xhr = $.get(
+ 'version.php'
+ ).done(function(data) {
+ if(!script_version) {
+ script_version = data;
+ return;
+ }
+
+ if(script_version != data) {
+ fail(lang.error_new_version);
+ location.reload(true);
+ }
+ });
+}
+
+function checkVersionInit() {
+ checkVersion();
+ setInterval(checkVersion, 3600000);
+}
+
// Webservice-related functions
function parseVehicle(vehicleId) {
if(!vehicleId) return;
diff --git a/index.js b/index.js
index 8a13dcc..30ff195 100644
--- a/index.js
+++ b/index.js
@@ -115,7 +115,7 @@
setText(alert_text, message);
alert.style.display = 'block';
- console.log(message + ' More details follow.');
+ console.log(message + (more ? ' More details follow.' : ''));
if(more) console.log(more);
}
@@ -437,6 +437,8 @@
hash();
window.addEventListener('hashchange', hash);
+
+ checkVersionInit();
}
init();
diff --git a/lang_en.js b/lang_en.js
index 3508f47..5f10c13 100644
--- a/lang_en.js
+++ b/lang_en.js
@@ -63,4 +63,5 @@
error_request_failed: 'Internet request failed.',
error_request_failed_status: 'Internet request failed with error: $status.',
error_request_failed_connectivity: 'Request failed - please check your network connectivity.',
+ error_new_version: 'Website has been updated, reloading...',
};
diff --git a/lang_pl.js b/lang_pl.js
index c918c5c..92a95ac 100644
--- a/lang_pl.js
+++ b/lang_pl.js
@@ -63,4 +63,5 @@
error_request_failed: 'Wykonanie żądania internetowego nie udało się.',
error_request_failed_status: 'Wykonanie żądania internetowego nie udało się. Błąd: $status.',
error_request_failed_connectivity: 'Wykonanie żądania internetowego nie udało się - sprawdź połączenie z siecią.',
+ error_new_version: 'Strona została zaktualizowana, przeładowuję...',
};
diff --git a/version.php b/version.php
new file mode 100644
index 0000000..569683e
--- /dev/null
+++ b/version.php
@@ -0,0 +1,2 @@
+<?php
+echo max(array_map('filemtime', glob('*.{html,js,css}', GLOB_NOSORT|GLOB_BRACE)));
--
Gitblit v1.9.1