Loading lib/Travelynx.pm +2 −1 Original line number Diff line number Diff line Loading @@ -2155,7 +2155,8 @@ sub startup { $r->get('/ajax/status/#name')->to('traveling#public_status_card'); $r->get('/ajax/status/:name/:ts')->to('traveling#public_status_card'); $r->get('/p/:name')->to('traveling#public_profile'); $r->get('/p/:name/j/:id')->to('traveling#public_journey_details'); $r->get( '/p/:name/j/:id' => 'public_journey' ) ->to('traveling#public_journey_details'); $r->get('/.well-known/webfinger')->to('account#webfinger'); $r->post('/api/v1/import')->to('api#import_v1'); $r->post('/api/v1/travel')->to('api#travel_v1'); Loading lib/Travelynx/Controller/Traveling.pm +35 −4 Original line number Diff line number Diff line Loading @@ -1677,7 +1677,8 @@ sub journey_details { my ($self) = @_; my $journey_id = $self->stash('id'); my $uid = $self->current_user->{id}; my $user = $self->current_user; my $uid = $user->{id}; $self->param( journey_id => $journey_id ); Loading @@ -1704,11 +1705,41 @@ sub journey_details { journeys => [$journey], include_manual => 1, ); my $share_text; my $with_share = $user->{is_public} & 0x40 ? 1 : 0; if ( not $with_share and $user->{is_public} & 0x20 ) { my $month_ago = DateTime->now( time_zone => 'Europe/Berlin' ) ->subtract( weeks => 4 )->epoch; $with_share = $journey->{rt_dep_ts} > $month_ago ? 1 : 0; } if ($with_share) { my $delay = 'pünktlich '; if ( $journey->{rt_arrival} != $journey->{sched_arrival} ) { $delay = sprintf( 'mit %+d ', ( $journey->{rt_arrival}->epoch - $journey->{sched_arrival}->epoch ) / 60 ); } $share_text = $journey->{km_route} ? sprintf( '%.0f km', $journey->{km_route} ) : 'Fahrt'; $share_text .= sprintf( ' mit %s %s – Ankunft %sum %s', $journey->{type}, $journey->{no}, $delay, $journey->{rt_arrival}->strftime('%H:%M') ); } $self->render( 'journey', error => undef, journey => $journey, with_map => 1, with_share => $with_share, share_text => $share_text, %{$map_data}, ); } Loading templates/journey.html.ep +14 −0 Original line number Diff line number Diff line Loading @@ -230,6 +230,20 @@ %= include '_map', station_coordinates => stash('station_coordinates'), polyline_groups => stash('polyline_groups') % } % if (not stash('readonly')) { % if (stash('with_share')) { <div class="row"> <div class="col s12 m6 l6"> </div> <div class="col s12 m6 l6 center-align"> <a class="btn waves-effect waves-light action-share" data-url="<%= url_for('public_journey', name => current_user()->{name}, id => $journey->{id} )->to_abs->scheme('https'); %>" data-text="<%= stash('share_text') %>" > <i class="material-icons left" aria-hidden="true">share</i> Teilen </a> </div> </div> % } <div class="row hide-on-small-only"> <div class="col s12 m6 l6 center-align"> <a class="waves-effect waves-light red btn action-delete" Loading Loading
lib/Travelynx.pm +2 −1 Original line number Diff line number Diff line Loading @@ -2155,7 +2155,8 @@ sub startup { $r->get('/ajax/status/#name')->to('traveling#public_status_card'); $r->get('/ajax/status/:name/:ts')->to('traveling#public_status_card'); $r->get('/p/:name')->to('traveling#public_profile'); $r->get('/p/:name/j/:id')->to('traveling#public_journey_details'); $r->get( '/p/:name/j/:id' => 'public_journey' ) ->to('traveling#public_journey_details'); $r->get('/.well-known/webfinger')->to('account#webfinger'); $r->post('/api/v1/import')->to('api#import_v1'); $r->post('/api/v1/travel')->to('api#travel_v1'); Loading
lib/Travelynx/Controller/Traveling.pm +35 −4 Original line number Diff line number Diff line Loading @@ -1677,7 +1677,8 @@ sub journey_details { my ($self) = @_; my $journey_id = $self->stash('id'); my $uid = $self->current_user->{id}; my $user = $self->current_user; my $uid = $user->{id}; $self->param( journey_id => $journey_id ); Loading @@ -1704,11 +1705,41 @@ sub journey_details { journeys => [$journey], include_manual => 1, ); my $share_text; my $with_share = $user->{is_public} & 0x40 ? 1 : 0; if ( not $with_share and $user->{is_public} & 0x20 ) { my $month_ago = DateTime->now( time_zone => 'Europe/Berlin' ) ->subtract( weeks => 4 )->epoch; $with_share = $journey->{rt_dep_ts} > $month_ago ? 1 : 0; } if ($with_share) { my $delay = 'pünktlich '; if ( $journey->{rt_arrival} != $journey->{sched_arrival} ) { $delay = sprintf( 'mit %+d ', ( $journey->{rt_arrival}->epoch - $journey->{sched_arrival}->epoch ) / 60 ); } $share_text = $journey->{km_route} ? sprintf( '%.0f km', $journey->{km_route} ) : 'Fahrt'; $share_text .= sprintf( ' mit %s %s – Ankunft %sum %s', $journey->{type}, $journey->{no}, $delay, $journey->{rt_arrival}->strftime('%H:%M') ); } $self->render( 'journey', error => undef, journey => $journey, with_map => 1, with_share => $with_share, share_text => $share_text, %{$map_data}, ); } Loading
templates/journey.html.ep +14 −0 Original line number Diff line number Diff line Loading @@ -230,6 +230,20 @@ %= include '_map', station_coordinates => stash('station_coordinates'), polyline_groups => stash('polyline_groups') % } % if (not stash('readonly')) { % if (stash('with_share')) { <div class="row"> <div class="col s12 m6 l6"> </div> <div class="col s12 m6 l6 center-align"> <a class="btn waves-effect waves-light action-share" data-url="<%= url_for('public_journey', name => current_user()->{name}, id => $journey->{id} )->to_abs->scheme('https'); %>" data-text="<%= stash('share_text') %>" > <i class="material-icons left" aria-hidden="true">share</i> Teilen </a> </div> </div> % } <div class="row hide-on-small-only"> <div class="col s12 m6 l6 center-align"> <a class="waves-effect waves-light red btn action-delete" Loading