diff options
author | Daniel Schadt <kingdread@gmx.de> | 2024-04-06 22:01:18 +0200 |
---|---|---|
committer | Daniel Schadt <kingdread@gmx.de> | 2024-04-06 22:01:18 +0200 |
commit | eca141a1da3a69ce5cd17ab26f098caf0448edb7 (patch) | |
tree | afd3f0efccc76bb9d1d93b77209f5a1df2a54899 | |
parent | 89525eebab0d359e81a9e71e4a2ba5968a52bb1e (diff) | |
download | fietsboek-eca141a1da3a69ce5cd17ab26f098caf0448edb7.tar.gz fietsboek-eca141a1da3a69ce5cd17ab26f098caf0448edb7.tar.bz2 fietsboek-eca141a1da3a69ce5cd17ab26f098caf0448edb7.zip |
introduce tabbars to the profile
-rw-r--r-- | asset-sources/theme.scss | 4 | ||||
-rw-r--r-- | fietsboek/locale/de/LC_MESSAGES/messages.mo | bin | 15508 -> 15685 bytes | |||
-rw-r--r-- | fietsboek/locale/de/LC_MESSAGES/messages.po | 52 | ||||
-rw-r--r-- | fietsboek/locale/en/LC_MESSAGES/messages.mo | bin | 14483 -> 14656 bytes | |||
-rw-r--r-- | fietsboek/locale/en/LC_MESSAGES/messages.po | 52 | ||||
-rw-r--r-- | fietsboek/locale/fietslog.pot | 52 | ||||
-rw-r--r-- | fietsboek/static/theme.css | 4 | ||||
-rw-r--r-- | fietsboek/static/theme.css.map | 2 | ||||
-rw-r--r-- | fietsboek/templates/profile.jinja2 | 159 |
9 files changed, 195 insertions, 130 deletions
diff --git a/asset-sources/theme.scss b/asset-sources/theme.scss index 610e688..20708f3 100644 --- a/asset-sources/theme.scss +++ b/asset-sources/theme.scss @@ -156,6 +156,10 @@ strong { width: 25%; } +.chart-title { + text-align: center; +} + .list-group.list-group-root { padding: 0; overflow: hidden; diff --git a/fietsboek/locale/de/LC_MESSAGES/messages.mo b/fietsboek/locale/de/LC_MESSAGES/messages.mo Binary files differindex aeb978d..0633a4c 100644 --- a/fietsboek/locale/de/LC_MESSAGES/messages.mo +++ b/fietsboek/locale/de/LC_MESSAGES/messages.mo diff --git a/fietsboek/locale/de/LC_MESSAGES/messages.po b/fietsboek/locale/de/LC_MESSAGES/messages.po index 934ac94..b7125af 100644 --- a/fietsboek/locale/de/LC_MESSAGES/messages.po +++ b/fietsboek/locale/de/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-02-02 23:44+0100\n" +"POT-Creation-Date: 2024-04-06 21:57+0200\n" "PO-Revision-Date: 2022-07-02 17:35+0200\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language: de\n" @@ -16,7 +16,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.12.1\n" +"Generated-By: Babel 2.14.0\n" #: fietsboek/actions.py:267 msgid "email.verify_mail.subject" @@ -29,11 +29,11 @@ msgstr "" "\n" "Falls Du kein Konto angelegt hast, ignoriere diese E-Mail." -#: fietsboek/util.py:307 +#: fietsboek/util.py:310 msgid "password_constraint.mismatch" msgstr "Passwörter stimmen nicht überein" -#: fietsboek/util.py:309 +#: fietsboek/util.py:312 msgid "password_constraint.length" msgstr "Passwort zu kurz" @@ -630,67 +630,79 @@ msgstr "Passwörter stimmen nicht überein" msgid "page.password_reset.reset" msgstr "Zurücksetzen" -#: fietsboek/templates/profile.jinja2:67 +#: fietsboek/templates/profile.jinja2:64 +msgid "page.profile.tabbar.overview" +msgstr "Übersicht" + +#: fietsboek/templates/profile.jinja2:69 +msgid "page.profile.tabbar.graphs" +msgstr "Diagramme" + +#: fietsboek/templates/profile.jinja2:83 msgid "page.profile.length" msgstr "Länge" -#: fietsboek/templates/profile.jinja2:71 +#: fietsboek/templates/profile.jinja2:87 msgid "page.profile.avg_length" msgstr "durchschnittliche Länge" -#: fietsboek/templates/profile.jinja2:75 +#: fietsboek/templates/profile.jinja2:91 msgid "page.profile.uphill" msgstr "Bergauf" -#: fietsboek/templates/profile.jinja2:79 +#: fietsboek/templates/profile.jinja2:95 msgid "page.profile.downhill" msgstr "Bergab" -#: fietsboek/templates/profile.jinja2:83 +#: fietsboek/templates/profile.jinja2:99 msgid "page.profile.moving_time" msgstr "Fahrzeit" -#: fietsboek/templates/profile.jinja2:87 +#: fietsboek/templates/profile.jinja2:103 msgid "page.profile.stopped_time" msgstr "Haltezeit" -#: fietsboek/templates/profile.jinja2:91 +#: fietsboek/templates/profile.jinja2:107 msgid "page.profile.avg_duration" msgstr "durchschnittliche Dauer" -#: fietsboek/templates/profile.jinja2:95 +#: fietsboek/templates/profile.jinja2:111 msgid "page.profile.max_speed" msgstr "maximale Geschwindigkeit" -#: fietsboek/templates/profile.jinja2:99 +#: fietsboek/templates/profile.jinja2:115 msgid "page.profile.avg_speed" msgstr "durchschnittliche Geschwindigkeit" -#: fietsboek/templates/profile.jinja2:103 +#: fietsboek/templates/profile.jinja2:119 msgid "page.profile.number_of_tracks" msgstr "Anzahl der Strecken" -#: fietsboek/templates/profile.jinja2:109 +#: fietsboek/templates/profile.jinja2:125 msgid "page.profile.longest_distance_track" msgstr "Weiteste Strecke" -#: fietsboek/templates/profile.jinja2:114 +#: fietsboek/templates/profile.jinja2:130 msgid "page.profile.shortest_distance_track" msgstr "Kürzeste Strecke" -#: fietsboek/templates/profile.jinja2:119 +#: fietsboek/templates/profile.jinja2:135 msgid "page.profile.longest_duration_track" msgstr "Am Längsten Dauernde Strecke" -#: fietsboek/templates/profile.jinja2:124 +#: fietsboek/templates/profile.jinja2:140 msgid "page.profile.shortest_duration_track" msgstr "Am Kürzesten Dauernde Strecke" -#: fietsboek/templates/profile.jinja2:144 +#: fietsboek/templates/profile.jinja2:147 +msgid "page.profile.graph.km_per_month" +msgstr "Kilometer pro Monat" + +#: fietsboek/templates/profile.jinja2:171 msgid "page.profile.heatmap" msgstr "Heatmap" -#: fietsboek/templates/profile.jinja2:149 +#: fietsboek/templates/profile.jinja2:176 msgid "page.profile.tilehunt" msgstr "Kacheljäger" diff --git a/fietsboek/locale/en/LC_MESSAGES/messages.mo b/fietsboek/locale/en/LC_MESSAGES/messages.mo Binary files differindex 9f7170c..cc713cb 100644 --- a/fietsboek/locale/en/LC_MESSAGES/messages.mo +++ b/fietsboek/locale/en/LC_MESSAGES/messages.mo diff --git a/fietsboek/locale/en/LC_MESSAGES/messages.po b/fietsboek/locale/en/LC_MESSAGES/messages.po index 645d059..5e1762c 100644 --- a/fietsboek/locale/en/LC_MESSAGES/messages.po +++ b/fietsboek/locale/en/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-02-02 23:44+0100\n" +"POT-Creation-Date: 2024-04-06 21:57+0200\n" "PO-Revision-Date: 2023-04-03 20:42+0200\n" "Last-Translator: \n" "Language: en\n" @@ -16,7 +16,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.12.1\n" +"Generated-By: Babel 2.14.0\n" #: fietsboek/actions.py:267 msgid "email.verify_mail.subject" @@ -29,11 +29,11 @@ msgstr "" "\n" "If you did not create an account, ignore this email." -#: fietsboek/util.py:307 +#: fietsboek/util.py:310 msgid "password_constraint.mismatch" msgstr "Passwords don't match" -#: fietsboek/util.py:309 +#: fietsboek/util.py:312 msgid "password_constraint.length" msgstr "Password not long enough" @@ -624,67 +624,79 @@ msgstr "Passwords must match" msgid "page.password_reset.reset" msgstr "Reset" -#: fietsboek/templates/profile.jinja2:67 +#: fietsboek/templates/profile.jinja2:64 +msgid "page.profile.tabbar.overview" +msgstr "Overview" + +#: fietsboek/templates/profile.jinja2:69 +msgid "page.profile.tabbar.graphs" +msgstr "Graphs" + +#: fietsboek/templates/profile.jinja2:83 msgid "page.profile.length" msgstr "Length" -#: fietsboek/templates/profile.jinja2:71 +#: fietsboek/templates/profile.jinja2:87 msgid "page.profile.avg_length" msgstr "Average Length" -#: fietsboek/templates/profile.jinja2:75 +#: fietsboek/templates/profile.jinja2:91 msgid "page.profile.uphill" msgstr "Uphill" -#: fietsboek/templates/profile.jinja2:79 +#: fietsboek/templates/profile.jinja2:95 msgid "page.profile.downhill" msgstr "Downhill" -#: fietsboek/templates/profile.jinja2:83 +#: fietsboek/templates/profile.jinja2:99 msgid "page.profile.moving_time" msgstr "Moving Time" -#: fietsboek/templates/profile.jinja2:87 +#: fietsboek/templates/profile.jinja2:103 msgid "page.profile.stopped_time" msgstr "Stopped Time" -#: fietsboek/templates/profile.jinja2:91 +#: fietsboek/templates/profile.jinja2:107 msgid "page.profile.avg_duration" msgstr "Average Duration" -#: fietsboek/templates/profile.jinja2:95 +#: fietsboek/templates/profile.jinja2:111 msgid "page.profile.max_speed" msgstr "Max Speed" -#: fietsboek/templates/profile.jinja2:99 +#: fietsboek/templates/profile.jinja2:115 msgid "page.profile.avg_speed" msgstr "Average Speed" -#: fietsboek/templates/profile.jinja2:103 +#: fietsboek/templates/profile.jinja2:119 msgid "page.profile.number_of_tracks" msgstr "Number of tracks" -#: fietsboek/templates/profile.jinja2:109 +#: fietsboek/templates/profile.jinja2:125 msgid "page.profile.longest_distance_track" msgstr "Longest Track" -#: fietsboek/templates/profile.jinja2:114 +#: fietsboek/templates/profile.jinja2:130 msgid "page.profile.shortest_distance_track" msgstr "Shortest Track" -#: fietsboek/templates/profile.jinja2:119 +#: fietsboek/templates/profile.jinja2:135 msgid "page.profile.longest_duration_track" msgstr "Most Time-Consuming Track" -#: fietsboek/templates/profile.jinja2:124 +#: fietsboek/templates/profile.jinja2:140 msgid "page.profile.shortest_duration_track" msgstr "Quickest Track" -#: fietsboek/templates/profile.jinja2:144 +#: fietsboek/templates/profile.jinja2:147 +msgid "page.profile.graph.km_per_month" +msgstr "Kilometers per month" + +#: fietsboek/templates/profile.jinja2:171 msgid "page.profile.heatmap" msgstr "Heat Map" -#: fietsboek/templates/profile.jinja2:149 +#: fietsboek/templates/profile.jinja2:176 msgid "page.profile.tilehunt" msgstr "Tilehunt" diff --git a/fietsboek/locale/fietslog.pot b/fietsboek/locale/fietslog.pot index 4fd3812..747cd78 100644 --- a/fietsboek/locale/fietslog.pot +++ b/fietsboek/locale/fietslog.pot @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-02-02 23:44+0100\n" +"POT-Creation-Date: 2024-04-06 21:57+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.12.1\n" +"Generated-By: Babel 2.14.0\n" #: fietsboek/actions.py:267 msgid "email.verify_mail.subject" @@ -25,11 +25,11 @@ msgstr "" msgid "email.verify.text" msgstr "" -#: fietsboek/util.py:307 +#: fietsboek/util.py:310 msgid "password_constraint.mismatch" msgstr "" -#: fietsboek/util.py:309 +#: fietsboek/util.py:312 msgid "password_constraint.length" msgstr "" @@ -618,67 +618,79 @@ msgstr "" msgid "page.password_reset.reset" msgstr "" -#: fietsboek/templates/profile.jinja2:67 +#: fietsboek/templates/profile.jinja2:64 +msgid "page.profile.tabbar.overview" +msgstr "" + +#: fietsboek/templates/profile.jinja2:69 +msgid "page.profile.tabbar.graphs" +msgstr "" + +#: fietsboek/templates/profile.jinja2:83 msgid "page.profile.length" msgstr "" -#: fietsboek/templates/profile.jinja2:71 +#: fietsboek/templates/profile.jinja2:87 msgid "page.profile.avg_length" msgstr "" -#: fietsboek/templates/profile.jinja2:75 +#: fietsboek/templates/profile.jinja2:91 msgid "page.profile.uphill" msgstr "" -#: fietsboek/templates/profile.jinja2:79 +#: fietsboek/templates/profile.jinja2:95 msgid "page.profile.downhill" msgstr "" -#: fietsboek/templates/profile.jinja2:83 +#: fietsboek/templates/profile.jinja2:99 msgid "page.profile.moving_time" msgstr "" -#: fietsboek/templates/profile.jinja2:87 +#: fietsboek/templates/profile.jinja2:103 msgid "page.profile.stopped_time" msgstr "" -#: fietsboek/templates/profile.jinja2:91 +#: fietsboek/templates/profile.jinja2:107 msgid "page.profile.avg_duration" msgstr "" -#: fietsboek/templates/profile.jinja2:95 +#: fietsboek/templates/profile.jinja2:111 msgid "page.profile.max_speed" msgstr "" -#: fietsboek/templates/profile.jinja2:99 +#: fietsboek/templates/profile.jinja2:115 msgid "page.profile.avg_speed" msgstr "" -#: fietsboek/templates/profile.jinja2:103 +#: fietsboek/templates/profile.jinja2:119 msgid "page.profile.number_of_tracks" msgstr "" -#: fietsboek/templates/profile.jinja2:109 +#: fietsboek/templates/profile.jinja2:125 msgid "page.profile.longest_distance_track" msgstr "" -#: fietsboek/templates/profile.jinja2:114 +#: fietsboek/templates/profile.jinja2:130 msgid "page.profile.shortest_distance_track" msgstr "" -#: fietsboek/templates/profile.jinja2:119 +#: fietsboek/templates/profile.jinja2:135 msgid "page.profile.longest_duration_track" msgstr "" -#: fietsboek/templates/profile.jinja2:124 +#: fietsboek/templates/profile.jinja2:140 msgid "page.profile.shortest_duration_track" msgstr "" -#: fietsboek/templates/profile.jinja2:144 +#: fietsboek/templates/profile.jinja2:147 +msgid "page.profile.graph.km_per_month" +msgstr "" + +#: fietsboek/templates/profile.jinja2:171 msgid "page.profile.heatmap" msgstr "" -#: fietsboek/templates/profile.jinja2:149 +#: fietsboek/templates/profile.jinja2:176 msgid "page.profile.tilehunt" msgstr "" diff --git a/fietsboek/static/theme.css b/fietsboek/static/theme.css index 8917269..8a77608 100644 --- a/fietsboek/static/theme.css +++ b/fietsboek/static/theme.css @@ -149,6 +149,10 @@ strong { width: 25%; } +.chart-title { + text-align: center; +} + .list-group.list-group-root { padding: 0; overflow: hidden; diff --git a/fietsboek/static/theme.css.map b/fietsboek/static/theme.css.map index 2efb7d7..fb7eb58 100644 --- a/fietsboek/static/theme.css.map +++ b/fietsboek/static/theme.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["../../asset-sources/theme.scss"],"names":[],"mappings":"AAAA;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;AAEA;EACE;EACA;EACA;;;AAIJ;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EAqCE;EACA;EACA;EACA;EACA;EACA;;AAzCA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAWJ;EACI;;;AAGJ;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;;AAIJ;EACE;;;AAGF;EACE;;;AAGF;AACA;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE","file":"theme.css"}
\ No newline at end of file +{"version":3,"sourceRoot":"","sources":["../../asset-sources/theme.scss"],"names":[],"mappings":"AAAA;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;AAEA;EACE;EACA;EACA;;;AAIJ;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EAqCE;EACA;EACA;EACA;EACA;EACA;;AAzCA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAWJ;EACI;;;AAGJ;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;;AAIJ;EACE;;;AAGF;EACE;;;AAGF;AACA;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE","file":"theme.css"}
\ No newline at end of file diff --git a/fietsboek/templates/profile.jinja2 b/fietsboek/templates/profile.jinja2 index e5ac181..1e798c8 100644 --- a/fietsboek/templates/profile.jinja2 +++ b/fietsboek/templates/profile.jinja2 @@ -58,75 +58,96 @@ <div class="container"> <h1>{{ user.name }}</h1> - {% if heatmap_url or tilehunt_url %} - <div id="userMap" style="height: 600px; width: 100%;"></div> - {% endif %} - - <table class="table table-hover table-sm"> - <tr> - <th scope="row">{{ _("page.profile.length") }}</th> - <td id="profileLength">{{ (total.length / 1000) | round(2) | format_decimal }} km</td> - </tr> - <tr> - <th scope="row">{{ _("page.profile.avg_length") }}</th> - <td id="profileAvgLength">{{ (total.avg_length / 1000) | round(2) | format_decimal }} km</td> - </tr> - <tr> - <th scope="row">{{ _("page.profile.uphill") }}</th> - <td id="profileUphill">{{ total.uphill | round(2) | format_decimal }} m</td> - </tr> - <tr> - <th scope="row">{{ _("page.profile.downhill") }}</th> - <td id="profileDownhill">{{ total.downhill | round(2) | format_decimal }} m</td> - </tr> - <tr> - <th scope="row">{{ _("page.profile.moving_time") }}</th> - <td id="profileMovingTime">{{ total.moving_time }}</td> - </tr> - <tr> - <th scope="row">{{ _("page.profile.stopped_time") }}</th> - <td id="profileStoppedTime">{{ total.stopped_time }}</td> - </tr> - <tr> - <th scope="row">{{ _("page.profile.avg_duration") }}</th> - <td id="profileAvgDuration">{{ total.avg_duration }}</td> - </tr> - <tr> - <th scope="row">{{ _("page.profile.max_speed") }}</th> - <td id="profileMaxSpeed">{{ mps_to_kph(total.max_speed) | round(2) | format_decimal }} km/h</td> - </tr> - <tr> - <th scope="row">{{ _("page.profile.avg_speed") }}</th> - <td id="profileAvgSpeed">{{ mps_to_kph(total.avg_speed) | round(2) | format_decimal }} km/h</td> - </tr> - <tr> - <th scope="row">{{ _("page.profile.number_of_tracks") }}</th> - <td id="profileNumberOfTracks">{{ total.count }}</td> - </tr> - </table> - - {% if total.longest_distance_track %} - <h2>{{ _("page.profile.longest_distance_track") }}</h2> - {{ render_track_card(total.longest_distance_track) }} - {% endif %} - - {% if total.shortest_distance_track %} - <h2>{{ _("page.profile.shortest_distance_track") }}</h2> - {{ render_track_card(total.shortest_distance_track) }} - {% endif %} - - {% if total.longest_duration_track %} - <h2>{{ _("page.profile.longest_duration_track") }}</h2> - {{ render_track_card(total.longest_duration_track) }} - {% endif %} - - {% if total.shortest_duration_track %} - <h2>{{ _("page.profile.shortest_duration_track") }}</h2> - {{ render_track_card(total.shortest_duration_track) }} - {% endif %} - - <h2>{{ _("page.profile.monthly_graph") }}</h2> - <div style="width: 75%; margin: auto;"><canvas id="graph-month-summary"></canvas></div> + <ul class="nav nav-tabs" id="profileTabbar" role="tablist"> + <li class="nav-item" role="presentation"> + <button class="nav-link active" id="tabOverviewButton" data-bs-toggle="tab" data-bs-target="#tabOverviewPane" type="button" role="tab" aria-controls="tabOverviewPane" aria-selected="true"> + {{ _("page.profile.tabbar.overview") }} + </button> + </li> + <li class="nav-item" role="presentation"> + <button class="nav-link" id="tabGraphsButton" data-bs-toggle="tab" data-bs-target="#tabGraphsPane" type="button" role="tab" aria-controls="tabGraphsPane" aria-selected="false"> + {{ _("page.profile.tabbar.graphs") }} + </button> + </li> + </ul> + + <div class="tab-content"> + <!-- First tab --> + <div class="tab-pane fade show active" id="tabOverviewPane" role="tabpanel" aria-labelledby="tabOverviewButton"> + {% if heatmap_url or tilehunt_url %} + <div id="userMap" style="height: 600px; width: 100%;"></div> + {% endif %} + + <table class="table table-hover table-sm"> + <tr> + <th scope="row">{{ _("page.profile.length") }}</th> + <td id="profileLength">{{ (total.length / 1000) | round(2) | format_decimal }} km</td> + </tr> + <tr> + <th scope="row">{{ _("page.profile.avg_length") }}</th> + <td id="profileAvgLength">{{ (total.avg_length / 1000) | round(2) | format_decimal }} km</td> + </tr> + <tr> + <th scope="row">{{ _("page.profile.uphill") }}</th> + <td id="profileUphill">{{ total.uphill | round(2) | format_decimal }} m</td> + </tr> + <tr> + <th scope="row">{{ _("page.profile.downhill") }}</th> + <td id="profileDownhill">{{ total.downhill | round(2) | format_decimal }} m</td> + </tr> + <tr> + <th scope="row">{{ _("page.profile.moving_time") }}</th> + <td id="profileMovingTime">{{ total.moving_time }}</td> + </tr> + <tr> + <th scope="row">{{ _("page.profile.stopped_time") }}</th> + <td id="profileStoppedTime">{{ total.stopped_time }}</td> + </tr> + <tr> + <th scope="row">{{ _("page.profile.avg_duration") }}</th> + <td id="profileAvgDuration">{{ total.avg_duration }}</td> + </tr> + <tr> + <th scope="row">{{ _("page.profile.max_speed") }}</th> + <td id="profileMaxSpeed">{{ mps_to_kph(total.max_speed) | round(2) | format_decimal }} km/h</td> + </tr> + <tr> + <th scope="row">{{ _("page.profile.avg_speed") }}</th> + <td id="profileAvgSpeed">{{ mps_to_kph(total.avg_speed) | round(2) | format_decimal }} km/h</td> + </tr> + <tr> + <th scope="row">{{ _("page.profile.number_of_tracks") }}</th> + <td id="profileNumberOfTracks">{{ total.count }}</td> + </tr> + </table> + + {% if total.longest_distance_track %} + <h2>{{ _("page.profile.longest_distance_track") }}</h2> + {{ render_track_card(total.longest_distance_track) }} + {% endif %} + + {% if total.shortest_distance_track %} + <h2>{{ _("page.profile.shortest_distance_track") }}</h2> + {{ render_track_card(total.shortest_distance_track) }} + {% endif %} + + {% if total.longest_duration_track %} + <h2>{{ _("page.profile.longest_duration_track") }}</h2> + {{ render_track_card(total.longest_duration_track) }} + {% endif %} + + {% if total.shortest_duration_track %} + <h2>{{ _("page.profile.shortest_duration_track") }}</h2> + {{ render_track_card(total.shortest_duration_track) }} + {% endif %} + </div> + + <!-- Second tab --> + <div class="tab-pane fade" id="tabGraphsPane" role="tabpanel" aria-labelledby="tabGraphsButton"> + <h2 class="chart-title">{{ _("page.profile.graph.km_per_month") }}</h2> + <div style="position: relative; height: 500px; width: 75%; margin: auto;"><canvas id="graph-month-summary"></canvas></div> + </div> + </div> </div> {% endblock %} |