summaryrefslogtreecommitdiff
path: root/templates/layouts/default.html.ep
diff options
context:
space:
mode:
Diffstat (limited to 'templates/layouts/default.html.ep')
-rw-r--r--templates/layouts/default.html.ep83
1 files changed, 54 insertions, 29 deletions
diff --git a/templates/layouts/default.html.ep b/templates/layouts/default.html.ep
index bd9bf8d..fbb26ef 100644
--- a/templates/layouts/default.html.ep
+++ b/templates/layouts/default.html.ep
@@ -10,14 +10,17 @@
% while (my ($key, $value) = each %{stash('twitter') // {}}) {
<meta name="twitter:<%= $key %>" content="<%= $value %>">
% }
- % my $av = 'v32'; # asset version
+ % while (my ($key, $value) = each %{stash('opengraph') // {}}) {
+ <meta property="og:<%= $key %>" content="<%= $value %>">
+ % }
+ % my $av = 'v72'; # asset version
<link rel="icon" type="image/png" href="/static/<%= $av %>/icons/icon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="/static/<%= $av %>/icons/icon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/static/<%= $av %>/icons/icon-96x96.png" sizes="96x96">
- <link rel="apple-touch-icon" href="/static/<%= $av %>/icons/icon-120x120.png">
- <link rel="apple-touch-icon" sizes="180x180" href="/static/<%= $av %>/icons/icon-180x180.png">
- <link rel="apple-touch-icon" sizes="152x152" href="/static/<%= $av %>/icons/icon-152x152.png">
- <link rel="apple-touch-icon" sizes="167x167" href="/static/<%= $av %>/icons/icon-167x167.png">
+ <link rel="apple-touch-icon" href="/static/<%= $av %>/icons/touch-icon-120x120.png">
+ <link rel="apple-touch-icon" sizes="180x180" href="/static/<%= $av %>/icons/touch-icon-180x180.png">
+ <link rel="apple-touch-icon" sizes="152x152" href="/static/<%= $av %>/icons/touch-icon-152x152.png">
+ <link rel="apple-touch-icon" sizes="167x167" href="/static/<%= $av %>/icons/touch-icon-167x167.png">
<link rel="manifest" href="/static/<%= $av %>/manifest.json">
% if (session('theme') and session('theme') eq 'dark') {
%= stylesheet "/static/${av}/css/dark.min.css", id => 'theme'
@@ -43,37 +46,35 @@
currentTheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
}
addStyleSheet(currentTheme, 'theme');
-
- function toggleTheme() {
- currentTheme = otherTheme[currentTheme] || 'light';
- localStorage.setItem('theme', currentTheme);
- addStyleSheet(currentTheme, 'theme');
- }
</script>
%= stylesheet "/static/${av}/css/material-icons.css"
- %= stylesheet "/static/${av}/css/local.css"
% if (stash('with_map')) {
%= stylesheet "/static/${av}/leaflet/leaflet.css"
% }
%= javascript "/static/${av}/js/jquery-3.4.1.min.js"
%= javascript "/static/${av}/js/materialize.min.js"
- %= javascript "/static/${av}/js/travelynx-actions.min.js"
+ % my $min = ".min";
+ % if (app->mode eq 'development') {
+ % $min = q{};
+ % }
+ %= javascript "/static/${av}/js/travelynx-actions${min}.js"
% if (stash('with_geolocation')) {
- %= javascript "/static/${av}/js/geolocation.min.js"
+ %= javascript "/static/${av}/js/geolocation${min}.js"
% }
% if (stash('with_autocomplete')) {
- %= javascript "/static/${av}/js/autocomplete.min.js"
+ %= javascript "/dyn/${av}/autocomplete.js", defer => undef
% }
% if (stash('with_map')) {
%= javascript "/static/${av}/leaflet/leaflet.js"
% }
</head>
+% my $acc = is_user_authenticated() && current_user();
<body>
<div class="navbar-fixed">
<nav class="deep-purple">
<div class="nav-wrapper container">
- <a href="/" class="brand-logo left">travelynx</a>
+ <a href="/" class="brand-logo left"><span class="ca">tr</span><span class="cb">av</span><span class="cc">e</span><span class="cd">ly</span><span class="ce">nx</span></a>
<ul id="nav-mobile" class="right">
<li class="loading">
<div class="preloader-wrapper small" style="margin-top: 0.5em; margin-bottom: -1em;">
@@ -88,15 +89,12 @@
</div>
</div>
</li>
- <li class="waves-effect waves-light">
- <a onClick="javascript:toggleTheme()"><i class="material-icons">invert_colors</i></a>
- </li>
- % if (is_user_authenticated()) {
- <li class="<%= navbar_class('/history') %>"><a href='/history' title="History"><i class="material-icons">history</i></a></li>
- <li class="<%= navbar_class('/account') %>"><a href="/account" title="Account"><i class="material-icons">account_circle</i></a></li>
+ % if ($acc) {
+ <li class="<%= navbar_class('/history') %>"><a href='/history' title="Vergangene Zugfahrten"><i class="material-icons" aria-label="Vergangene Zugfahrten">history</i></a></li>
+ <li class="<%= navbar_class('/account') %>"><a href="/account" title="Account"><i class="material-icons" aria-label="Account"><%= $acc->{notifications} ? 'notifications' : 'account_circle' %></i></a></li>
% }
% else {
- <li class="<%= navbar_class('/about') %>"><a href='/about' title="About"><i class="material-icons">info_outline</i></a></li>
+ <li class="<%= navbar_class('/about') %>"><a href='/about' title="Über Travelynx"><i class="material-icons" aria-label="Über Travelynx">info_outline</i></a></li>
% }
</ul>
</div>
@@ -114,16 +112,43 @@
</div>
% }
+% if (app->config->{announcement}) {
<div class="container">
- % if (is_user_authenticated()) {
- % my $acc = current_user();
- % if ($acc and $acc->{deletion_requested}) {
- %= include '_deletion_note', timestamp => $acc->{deletion_requested}
- % }
+ <div class="row">
+ <div class="col s12 caution-color white-text">
+ %= app->config->{announcement}
+ </div>
+ </div>
+</div>
+% }
+
+<div class="container">
+ % if ($acc and $acc->{deletion_requested}) {
+ %= include '_deletion_note', timestamp => $acc->{deletion_requested}
% }
%= content
+ <div class="row" style="margin-top: 5em;">
+ <div class="col s12 center-align grey-text">
+ <a href="/about">travelynx</a> v<%= $version // '???' %>
+ <span style="margin-left: 0.5em; margin-right: 0.5em;">–</span>
+ <a href="/impressum">Impressum</a>
+ <span style="margin-left: 0.5em; margin-right: 0.5em;">–</span>
+ <a href="/impressum">Datenschutz</a>
+ <span style="margin-left: 0.5em; margin-right: 0.5em;">–</span>
+ <a href="/legend">Legende</a>
+ </div>
+ </div>
+ <div class="row">
+ <div class="col s12 center-align grey-text config">
+ Farbschema:
+ <a onClick="javascript:setTheme('light')">hell</a>
+ ·
+ <a onClick="javascript:setTheme('dark')">dunkel</a>
+ ·
+ <a onClick="javascript:setTheme('default')">automatisch</a>
+ </div>
+ </div>
</div>
-
<script>
if ('serviceWorker' in navigator) {
window.addEventListener('load', () => {