From a40aa1936bc088c76145600a2b074f8fb20079f5 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Fri, 23 Aug 2019 12:02:22 +0200 Subject: Allow comments to be edited --- lib/Travelynx.pm | 17 ++++++++++++++--- lib/Travelynx/Controller/Traveling.pm | 19 +++++++++++++++++++ templates/edit_journey.html.ep | 6 ++++++ templates/journey.html.ep | 18 +++++++++--------- 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]' + + Kommentar + + %= text_field 'comment' + + 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 @@ % } - % if ($journey->{comment}) { - - Kommentar - - <%= $journey->{comment} %> - - - % } - % else { + % if ($journey->{messages} and @{$journey->{messages}}) { Meldungen @@ -140,6 +132,14 @@ % } + % if ($journey->{user_data} and $journey->{user_data}{comment}) { + + Kommentar + + <%= $journey->{user_data}{comment} %> + + + % } Route -- cgit v1.2.3