diff options
Diffstat (limited to 'lib/Travelynx')
-rwxr-xr-x | lib/Travelynx/Controller/Traveling.pm | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/lib/Travelynx/Controller/Traveling.pm b/lib/Travelynx/Controller/Traveling.pm index bbbc214..83036ba 100755 --- a/lib/Travelynx/Controller/Traveling.pm +++ b/lib/Travelynx/Controller/Traveling.pm @@ -378,6 +378,8 @@ sub journey_details { my ($self) = @_; my ( $uid, $checkout_id ) = split( qr{-}, $self->stash('id') ); + $self->param( journey_id => $checkout_id ); + if ( not( $uid == $self->current_user->{id} and $checkout_id ) ) { $self->render( 'journey', @@ -411,4 +413,60 @@ sub journey_details { ); } +sub edit_journey { + my ($self) = @_; + my $checkout_id = $self->param('journey_id'); + my $uid = $self->current_user->{id}; + + if ( not( $uid == $self->current_user->{id} and $checkout_id ) ) { + $self->render( + 'edit_journey', + error => 'notfound', + journey => {} + ); + return; + } + + my @journeys = $self->get_user_travels( + uid => $uid, + checkout_id => $checkout_id, + ); + if ( @journeys == 0 + or not $journeys[0]{completed} + or $journeys[0]{ids}[1] != $checkout_id ) + { + $self->render( + 'edit_journey', + error => 'notfound', + journey => {} + ); + return; + } + + my $journey = $journeys[0]; + + for my $key (qw(sched_departure rt_departure sched_arrival rt_arrival)) { + if ( $journey->{$key} and $journey->{$key}->epoch ) { + $self->param( + $key => $journey->{$key}->strftime('%d.%m.%Y %H:%M') ); + } + } + + if ( $journey->{route} ) { + $self->param( route => join( "\n", @{ $journey->{route} } ) ); + } + + $self->render( + 'edit_journey', + error => undef, + journey => $journey + ); +} + +sub add_journey_form { + my ($self) = @_; + + $self->render( 'add_journey', error => undef ); +} + 1; |