hide status countdown when offline
This commit is contained in:
parent
66a35a35eb
commit
374da87182
9 changed files with 25 additions and 23 deletions
|
@ -1,14 +1,14 @@
|
||||||
const CACHE_NAME = 'static-cache-v15';
|
const CACHE_NAME = 'static-cache-v16';
|
||||||
const FILES_TO_CACHE = [
|
const FILES_TO_CACHE = [
|
||||||
'/offline.html',
|
'/offline.html',
|
||||||
'/static/v15/css/materialize.min.css',
|
'/static/v16/css/materialize.min.css',
|
||||||
'/static/v15/css/material-icons.css',
|
'/static/v16/css/material-icons.css',
|
||||||
'/static/v15/css/local.css',
|
'/static/v16/css/local.css',
|
||||||
'/static/v15/js/jquery-3.4.1.min.js',
|
'/static/v16/js/jquery-3.4.1.min.js',
|
||||||
'/static/v15/js/materialize.min.js',
|
'/static/v16/js/materialize.min.js',
|
||||||
'/static/v15/js/travelynx-actions.min.js',
|
'/static/v16/js/travelynx-actions.min.js',
|
||||||
'/static/v15/js/autocomplete.min.js',
|
'/static/v16/js/autocomplete.min.js',
|
||||||
'/static/v15/js/geolocation.min.js',
|
'/static/v16/js/geolocation.min.js',
|
||||||
];
|
];
|
||||||
|
|
||||||
self.addEventListener('install', (evt) => {
|
self.addEventListener('install', (evt) => {
|
||||||
|
|
|
@ -2,12 +2,12 @@
|
||||||
font-family: 'Material Icons';
|
font-family: 'Material Icons';
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 400;
|
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'),
|
src: local('Material Icons'),
|
||||||
local('MaterialIcons-Regular'),
|
local('MaterialIcons-Regular'),
|
||||||
url(/static/v15/fonts/MaterialIcons-Regular.woff2) format('woff2'),
|
url(/static/v16/fonts/MaterialIcons-Regular.woff2) format('woff2'),
|
||||||
url(/static/v15/fonts/MaterialIcons-Regular.woff) format('woff'),
|
url(/static/v16/fonts/MaterialIcons-Regular.woff) format('woff'),
|
||||||
url(/static/v15/fonts/MaterialIcons-Regular.ttf) format('truetype');
|
url(/static/v16/fonts/MaterialIcons-Regular.ttf) format('truetype');
|
||||||
}
|
}
|
||||||
|
|
||||||
.material-icons {
|
.material-icons {
|
||||||
|
|
|
@ -24,6 +24,7 @@ function tvly_update() {
|
||||||
setTimeout(tvly_update, 20000);
|
setTimeout(tvly_update, 20000);
|
||||||
}).fail(function() {
|
}).fail(function() {
|
||||||
$('.sync-failed-marker').css('display', 'block');
|
$('.sync-failed-marker').css('display', 'block');
|
||||||
|
$('.countdown').html(' ');
|
||||||
setTimeout(tvly_update, 5000);
|
setTimeout(tvly_update, 5000);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -37,6 +38,7 @@ function tvly_update_public() {
|
||||||
setTimeout(tvly_update_public, 20000);
|
setTimeout(tvly_update_public, 20000);
|
||||||
}).fail(function() {
|
}).fail(function() {
|
||||||
$('.sync-failed-marker').css('display', 'block');
|
$('.sync-failed-marker').css('display', 'block');
|
||||||
|
$('.countdown').html(' ');
|
||||||
setTimeout(tvly_update_public, 5000);
|
setTimeout(tvly_update_public, 5000);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
2
public/static/js/travelynx-actions.min.js
vendored
2
public/static/js/travelynx-actions.min.js
vendored
|
@ -1 +1 @@
|
||||||
function tvly_run(a,t,e){var c='<i class="material-icons">error</i>',n=$('<div class="progress"><div class="indeterminate"></div></div>');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='<i class="material-icons">error</i>',c=$('<div class="progress"><div class="indeterminate"></div></div>');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")})});
|
||||||
|
|
|
@ -3,27 +3,27 @@
|
||||||
"short_name": "Travelynx",
|
"short_name": "Travelynx",
|
||||||
"scope": "/",
|
"scope": "/",
|
||||||
"icons": [{
|
"icons": [{
|
||||||
"src": "/static/v15/icons/icon-128x128.png",
|
"src": "/static/v16/icons/icon-128x128.png",
|
||||||
"sizes": "128x128",
|
"sizes": "128x128",
|
||||||
"type": "image/png"
|
"type": "image/png"
|
||||||
}, {
|
}, {
|
||||||
"src": "/static/v15/icons/icon-144x144.png",
|
"src": "/static/v16/icons/icon-144x144.png",
|
||||||
"sizes": "144x144",
|
"sizes": "144x144",
|
||||||
"type": "image/png"
|
"type": "image/png"
|
||||||
}, {
|
}, {
|
||||||
"src": "/static/v15/icons/icon-152x152.png",
|
"src": "/static/v16/icons/icon-152x152.png",
|
||||||
"sizes": "152x152",
|
"sizes": "152x152",
|
||||||
"type": "image/png"
|
"type": "image/png"
|
||||||
}, {
|
}, {
|
||||||
"src": "/static/v15/icons/icon-192x192.png",
|
"src": "/static/v16/icons/icon-192x192.png",
|
||||||
"sizes": "192x192",
|
"sizes": "192x192",
|
||||||
"type": "image/png"
|
"type": "image/png"
|
||||||
}, {
|
}, {
|
||||||
"src": "/static/v15/icons/icon-256x256.png",
|
"src": "/static/v16/icons/icon-256x256.png",
|
||||||
"sizes": "256x256",
|
"sizes": "256x256",
|
||||||
"type": "image/png"
|
"type": "image/png"
|
||||||
}, {
|
}, {
|
||||||
"src": "/static/v15/icons/icon-512x512.png",
|
"src": "/static/v16/icons/icon-512x512.png",
|
||||||
"sizes": "512x512",
|
"sizes": "512x512",
|
||||||
"type": "image/png"
|
"type": "image/png"
|
||||||
}],
|
}],
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<i class="material-icons small right sync-failed-marker grey-text" style="display: none;">sync_problem</i>
|
<i class="material-icons small right sync-failed-marker grey-text" style="display: none;">sync_problem</i>
|
||||||
<span class="card-title">Eingecheckt in <%= $journey->{train_type} %> <%= $journey->{train_no} %></span>
|
<span class="card-title">Eingecheckt in <%= $journey->{train_type} %> <%= $journey->{train_no} %></span>
|
||||||
<p>
|
<p>
|
||||||
<div class="center">
|
<div class="center countdown">
|
||||||
% if ($journey->{departure_countdown} > 120) {
|
% if ($journey->{departure_countdown} > 120) {
|
||||||
Abfahrt in <%= sprintf('%.f', $journey->{departure_countdown} / 60) %> Minuten
|
Abfahrt in <%= sprintf('%.f', $journey->{departure_countdown} / 60) %> Minuten
|
||||||
% }
|
% }
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<i class="material-icons small right sync-failed-marker grey-text" style="display: none;">sync_problem</i>
|
<i class="material-icons small right sync-failed-marker grey-text" style="display: none;">sync_problem</i>
|
||||||
<span class="card-title"><%= $name %> ist unterwegs</span>
|
<span class="card-title"><%= $name %> ist unterwegs</span>
|
||||||
<p>
|
<p>
|
||||||
<div class="center-align">
|
<div class="center-align countdown">
|
||||||
<b><%= $journey->{train_type} %> <%= $journey->{train_no} %></b><br/>
|
<b><%= $journey->{train_type} %> <%= $journey->{train_no} %></b><br/>
|
||||||
% if ($journey->{departure_countdown} > 120) {
|
% if ($journey->{departure_countdown} > 120) {
|
||||||
Abfahrt in <%= sprintf('%.f', $journey->{departure_countdown} / 60) %> Minuten
|
Abfahrt in <%= sprintf('%.f', $journey->{departure_countdown} / 60) %> Minuten
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||||
<meta name="apple-mobile-web-app-title" content="Weather PWA">
|
<meta name="apple-mobile-web-app-title" content="Weather PWA">
|
||||||
% my $av = 'v15'; # asset version
|
% my $av = 'v16'; # asset version
|
||||||
<link rel="apple-touch-icon" href="/static/<%= $av %>/icons/icon-152x152.png">
|
<link rel="apple-touch-icon" href="/static/<%= $av %>/icons/icon-152x152.png">
|
||||||
<link rel="manifest" href="/static/<%= $av %>/manifest.json">
|
<link rel="manifest" href="/static/<%= $av %>/manifest.json">
|
||||||
%= stylesheet "/static/${av}/css/materialize.min.css"
|
%= stylesheet "/static/${av}/css/materialize.min.css"
|
||||||
|
|
Loading…
Reference in a new issue