From 1814c7a4d21bc3ad671146eaf397829247ebaf0c Mon Sep 17 00:00:00 2001 From: Owen Leonard Date: Wed, 21 Aug 2013 10:53:20 -0400 Subject: [PATCH] Bug 2693 - Tagging: Add filter by name If you want to filter results on the tags management page by the reviewer you have to know their borrowernumber. It would be better to be able to search by name, but in the meantime this patch adds an autocomplete widget to the form field so that you can do a name search and populate the field with the borrowernumber. To test you must have approved or rejected tags. From the tags review page (tags/review.pl), view all, approved, or rejected tags. Type a name in the "reviewer" form field in the left sidebar filter. You should get an autocomplete dropdown with names matching your search. When you select one the form field should be populated by the borrowernumber. Signed-off-by: David Cook Patch works as described. I'm not sure whether or not it would be better to be able to search by name, as that would involve either choosing between names after applying the filter or showing any possible matches, so this seems fine. -- Owen and I did observe that we were able to cause AJAX errors while using this autocomplete, but we are not 100% sure how we caused the error. In my case, I was able to occasionally cause it by typing in a name then backspacing rapidly. The ajaxError method is attached to every element in the DOM (yikes) so it's tough to say what exactly is the source of the error (which is signalled by a pop-up window that can be cancelled). The error is quite rare so I don't think it's necessarily a problem for us. One idea that Owen had was to remove the current error message, which is very unhelpful and replace it with an error like "Something went wrong. Try again." Signed-off-by: Jonathan Druart --- circ/ysearch.pl | 5 +++-- koha-tmpl/intranet-tmpl/prog/en/modules/tags/review.tt | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/circ/ysearch.pl b/circ/ysearch.pl index 4a3663e..7429c06 100755 --- a/circ/ysearch.pl +++ b/circ/ysearch.pl @@ -45,7 +45,7 @@ if ($auth_status ne "ok") { my $dbh = C4::Context->dbh; my $sql = q( - SELECT surname, firstname, cardnumber, address, city, zipcode, country + SELECT borrowernumber, surname, firstname, cardnumber, address, city, zipcode, country FROM borrowers WHERE ( surname LIKE ? OR firstname LIKE ? @@ -68,7 +68,8 @@ print "["; my $i = 0; while ( my $rec = $sth->fetchrow_hashref ) { if($i > 0){ print ","; } - print "{\"surname\":\"" . $rec->{surname} . "\",\"" . + print "{\"borrowernumber\":\"" . $rec->{borrowernumber} . "\",\"" . + "surname\":\"".$rec->{surname} . "\",\"" . "firstname\":\"".$rec->{firstname} . "\",\"" . "cardnumber\":\"".$rec->{cardnumber} . "\",\"" . "address\":\"".$rec->{address} . "\",\"" . diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tags/review.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tags/review.tt index a950250..db74ee3 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/tags/review.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tags/review.tt @@ -140,6 +140,21 @@ tr > td input,td input[type="submit"] { font-size: 85%; padding: 1px; } "iDisplayLength": 20, "sPaginationType": "four_button" })); + var reviewerField = $("#approver"); + reviewerField.autocomplete({ + source: "/cgi-bin/koha/circ/ysearch.pl", + minLength: 3, + select: function( event, ui ) { + reviewerField.val( ui.item.borrowernumber ); + return false; + } + }) + .data( "autocomplete" )._renderItem = function( ul, item ) { + return $( "
  • " ) + .data( "item.autocomplete", item ) + .append( "" + item.surname + ", " + item.firstname + " (" + item.cardnumber + ") " + item.address + " " + item.city + " " + item.zipcode + " " + item.country + "" ) + .appendTo( ul ); + }; }); //]]> -- 1.7.10.4