Loading lib/DBInfoscreen.pm +1 −0 Original line number Diff line number Diff line Loading @@ -351,6 +351,7 @@ sub startup { $r->get('/_ajax_mapinfo/:tripid/:lineno')->to('map#ajax_route'); $r->get('/map/:tripid/:lineno')->to('map#route'); $r->get('/intersection/:trips')->to('map#intersection'); $r->get('/z/:train/:station')->to('stationboard#train_details'); $r->get('/map')->to('map#search_form'); $r->get('/_trainsearch')->to('map#search'); Loading lib/DBInfoscreen/Controller/Stationboard.pm +94 −2 Original line number Diff line number Diff line Loading @@ -400,7 +400,7 @@ sub format_hafas_result_info { } sub render_train { my ( $self, $result, $departure, $station_name ) = @_; my ( $self, $result, $departure, $station_name, $template ) = @_; $departure->{route_pre_diff} = [ $self->json_route_diff( Loading Loading @@ -626,7 +626,7 @@ sub render_train { Mojo::Promise->all( $wagonorder_req, $stationinfo_req, $route_req )->then( sub { $self->render( '_train_details', $template // '_train_details', departure => $departure, linetype => $linetype, icetype => $self->app->ice_type_map->{ $departure->{train_no} }, Loading @@ -637,6 +637,98 @@ sub render_train { )->wait; } sub train_details { my ($self) = @_; my $train_no = $self->stash('train'); my $station = $self->stash('station'); my %opt = ( cache_hafas => $self->app->cache_hafas, cache_iris_main => $self->app->cache_iris_main, cache_iris_rt => $self->app->cache_iris_rt, ); my $api_version = $Travel::Status::DE::IRIS::VERSION; $self->stash( departures => [] ); $self->stash( title => 'DBF' ); $self->stash( version => $dbf_version ); my $data = get_results_for( 'iris', $station, %opt ); my $errstr = $data->{errstr}; if ( not @{ $data->{results} } ) { $self->handle_no_results( 'iris', $station, $errstr ); return; } my ($result) = grep { result_is_train( $_, $train_no ) } @{ $data->{results} }; if ( not $result ) { $self->handle_no_results( 'iris', $station, "Zug $train_no nicht gefunden" ); return; } my ( $info, $moreinfo ) = $self->format_iris_result_info( 'app', $result ); my $result_info = { sched_arrival => $result->sched_arrival ? $result->sched_arrival->strftime('%H:%M') : undef, sched_departure => $result->sched_departure ? $result->sched_departure->strftime('%H:%M') : undef, arrival => $result->arrival ? $result->arrival->strftime('%H:%M') : undef, departure => $result->departure ? $result->departure->strftime('%H:%M') : undef, train => $result->train, train_type => $result->type // '', train_line => $result->line_no, train_no => $result->train_no, via => [ $result->route_interesting(3) ], destination => $result->destination, origin => $result->origin, platform => $result->platform, scheduled_platform => $result->sched_platform, is_cancelled => $result->is_cancelled, departure_is_cancelled => $result->departure_is_cancelled, arrival_is_cancelled => $result->arrival_is_cancelled, messages => { delay => [ map { { timestamp => $_->[0], text => $_->[1] } } $result->delay_messages ], qos => [ map { { timestamp => $_->[0], text => $_->[1] } } $result->qos_messages ], }, moreinfo => $moreinfo, delay => $result->delay, route_pre => [ $result->route_pre ], route_post => [ $result->route_post ], additional_stops => [ $result->additional_stops ], canceled_stops => [ $result->canceled_stops ], replaced_by => [ map { $_->type . q{ } . $_->train_no } $result->replaced_by ], replacement_for => [ map { $_->type . q{ } . $_->train_no } $result->replacement_for ], wr_link => $result->sched_departure ? $result->sched_departure->strftime('%Y%m%d%H%M') : undef, }; $self->stash( title => $data->{station_name} // $self->stash('station') ); $self->stash( hide_opts => 1 ); $self->render_train( $result, $result_info, $data->{station_name} // $self->stash('station'), 'train_details' ); } sub handle_result { my ( $self, $data ) = @_; Loading public/static/css/material-icons.css +4 −4 Original line number Diff line number Diff line Loading @@ -2,12 +2,12 @@ font-family: 'Material Icons'; font-style: normal; font-weight: 400; src: url(/static/v31/fonts/MaterialIcons-Regular.eot); /* For IE6-8 */ src: url(/static/v32/fonts/MaterialIcons-Regular.eot); /* For IE6-8 */ src: local('Material Icons'), local('MaterialIcons-Regular'), url(/static/v31/fonts/MaterialIcons-Regular.woff2) format('woff2'), url(/static/v31/fonts/MaterialIcons-Regular.woff) format('woff'), url(/static/v31/fonts/MaterialIcons-Regular.ttf) format('truetype'); url(/static/v32/fonts/MaterialIcons-Regular.woff2) format('woff2'), url(/static/v32/fonts/MaterialIcons-Regular.woff) format('woff'), url(/static/v32/fonts/MaterialIcons-Regular.ttf) format('truetype'); } .material-icons { Loading public/static/js/collapse.js +4 −2 Original line number Diff line number Diff line Loading @@ -122,8 +122,10 @@ $(function() { }); }); $('.moreinfo').click(function() { if (!$(this).data('static')) { $(this).removeClass('expanded-moreinfo'); $(this).addClass('collapsed-moreinfo'); } }); dbf_reg_handlers(); if ($('.content .app').length) { Loading public/static/js/dbf.min.js +1 −1 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
lib/DBInfoscreen.pm +1 −0 Original line number Diff line number Diff line Loading @@ -351,6 +351,7 @@ sub startup { $r->get('/_ajax_mapinfo/:tripid/:lineno')->to('map#ajax_route'); $r->get('/map/:tripid/:lineno')->to('map#route'); $r->get('/intersection/:trips')->to('map#intersection'); $r->get('/z/:train/:station')->to('stationboard#train_details'); $r->get('/map')->to('map#search_form'); $r->get('/_trainsearch')->to('map#search'); Loading
lib/DBInfoscreen/Controller/Stationboard.pm +94 −2 Original line number Diff line number Diff line Loading @@ -400,7 +400,7 @@ sub format_hafas_result_info { } sub render_train { my ( $self, $result, $departure, $station_name ) = @_; my ( $self, $result, $departure, $station_name, $template ) = @_; $departure->{route_pre_diff} = [ $self->json_route_diff( Loading Loading @@ -626,7 +626,7 @@ sub render_train { Mojo::Promise->all( $wagonorder_req, $stationinfo_req, $route_req )->then( sub { $self->render( '_train_details', $template // '_train_details', departure => $departure, linetype => $linetype, icetype => $self->app->ice_type_map->{ $departure->{train_no} }, Loading @@ -637,6 +637,98 @@ sub render_train { )->wait; } sub train_details { my ($self) = @_; my $train_no = $self->stash('train'); my $station = $self->stash('station'); my %opt = ( cache_hafas => $self->app->cache_hafas, cache_iris_main => $self->app->cache_iris_main, cache_iris_rt => $self->app->cache_iris_rt, ); my $api_version = $Travel::Status::DE::IRIS::VERSION; $self->stash( departures => [] ); $self->stash( title => 'DBF' ); $self->stash( version => $dbf_version ); my $data = get_results_for( 'iris', $station, %opt ); my $errstr = $data->{errstr}; if ( not @{ $data->{results} } ) { $self->handle_no_results( 'iris', $station, $errstr ); return; } my ($result) = grep { result_is_train( $_, $train_no ) } @{ $data->{results} }; if ( not $result ) { $self->handle_no_results( 'iris', $station, "Zug $train_no nicht gefunden" ); return; } my ( $info, $moreinfo ) = $self->format_iris_result_info( 'app', $result ); my $result_info = { sched_arrival => $result->sched_arrival ? $result->sched_arrival->strftime('%H:%M') : undef, sched_departure => $result->sched_departure ? $result->sched_departure->strftime('%H:%M') : undef, arrival => $result->arrival ? $result->arrival->strftime('%H:%M') : undef, departure => $result->departure ? $result->departure->strftime('%H:%M') : undef, train => $result->train, train_type => $result->type // '', train_line => $result->line_no, train_no => $result->train_no, via => [ $result->route_interesting(3) ], destination => $result->destination, origin => $result->origin, platform => $result->platform, scheduled_platform => $result->sched_platform, is_cancelled => $result->is_cancelled, departure_is_cancelled => $result->departure_is_cancelled, arrival_is_cancelled => $result->arrival_is_cancelled, messages => { delay => [ map { { timestamp => $_->[0], text => $_->[1] } } $result->delay_messages ], qos => [ map { { timestamp => $_->[0], text => $_->[1] } } $result->qos_messages ], }, moreinfo => $moreinfo, delay => $result->delay, route_pre => [ $result->route_pre ], route_post => [ $result->route_post ], additional_stops => [ $result->additional_stops ], canceled_stops => [ $result->canceled_stops ], replaced_by => [ map { $_->type . q{ } . $_->train_no } $result->replaced_by ], replacement_for => [ map { $_->type . q{ } . $_->train_no } $result->replacement_for ], wr_link => $result->sched_departure ? $result->sched_departure->strftime('%Y%m%d%H%M') : undef, }; $self->stash( title => $data->{station_name} // $self->stash('station') ); $self->stash( hide_opts => 1 ); $self->render_train( $result, $result_info, $data->{station_name} // $self->stash('station'), 'train_details' ); } sub handle_result { my ( $self, $data ) = @_; Loading
public/static/css/material-icons.css +4 −4 Original line number Diff line number Diff line Loading @@ -2,12 +2,12 @@ font-family: 'Material Icons'; font-style: normal; font-weight: 400; src: url(/static/v31/fonts/MaterialIcons-Regular.eot); /* For IE6-8 */ src: url(/static/v32/fonts/MaterialIcons-Regular.eot); /* For IE6-8 */ src: local('Material Icons'), local('MaterialIcons-Regular'), url(/static/v31/fonts/MaterialIcons-Regular.woff2) format('woff2'), url(/static/v31/fonts/MaterialIcons-Regular.woff) format('woff'), url(/static/v31/fonts/MaterialIcons-Regular.ttf) format('truetype'); url(/static/v32/fonts/MaterialIcons-Regular.woff2) format('woff2'), url(/static/v32/fonts/MaterialIcons-Regular.woff) format('woff'), url(/static/v32/fonts/MaterialIcons-Regular.ttf) format('truetype'); } .material-icons { Loading
public/static/js/collapse.js +4 −2 Original line number Diff line number Diff line Loading @@ -122,8 +122,10 @@ $(function() { }); }); $('.moreinfo').click(function() { if (!$(this).data('static')) { $(this).removeClass('expanded-moreinfo'); $(this).addClass('collapsed-moreinfo'); } }); dbf_reg_handlers(); if ($('.content .app').length) { Loading
public/static/js/dbf.min.js +1 −1 File changed.Preview size limit exceeded, changes collapsed. Show changes