From 6d261197e3138c80357ec485749e2089ef6ff96a Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Mon, 27 Feb 2023 22:14:54 +0100 Subject: set visibility per journey (wip) some odds and ends left to polish, but ready for testing --- templates/_checked_in.html.ep | 23 ++++++--- templates/_public_status_card.html.ep | 23 ++++----- templates/account.html.ep | 30 +----------- templates/journey.html.ep | 10 ++++ templates/landingpage.html.ep | 2 +- templates/privacy.html.ep | 88 ++++++++++++++++++++++++----------- templates/profile.html.ep | 12 ++--- templates/user_status.html.ep | 2 +- 8 files changed, 105 insertions(+), 85 deletions(-) (limited to 'templates') diff --git a/templates/_checked_in.html.ep b/templates/_checked_in.html.ep index f4acc9f..1775986 100644 --- a/templates/_checked_in.html.ep +++ b/templates/_checked_in.html.ep @@ -244,13 +244,16 @@
% if ($journey->{arr_name}) { - - Kommentar + + comment + + + <%= visibility_icon($journey_visibility) %> % } % else { - Checkin Rückgängig + Rückgängig % } % if (defined $journey->{arrival_countdown} and $journey->{arrival_countdown} <= 0) { @@ -259,7 +262,7 @@ style="margin-right: 0;" data-station="<%= $journey->{arr_name}%>"> done - Jetzt auschecken + Auschecken % } % elsif ($journey->{arr_name}) { @@ -270,7 +273,7 @@ {real_arrival}->epoch and not $user->{is_public} & 0x02) { + % if ($journey->{real_arrival}->epoch and $journey_visibility eq 'private') { % $arr_text = $journey->{real_arrival}->strftime(' – Ankunft gegen %H:%M Uhr'); % } % if ($user->{is_public} & 0x04 and $journey->{comment}) { @@ -279,13 +282,21 @@ % else { data-text="Ich bin gerade <%= $attrib %> <%= $journey->{train_type} %> <%= $journey->{train_no} %> nach <%= $journey->{arr_name} . $arr_text %> #travelynx" % } - % if ($user->{is_public} & 0x02) { + % if ($journey_visibility eq 'public') { data-url="<%= url_for('/status')->to_abs->scheme('https') %>/<%= $user->{name} %>/<%= $journey->{sched_departure}->epoch %>" % } + % elsif ($journey_visibility eq 'travelynx' or $journey_visibility eq 'unlisted') { + data-url="<%= url_for('/status')->to_abs->scheme('https') %>/<%= $user->{name} %>/<%= $journey->{sched_departure}->epoch %>?token=<%= $journey->{dep_eva} %>-<%= $journey->{timestamp}->epoch %>" + % } > Teilen % } + % else { + + <%= visibility_icon($journey_visibility) %> Sichtbarkeit + + % }
% if ($journey->{arr_name}) { diff --git a/templates/_public_status_card.html.ep b/templates/_public_status_card.html.ep index 43b9926..cb0fb0d 100644 --- a/templates/_public_status_card.html.ep +++ b/templates/_public_status_card.html.ep @@ -3,7 +3,11 @@
- <%= $name %> ist unterwegs + <%= $name %> ist unterwegs + % if ($journey_visibility) { + <%= visibility_icon($journey_visibility) %> + % } + % if ($public_level & 0x04 and $journey->{comment}) {

„<%= $journey->{comment} %>“

% } @@ -16,6 +20,9 @@ % }
% if ($journey->{departure_countdown} > 120) { Abfahrt in <%= sprintf('%.f', $journey->{departure_countdown} / 60) %> Minuten @@ -166,20 +173,6 @@ <%= $name %> ist gerade nicht eingecheckt

- % if ($journey->{arr_name}) { - Zuletzt gesehen - % if ($journey->{real_arrival}->epoch and ($public_level & 0x20 or ($public_level & 0x10 and is_user_authenticated()))) { - %= $journey->{real_arrival}->strftime('am %d.%m.%Y') - in <%= $journey->{arr_name} %> - %= $journey->{real_arrival}->strftime('(Ankunft um %H:%M Uhr)') - % } - % else { - in <%= $journey->{arr_name} %> - % } - % } - % else { - Noch keine Zugfahrten geloggt. - % }

diff --git a/templates/account.html.ep b/templates/account.html.ep index 9c5d88e..e5dba60 100644 --- a/templates/account.html.ep +++ b/templates/account.html.ep @@ -70,36 +70,10 @@ - Öffentliche Daten + Sichtbarkeit edit - % if ($acc->{is_public} == 0) { - Keine - % } - % if ($acc->{is_public} & 0x01) { - Aktueller Status (nur mit Anmeldung) - % } - % elsif ($acc->{is_public} & 0x02) { - Aktueller Status - % } - % if ($acc->{is_public} & 0x0f and $acc->{is_public} & 0xf0) { -
- % } - % if ($acc->{is_public} & 0x30) { - % if ($acc->{is_public} & 0x40) { - Vergangene Fahrten - % } - % else { - Fahrten der letzten vier Wochen - % } - % if ($acc->{is_public} & 0x10) { - (nur mit Anmeldung) - % } - % } - % if ($acc->{is_public} & 0x04) { -
- Kommentare - % } + <%= visibility_icon($acc->{default_visibility_str}) %> diff --git a/templates/journey.html.ep b/templates/journey.html.ep index 50dcb3e..74c032b 100644 --- a/templates/journey.html.ep +++ b/templates/journey.html.ep @@ -38,6 +38,16 @@ % } am <%= $journey->{sched_departure}->strftime('%d.%m.%Y') %> + % if ($journey_visibility) { + % if (stash('username')) { + <%= visibility_icon($journey_visibility) %> + % } + % else { + + <%= visibility_icon($journey_visibility) %> + + % } + % }

% if ($journey->{edited}) {

diff --git a/templates/landingpage.html.ep b/templates/landingpage.html.ep index a4bf10c..205e35c 100644 --- a/templates/landingpage.html.ep +++ b/templates/landingpage.html.ep @@ -15,7 +15,7 @@

% if ($status->{checked_in}) { - %= include '_checked_in', journey => $status; + %= include '_checked_in', journey => $status, journey_visibility => stash('journey_visibility'); % } % elsif ($status->{cancelled}) {
diff --git a/templates/privacy.html.ep b/templates/privacy.html.ep index b5f3bb3..efeb6e1 100644 --- a/templates/privacy.html.ep +++ b/templates/privacy.html.ep @@ -1,10 +1,11 @@

Öffentliche Daten

- Hier kannst du auswählen, welche Aspekte deines Accounts bzw. deiner - Bahnfahrten öffentlich einsehbar sind. Öffentliche Daten sind - grundsätzlich für alle einsehbar, die die (leicht erratbare) URL - kennen. + Hier kannst du auswählen, welche Personengruppen deine Fahrten bei + travelynx einsehen können und ob dies auch für vergangene Fahrten + gelten soll. Nach dem Einchecken in einen Zug hast du im + Checkin-Fenster die Möglichkeit, für die aktuelle Fahrt eine + abweichende Sichtbarkeit einzustellen.
%= form_for '/account/privacy' => (method => 'POST') => begin @@ -13,33 +14,62 @@
- -
- -
- + +
+
+
+
+
+
+ +
+
+
+ +
+
+
+ +
+
+
+
+
+
+
- Hier kannst du auswählen, ob dein aktueller Status unter /status/<%= $name %> sowie /p/<%= $name %> abrufbar ist. - Wenn du eingecheckt bist, werden dort Zug, Start- und Zielstation - sowie Abfahrts- und Ankunftszeit gezeigt, andernfalls lediglich der - Zielbahnhof der letzten Reise. Wann die letzte Reise beendet wurde, - wird nur angegeben, wenn deine vergangenen Zugfahrten sichtbar sind - (siehe unten). + Wenn du (mit passender Sichtbarkeit) eingecheckt bist, werden unter + /status/<%= $name %> sowie /p/<%= $name %> Zug, Start- und + Zielstation sowie Abfahrts- und Ankunftszeit gezeigt. Andernfalls + wird angegeben, dass du gerade nicht eingecheckt seist.

Vergangene Zugfahrten

@@ -85,7 +115,10 @@ dort nicht eingetragene Fahrten sind jedoch weiterhin über /p/<%= $name %>/j/ID zugänglich. Da die ID (mit Lücken) aufsteigend vergeben wird, sind effektiv alle deiner vergangenen Fahrten (oder alle Fahrten - der letzten vier Wochen) öffentlich. + der letzten vier Wochen) öffentlich. Auch hier besteht die + Möglichkeit, für einzelne Fahrten eine abweichende Sichtbarkeit + einzustellen. Sofern die Sichtbarkeit auf die letzten vier Wochen + beschränkt ist, hat dies jedoch Vorrang.

Sonstiges

@@ -101,6 +134,7 @@
Wenn aktiv, sind von dir eingetragene Freitext-Kommentare in deinem aktuellen Status sowie bei deinen vergangenen Zugfahrten sichtbar. + Diese Einstellung kann nicht pro Fahrt verändert werden.
diff --git a/templates/profile.html.ep b/templates/profile.html.ep index 6a8d67d..63bc3ff 100644 --- a/templates/profile.html.ep +++ b/templates/profile.html.ep @@ -10,14 +10,12 @@
% } -% if ($public_level & 0x02 or ($public_level & 0x01 and is_user_authenticated())) { -
-
- %= include '_public_status_card', name => $name, public_level => $public_level, journey => $journey -
+
+
+ %= include '_public_status_card', name => $name, public_level => $public_level, journey => $journey, journey_visibility => $journey_visibility
-% } -% if ($public_level & 0x20 or ($public_level & 0x10 and is_user_authenticated())) { +
+% if ($journeys and @{$journeys}) {

Letzte Fahrten von <%= $name %>

diff --git a/templates/user_status.html.ep b/templates/user_status.html.ep index 78ef547..783f430 100644 --- a/templates/user_status.html.ep +++ b/templates/user_status.html.ep @@ -1,5 +1,5 @@
- %= include '_public_status_card', name => $name, public_level => $public_level, journey => $journey + %= include '_public_status_card', name => $name, public_level => $public_level, journey => $journey, journey_visibility => $journey_visibility
-- cgit v1.2.3