Loading lib/Travelynx/Controller/Account.pm +9 −0 Original line number Diff line number Diff line Loading @@ -261,6 +261,13 @@ sub privacy { $public_level &= ~0x30; } if ( $self->param('history_age') eq 'infinite' ) { $public_level |= 0x40; } else { $public_level &= ~0x40; } $self->users->set_privacy( uid => $user->{id}, level => $public_level Loading @@ -281,6 +288,8 @@ sub privacy { : $public_level & 0x20 ? 'extern' : 'private' ); $self->param( history_age => $public_level & 0x40 ? 'infinite' : 'month' ); $self->render( 'privacy', name => $user->{name} ); } } Loading lib/Travelynx/Controller/Traveling.pm +32 −2 Original line number Diff line number Diff line Loading @@ -160,12 +160,32 @@ sub public_profile { ) { my $status = $self->get_user_status( $user->{id} ); my @journeys; if ( $user->{public_level} & 0x40 ) { @journeys = $self->journeys->get( uid => $user->{id}, limit => 10, with_datetime => 1 ); } else { my $now = DateTime->now( time_zone => 'Europe/Berlin' ); my $month_ago = $now->clone->subtract( weeks => 4 ); @journeys = $self->journeys->get( uid => $user->{id}, limit => 10, with_datetime => 1, after => $month_ago, before => $now ); } $self->render( 'profile', name => $name, uid => $user->{id}, public_level => $user->{public_level}, journey => $status, journeys => [@journeys], version => $self->app->config->{version} // 'UNKNOWN', ); } Loading Loading @@ -207,12 +227,22 @@ sub public_journey_details { with_polyline => 1, ); if ( not( $user->{public_level} & 0x40 ) ) { my $month_ago = DateTime->now( time_zone => 'Europe/Berlin' ) ->subtract( weeks => 4 )->epoch; if ( $journey and $journey->{rt_dep_ts} < $month_ago ) { $journey = undef; } } if ($journey) { my $map_data = $self->journeys_to_map_data( journeys => [$journey], include_manual => 1, ); if ( $journey->{user_data}{comment} ) { if ( $journey->{user_data}{comment} and not $user->{public_level} & 0x04 ) { delete $journey->{user_data}{comment}; } $self->render( Loading @@ -226,7 +256,7 @@ sub public_journey_details { ); } else { $self->render( 'not_found', ); $self->render('not_found'); } } else { Loading templates/account.html.ep +13 −7 Original line number Diff line number Diff line Loading @@ -72,17 +72,23 @@ % elsif ($acc->{is_public} & 0x02) { Aktueller Status % } % if ($acc->{is_public} & 0x04) { mit Kommentar % } % if ($acc->{is_public} & 0x0f and $acc->{is_public} & 0xf0) { <br/> % } % if ($acc->{is_public} & 0x30) { % if ($acc->{is_public} & 0x40) { Vergangene Fahrten % } % else { Fahrten der letzten vier Wochen % } % if ($acc->{is_public} & 0x10) { Vergangene Fahrten (nur mit Anmeldung) (nur mit Anmeldung) % } % elsif ($acc->{is_public} & 0x20) { Vergangene Fahrten % } % if ($acc->{is_public} & 0x04) { <br/> Kommentare % } </td> </tr> Loading templates/privacy.html.ep +44 −39 Original line number Diff line number Diff line Loading @@ -12,90 +12,95 @@ <h2>Aktueller Status</h2> <div class="row"> <div class="input-field col s12"> <div> <label> %= radio_button status_level => 'private' <span>Nicht sichtbar</span> </label> </div> </div> <div class="row"> <div class="input-field col s12"> </div><div> <label> %= radio_button status_level => 'intern' <span>Nur mit Anmeldung</span> </label> </div> </div> <div class="row"> <div class="input-field col s12"> </div><div> <label> %= radio_button status_level => 'extern' <span>Öffentlich</span> </label> </div> </div> </div> <div class="row"> <div class="col s12"> Hier kannst du auswählen, ob dein aktueller Status unter <a href="/status/<%= $name %>">/status/<%= $name %></a> sowie <a href="/p/<%= $name %>">/p/<%= $name %></a> abrufbar ist. Wenn du eingecheckt bist, werden dort Zug, Start- und Zielstation, Abfahrts- und Ankunftszeit gezeigt; andernfalls lediglich der 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). </div> </div> <div class="row"> <div class="input-field col s12"> <label> %= check_box public_comment => 1 <span>Mit 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> <h2>Vergangene Zugfahrten</h2> <div class="row"> <div class="input-field col s12"> <div class="input-field col s12 m6 l6"> <div> <label> %= radio_button history_level => 'private' <span>Nicht sichtbar</span> </label> </div> </div> <div class="row"> <div class="input-field col s12"> </div><div> <label> %= radio_button history_level => 'intern' <span>Nur mit Anmeldung</span> </label> </div> </div> <div class="row"> <div class="input-field col s12"> </div><div> <label> %= radio_button history_level => 'extern' <span>Öffentlich</span> </label> </div> </div> <div class="input-field col s12 m6 l6"> <div> <label> %= radio_button history_age => 'month' <span>Letzte vier Wochen</span> </label> </div><div> <label> %= radio_button history_age => 'infinite' <span>Alle Fahrten</span> </label> </div> </div> </div> <div class="row"> <div class="col s12"> Diese Einstellung bestimmt die Sichtbarkeit deiner vergangenen Zugfahrten mit allen dazu bekannten Details (Abfahrt, Ankunft, Wagenreihung u.a.). Die letzten zehn Fahrten werden unter <a Wagenreihung u.a.). Bis zu zehn deiner Fahrten werden unter <a href="/p/<%= $name %>">/p/<%= $name %></a> aufgelistet und verlinkt, ältere 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 öffentlich. 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. </div> </div> <h2>Sonstiges</h2> <div class="row"> <div class="input-field col s12"> <label> %= check_box public_comment => 1 <span>Kommentare anzeigen</span> </label> </div> </div> <div class="row"> <div class="col s12"> Wenn aktiv, sind von dir eingetragene Freitext-Kommentare in deinem aktuellen Status sowie bei deinen vergangenen Zugfahrten sichtbar. </div> </div> <div class="row"> Loading templates/profile.html.ep +1 −1 Original line number Diff line number Diff line Loading @@ -23,7 +23,7 @@ <h2>Letzte Fahrten von <%= $name %></h1> </div> </div> %= include '_history_trains', date_format => '%d.%m.%Y', link_prefix => "/p/${name}/j/", journeys => [journeys->get(uid => $uid, limit => 10, with_datetime => 1)]; %= include '_history_trains', date_format => '%d.%m.%Y', link_prefix => "/p/${name}/j/", journeys => $journeys; % } %= include '_footer', version => stash('version') Loading
lib/Travelynx/Controller/Account.pm +9 −0 Original line number Diff line number Diff line Loading @@ -261,6 +261,13 @@ sub privacy { $public_level &= ~0x30; } if ( $self->param('history_age') eq 'infinite' ) { $public_level |= 0x40; } else { $public_level &= ~0x40; } $self->users->set_privacy( uid => $user->{id}, level => $public_level Loading @@ -281,6 +288,8 @@ sub privacy { : $public_level & 0x20 ? 'extern' : 'private' ); $self->param( history_age => $public_level & 0x40 ? 'infinite' : 'month' ); $self->render( 'privacy', name => $user->{name} ); } } Loading
lib/Travelynx/Controller/Traveling.pm +32 −2 Original line number Diff line number Diff line Loading @@ -160,12 +160,32 @@ sub public_profile { ) { my $status = $self->get_user_status( $user->{id} ); my @journeys; if ( $user->{public_level} & 0x40 ) { @journeys = $self->journeys->get( uid => $user->{id}, limit => 10, with_datetime => 1 ); } else { my $now = DateTime->now( time_zone => 'Europe/Berlin' ); my $month_ago = $now->clone->subtract( weeks => 4 ); @journeys = $self->journeys->get( uid => $user->{id}, limit => 10, with_datetime => 1, after => $month_ago, before => $now ); } $self->render( 'profile', name => $name, uid => $user->{id}, public_level => $user->{public_level}, journey => $status, journeys => [@journeys], version => $self->app->config->{version} // 'UNKNOWN', ); } Loading Loading @@ -207,12 +227,22 @@ sub public_journey_details { with_polyline => 1, ); if ( not( $user->{public_level} & 0x40 ) ) { my $month_ago = DateTime->now( time_zone => 'Europe/Berlin' ) ->subtract( weeks => 4 )->epoch; if ( $journey and $journey->{rt_dep_ts} < $month_ago ) { $journey = undef; } } if ($journey) { my $map_data = $self->journeys_to_map_data( journeys => [$journey], include_manual => 1, ); if ( $journey->{user_data}{comment} ) { if ( $journey->{user_data}{comment} and not $user->{public_level} & 0x04 ) { delete $journey->{user_data}{comment}; } $self->render( Loading @@ -226,7 +256,7 @@ sub public_journey_details { ); } else { $self->render( 'not_found', ); $self->render('not_found'); } } else { Loading
templates/account.html.ep +13 −7 Original line number Diff line number Diff line Loading @@ -72,17 +72,23 @@ % elsif ($acc->{is_public} & 0x02) { Aktueller Status % } % if ($acc->{is_public} & 0x04) { mit Kommentar % } % if ($acc->{is_public} & 0x0f and $acc->{is_public} & 0xf0) { <br/> % } % if ($acc->{is_public} & 0x30) { % if ($acc->{is_public} & 0x40) { Vergangene Fahrten % } % else { Fahrten der letzten vier Wochen % } % if ($acc->{is_public} & 0x10) { Vergangene Fahrten (nur mit Anmeldung) (nur mit Anmeldung) % } % elsif ($acc->{is_public} & 0x20) { Vergangene Fahrten % } % if ($acc->{is_public} & 0x04) { <br/> Kommentare % } </td> </tr> Loading
templates/privacy.html.ep +44 −39 Original line number Diff line number Diff line Loading @@ -12,90 +12,95 @@ <h2>Aktueller Status</h2> <div class="row"> <div class="input-field col s12"> <div> <label> %= radio_button status_level => 'private' <span>Nicht sichtbar</span> </label> </div> </div> <div class="row"> <div class="input-field col s12"> </div><div> <label> %= radio_button status_level => 'intern' <span>Nur mit Anmeldung</span> </label> </div> </div> <div class="row"> <div class="input-field col s12"> </div><div> <label> %= radio_button status_level => 'extern' <span>Öffentlich</span> </label> </div> </div> </div> <div class="row"> <div class="col s12"> Hier kannst du auswählen, ob dein aktueller Status unter <a href="/status/<%= $name %>">/status/<%= $name %></a> sowie <a href="/p/<%= $name %>">/p/<%= $name %></a> abrufbar ist. Wenn du eingecheckt bist, werden dort Zug, Start- und Zielstation, Abfahrts- und Ankunftszeit gezeigt; andernfalls lediglich der 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). </div> </div> <div class="row"> <div class="input-field col s12"> <label> %= check_box public_comment => 1 <span>Mit 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> <h2>Vergangene Zugfahrten</h2> <div class="row"> <div class="input-field col s12"> <div class="input-field col s12 m6 l6"> <div> <label> %= radio_button history_level => 'private' <span>Nicht sichtbar</span> </label> </div> </div> <div class="row"> <div class="input-field col s12"> </div><div> <label> %= radio_button history_level => 'intern' <span>Nur mit Anmeldung</span> </label> </div> </div> <div class="row"> <div class="input-field col s12"> </div><div> <label> %= radio_button history_level => 'extern' <span>Öffentlich</span> </label> </div> </div> <div class="input-field col s12 m6 l6"> <div> <label> %= radio_button history_age => 'month' <span>Letzte vier Wochen</span> </label> </div><div> <label> %= radio_button history_age => 'infinite' <span>Alle Fahrten</span> </label> </div> </div> </div> <div class="row"> <div class="col s12"> Diese Einstellung bestimmt die Sichtbarkeit deiner vergangenen Zugfahrten mit allen dazu bekannten Details (Abfahrt, Ankunft, Wagenreihung u.a.). Die letzten zehn Fahrten werden unter <a Wagenreihung u.a.). Bis zu zehn deiner Fahrten werden unter <a href="/p/<%= $name %>">/p/<%= $name %></a> aufgelistet und verlinkt, ältere 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 öffentlich. 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. </div> </div> <h2>Sonstiges</h2> <div class="row"> <div class="input-field col s12"> <label> %= check_box public_comment => 1 <span>Kommentare anzeigen</span> </label> </div> </div> <div class="row"> <div class="col s12"> Wenn aktiv, sind von dir eingetragene Freitext-Kommentare in deinem aktuellen Status sowie bei deinen vergangenen Zugfahrten sichtbar. </div> </div> <div class="row"> Loading
templates/profile.html.ep +1 −1 Original line number Diff line number Diff line Loading @@ -23,7 +23,7 @@ <h2>Letzte Fahrten von <%= $name %></h1> </div> </div> %= include '_history_trains', date_format => '%d.%m.%Y', link_prefix => "/p/${name}/j/", journeys => [journeys->get(uid => $uid, limit => 10, with_datetime => 1)]; %= include '_history_trains', date_format => '%d.%m.%Y', link_prefix => "/p/${name}/j/", journeys => $journeys; % } %= include '_footer', version => stash('version')