From beb17acb8440bb44f1070c2fb3b2e6cf7521f800 Mon Sep 17 00:00:00 2001
From: Daniel Friesel <derf@finalrewind.org>
Date: Sun, 7 Apr 2019 20:20:37 +0200
Subject: Prepare forms for manual journey entry and editing

---
 templates/add_journey.html.ep  | 63 ++++++++++++++++++++++++++++
 templates/edit_journey.html.ep | 94 ++++++++++++++++++++++++++++++++++++++++++
 templates/journey.html.ep      | 10 +++--
 3 files changed, 164 insertions(+), 3 deletions(-)
 create mode 100644 templates/add_journey.html.ep
 create mode 100644 templates/edit_journey.html.ep

(limited to 'templates')

diff --git a/templates/add_journey.html.ep b/templates/add_journey.html.ep
new file mode 100644
index 0000000..9ef00f5
--- /dev/null
+++ b/templates/add_journey.html.ep
@@ -0,0 +1,63 @@
+<h1>Zugfahrt eingeben</h1>
+% if ($error) {
+	<div class="row">
+		<div class="col s12">
+			<div class="card red darken-4">
+				<div class="card-content white-text">
+					<span class="card-title">Ungültige Eingabe</span>
+					<p><%= $error %></p>
+				</div>
+			</div>
+		</div>
+	</div>
+% }
+<div class="row">
+	<div class="col s12">
+		<ul>
+			<li>Eingabe des Zugs als „Zug Typ Nummer“ oder „Zug Nummer“, z.B.
+				„ICE 100“, „S 1 31133“ oder „ABR RE11 26720“</li>
+			<li>Zeitangaben im Format DD.MM.YYYY HH:MM</li>
+		</ul>
+	</div>
+</div>
+%= form_for '/journey/add' => (method => 'POST') => begin
+	%= csrf_field
+	<div class="row">
+		<div class="input-field col s12">
+			%= text_field 'train', id => 'train', class => 'validate', required => undef, pattern => '[0-9a-zA-Z]+ +[0-9a-zA-Z]* *[0-9]+'
+			<label for="train">Zug (Typ Linie Nummer)</label>
+		</div>
+	</div>
+	<div class="row">
+		<div class="input-field col s12">
+			%= text_field 'sched_departure', id => 'sched_departure', class => 'validate', required => undef, pattern => '[0-9][0-9]?[.][0-9][0-9]?[.][0-9][0-9][0-9][0-9] +[0-9][0-9]:[0-9][0-9]'
+			<label for="sched_departure">Geplante Abfahrt</label>
+		</div>
+		<div class="input-field col s12">
+			%= text_field 'rt_departure', id => 'rt_departure', class => 'validate', pattern => '[0-9][0-9]?[.][0-9][0-9]?[.][0-9][0-9][0-9][0-9] +[0-9][0-9]:[0-9][0-9]'
+			<label for="rt_departure">Tatsächliche Abfahrt (optional)</label>
+		</div>
+	</div>
+	<div class="row">
+		<div class="input-field col s12">
+			%= text_field 'sched_arrival', id => 'sched_arrival', class => 'validate', required => undef, pattern => '[0-9][0-9]?[.][0-9][0-9]?[.][0-9][0-9][0-9][0-9] +[0-9][0-9]:[0-9][0-9]'
+			<label for="sched_arrival">Geplante Ankunft</label>
+		</div>
+		<div class="input-field col s12">
+			%= text_field 'rt_arrival', id => 'rt_arrival', class => 'validate', pattern => '[0-9][0-9]?[.][0-9][0-9]?[.][0-9][0-9][0-9][0-9] +[0-9][0-9]:[0-9][0-9]'
+			<label for="rt_arrival">Tatsächliche Ankunft (optional)</label>
+		</div>
+	</div>
+	<div class="row">
+		<div class="col s3 m3 l3">
+		</div>
+		<div class="col s6 m6 l6 center-align">
+			<button class="btn waves-effect waves-light" type="submit" name="action" value="save">
+				Hinzufügen
+				<i class="material-icons right">send</i>
+			</button>
+		</div>
+		<div class="col s3 m3 l3">
+		</div>
+	</div>
+%= end
diff --git a/templates/edit_journey.html.ep b/templates/edit_journey.html.ep
new file mode 100644
index 0000000..8fdc5b6
--- /dev/null
+++ b/templates/edit_journey.html.ep
@@ -0,0 +1,94 @@
+% if ($error and $error eq 'notfound') {
+	<div class="row">
+		<div class="col s12">
+			<div class="card red darken-4">
+				<div class="card-content white-text">
+					<span class="card-title">Fehler</span>
+					<p>Zugfahrt nicht gefunden.</p>
+				</div>
+			</div>
+		</div>
+	</div>
+% }
+% else {
+	% if ($error) {
+		<div class="row">
+			<div class="col s12">
+				<div class="card red darken-4">
+					<div class="card-content white-text">
+						<span class="card-title">Ungültige Eingabe</span>
+						<p><%= $error %></p>
+					</div>
+				</div>
+			</div>
+		</div>
+	% }
+	%= form_for '/journey/edit' => (method => 'POST') => begin
+		%= csrf_field
+		<div class="row">
+			<div class="col s12">
+				<p>
+					Fahrt von
+					<b><%= $journey->{from_name} %></b>
+					nach
+					<b><%= $journey->{to_name} %></b>
+					am
+					<b><%= $journey->{sched_departure}->strftime('%d.%m.%Y') %></b>
+				</p>
+				<table class="striped">
+					<tr>
+						<th scope="row">Zug</th>
+						<td>
+							<%= $journey->{type} %> <%= $journey->{no} %>
+							% if ($journey->{line}) {
+								(Linie <%= $journey->{line} %>)
+							% }
+						</td>
+					</tr>
+					<tr>
+						<th scope="row">Geplante Abfahrt</th>
+						<td>
+							%= text_field 'sched_departure', id => 'sched_departure', class => 'validate', required => undef, pattern => '[0-9][0-9]?[.][0-9][0-9]?[.][0-9][0-9][0-9][0-9] +[0-9][0-9]:[0-9][0-9]'
+						</td>
+					</tr>
+					<tr>
+						<th scope="row">Tatsächliche Abfahrt</th>
+						<td>
+							%= text_field 'rt_departure', id => 'real_departure', class => 'validate', pattern => '[0-9][0-9]?[.][0-9][0-9]?[.][0-9][0-9][0-9][0-9] +[0-9][0-9]:[0-9][0-9]'
+						</td>
+					</tr>
+					<tr>
+						<th scope="row">Geplante Ankunft</th>
+						<td>
+							%= text_field 'sched_arrival', id => 'sched_arrival', class => 'validate', required => undef, pattern => '[0-9][0-9]?[.][0-9][0-9]?[.][0-9][0-9][0-9][0-9] +[0-9][0-9]:[0-9][0-9]'
+						</td>
+					</tr>
+					<tr>
+						<th scope="row">Tatsächliche Ankunft</th>
+						<td>
+							%= text_field 'rt_arrival', id => 'real_arrival', class => 'validate', pattern => '[0-9][0-9]?[.][0-9][0-9]?[.][0-9][0-9][0-9][0-9] +[0-9][0-9]:[0-9][0-9]'
+						</td>
+					</tr>
+					<tr>
+						<th scope="row">Route</th>
+						<td>
+							%= text_area 'route', id => 'route', cols => 40, rows => 20
+						</td>
+					</tr>
+				</table>
+			</div>
+		</div>
+		<div class="row">
+			<div class="col s3 m3 l3">
+			</div>
+			<div class="col s6 m6 l6 center-align">
+				<button class="btn waves-effect waves-light" type="submit" name="action" value="save">
+					Speichern
+					<i class="material-icons right">send</i>
+				</button>
+			</div>
+			<div class="col s3 m3 l3">
+			</div>
+		</div>
+	%= end
+% }
diff --git a/templates/journey.html.ep b/templates/journey.html.ep
index 7483a14..3b84d67 100644
--- a/templates/journey.html.ep
+++ b/templates/journey.html.ep
@@ -129,8 +129,6 @@
 		</div>
 	</div>
 	<div class="row">
-		<div class="col s3 m3 l3">
-		</div>
 		<div class="col s6 m6 l6 center-align">
 			<a class="waves-effect waves-light red btn action-delete"
 					data-id="<%= join(q{,}, @{$journey->{ids}}) %>"
@@ -140,7 +138,13 @@
 				Löschen
 			</a>
 		</div>
-		<div class="col s3 m3 l3">
+		<div class="col s6 m6 l6 center-align">
+			%= form_for '/journey/edit' => (method => 'POST') => begin
+				%= hidden_field 'journey_id' => param('journey_id')
+				<button class="btn waves-effect waves-light" type="submit" name="action" value="edit" disabled="disabled">
+					Bearbeiten
+				</button>
+			%= end
 		</div>
 	</div>
 % }
-- 
cgit v1.2.3