summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Travelynx/Controller/Account.pm13
-rwxr-xr-xlib/Travelynx/Controller/Traveling.pm12
-rw-r--r--templates/_checked_in.html.ep2
-rw-r--r--templates/_public_status_card.html.ep3
-rw-r--r--templates/account.html.ep3
-rw-r--r--templates/privacy.html.ep16
-rw-r--r--templates/user_status.html.ep2
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 @@
<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>
% if ($journey->{comment}) {
- <p><%= $journey->{comment} %>.</p>
+ <p><%= $journey->{comment} %></p>
% }
<p>
<div class="center-align countdown"
diff --git a/templates/_public_status_card.html.ep b/templates/_public_status_card.html.ep
index 0bed878..4a846af 100644
--- a/templates/_public_status_card.html.ep
+++ b/templates/_public_status_card.html.ep
@@ -3,6 +3,9 @@
<div class="card-content">
<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>
+ % if ($public_level & 0x04 and $journey->{comment}) {
+ <p>„<%= $journey->{comment} %>“</p>
+ % }
<p>
% if ($journey->{train_line}) {
<div class="center-align"><b><%= $journey->{train_type} %> <%= $journey->{train_line} %></b> <%= $journey->{train_no} %></div>
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
+ % }
</td>
</tr>
<tr>
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
@@ -28,6 +28,22 @@
</div>
</div>
<div class="row">
+ <div class="input-field col s12">
+ <label>
+ %= check_box public_comment => 1
+ <span>Checkin-Kommentar</span>
+ </label>
+ </div>
+ </div>
+ <div class="row">
+ <div class="col s12">
+ 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.
+ </div>
+ </div>
+ <div class="row">
<div class="col s3 m3 l3">
</div>
<div class="col s6 m6 l6 center-align">
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 @@
<div class="row">
<div class="col s12 publicstatuscol" data-user="<%= $name %>">
- %= include '_public_status_card', name => $name, journey => $journey
+ %= include '_public_status_card', name => $name, public_level => $public_level, journey => $journey
</div>
</div>