From f39a87e86d10277bbb39785a3c5cf1af566d9e64 Mon Sep 17 00:00:00 2001
From: Daniel Friesel <derf@finalrewind.org>
Date: Tue, 14 Aug 2012 05:39:09 +0200
Subject: make single.html.ep accessible (todo: only one departure per
 platform)

---
 cgi/index.pl | 45 +++++++++++++++++++++++++++++++--------------
 1 file changed, 31 insertions(+), 14 deletions(-)

diff --git a/cgi/index.pl b/cgi/index.pl
index 7bc3587..1e33e48 100644
--- a/cgi/index.pl
+++ b/cgi/index.pl
@@ -31,13 +31,18 @@ sub handle_request {
 	my $via     = $self->stash('via');
 
 	my @platforms = split(/,/, $self->param('platforms') // q{});
+	my $template = $self->param('mode') // 'multi';
 
 	$self->stash( departures => [] );
 	$self->stash( title      => 'db-fakedisplay' );
 	$self->stash( version    => $VERSION );
 
+	if (not($template ~~ [qw[multi single]])) {
+		$template = 'multi';
+	}
+
 	if ( not $station ) {
-		$self->render('multi');
+		$self->render($template);
 		return;
 	}
 
@@ -74,7 +79,7 @@ sub handle_request {
 	}
 
 	$self->render(
-		'multi',
+		$template,
 		departures => \@departures,
 		version    => $VERSION,
 		title      => "departures for ${station}"
@@ -94,6 +99,9 @@ get '/_redirect' => sub {
 		if (not $params->param($param)) {
 			$params->remove($param);
 		}
+		elsif ($param eq 'mode' and $params->param($param) eq 'multi') {
+			$params->remove($param);
+		}
 	}
 
 	$params = $params->to_string;
@@ -221,10 +229,15 @@ __DATA__
 		color: #000066;
 	}
 
+	div.input-field {
+		margin-top: 1em;
+		clear: both;
+	}
+
 	span.fielddesc {
 		display: block;
 		float: left;
-		width: 10em;
+		width: 15em;
 		text-align: right;
 		padding-right: 0.5em;
 	}
@@ -280,12 +293,12 @@ __DATA__
 		margin-right: 0.4em;
 	}
 
-	div.s_destinatio {
-		top: 1.32em;
-		left: 3.2em;
-		width: 9.2em;
-		font-size: 1.8em;
-		height: 1em;
+	div.s_destination {
+		top: 1.6em;
+		left: 3.6em;
+		width: 12em;
+		font-size: 1.6em;
+		height: 1.2em;
 	}
 
 	div.s_platform {
@@ -329,6 +342,9 @@ __DATA__
   <span class="fielddesc fieldoptional">on platforms</span>
   <%= text_field 'platforms' %>
   (optional)
+  <br/>
+  <span class="fielddesc fieldoptional">display type</span>
+  <%= select_field mode => [['combined' => 'multi'], ['platform' => 'single']] %>
   <%= submit_button 'Display' %>
 </p>
 <% end %>
@@ -401,13 +417,12 @@ LC display in the station itself.
 
 @@ single.html.ep
 
-<div class="s_display">
-
 % if (@{$departures}) {
 
 % my $i = 0;
 % for my $departure (@{$departures}) {
 % $i++;
+<div class="s_display">
 <div class="s_platform">
 %= $departure->{platform}
 </div>
@@ -426,22 +441,24 @@ LC display in the station itself.
 % }
 </div>
 <div class="s_destination">
-%= $departure->{destinatio}
+%= $departure->{destination}
 </div>
 % if ($departure->{info}) {
 <div class="s_info">
 %= $departure->{info}
 </div>
 % }
+</div> <!-- s_display -->
+% }
 
 % }
 % else {
 
+<div class="s_display">
 <div class="s_no_data">
 Bitte Ansage beachten
 </div>
-
-</div> <!-- s_display -->
+</div>
 
 <p>
 DB-Fakedisplay displays the next departures at a DB station, just like the big
-- 
cgit v1.2.3