diff options
Diffstat (limited to 'templates')
| -rw-r--r-- | templates/_checked_in.html.ep | 82 | ||||
| -rw-r--r-- | templates/add_intransit.html.ep | 87 | ||||
| -rw-r--r-- | templates/departures.html.ep | 8 | 
3 files changed, 145 insertions, 32 deletions
diff --git a/templates/_checked_in.html.ep b/templates/_checked_in.html.ep index 988bf39..91f1ce7 100644 --- a/templates/_checked_in.html.ep +++ b/templates/_checked_in.html.ep @@ -202,7 +202,10 @@  			% if (@{$journey->{messages} // []} or @{$journey->{extra_data}{qos_msg} // []} or not $journey->{extra_data}{rt}) {  				<p style="margin-bottom: 2ex;">  					<ul> -						% if (not $journey->{extra_data}{rt}) { +						% if ($journey->{extra_data}{manual}) { +							<li><i class="material-icons tiny">gps_off</i> Manueller Checkin ohne Echtzeitdaten +						% } +						% elsif (not $journey->{extra_data}{rt}) {  							<li><i class="material-icons tiny">gps_off</i> Keine Echtzeitdaten vorhanden  						% }  						% for my $message (reverse @{$journey->{messages} // []}) { @@ -362,41 +365,56 @@  				%= include '_map', with_map_header => 0, station_coordinates => stash('station_coordinates'), polyline_groups => stash('polyline_groups')  			</div>  		</div> -		<div class="card" style="margin-top: 3em;"> -			<div class="card-content"> -				<i class="material-icons small right sync-failed-marker grey-text" style="display: none;">sync_problem</i> -				<span class="card-title">Ziel ändern?</span> -				<div class="targetlist"> -				% for my $station (@{$journey->{route_after}}) { -					% my $is_dest = ($journey->{arr_name} and $station->[0] eq $journey->{arr_name}); -					<a class="action-checkout tablerow" style="<%= $is_dest? 'font-weight: bold;' : '' %>" data-station="<%= $station->[1] // $station->[0] %>"> -						<span><%= $station->[0] %></span> -						<span> -						%= include '_show_load_icons', station => $station -						% if ($station->[2]{isCancelled}) { -							entfällt -						% } -						% elsif ($station->[2]{rt_arr} or $station->[2]{sched_arr}) { -							%= ($station->[2]{rt_arr} || $station->[2]{sched_arr})->strftime('%H:%M') -						% } -						% elsif ($station->[2]{rt_dep} or $station->[2]{sched_dep}) { -							(<%= ($station->[2]{rt_dep} || $station->[2]{sched_dep})->strftime('%H:%M') %>) -						% } -						% elsif ($station->[2]{isAdditional}) { -							Zusatzhalt -						% } -						</span> +		% if ($journey->{extra_data}{manual}) { +			<div class="card" style="margin-top: 3em;"> +				<div class="card-content"> +					<i class="material-icons small right sync-failed-marker grey-text" style="display: none;">sync_problem</i> +					<span class="card-title">Manueller Checkin</span> +				</div> +				<div class="card-action"> +					<a class="action-undo blue-text" data-id="in_transit" data-checkints="<%= $journey->{timestamp}->epoch %>"  style="margin-right: 0;"> +						<i class="material-icons left" aria-hidden="true">undo</i> Checkin Rückgängig  					</a> -					<a class="nonflex" href="<%= resolve_sb_template($user->{sb_template}, name => $station->[0], eva => $station->[1], tt => $journey->{train_type} // q{x}, tn => $journey->{train_no}, id => $journey->{train_id} =~ s{[ #|]}{x}gr, dbris => $journey->{is_dbris} ? $journey->{backend_name} : q{}, efa => $journey->{is_efa} ? $journey->{backend_name} : q{}, hafas => $journey->{is_hafas} ? $journey->{backend_name} : q{}, is_iris => $journey->{is_iris}, motis => $journey->{is_motis} ? $journey->{backend_name} : q{}) %>"><i class="material-icons tiny"><%= $journey->{is_hafas} ? 'directions' : 'train' %></i></a> -				% }  				</div>  			</div> -			<div class="card-action"> -				<a class="action-undo blue-text" data-id="in_transit" data-checkints="<%= $journey->{timestamp}->epoch %>"  style="margin-right: 0;"> -					<i class="material-icons left" aria-hidden="true">undo</i> Checkin Rückgängig -				</a> +		% } +		% else { +			<div class="card" style="margin-top: 3em;"> +				<div class="card-content"> +					<i class="material-icons small right sync-failed-marker grey-text" style="display: none;">sync_problem</i> +					<span class="card-title">Ziel ändern?</span> +					<div class="targetlist"> +					% for my $station (@{$journey->{route_after}}) { +						% my $is_dest = ($journey->{arr_name} and $station->[0] eq $journey->{arr_name}); +						<a class="action-checkout tablerow" style="<%= $is_dest? 'font-weight: bold;' : '' %>" data-station="<%= $station->[1] // $station->[0] %>"> +							<span><%= $station->[0] %></span> +							<span> +							%= include '_show_load_icons', station => $station +							% if ($station->[2]{isCancelled}) { +								entfällt +							% } +							% elsif ($station->[2]{rt_arr} or $station->[2]{sched_arr}) { +								%= ($station->[2]{rt_arr} || $station->[2]{sched_arr})->strftime('%H:%M') +							% } +							% elsif ($station->[2]{rt_dep} or $station->[2]{sched_dep}) { +								(<%= ($station->[2]{rt_dep} || $station->[2]{sched_dep})->strftime('%H:%M') %>) +							% } +							% elsif ($station->[2]{isAdditional}) { +								Zusatzhalt +							% } +							</span> +						</a> +						<a class="nonflex" href="<%= resolve_sb_template($user->{sb_template}, name => $station->[0], eva => $station->[1], tt => $journey->{train_type} // q{x}, tn => $journey->{train_no}, id => $journey->{train_id} =~ s{[ #|]}{x}gr, dbris => $journey->{is_dbris} ? $journey->{backend_name} : q{}, efa => $journey->{is_efa} ? $journey->{backend_name} : q{}, hafas => $journey->{is_hafas} ? $journey->{backend_name} : q{}, is_iris => $journey->{is_iris}, motis => $journey->{is_motis} ? $journey->{backend_name} : q{}) %>"><i class="material-icons tiny"><%= $journey->{is_hafas} ? 'directions' : 'train' %></i></a> +					% } +					</div> +				</div> +				<div class="card-action"> +					<a class="action-undo blue-text" data-id="in_transit" data-checkints="<%= $journey->{timestamp}->epoch %>"  style="margin-right: 0;"> +						<i class="material-icons left" aria-hidden="true">undo</i> Checkin Rückgängig +					</a> +				</div>  			</div> -		</div> +		% }  		<p>  			Falls das Backend ausgefallen ist oder die Fahrt aus anderen  			Gründen verloren ging: diff --git a/templates/add_intransit.html.ep b/templates/add_intransit.html.ep new file mode 100644 index 0000000..1f3d80d --- /dev/null +++ b/templates/add_intransit.html.ep @@ -0,0 +1,87 @@ +<h1>Manuell einchecken</h1> +% if ($error) { +	<div class="row"> +		<div class="col s12"> +			<div class="card caution-color"> +				<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 der Fahrt als „Typ Linie Nummer“ oder „Typ Nummer“, z.B. +				„ICE 100“, „S 1 31133“ oder „ABR RE11 26720“</li> +			<li>Wenn Nummer nicht bekannt oder vorhanden: einen beliebigen Integer eintragen, z.B. „S 5X 0“ oder „U 11 0“</li>	 +			<li>Zeitangaben im Format DD.MM.YYYY HH:MM</li> +			<li>Das ausgewählte Backend bestimmt die verfügbaren Halte für Start, Ziel und Route. Siehe auch <a href="/static/stops.csv">stops.csv</a></li> +		</ul> +	</div> +</div> +<div class="row"> +	<div class="col s12 center-align"> +		% if (current_user->{backend_id}) { +			<a href="/account/select_backend?redirect_to=/checkin/add" class="btn-small btn-flat"><i class="material-icons left" aria-hidden="true">directions</i><%= current_user->{backend_name} %></a> +		% } +		% else { +			<a href="/account/select_backend?redirect_to=/checkin/add" class="btn-small btn-flat"><i class="material-icons left" aria-hidden="true">train</i>IRIS</a> +		% } +	</div> +</div> +%= form_for '/checkin/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">Fahrt (Typ Linie Nummer)</label> +		</div> +	</div> +	<div class="row"> +		<div class="input-field col s12"> +			%= text_field 'dep_station', id => 'dep_station', class => 'autocomplete validate', autocomplete => 'off', required => undef +			<label for="dep_station">Start (Name oder ID)</label> +		</div> +		<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> +	<div class="row"> +		<div class="input-field col s12"> +			%= text_field 'arr_station', id => 'arr_station', class => 'autocomplete validate', autocomplete => 'off', required => undef +			<label for="arr_station">Ziel (Name oder ID)</label> +		</div> +		<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> +	<div class="row"> +		<div class="input-field col s12"> +			%= text_area 'route', id => 'route', class => 'materialize-textarea' +			<label for="route">Halte (optional, eine Station pro Zeile, wahlweise Unterwegshalte oder komplette Route)</label> +		</div> +	</div> +	<div class="row"> +		<div class="input-field col s12"> +			%= text_field 'comment' +			<label for="comment">Kommentar</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/departures.html.ep b/templates/departures.html.ep index 16b5f3c..6df48a8 100644 --- a/templates/departures.html.ep +++ b/templates/departures.html.ep @@ -190,3 +190,11 @@  		% }  	</div>  </div> + +% if (not $user_status->{checked_in}) { +	<div class="row"> +		<div class="col s12 center-align"> +			<a class="btn-small" href="<%= url_for('checkinadd')->query({dbris => $dbris, efa => $efa, hafas => $hafas, motis => $motis, dep_station => $station}) %>"><i class="material-icons left" aria-hidden="true">add</i><span>manuell einchecken</span></a> +		</div> +	</div> +% }  | 
