summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2019-12-08 19:46:45 +0100
committerDaniel Friesel <derf@finalrewind.org>2019-12-08 19:46:45 +0100
commit315a94affedffda8ab4be62cebf2b62c3f5f0d78 (patch)
treef10f35f59aa35860ec9b67e1ba2754864de82d89
parent561ff4574bb6078ce4c9f72647a9c3d1a92cac6e (diff)
allow a journey's cancellation status to be edited1.11.1
Closes #27
-rwxr-xr-xlib/Travelynx.pm13
-rwxr-xr-xlib/Travelynx/Controller/Traveling.pm12
-rw-r--r--templates/edit_journey.html.ep9
-rw-r--r--templates/journey.html.ep8
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>