Bugzilla – Attachment 102360 Details for
Bug 4461
Add a context-sensitive report a problem process
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 4461: Submit a problem report
Bug-4461-Submit-a-problem-report.patch (text/plain), 12.78 KB, created by
Jonathan Druart
on 2020-04-03 13:08:24 UTC
(
hide
)
Description:
Bug 4461: Submit a problem report
Filename:
MIME Type:
Creator:
Jonathan Druart
Created:
2020-04-03 13:08:24 UTC
Size:
12.78 KB
patch
obsolete
>From 1210cdeedfa49cb25f5282828429905f6eca12fe Mon Sep 17 00:00:00 2001 >From: Aleisha Amohia <aleishaamohia@hotmail.com> >Date: Tue, 11 Feb 2020 03:16:11 +0000 >Subject: [PATCH] Bug 4461: Submit a problem report > >To test: >1) Apply patch, update database, rebuild schema file >2) Restart koha-common and memcached >3) Confirm that your user has an email address. >4) Confirm that your library does NOT have an email address. >5) Confirm that syspref KohaAdminEmailAddress and syspref ReplytoDefault are not filled. Enable the OPACReportProblem syspref. >6) Log into OPAC >7) Click the 'Report a problem' link at the bottom of whatever page >you're on >8) Notice that there is no form is and there is an error message alerting that reports cannot be submitted >9) Add an email address for your library (in either the email field or the replyto field). Refresh the OPAC problem report page. The form should now show, and the recipient field should say 'library'. >10) Complete the form and submit. Check the message_queue in the database and confirm the to_address is correct. Confirm there is a success message. >11) Add an email address for the syspref KohaAdminEmailAddress and refresh the OPAC problem report page again. The recipient field should now be a dropdown. Select the Koha Administrator option. >12) Complete the form and submit. Check the message_queue in the database and confirm the to_address is the value in KohaAdminEmailAddress. Confirm there is a success message. >13) Ensure all details in the message_queue are correct. >14) Log out of the OPAC >15) Click the Report a problem link again and confirm you are forced to log in > >Sponsored-by: Catalyst IT >Signed-off-by: David Nind <david@davidnind.com> >Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> > >Signed-off-by: David Nind <david@davidnind.com> > >Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> >--- > .../bootstrap/en/includes/opac-bottom.inc | 5 + > .../en/modules/opac-reportproblem.tt | 92 ++++++++++++++ > opac/opac-reportproblem.pl | 118 ++++++++++++++++++ > 3 files changed, 215 insertions(+) > create mode 100644 koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-reportproblem.tt > create mode 100644 opac/opac-reportproblem.pl > >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-bottom.inc b/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-bottom.inc >index af060ff7b3..fac2ca93df 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-bottom.inc >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-bottom.inc >@@ -20,6 +20,11 @@ > <div class="container-fluid"> > <div class="row-fluid"> > <div class="span12"> >+ [% IF Koha.Preference('OPACReportProblem') %] >+ <div id="report_a_problem" class="noprint" style="float:left;"> >+ <a class="koha-url" href="/cgi-bin/koha/opac-reportproblem.pl">Report a problem</a> >+ </div> >+ [% END %] > <div id="koha_url" class="clearfix noprint"> > <p>Powered by > [% IF template.name.match('opac-main.tt') %] >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-reportproblem.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-reportproblem.tt >new file mode 100644 >index 0000000000..51c037fc16 >--- /dev/null >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-reportproblem.tt >@@ -0,0 +1,92 @@ >+[% USE Koha %] >+[% INCLUDE 'doc-head-open.inc' %] >+<title>[% IF ( LibraryNameTitle ) %][% LibraryNameTitle %][% ELSE %]Koha online[% END %] catalog › Report a Problem</title> >+[% INCLUDE 'doc-head-close.inc' %] >+[% BLOCK cssinclude %][% END %] >+</head> >+[% INCLUDE 'bodytag.inc' bodyid='opac-reportproblem' bodyclass='scrollto' %] >+[% INCLUDE 'masthead.inc' %] >+ >+ <div class="main"> >+ <ul class="breadcrumb"> >+ <li><a href="/cgi-bin/koha/opac-main.pl">Home</a> <span class="divider">›</span></li> >+ <li><a href="#">Report a problem</a></li> >+ </ul> >+ >+ <div class="container-fluid"> >+ <div class="row-fluid"> >+ [% IF ( OpacNav || OpacNavBottom ) %] >+ <div class="span2"> >+ <div id="navigation"> >+ [% INCLUDE 'navigation.inc' %] >+ </div> >+ </div> >+ <div class="span10"> >+ [% ELSE %] >+ <div class="span12"> >+ [% END %] >+ <h1>Report a problem</h1> >+ >+ [% IF Koha.Preference('OPACReportProblem') %] >+ >+ [% IF ( successfuladd ) %] >+ <div class="alert alert-info">Your problem report has been sent to the [% IF ( recipient == 'admin' ) %]Koha Administrator[% ELSE %][% recipient %][% END %].</div> >+ [% END %] >+ [% IF ( ( nolibemail and noadminemail ) or norecipients ) %] >+ <div class="alert">Unable to send problem reports.</div> >+ [% ELSE %] >+ <div id="reportproblem" class="maincontent toptabs"> >+ <form name="reportlibform" action="/cgi-bin/koha/opac-reportproblem.pl" method="post"> >+ <input type="hidden" name="op" value="addreport"> >+ <fieldset class="rows"> >+ <ol> >+ <li> >+ <label for="recipient">Send problem report to: </label> >+ [% IF !nolibemail and noadminemail %] >+ <option value="library">A librarian</option> >+ [% ELSIF !noadminemail and nolibemail %] >+ <option value="admin">Koha Administrator</option> >+ [% ELSE %] >+ <select name="recipient" id="recipient"> >+ <option value="library">A librarian</option> >+ <option value="admin">Koha Administrator</option> >+ </select> >+ [% END %] >+ </li> >+ <li> >+ <label for="place">Problem found on page: </label> >+ <input type="hidden" name="place" id="place" value="[% probpage %]"> >+ [% probpage | html %] >+ </li> >+ <li> >+ <label for="user">Username: </label> >+ <input type="hidden" name="user" id="user" value="[% username %]" class="span3"> >+ [% username | html %] >+ <li> >+ <label for="subject">Subject: </label> >+ <input type="text" name="subject" id="subject" value="[% subject %]" class="span3"> >+ </li> >+ <li> >+ <label for="message">Message: </label> >+ <textarea name="message" id="message" rows="7" cols="60"></textarea> >+ </li> >+ </ol> >+ </fieldset> >+ <fieldset class="action"> >+ <input type="submit" value="Submit" class="btn"> >+ </fieldset> >+ </form> >+ </div> >+ [% END %] >+ >+ [% ELSE %] <!-- OPACReportProblem preference --> >+ <div class="alert">Your library has not activated this feature.</div> >+ [% END %] >+ >+ </div> <!-- / .span10/12 --> >+ </div> <!-- / .row-fluid --> >+ </div> <!-- / .container-fluid --> >+ </div> <!-- / .main --> >+ >+[% INCLUDE 'opac-bottom.inc' %] >+[% BLOCK jsinclude %][% END %] >diff --git a/opac/opac-reportproblem.pl b/opac/opac-reportproblem.pl >new file mode 100644 >index 0000000000..d09afe265d >--- /dev/null >+++ b/opac/opac-reportproblem.pl >@@ -0,0 +1,118 @@ >+#!/usr/bin/perl >+ >+# This file is part of Koha. >+# >+# Copyright 2019 Aleisha Amohia <aleisha@catalyst.net.nz> >+# >+# Koha is free software; you can redistribute it and/or modify it >+# under the terms of the GNU General Public License as published by >+# the Free Software Foundation; either version 3 of the License, or >+# (at your option) any later version. >+# >+# Koha is distributed in the hope that it will be useful, but >+# WITHOUT ANY WARRANTY; without even the implied warranty of >+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >+# GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License >+# along with Koha; if not, see <http://www.gnu.org/licenses>. >+ >+use Modern::Perl; >+use CGI qw ( -utf8 ); >+use C4::Auth; # get_template_and_user >+use C4::Output; >+use C4::Members; >+use C4::Letters; >+use Koha::ProblemReport; >+use Koha::DateUtils; >+use Koha::Libraries; >+use Koha::Patrons; >+ >+my $input = new CGI; >+ >+my ( $template, $borrowernumber, $cookie ) = get_template_and_user( >+ { >+ template_name => "opac-reportproblem.tt", >+ type => "opac", >+ query => $input, >+ authnotrequired => 0, >+ } >+); >+ >+my $problempage = $ENV{HTTP_REFERER}; >+my $member = Koha::Patrons->find($borrowernumber); >+my $username = $member->userid; >+my $branchcode = $member->branchcode; >+my $library = Koha::Libraries->find($branchcode); >+my $recipients = 2; >+ >+if ( >+ ( !defined($library->branchreplyto) || $library->branchreplyto eq '' ) && >+ ( C4::Context->preference('ReplytoDefault') eq '' ) && >+ ( !defined($library->branchemail) || $library->branchemail eq '' ) >+ ) { >+ $template->param( nolibemail => 1 ); >+ $recipients--; >+} >+ >+my $koha_admin = C4::Context->preference('KohaAdminEmailAddress'); >+if ( $koha_admin eq '' ) { >+ $template->param( noadminemail => 1 ); >+ $recipients--; >+} >+ >+$template->param( >+ username => $username, >+ probpage => $problempage, >+); >+ >+my $op = $input->param('op') || ''; >+if ( $op eq 'addreport' ) { >+ >+ if ( $recipients == 0 ){ >+ print $input->redirect("/cgi-bin/koha/opac-reportproblem?norecipients=1.pl"); >+ exit; >+ } >+ >+ my $subject = $input->param('subject'); >+ my $message = $input->param('message'); >+ my $place = $input->param('place'); >+ my $recipient = $input->param('recipient') || 'library'; >+ my $problem = Koha::ProblemReport->new({ title => $subject, content => $message, borrowernumber => $borrowernumber, branchcode => $branchcode, username => $username, problempage => $place, recipient => $recipient, reportdate => dt_from_string() })->store; >+ $template->param( >+ recipient => $recipient, >+ successfuladd => 1, >+ probpage => $place, >+ ); >+ >+ my $problemreport = $problem->unblessed; >+ $problemreport->{code} = 'PROBLEM_REPORT'; >+ $problemreport->{content} .= "\nUsername: $username"; >+ $problemreport->{content} .= "\nProblem page: $place"; >+ my $transport = 'email'; >+ >+ my $from_address = $member->email || $member->emailpro || $member->B_email || $koha_admin; >+ >+ if ( $recipient eq 'admin' ) { >+ C4::Letters::EnqueueLetter({ >+ letter => $problemreport, >+ borrowernumber => $borrowernumber, >+ message_transport_type => $transport, >+ to_address => $koha_admin, >+ from_address => $from_address, >+ }); >+ } else { >+ my $to_address = $library->branchreplyto || >+ C4::Context->preference('ReplytoDefault') || >+ $library->branchemail; >+ C4::Letters::EnqueueLetter({ >+ letter => $problemreport, >+ borrowernumber => $borrowernumber, >+ message_transport_type => $transport, >+ to_address => $to_address, >+ from_address => $from_address, >+ }); >+ } >+} >+ >+output_html_with_http_headers $input, $cookie, $template->output; >-- >2.20.1
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 4461
:
58887
|
59032
|
61654
|
65871
|
66253
|
66323
|
66324
|
98687
|
98688
|
98689
|
98725
|
99551
|
99599
|
99600
|
99601
|
99602
|
99603
|
99633
|
99635
|
99636
|
99637
|
99638
|
99639
|
99929
|
99930
|
99931
|
99932
|
99933
|
99934
|
99935
|
99936
|
99937
|
99938
|
99939
|
99940
|
99941
|
99942
|
100488
|
100489
|
100490
|
100491
|
100492
|
100493
|
100494
|
100495
|
100496
|
100497
|
100498
|
100499
|
100500
|
100506
|
100507
|
100508
|
100509
|
100510
|
100511
|
100512
|
100513
|
100514
|
100515
|
100516
|
100517
|
100518
|
100519
|
100520
|
100521
|
100522
|
100523
|
100524
|
100619
|
100989
|
100990
|
102188
|
102189
|
102190
|
102191
|
102192
|
102193
|
102194
|
102195
|
102196
|
102198
|
102200
|
102201
|
102202
|
102203
|
102204
|
102205
|
102206
|
102207
|
102208
|
102209
|
102210
|
102211
|
102253
|
102279
|
102281
|
102308
|
102309
|
102310
|
102311
|
102312
|
102313
|
102314
|
102315
|
102316
|
102317
|
102318
|
102319
|
102320
|
102321
|
102322
|
102323
|
102324
|
102325
|
102326
|
102327
|
102328
|
102329
|
102330
|
102331
|
102358
|
102359
| 102360 |
102361
|
102362
|
102363
|
102364
|
102365
|
102366
|
102367
|
102368
|
102369
|
102370
|
102371
|
102372
|
102373
|
102374
|
102375
|
102376
|
102377
|
102378
|
102379
|
102380
|
102381
|
102382
|
102383
|
102384
|
102385
|
102386