diff options
| author | Daniel Friesel <derf@finalrewind.org> | 2019-12-08 19:46:45 +0100 | 
|---|---|---|
| committer | Daniel Friesel <derf@finalrewind.org> | 2019-12-08 19:46:45 +0100 | 
| commit | 315a94affedffda8ab4be62cebf2b62c3f5f0d78 (patch) | |
| tree | f10f35f59aa35860ec9b67e1ba2754864de82d89 | |
| parent | 561ff4574bb6078ce4c9f72647a9c3d1a92cac6e (diff) | |
allow a journey's cancellation status to be edited1.11.1
Closes #27
| -rwxr-xr-x | lib/Travelynx.pm | 13 | ||||
| -rwxr-xr-x | lib/Travelynx/Controller/Traveling.pm | 12 | ||||
| -rw-r--r-- | templates/edit_journey.html.ep | 9 | ||||
| -rw-r--r-- | templates/journey.html.ep | 8 | 
4 files changed, 40 insertions, 2 deletions
| diff --git a/lib/Travelynx.pm b/lib/Travelynx.pm index e1cca7d..3bb33ea 100755 --- a/lib/Travelynx.pm +++ b/lib/Travelynx.pm @@ -184,6 +184,7 @@ sub startup {  				sched_departure => 0x0001,  				real_departure  => 0x0002,  				route           => 0x0010, +				is_cancelled    => 0x0020,  				sched_arrival   => 0x0100,  				real_arrival    => 0x0200,  			}; @@ -896,6 +897,18 @@ sub startup {  						}  					)->rows;  				} +				elsif ( $key eq 'cancelled' ) { +					$rows = $db->update( +						'journeys', +						{ +							cancelled => $value, +							edited    => $journey->{edited} | 0x0020, +						}, +						{ +							id => $journey_id, +						} +					)->rows; +				}  				elsif ( $key eq 'comment' ) {  					$journey->{user_data}{comment} = $value;  					$rows = $db->update( diff --git a/lib/Travelynx/Controller/Traveling.pm b/lib/Travelynx/Controller/Traveling.pm index 7b48d28..6b8c766 100755 --- a/lib/Travelynx/Controller/Traveling.pm +++ b/lib/Travelynx/Controller/Traveling.pm @@ -752,6 +752,7 @@ sub edit_journey {  	my $journey = $self->get_journey(  		uid           => $uid,  		journey_id    => $journey_id, +		verbose       => 1,  		with_datetime => 1,  	); @@ -811,6 +812,15 @@ sub edit_journey {  					[@route_new] );  			}  		} +		{ +			my $cancelled_old = $journey->{cancelled}; +			my $cancelled_new = $self->param('cancelled') // 0; +			if ( $cancelled_old != $cancelled_new ) { +				$error +				  = $self->update_journey_part( $db, $journey->{id}, +					'cancelled', $cancelled_new ); +			} +		}  		if ( not $error ) {  			$journey = $self->get_journey( @@ -839,6 +849,8 @@ sub edit_journey {  	$self->param(  		route => join( "\n", map { $_->[0] } @{ $journey->{route} } ) ); +	$self->param( cancelled => $journey->{cancelled} ); +  	for my $key (qw(comment)) {  		if ( $journey->{user_data} and $journey->{user_data}{$key} ) {  			$self->param( $key => $journey->{user_data}{$key} ); diff --git a/templates/edit_journey.html.ep b/templates/edit_journey.html.ep index a77bbd4..ff36381 100644 --- a/templates/edit_journey.html.ep +++ b/templates/edit_journey.html.ep @@ -52,6 +52,15 @@  						</td>  					</tr>  					<tr> +						<th scope="row"></th> +						<td> +							<label> +								%= check_box cancelled => 1 +								<span>Fahrt ist ausgefallen</span> +							</label> +						</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]' diff --git a/templates/journey.html.ep b/templates/journey.html.ep index 7be4f78..712bba6 100644 --- a/templates/journey.html.ep +++ b/templates/journey.html.ep @@ -15,11 +15,15 @@  		<div class="col s12">  			<p>  				% if ($journey->{cancelled}) { -					Ausgefallene Fahrt von +					Ausgefallene Fahrt  				% }  				% else { -					Fahrt von +					Fahrt  				% } +				% if ($journey->{edited} & 0x0020) { +					∗ +				% } +				von  				<b><%= $journey->{from_name} %></b>  				nach  				<b><%= $journey->{to_name} %></b> | 
