diff --git a/public/service-worker.js b/public/service-worker.js
index 03741015ef8f30d585f8773226bc010361dc10e9..09dca8642ad00c9e280023629867db357389a6ee 100644
--- a/public/service-worker.js
+++ b/public/service-worker.js
@@ -1,14 +1,14 @@
-const CACHE_NAME = 'static-cache-v15';
+const CACHE_NAME = 'static-cache-v16';
const FILES_TO_CACHE = [
'/offline.html',
- '/static/v15/css/materialize.min.css',
- '/static/v15/css/material-icons.css',
- '/static/v15/css/local.css',
- '/static/v15/js/jquery-3.4.1.min.js',
- '/static/v15/js/materialize.min.js',
- '/static/v15/js/travelynx-actions.min.js',
- '/static/v15/js/autocomplete.min.js',
- '/static/v15/js/geolocation.min.js',
+ '/static/v16/css/materialize.min.css',
+ '/static/v16/css/material-icons.css',
+ '/static/v16/css/local.css',
+ '/static/v16/js/jquery-3.4.1.min.js',
+ '/static/v16/js/materialize.min.js',
+ '/static/v16/js/travelynx-actions.min.js',
+ '/static/v16/js/autocomplete.min.js',
+ '/static/v16/js/geolocation.min.js',
];
self.addEventListener('install', (evt) => {
diff --git a/public/static/css/material-icons.css b/public/static/css/material-icons.css
index f6adb7c9ee3411e2ea6356c1f726101408ff91b1..9404262d41b89be859b4d9627646325cd6739a35 100644
--- a/public/static/css/material-icons.css
+++ b/public/static/css/material-icons.css
@@ -2,12 +2,12 @@
font-family: 'Material Icons';
font-style: normal;
font-weight: 400;
- src: url(/static/v15/fonts/MaterialIcons-Regular.eot); /* For IE6-8 */
+ src: url(/static/v16/fonts/MaterialIcons-Regular.eot); /* For IE6-8 */
src: local('Material Icons'),
local('MaterialIcons-Regular'),
- url(/static/v15/fonts/MaterialIcons-Regular.woff2) format('woff2'),
- url(/static/v15/fonts/MaterialIcons-Regular.woff) format('woff'),
- url(/static/v15/fonts/MaterialIcons-Regular.ttf) format('truetype');
+ url(/static/v16/fonts/MaterialIcons-Regular.woff2) format('woff2'),
+ url(/static/v16/fonts/MaterialIcons-Regular.woff) format('woff'),
+ url(/static/v16/fonts/MaterialIcons-Regular.ttf) format('truetype');
}
.material-icons {
diff --git a/public/static/js/travelynx-actions.js b/public/static/js/travelynx-actions.js
index 7d91dbd70b6e18d30ff72d701f29c1cd4bf1ee62..d3e2a7da830424b15c332b7438a91143bb94775c 100644
--- a/public/static/js/travelynx-actions.js
+++ b/public/static/js/travelynx-actions.js
@@ -24,6 +24,7 @@ function tvly_update() {
setTimeout(tvly_update, 20000);
}).fail(function() {
$('.sync-failed-marker').css('display', 'block');
+ $('.countdown').html(' ');
setTimeout(tvly_update, 5000);
});
}
@@ -37,6 +38,7 @@ function tvly_update_public() {
setTimeout(tvly_update_public, 20000);
}).fail(function() {
$('.sync-failed-marker').css('display', 'block');
+ $('.countdown').html(' ');
setTimeout(tvly_update_public, 5000);
});
}
diff --git a/public/static/js/travelynx-actions.min.js b/public/static/js/travelynx-actions.min.js
index 1c918238fb0bac49fe1b79a0cdbd1e2ca68ced44..376f348d6800edfa3d4940a6cda1d8811c6c0561 100644
--- a/public/static/js/travelynx-actions.min.js
+++ b/public/static/js/travelynx-actions.min.js
@@ -1 +1 @@
-function tvly_run(a,t,e){var c='error ',n=$('
');a.hide(),a.after(n),$.post("/action",t,function(t){t.success?$(location).attr("href",t.redirect_to):(M.toast({html:c+" "+t.error}),n.remove(),e&&e(),a.append(" "+c),a.show())})}function tvly_update(){$.get("/ajax/status_card.html",function(t){$(".statuscol").html(t),tvly_reg_handlers(),setTimeout(tvly_update,2e4)}).fail(function(){$(".sync-failed-marker").css("display","block"),setTimeout(tvly_update,5e3)})}function tvly_update_public(){var t;$(".publicstatuscol").each(function(){t=$(this).data("user")}),$.get("/ajax/status/"+t+".html",function(t){$(".publicstatuscol").html(t),setTimeout(tvly_update_public,2e4)}).fail(function(){$(".sync-failed-marker").css("display","block"),setTimeout(tvly_update_public,5e3)})}function tvly_reg_handlers(){$(".action-checkin").click(function(){var t=$(this);tvly_run(t,{action:"checkin",station:t.data("station"),train:t.data("train")})}),$(".action-checkout").click(function(){var t=$(this),a={action:"checkout",station:t.data("station"),force:t.data("force")};tvly_run(t,a,function(){t.append(" – Ohne Echtzeitdaten auschecken?"),t.data("force",!0)})}),$(".action-undo").click(function(){var t=$(this);tvly_run(t,{action:"undo",undo_id:t.data("id")})}),$(".action-cancelled-from").click(function(){var t=$(this);tvly_run(t,{action:"cancelled_from",station:t.data("station"),train:t.data("train")})}),$(".action-cancelled-to").click(function(){var t=$(this);tvly_run(t,{action:"cancelled_to",station:t.data("station"),force:!0})}),$(".action-delete").click(function(){var t=$(this),a={action:"delete",id:t.data("id"),checkin:t.data("checkin"),checkout:t.data("checkout")};really_delete=confirm("Diese Zugfahrt wirklich löschen? Der Eintrag wird sofort aus der Datenbank entfernt und kann nicht wiederhergestellt werden."),really_delete&&tvly_run(t,a)})}$(document).ready(function(){tvly_reg_handlers(),$(".statuscol .autorefresh").length&&setTimeout(tvly_update,2e4),$(".publicstatuscol .autorefresh").length&&setTimeout(tvly_update_public,2e4),$("a[href]").click(function(){$("nav .preloader-wrapper").addClass("active")})});
+function tvly_run(a,t,e){var n='error ',c=$('');a.hide(),a.after(c),$.post("/action",t,function(t){t.success?$(location).attr("href",t.redirect_to):(M.toast({html:n+" "+t.error}),c.remove(),e&&e(),a.append(" "+n),a.show())})}function tvly_update(){$.get("/ajax/status_card.html",function(t){$(".statuscol").html(t),tvly_reg_handlers(),setTimeout(tvly_update,2e4)}).fail(function(){$(".sync-failed-marker").css("display","block"),$(".countdown").html(" "),setTimeout(tvly_update,5e3)})}function tvly_update_public(){var t;$(".publicstatuscol").each(function(){t=$(this).data("user")}),$.get("/ajax/status/"+t+".html",function(t){$(".publicstatuscol").html(t),setTimeout(tvly_update_public,2e4)}).fail(function(){$(".sync-failed-marker").css("display","block"),$(".countdown").html(" "),setTimeout(tvly_update_public,5e3)})}function tvly_reg_handlers(){$(".action-checkin").click(function(){var t=$(this);tvly_run(t,{action:"checkin",station:t.data("station"),train:t.data("train")})}),$(".action-checkout").click(function(){var t=$(this),a={action:"checkout",station:t.data("station"),force:t.data("force")};tvly_run(t,a,function(){t.append(" – Ohne Echtzeitdaten auschecken?"),t.data("force",!0)})}),$(".action-undo").click(function(){var t=$(this);tvly_run(t,{action:"undo",undo_id:t.data("id")})}),$(".action-cancelled-from").click(function(){var t=$(this);tvly_run(t,{action:"cancelled_from",station:t.data("station"),train:t.data("train")})}),$(".action-cancelled-to").click(function(){var t=$(this);tvly_run(t,{action:"cancelled_to",station:t.data("station"),force:!0})}),$(".action-delete").click(function(){var t=$(this),a={action:"delete",id:t.data("id"),checkin:t.data("checkin"),checkout:t.data("checkout")};really_delete=confirm("Diese Zugfahrt wirklich löschen? Der Eintrag wird sofort aus der Datenbank entfernt und kann nicht wiederhergestellt werden."),really_delete&&tvly_run(t,a)})}$(document).ready(function(){tvly_reg_handlers(),$(".statuscol .autorefresh").length&&setTimeout(tvly_update,2e4),$(".publicstatuscol .autorefresh").length&&setTimeout(tvly_update_public,2e4),$("a[href]").click(function(){$("nav .preloader-wrapper").addClass("active")})});
diff --git a/public/static/manifest.json b/public/static/manifest.json
index da3c1859ab60b107e4ff31a80e661b6c36441128..c6231238d2c2c500a9655cdbf5be319854a44852 100644
--- a/public/static/manifest.json
+++ b/public/static/manifest.json
@@ -3,27 +3,27 @@
"short_name": "Travelynx",
"scope": "/",
"icons": [{
- "src": "/static/v15/icons/icon-128x128.png",
+ "src": "/static/v16/icons/icon-128x128.png",
"sizes": "128x128",
"type": "image/png"
}, {
- "src": "/static/v15/icons/icon-144x144.png",
+ "src": "/static/v16/icons/icon-144x144.png",
"sizes": "144x144",
"type": "image/png"
}, {
- "src": "/static/v15/icons/icon-152x152.png",
+ "src": "/static/v16/icons/icon-152x152.png",
"sizes": "152x152",
"type": "image/png"
}, {
- "src": "/static/v15/icons/icon-192x192.png",
+ "src": "/static/v16/icons/icon-192x192.png",
"sizes": "192x192",
"type": "image/png"
}, {
- "src": "/static/v15/icons/icon-256x256.png",
+ "src": "/static/v16/icons/icon-256x256.png",
"sizes": "256x256",
"type": "image/png"
}, {
- "src": "/static/v15/icons/icon-512x512.png",
+ "src": "/static/v16/icons/icon-512x512.png",
"sizes": "512x512",
"type": "image/png"
}],
diff --git a/public/static/v14 b/public/static/v16
similarity index 100%
rename from public/static/v14
rename to public/static/v16
diff --git a/templates/_checked_in.html.ep b/templates/_checked_in.html.ep
index ffac3d69dcf08cbe0ea1fe4b323e89bfe7b077ec..43fda0277408e910b76e594b71c08a2f50d19506 100644
--- a/templates/_checked_in.html.ep
+++ b/templates/_checked_in.html.ep
@@ -3,7 +3,7 @@
sync_problem
Eingecheckt in <%= $journey->{train_type} %> <%= $journey->{train_no} %>
-
+
% if ($journey->{departure_countdown} > 120) {
Abfahrt in <%= sprintf('%.f', $journey->{departure_countdown} / 60) %> Minuten
% }
diff --git a/templates/_public_status_card.html.ep b/templates/_public_status_card.html.ep
index 494ad43b055aa3e11b0b99d9547b90f7d52e2744..4b3b787d9fbc4a397a19deb07493ffe175c4911b 100644
--- a/templates/_public_status_card.html.ep
+++ b/templates/_public_status_card.html.ep
@@ -4,7 +4,7 @@
sync_problem
<%= $name %> ist unterwegs
-
+
<%= $journey->{train_type} %> <%= $journey->{train_no} %>
% if ($journey->{departure_countdown} > 120) {
Abfahrt in <%= sprintf('%.f', $journey->{departure_countdown} / 60) %> Minuten
diff --git a/templates/layouts/default.html.ep b/templates/layouts/default.html.ep
index fb77eec6e96094987d185dfcb017627e7c06e7b2..98289f78e95e9a728bf520b4501a13615e58fceb 100644
--- a/templates/layouts/default.html.ep
+++ b/templates/layouts/default.html.ep
@@ -9,7 +9,7 @@
- % my $av = 'v15'; # asset version
+ % my $av = 'v16'; # asset version
%= stylesheet "/static/${av}/css/materialize.min.css"