From fe8c6714f2d6f57b469a8b4328fcd9daa65d3538 Mon Sep 17 00:00:00 2001 From: Lari Taskula Date: Thu, 3 Sep 2015 14:42:02 +0300 Subject: [PATCH] Bug 12426: Allow resending of messages from the notices tab in the patron account This patch adds a link 'Resend' under a notice in 'failed' status in the Patron's Notices tab. By clicking the link, we will request notices.pl with parameter "resendnotice=XXXXX" where XXXXX is message_id. In notices.pl, we then check whether the given message is actually in 'failed' status. If so, we use the C4::Letters::_set_message_status() to change the status of the message into 'pending'. This way it will be processed again by the cronjob process_message_queue.pl. To test, find/create a Patron that has failed notices in message_queue: 1. Enable EnchancedMessagingPreferences system preference 2. Go to Patrons -> Notices 3. In the Notice column, click the title of the failed message 4. Observe that there is nothing for resending the failed message 5. Apply patch. 6. Reload Notices page and repeat step 3 7. Observe that there is now a link "Resend" in the Status-column 8. Click Resend 9. Observe that the message gets into 'pending' status --- koha-tmpl/intranet-tmpl/prog/en/modules/members/notices.tt | 4 ++-- members/notices.pl | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/notices.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/notices.tt index 72cb466..d46438e 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/notices.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/notices.tt @@ -16,7 +16,7 @@ $(".notice").hide(); $(".notice-title").click(function(e){ - $(this).next(".notice").toggle(); + $(this).closest("tr").children().children(".notice").toggle(); e.preventDefault(); }); @@ -70,7 +70,7 @@ [% IF ( QUEUED_MESSAGE.status == 'sent' ) %]sent [% ELSIF ( QUEUED_MESSAGE.status == 'pending' ) %]pending - [% ELSIF ( QUEUED_MESSAGE.status == 'failed' ) %]failed + [% ELSIF ( QUEUED_MESSAGE.status == 'failed' ) %]failed
Resend
[% ELSIF ( QUEUED_MESSAGE.status == 'deleted' ) %]deleted [% ELSE %][% QUEUED_MESSAGE.status %][% END %] diff --git a/members/notices.pl b/members/notices.pl index be1e37c..54575f9 100755 --- a/members/notices.pl +++ b/members/notices.pl @@ -53,6 +53,20 @@ $template->param( picture => 1 ) if $picture; # Getting the messages my $queued_messages = C4::Letters::GetQueuedMessages({borrowernumber => $borrowernumber}); +if ($input->param('resendnotice')) { + foreach my $message (@$queued_messages){ + if ($message->{message_id} == $input->param('resendnotice')) { + last unless $message->{status} eq "failed"; + + $message->{status} = 'pending' if (C4::Letters::_set_message_status( { + message_id => $message->{message_id}, + status => 'pending' + } ) > 0); + last; + } + } +} + if (C4::Context->preference('ExtendedPatronAttributes')) { my $attributes = GetBorrowerAttributes($borrowernumber); $template->param( -- 1.9.1