Bugzilla – Attachment 37104 Details for
Bug 13891
Make all patron searches use DataTables server-side processing
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 13891: DataTables server-side processing - budget users
Bug-13891-DataTables-server-side-processing---budg.patch (text/plain), 14.66 KB, created by
Jonathan Druart
on 2015-03-23 11:06:47 UTC
(
hide
)
Description:
Bug 13891: DataTables server-side processing - budget users
Filename:
MIME Type:
Creator:
Jonathan Druart
Created:
2015-03-23 11:06:47 UTC
Size:
14.66 KB
patch
obsolete
>From c9158b4378e8a8e4623618b8e60bc2fb7f0bd848 Mon Sep 17 00:00:00 2001 >From: Jonathan Druart <jonathan.druart@biblibre.com> >Date: Fri, 20 Mar 2015 13:13:25 +0100 >Subject: [PATCH] Bug 13891: DataTables server-side processing - budget users > >This first patch remove the previous way to search for users to link to >budgets. > >Test plan: >1/ Edit or create a fund >2/ Edit the owner of this fund a select a patron >3/ Add 1+ users to the user lists of this fund >--- > admin/add_user_search.pl | 60 +++++++++++ > admin/aqbudget_user_search.pl | 89 ----------------- > .../en/modules/acqui/tables/members_results.tt | 7 +- > .../prog/en/modules/admin/aqbudget_user_search.tt | 111 --------------------- > .../prog/en/modules/admin/aqbudgets.tt | 14 +-- > .../prog/en/modules/common/patron_search.tt | 3 + > svc/members/search | 4 +- > 7 files changed, 79 insertions(+), 209 deletions(-) > create mode 100755 admin/add_user_search.pl > delete mode 100755 admin/aqbudget_user_search.pl > delete mode 100644 koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudget_user_search.tt > >diff --git a/admin/add_user_search.pl b/admin/add_user_search.pl >new file mode 100755 >index 0000000..79425e0 >--- /dev/null >+++ b/admin/add_user_search.pl >@@ -0,0 +1,60 @@ >+#!/usr/bin/perl >+ >+# This file is part of Koha. >+# >+# Copyright 2014 BibLibre >+# >+# 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; >+use C4::Output; >+use C4::Members; >+ >+my $input = new CGI; >+ >+my $dbh = C4::Context->dbh; >+ >+my ( $template, $loggedinuser, $cookie, $staff_flags ) = get_template_and_user( >+ { template_name => "common/patron_search.tt", >+ query => $input, >+ type => "intranet", >+ authnotrequired => 0, >+ flagsrequired => { acquisition => 'budget_modify' }, >+ } >+); >+ >+my $q = $input->param('q') || ''; >+my $op = $input->param('op') || ''; >+my $selection_type = $input->param('selection_type') || 'add'; >+ >+my $referer = $input->referer(); >+ >+# If this script is called by acqui/basket.pl >+# the patrons to return should be superlibrarian or have the order_manage >+# acquisition flag. >+my $search_patrons_with_acq_perm_only = >+ ( $referer =~ m|admin/aqbudgets.pl| ) >+ ? 1 : 0; >+ >+$template->param( >+ patrons_with_acq_perm_only => $search_patrons_with_acq_perm_only, >+ view => ( $input->request_method() eq "GET" ) ? "show_form" : "show_results", >+ columns => ['cardnumber', 'name', 'branch', 'category', 'action'], >+ json_template => 'acqui/tables/members_results.tt', >+ selection_type => $selection_type, >+); >+output_html_with_http_headers( $input, $cookie, $template->output ); >diff --git a/admin/aqbudget_user_search.pl b/admin/aqbudget_user_search.pl >deleted file mode 100755 >index 7221e41..0000000 >--- a/admin/aqbudget_user_search.pl >+++ /dev/null >@@ -1,89 +0,0 @@ >-#!/usr/bin/perl >- >-# script to find owner and users for a budget >- >-# Copyright 2008-2009 BibLibre SARL >-# >-# This file is part of Koha. >-# >-# 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 2 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, write to the Free Software Foundation, Inc., >-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. >- >-use Modern::Perl; >- >-use C4::Auth ; >-use C4::Output; >-use CGI qw ( -utf8 ); >-use C4::Dates qw/format_date/; >-use C4::Members; >- >-my $input = new CGI; >- >-my $dbh = C4::Context->dbh; >- >-my ( $template, $loggedinuser, $cookie, $staff_flags ) = get_template_and_user( >- { template_name => "admin/aqbudget_user_search.tt", >- query => $input, >- type => "intranet", >- authnotrequired => 0, >- flagsrequired => { acquisition => 'budget_modify' }, >- debug => 1, >- } >-); >- >-# only used if allowthemeoverride is set >-my $type = $input->param('type'); >-my $member = $input->param('member') // ''; >- >-$member =~ s/,//g; #remove any commas from search string >-$member =~ s/\*/%/g; >-if ( $member eq '' ) { >- $template->param( results => 0 ); >-} else { >- $template->param( results => 1 ); >-} >- >-my @resultsdata; >- >-if ( $member ) { >- my $results = Search($member, "surname"); >- >- foreach my $res (@$results) { >- my $perms = haspermission( $res->{'userid'} ); >- my $subperms = get_user_subpermissions( $res->{'userid'} ); >- >- # if the member has 'acqui' permission set, then display to table. >- if ( $perms->{superlibrarian} == 1 || >- $perms->{acquisition} == 1 || >- exists $subperms->{acquisition} ) >- { >- my %row = ( >- borrowernumber => $res->{'borrowernumber'}, >- cardnumber => $res->{'cardnumber'}, >- surname => $res->{'surname'}, >- firstname => $res->{'firstname'}, >- categorycode => $res->{'categorycode'}, >- branchcode => $res->{'branchcode'}, >- ); >- push( @resultsdata, \%row ); >- } >- } >-} >- >-$template->param( >- type => $type, >- member => $member, >- resultsloop => \@resultsdata >-); >- >-output_html_with_http_headers $input, $cookie, $template->output; >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/tables/members_results.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/tables/members_results.tt >index b66af4d..5ad87ff 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/tables/members_results.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/tables/members_results.tt >@@ -1,3 +1,4 @@ >+[% USE To %] > { > "sEcho": [% sEcho %], > "iTotalRecords": [% iTotalRecords %], >@@ -14,7 +15,11 @@ > "dt_category": > "[% data.category_description |html %] ([% data.category_type |html %])", > "dt_action": >- "<a style='cursor:pointer' onclick='add_user(\"[% data.borrowernumber %]\", \"[% data.firstname %] [% data.surname %]\");'>Select</a>" >+ [%- IF selection_type == 'select' -%] >+ "<a style='cursor:pointer' onclick='select_user(\"[% data.borrowernumber %]\", [% To.json(data) | html %] );'>Select</a>" >+ [%- ELSE -%] >+ "<a style='cursor:pointer' onclick='add_user(\"[% data.borrowernumber %]\", \"[% data.firstname %] [% data.surname %]\");'>Select</a>" >+ [%- END -%] > }[% UNLESS loop.last %],[% END %] > [% END %] > ] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudget_user_search.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudget_user_search.tt >deleted file mode 100644 >index 7d513d6..0000000 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudget_user_search.tt >+++ /dev/null >@@ -1,111 +0,0 @@ >-[% INCLUDE 'doc-head-open.inc' %] >-<title>Koha › Budget >- [% IF (type == 'owner') %] >- owner >- [% ELSE %] >- user >- [% END %] >- search >-</title> >-[% INCLUDE 'doc-head-close.inc' %] >- <style type="text/css"> >- #custom-doc { >- width:44.46em; >- *width:43.39em; >- min-width:578px; >- margin:auto; >- text-align:left; >- } >- </style> >- >- <script type="text/javascript"> >- //<![CDATA[ >- >- // modify parent window owner element >- function add_user(borrowernumber, borrowername) { >- [% IF (type == 'owner') %] >- top.opener.edit_owner(borrowernumber, borrowername); >- window.close(); >- [% ELSE %] >- var ret = top.opener.add_user(borrowernumber, borrowername); >- if (ret != 0) { >- alert(_("This user is already in the list.")); >- } >- [% END %] >- } >- >- //]]> >- </script> >-</head> >- >-<body id="admin_aqbudget_owner_search" class="admin"> >-<div id="custom-doc" class="yui-t7"> >-<div id="bd"> >-<div class="yui-g"> >- >-<h3>Search for budget >- [% IF (type == 'owner') %] >- owner >- [% ELSE %] >- user >- [% END %] >-</h3> >-<form action="/cgi-bin/koha/admin/aqbudget_user_search.pl" method="post"> >- <fieldset> >- <input type="text" name="member" id="member" value="[% member %]" >- class="focus" /> >- >- <input type="hidden" name="type" value="[% type %]" /> >- <input type="submit" class="button" value="Search" /> >- </fieldset> >- >- <div class="hint"> >- Only staff with superlibrarian or acquisitions permissions are returned >- in the search results. >- </div> >-</form> >- >- >-[% IF ( results ) %] >- <p>Searched for <span class="ex">[% member %]</span>, >- [% resultsloop.size || 0 %] patron(s) found:</p> >- >- <table> >- <thead> >- <tr> >- <th>Cardnumber</th> >- <th>Name</th> >- <th>Library</th> >- <th>Categorycode</th> >- <th>Select?</th> >- </tr> >- </thead> >- >- <tbody> >- [% FOREACH result IN resultsloop %] >- <tr> >- <td>[% result.cardnumber %]</td> >- <td>[% result.surname %], [% result.firstname %]</td> >- <td>[% result.branchcode %]</td> >- <td>[% result.categorycode %]</td> >- <td> >- <a style="cursor:pointer" >- onclick="add_user( >- '[% result.borrowernumber %]', >- '[% result.surname %]', >- '[% result.firstname %]' >- );" >- />Select</a> >- </td> >- </tr> >- [% END %] >- </tbody> >- </table> >-[% END %] >- >-<div id="closewindow"> >- <a href="#" class="close">Close</a> >-</div> >-</div> >-</div> >-[% INCLUDE 'intranet-bottom.inc' %] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgets.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgets.tt >index f88d6d8..5ff800a 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgets.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgets.tt >@@ -16,7 +16,7 @@ var MSG_PARENT_BENEATH_BUDGET = "- " + _("New budget-parent is beneath budget") > //<![CDATA[ > > function userPopup() { >- window.open("/cgi-bin/koha/admin/aqbudget_user_search.pl?type=user", >+ window.open("/cgi-bin/koha/admin/add_user_search.pl?selection_type=add", > 'PatronPopup', > 'width=740,height=450,location=yes,toolbar=no,' > + 'scrollbars=yes,resize=yes' >@@ -24,16 +24,16 @@ var MSG_PARENT_BENEATH_BUDGET = "- " + _("New budget-parent is beneath budget") > } > > function ownerPopup() { >- window.open("/cgi-bin/koha/admin/aqbudget_user_search.pl?type=owner", >+ window.open("/cgi-bin/koha/admin/add_user_search.pl?selection_type=select", > 'PatronPopup', > 'width=740,height=450,location=yes,toolbar=no,' > + 'scrollbars=yes,resize=yes' > ); > } > >- function edit_owner(borrowernumber, borrowername) { >- $('#budget_owner_name').empty(); >- $('#budget_owner_id').val(''); >+ function select_user(borrowernumber, borrower) { >+ ownerRemove(); >+ var borrowername = borrower.firstname + ' ' + borrower.surname > if (borrowernumber) { > var ownerlink = '<a href="/cgi-bin/koha/members/moremember.pl' > + '?borrowernumber=' + borrowernumber + '">' >@@ -44,7 +44,8 @@ var MSG_PARENT_BENEATH_BUDGET = "- " + _("New budget-parent is beneath budget") > } > > function ownerRemove() { >- edit_owner(0); >+ $('#budget_owner_name').empty(); >+ $('#budget_owner_id').val(''); > } > > function add_user(borrowernumber, borrowername) { >@@ -483,7 +484,6 @@ var MSG_PARENT_BENEATH_BUDGET = "- " + _("New budget-parent is beneath budget") > <input type="hidden" name="budget_owner_id" id="budget_owner_id" > value="[% budget_owner_id %]" /> > >- <!-- FIXME: hardcoded button positions :/ --> > <input type="button" id="edit_owner" value="Edit owner" > onclick="ownerPopup(); return false;" /> > <input type="button" id="remove_owner" value="Remove owner" >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/common/patron_search.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/common/patron_search.tt >index fd133e4..494d154 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/common/patron_search.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/common/patron_search.tt >@@ -44,6 +44,9 @@ $(document).ready(function(){ > },{ > 'name': 'template_path', > 'value': '[% json_template %]', >+ },{ >+ 'name': 'selection_type', >+ 'value': '[% selection_type %]', > } > [% IF patrons_with_acq_perm_only %] > ,{ >diff --git a/svc/members/search b/svc/members/search >index 8889773..864a45c 100755 >--- a/svc/members/search >+++ b/svc/members/search >@@ -45,6 +45,7 @@ my $branchcode = $input->param('branchcode'); > my $searchtype = $input->param('searchtype'); > my $searchfieldstype = $input->param('searchfieldstype') || 'standard'; > my $has_permission = $input->param('has_permission'); >+my $selection_type = $input->param('selection_type'); > > if ( $searchfieldstype eq "dateofbirth" ) { > $searchmember = output_pref({dt => dt_from_string($searchmember), dateformat => 'iso', dateonly => 1}); >@@ -115,7 +116,8 @@ $template->param( > sEcho => $sEcho, > iTotalRecords => $results->{iTotalRecords}, > iTotalDisplayRecords => $results->{iTotalDisplayRecords}, >- aaData => $results->{patrons} >+ aaData => $results->{patrons}, >+ selection_type => $selection_type, > ); > > output_with_http_headers $input, $cookie, $template->output, 'json'; >-- >2.1.0
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 13891
:
37104
|
37105
|
37106
|
37107
|
37180
|
37184
|
37185
|
37186
|
37187
|
37334
|
37335
|
37336
|
37337