Loading cpanfile +1 −0 Original line number Diff line number Diff line requires 'Cache'; requires 'CAM::PDF'; requires 'Crypt::Eksblowfish'; requires 'DateTime'; requires 'DateTime::Format::Strptime'; Loading lib/Travelynx.pm +2 −0 Original line number Diff line number Diff line Loading @@ -2906,6 +2906,8 @@ sub startup { $authed_r->post('/account/insight')->to('account#insight'); $authed_r->post('/journey/add')->to('traveling#add_journey_form'); $authed_r->post('/journey/edit')->to('traveling#edit_journey'); $authed_r->post('/journey/passenger_rights') ->to('passengerrights#generate'); $authed_r->post('/account/password')->to('account#change_password'); $authed_r->post('/account/mail')->to('account#change_mail'); $authed_r->post('/delete')->to('account#delete'); Loading lib/Travelynx/Controller/Passengerrights.pm 0 → 100644 +83 −0 Original line number Diff line number Diff line package Travelynx::Controller::Passengerrights; use Mojo::Base 'Mojolicious::Controller'; use DateTime; use CAM::PDF; sub generate { my ($self) = @_; my $journey_id = $self->param('id'); my $uid = $self->current_user->{id}; if ( not($journey_id) ) { $self->render( 'journey', error => 'notfound', journey => {} ); return; } my $journey = $self->get_journey( uid => $uid, journey_id => $journey_id, verbose => 1, ); if ( not $journey ) { $self->render( 'journey', error => 'notfound', journey => {} ); return; } my $pdf = CAM::PDF->new('public/static/pdf/fahrgastrechteformular.pdf'); $pdf->fillFormFields( 'S1F4', $journey->{from_name} ); $pdf->fillFormFields( 'S1F7', $journey->{to_name} ); if ( not $journey->{cancelled} ) { $pdf->fillFormFields( 'S1F13', $journey->{type} ); $pdf->fillFormFields( 'S1F14', $journey->{no} ); } $pdf->fillFormFields( 'S1F17', $journey->{type} ); $pdf->fillFormFields( 'S1F18', $journey->{no} ); if ( $journey->{sched_departure}->epoch ) { $pdf->fillFormFields( 'S1F1', $journey->{sched_departure}->strftime('%d') ); $pdf->fillFormFields( 'S1F2', $journey->{sched_departure}->strftime('%m') ); $pdf->fillFormFields( 'S1F3', $journey->{sched_departure}->strftime('%y') ); $pdf->fillFormFields( 'S1F5', $journey->{sched_departure}->strftime('%H') ); $pdf->fillFormFields( 'S1F6', $journey->{sched_departure}->strftime('%M') ); $pdf->fillFormFields( 'S1F19', $journey->{sched_departure}->strftime('%H') ); $pdf->fillFormFields( 'S1F20', $journey->{sched_departure}->strftime('%M') ); } if ( $journey->{sched_arrival}->epoch ) { $pdf->fillFormFields( 'S1F8', $journey->{sched_arrival}->strftime('%H') ); $pdf->fillFormFields( 'S1F9', $journey->{sched_arrival}->strftime('%M') ); } if ( $journey->{rt_arrival}->epoch and not $journey->{cancelled} ) { $pdf->fillFormFields( 'S1F10', $journey->{rt_arrival}->strftime('%d') ); $pdf->fillFormFields( 'S1F11', $journey->{rt_arrival}->strftime('%m') ); $pdf->fillFormFields( 'S1F12', $journey->{rt_arrival}->strftime('%y') ); $pdf->fillFormFields( 'S1F15', $journey->{rt_arrival}->strftime('%H') ); $pdf->fillFormFields( 'S1F16', $journey->{rt_arrival}->strftime('%M') ); } $self->res->headers->content_type('application/pdf'); $self->res->body( $pdf->toPDF() ); $self->rendered(200); } 1; public/static/pdf/fahrgastrechteformular.pdf 0 → 100644 +109 KiB File added.No diff preview for this file type. View file templates/changelog.html.ep +13 −0 Original line number Diff line number Diff line <h1>Changelog</h1> <div class="row"> <div class="col s12 m1 l1"> 1.9 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left">add</i> Generierung vorausgefüllter Fahrgastrechteformulare bei Zugausfällen und Verspätungen ab 60 Minuten. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.8 Loading Loading
cpanfile +1 −0 Original line number Diff line number Diff line requires 'Cache'; requires 'CAM::PDF'; requires 'Crypt::Eksblowfish'; requires 'DateTime'; requires 'DateTime::Format::Strptime'; Loading
lib/Travelynx.pm +2 −0 Original line number Diff line number Diff line Loading @@ -2906,6 +2906,8 @@ sub startup { $authed_r->post('/account/insight')->to('account#insight'); $authed_r->post('/journey/add')->to('traveling#add_journey_form'); $authed_r->post('/journey/edit')->to('traveling#edit_journey'); $authed_r->post('/journey/passenger_rights') ->to('passengerrights#generate'); $authed_r->post('/account/password')->to('account#change_password'); $authed_r->post('/account/mail')->to('account#change_mail'); $authed_r->post('/delete')->to('account#delete'); Loading
lib/Travelynx/Controller/Passengerrights.pm 0 → 100644 +83 −0 Original line number Diff line number Diff line package Travelynx::Controller::Passengerrights; use Mojo::Base 'Mojolicious::Controller'; use DateTime; use CAM::PDF; sub generate { my ($self) = @_; my $journey_id = $self->param('id'); my $uid = $self->current_user->{id}; if ( not($journey_id) ) { $self->render( 'journey', error => 'notfound', journey => {} ); return; } my $journey = $self->get_journey( uid => $uid, journey_id => $journey_id, verbose => 1, ); if ( not $journey ) { $self->render( 'journey', error => 'notfound', journey => {} ); return; } my $pdf = CAM::PDF->new('public/static/pdf/fahrgastrechteformular.pdf'); $pdf->fillFormFields( 'S1F4', $journey->{from_name} ); $pdf->fillFormFields( 'S1F7', $journey->{to_name} ); if ( not $journey->{cancelled} ) { $pdf->fillFormFields( 'S1F13', $journey->{type} ); $pdf->fillFormFields( 'S1F14', $journey->{no} ); } $pdf->fillFormFields( 'S1F17', $journey->{type} ); $pdf->fillFormFields( 'S1F18', $journey->{no} ); if ( $journey->{sched_departure}->epoch ) { $pdf->fillFormFields( 'S1F1', $journey->{sched_departure}->strftime('%d') ); $pdf->fillFormFields( 'S1F2', $journey->{sched_departure}->strftime('%m') ); $pdf->fillFormFields( 'S1F3', $journey->{sched_departure}->strftime('%y') ); $pdf->fillFormFields( 'S1F5', $journey->{sched_departure}->strftime('%H') ); $pdf->fillFormFields( 'S1F6', $journey->{sched_departure}->strftime('%M') ); $pdf->fillFormFields( 'S1F19', $journey->{sched_departure}->strftime('%H') ); $pdf->fillFormFields( 'S1F20', $journey->{sched_departure}->strftime('%M') ); } if ( $journey->{sched_arrival}->epoch ) { $pdf->fillFormFields( 'S1F8', $journey->{sched_arrival}->strftime('%H') ); $pdf->fillFormFields( 'S1F9', $journey->{sched_arrival}->strftime('%M') ); } if ( $journey->{rt_arrival}->epoch and not $journey->{cancelled} ) { $pdf->fillFormFields( 'S1F10', $journey->{rt_arrival}->strftime('%d') ); $pdf->fillFormFields( 'S1F11', $journey->{rt_arrival}->strftime('%m') ); $pdf->fillFormFields( 'S1F12', $journey->{rt_arrival}->strftime('%y') ); $pdf->fillFormFields( 'S1F15', $journey->{rt_arrival}->strftime('%H') ); $pdf->fillFormFields( 'S1F16', $journey->{rt_arrival}->strftime('%M') ); } $self->res->headers->content_type('application/pdf'); $self->res->body( $pdf->toPDF() ); $self->rendered(200); } 1;
public/static/pdf/fahrgastrechteformular.pdf 0 → 100644 +109 KiB File added.No diff preview for this file type. View file
templates/changelog.html.ep +13 −0 Original line number Diff line number Diff line <h1>Changelog</h1> <div class="row"> <div class="col s12 m1 l1"> 1.9 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left">add</i> Generierung vorausgefüllter Fahrgastrechteformulare bei Zugausfällen und Verspätungen ab 60 Minuten. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.8 Loading