summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2019-08-23 12:02:22 +0200
committerDaniel Friesel <derf@finalrewind.org>2019-08-23 12:02:22 +0200
commita40aa1936bc088c76145600a2b074f8fb20079f5 (patch)
tree58be9cc212eff4196eec5b30bf5fc36de788dc02
parentf6d56d3134f6045726cb1d4ed8700382575bb686 (diff)
Allow comments to be edited
-rwxr-xr-xlib/Travelynx.pm17
-rwxr-xr-xlib/Travelynx/Controller/Traveling.pm19
-rw-r--r--templates/edit_journey.html.ep6
-rw-r--r--templates/journey.html.ep18
4 files changed, 48 insertions, 12 deletions
diff --git a/lib/Travelynx.pm b/lib/Travelynx.pm
index 3af35c2..b1febce 100755
--- a/lib/Travelynx.pm
+++ b/lib/Travelynx.pm
@@ -761,6 +761,19 @@ sub startup {
}
)->rows;
}
+ elsif ( $key eq 'comment' ) {
+ $journey->{user_data}{comment} = $value;
+ $rows = $db->update(
+ 'journeys',
+ {
+ user_data =>
+ JSON->new->encode( $journey->{user_data} ),
+ },
+ {
+ id => $journey_id,
+ }
+ )->rows;
+ }
else {
die("Invalid key $key\n");
}
@@ -2228,9 +2241,7 @@ sub startup {
messages => $entry->{messages},
route => $entry->{route},
edited => $entry->{edited},
- comment => $entry->{user_data}
- ? $entry->{user_data}{comment}
- : undef,
+ user_data => $entry->{user_data},
};
if ( $opt{verbose} ) {
diff --git a/lib/Travelynx/Controller/Traveling.pm b/lib/Travelynx/Controller/Traveling.pm
index 7599dd0..43730bc 100755
--- a/lib/Travelynx/Controller/Traveling.pm
+++ b/lib/Travelynx/Controller/Traveling.pm
@@ -608,6 +608,20 @@ sub edit_journey {
}
}
}
+ for my $key (qw(comment)) {
+ if (
+ defined $self->param($key)
+ and ( not $journey->{user_data}
+ or $journey->{user_data}{$key} ne $self->param($key) )
+ )
+ {
+ $error = $self->update_journey_part( $db, $journey->{id}, $key,
+ $self->param($key) );
+ if ($error) {
+ last;
+ }
+ }
+ }
if ( not $error ) {
$journey = $self->get_journey(
@@ -631,6 +645,11 @@ sub edit_journey {
$key => $journey->{$key}->strftime('%d.%m.%Y %H:%M') );
}
}
+ for my $key (qw(comment)) {
+ if ( $journey->{user_data} and $journey->{user_data}{$key} ) {
+ $self->param( $key => $journey->{user_data}{$key} );
+ }
+ }
$self->render(
'edit_journey',
diff --git a/templates/edit_journey.html.ep b/templates/edit_journey.html.ep
index 06338f6..d1c1d47 100644
--- a/templates/edit_journey.html.ep
+++ b/templates/edit_journey.html.ep
@@ -75,6 +75,12 @@
%= 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">Kommentar</th>
+ <td>
+ %= text_field 'comment'
+ </td>
+ </tr>
</table>
</div>
</div>
diff --git a/templates/journey.html.ep b/templates/journey.html.ep
index 724d8ca..343c178 100644
--- a/templates/journey.html.ep
+++ b/templates/journey.html.ep
@@ -121,15 +121,7 @@
% }
</td>
</tr>
- % if ($journey->{comment}) {
- <tr>
- <th scope="row">Kommentar</th>
- <td>
- <%= $journey->{comment} %>
- </td>
- </tr>
- % }
- % else {
+ % if ($journey->{messages} and @{$journey->{messages}}) {
<tr>
<th scope="row">Meldungen</th>
<td>
@@ -140,6 +132,14 @@
</td>
</tr>
% }
+ % if ($journey->{user_data} and $journey->{user_data}{comment}) {
+ <tr>
+ <th scope="row">Kommentar</th>
+ <td>
+ <%= $journey->{user_data}{comment} %>
+ </td>
+ </tr>
+ % }
<tr>
<th scope="row">Route</th>
<td>