From fb126c69289abf7174f53b0d04f56f195e0fbd12 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Fri, 6 Dec 2019 21:42:26 +0100 Subject: optionally show journey comment in public user status Closes #19 --- lib/Travelynx/Controller/Account.pm | 13 ++++++++++--- lib/Travelynx/Controller/Traveling.pm | 12 +++++++----- templates/_checked_in.html.ep | 2 +- templates/_public_status_card.html.ep | 3 +++ templates/account.html.ep | 3 +++ templates/privacy.html.ep | 16 ++++++++++++++++ templates/user_status.html.ep | 2 +- 7 files changed, 41 insertions(+), 10 deletions(-) diff --git a/lib/Travelynx/Controller/Account.pm b/lib/Travelynx/Controller/Account.pm index 0275b96..cebe21a 100644 --- a/lib/Travelynx/Controller/Account.pm +++ b/lib/Travelynx/Controller/Account.pm @@ -65,7 +65,7 @@ sub register { my $password2 = $self->req->param('password2'); my $ip = $self->req->headers->header('X-Forwarded-For'); my $ua = $self->req->headers->user_agent; - my $date = DateTime->now( time_zone => 'Europe/Berlin' ) + my $date = DateTime->now( time_zone => 'Europe/Berlin' ) ->strftime('%d.%m.%Y %H:%M:%S %z'); # In case Mojolicious is not running behind a reverse proxy @@ -221,13 +221,20 @@ sub privacy { else { $public_level &= ~0x02; } + if ( $self->param('public_comment') ) { + $public_level |= 0x04; + } + else { + $public_level &= ~0x04; + } $self->set_privacy( $user->{id}, $public_level ); $self->flash( success => 'privacy' ); $self->redirect_to('account'); } else { - $self->param( public_status => $public_level & 0x02 ? 1 : 0 ); + $self->param( public_status => $public_level & 0x02 ? 1 : 0 ); + $self->param( public_comment => $public_level & 0x04 ? 1 : 0 ); $self->render( 'privacy', name => $user->{name} ); } } @@ -640,7 +647,7 @@ sub json_export { $self->render( json => { - account => $db->select( 'users', '*', { id => $uid } )->hash, + account => $db->select( 'users', '*', { id => $uid } )->hash, in_transit => [ $db->select( 'in_transit_str', '*', { user_id => $uid } ) ->hashes->each diff --git a/lib/Travelynx/Controller/Traveling.pm b/lib/Travelynx/Controller/Traveling.pm index f41d8df..3f8f37e 100755 --- a/lib/Travelynx/Controller/Traveling.pm +++ b/lib/Travelynx/Controller/Traveling.pm @@ -75,9 +75,10 @@ sub user_status { $self->render( 'user_status', - name => $name, - journey => $status, - twitter => \%tw_data, + name => $name, + public_level => $user->{public_level}, + journey => $status, + twitter => \%tw_data, ); } else { @@ -97,8 +98,9 @@ sub public_status_card { my $status = $self->get_user_status( $user->{id} ); $self->render( '_public_status_card', - name => $name, - journey => $status + name => $name, + public_level => $user->{public_level}, + journey => $status ); } else { diff --git a/templates/_checked_in.html.ep b/templates/_checked_in.html.ep index 5631e12..f915769 100644 --- a/templates/_checked_in.html.ep +++ b/templates/_checked_in.html.ep @@ -4,7 +4,7 @@ Eingecheckt in <%= $journey->{train_type} %> <%= $journey->{train_no} %> % if ($journey->{comment}) { -

<%= $journey->{comment} %>.

+

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

% }

<%= $name %> ist unterwegs + % if ($public_level & 0x04 and $journey->{comment}) { +

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

+ % }

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

<%= $journey->{train_type} %> <%= $journey->{train_line} %> <%= $journey->{train_no} %>
diff --git a/templates/account.html.ep b/templates/account.html.ep index 627be85..7ad48b5 100644 --- a/templates/account.html.ep +++ b/templates/account.html.ep @@ -69,6 +69,9 @@ % if ($acc->{is_public} & 0x02) { Aktueller Status % } + % if (($acc->{is_public} & 0x06) == 0x06) { + mit Kommentar + % } diff --git a/templates/privacy.html.ep b/templates/privacy.html.ep index 4469154..b16ee44 100644 --- a/templates/privacy.html.ep +++ b/templates/privacy.html.ep @@ -27,6 +27,22 @@ Wann die letzte Reise beendet wurde, wird bewusst nicht angegeben.
+
+
+ +
+
+
+
+ Wenn aktiv, wird in deinem aktuellen Status auch der optionale + Freitext-Kommentar der Zugfahrt gezeigt. Wenn du gerade nicht + eingecheckt bist oder dein aktueller Status nicht öffentlich ist, + hat dieses Feld keine Auswirkungen. +
+
diff --git a/templates/user_status.html.ep b/templates/user_status.html.ep index 2a6be03..78ef547 100644 --- a/templates/user_status.html.ep +++ b/templates/user_status.html.ep @@ -1,5 +1,5 @@
- %= include '_public_status_card', name => $name, journey => $journey + %= include '_public_status_card', name => $name, public_level => $public_level, journey => $journey
-- cgit v1.2.3