Commit cbbe3551 authored by Birte Kristina Friesel's avatar Birte Kristina Friesel
Browse files

iris+clean: show and sort by actual (estimated) arr/dep times

parent da0d7968
Loading
Loading
Loading
Loading
+33 −5
Original line number Diff line number Diff line
@@ -71,6 +71,7 @@ sub handle_request {
	my $template       = $self->param('mode')          // 'multi';
	my $hide_low_delay = $self->param('hidelowdelay')  // 0;
	my $hide_opts      = $self->param('hide_opts')     // 0;
	my $show_realtime  = $self->param('show_realtime') // 0;
	my $backend        = $self->param('backend')       // 'ris';
	my $admode         = $self->param('admode')        // 'deparr';
	my $callback       = $self->param('callback');
@@ -173,6 +174,21 @@ sub handle_request {
		@results = sort { $a->platform <=> $b->platform } @results;
	}

	if ( $backend eq 'iris' and $show_realtime ) {
		if ( $admode eq 'arr' ) {
			@results = sort {
				( $a->arrival // $a->departure )
				  <=> ( $b->arrival // $b->depearture )
			} @results;
		}
		else {
			@results = sort {
				( $a->departure // $a->arrival )
				  <=> ( $b->departure // $b->arrival )
			} @results;
		}
	}

	for my $result (@results) {
		my $platform = ( split( / /, $result->platform ) )[0];
		my $line     = $result->line;
@@ -259,6 +275,17 @@ sub handle_request {
			if ( $admode eq 'arr' ) {
				$time = $result->sched_arrival->strftime('%H:%M');
			}

			if ($show_realtime) {
				if ( ( $admode eq 'arr' and $result->arrival )
					or not $result->departure )
				{
					$time = $result->arrival->strftime('%H:%M');
				}
				else {
					$time = $result->departure->strftime('%H:%M');
				}
			}
		}

		if ( $info eq '+0' ) {
@@ -324,6 +351,7 @@ sub handle_request {
			title            => "departures for ${station}",
			refresh_interval => $refresh_interval + 3,
			hide_opts        => $hide_opts,
			show_realtime    => $show_realtime,
		);
	}
}
+10 −0
Original line number Diff line number Diff line
@@ -155,6 +155,12 @@ div.displayclean li .countdown .delay {
	padding-right:7px;
}

div.displayclean li .countdown .delaynorm {
	font-size:0.9em;
	color:#BB3333;
	padding-right:7px;
}

div.displayclean li .countdown .platform {
	font-weight: bold;
}
@@ -168,6 +174,10 @@ div.displayclean li .time {
	top:5px;
}

div.displayclean span.delayed {
	color: #ff0000;
}

div.displaymulti {
	border: 0.2em solid #000066;
	width: 55em;
+12 −1
Original line number Diff line number Diff line
@@ -58,15 +58,26 @@
</span>
<span class="countdown">
% if ($departure->{delay} and not $departure->{is_cancelled}) {
% if ($show_realtime) {
<span class="delaynorm">(+<%= $departure->{delay} %>)</span>
% }
% else {
<span class="delay">(+<%= $departure->{delay} %>)</span>
% }
% }
<span class="platform">
%= $departure->{platform}
</span>
</span>
<span class="time">
<span class="time <%= ($show_realtime and $departure->{delay} and not $departure->{is_cancelled}) ? 'delayed' : q{} %>">
% if ($show_realtime and $departure->{delay} and not $departure->{is_cancelled}) {
<span class="delayed">
% }
%= $departure->{time}
</span>
% if ($show_realtime and $departure->{delay} and not $departure->{is_cancelled}) {
</span>
% }
</li>

<!--
+8 −0
Original line number Diff line number Diff line
@@ -123,6 +123,14 @@
      %= select_field admode => [['Abfahrt bevorzugen' => 'deparr'], ['Nur Abfahrt' => 'dep'], ['Nur Ankunft' => 'arr']]
    </div>
  </div>
  <div class="field">
    <div class="desc">
      Erwartete Abfahrtzeiten statt Fahrplandaten verwenden?
    </div>
    <div>
      %= check_box 'show_realtime' => 1
    </div>
  </div>
</div>
% end