Bugzilla – Attachment 19913 Details for
Bug 9044
Allow to select items on catalogue/detail.pl and trigger actions
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
[SIGNED-OFF] Bug 9044: Provide item selection in record detail page (staff client)
Bug-9044-Provide-item-selection-in-record-detail-p.patch (text/plain), 11.83 KB, created by
Julian Maurice
on 2013-07-24 06:41:16 UTC
(
hide
)
Description:
[SIGNED-OFF] Bug 9044: Provide item selection in record detail page (staff client)
Filename:
MIME Type:
Creator:
Julian Maurice
Created:
2013-07-24 06:41:16 UTC
Size:
11.83 KB
patch
obsolete
>From b327a9052d2ba3c360f7f6d95466abc6388d933e Mon Sep 17 00:00:00 2001 >From: Julian Maurice <julian.maurice@biblibre.com> >Date: Fri, 9 Nov 2012 15:16:52 +0100 >Subject: [PATCH] Bug 9044: Provide item selection in record detail page > (staff client) > >This patch add a column in the items table of catalogue/detail.pl that >contains checkboxes for item selection and a drop-down list of actions >that can be executed for the selection of items. >Currently available actions are: >- Delete selected items: redirect to batch items deletion >- Modify selected items: redirect to batch items modification >These actions replace the two menu entries corresponding to the same >action. >Item selection is only enabled if the new syspref >StaffDetailItemSelection is ON. >Actions are not displayed if user doesn't have the right permissions. > >Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> >--- > catalogue/detail.pl | 20 ++++++- > installer/data/mysql/sysprefs.sql | 1 + > installer/data/mysql/updatedatabase.pl | 10 ++++ > .../intranet-tmpl/prog/en/includes/cat-toolbar.inc | 4 -- > .../en/modules/admin/preferences/staff_client.pref | 6 ++ > .../prog/en/modules/catalogue/detail.tt | 60 ++++++++++++++++++++ > .../prog/en/modules/tools/batchMod-del.tt | 4 +- > .../prog/en/modules/tools/batchMod-edit.tt | 4 +- > 8 files changed, 100 insertions(+), 9 deletions(-) > >diff --git a/catalogue/detail.pl b/catalogue/detail.pl >index ab1df8a..3d6f01b 100755 >--- a/catalogue/detail.pl >+++ b/catalogue/detail.pl >@@ -49,7 +49,7 @@ my $query = CGI->new(); > > my $analyze = $query->param('analyze'); > >-my ( $template, $borrowernumber, $cookie ) = get_template_and_user( >+my ( $template, $borrowernumber, $cookie, $flags ) = get_template_and_user( > { > template_name => 'catalogue/detail.tmpl', > query => $query, >@@ -410,5 +410,23 @@ if (C4::Context->preference('TagsEnabled') and $tag_quantity = C4::Context->pref > > my ( $holdcount, $holds ) = C4::Reserves::GetReservesFromBiblionumber($biblionumber,1); > $template->param( holdcount => $holdcount, holds => $holds ); >+my $StaffDetailItemSelection = C4::Context->preference('StaffDetailItemSelection'); >+if ($StaffDetailItemSelection) { >+ # Only enable item selection if user can execute at least one action >+ if ( >+ $flags->{superlibrarian} >+ || ( >+ ref $flags->{tools} eq 'HASH' && ( >+ $flags->{tools}->{items_batchmod} # Modify selected items >+ || $flags->{tools}->{items_batchdel} # Delete selected items >+ ) >+ ) >+ || ( ref $flags->{tools} eq '' && $flags->{tools} ) >+ ) >+ { >+ $template->param( >+ StaffDetailItemSelection => $StaffDetailItemSelection ); >+ } >+} > > output_html_with_http_headers $query, $cookie, $template->output; >diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql >index e3c0f3d..3615df2 100644 >--- a/installer/data/mysql/sysprefs.sql >+++ b/installer/data/mysql/sysprefs.sql >@@ -429,3 +429,4 @@ INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type) V > INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('CalculateFinesOnReturn','1','Switch to control if overdue fines are calculated on return or not', '', 'YesNo'); > INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('AcqWarnOnDuplicateInvoice','0','Warn librarians when they try to create a duplicate invoice', '', 'YesNo'); > INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type) VALUES ('AllowTooManyOverride', '1', 'If on, allow staff to override and check out items when the patron has reached the maximum number of allowed checkouts', '', 'YesNo'); >+INSERT INTO systempreferences (variable, value, explanation, options, type) VALUES ('StaffDetailItemSelection', '0', 'Enable item selection in record detail page', NULL, 'YesNo'); >diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl >index ebb195c..33a0033 100755 >--- a/installer/data/mysql/updatedatabase.pl >+++ b/installer/data/mysql/updatedatabase.pl >@@ -7058,6 +7058,16 @@ if ( CheckVersion($DBversion) ) { > SetVersion($DBversion); > } > >+$DBversion = "XXX"; >+if (C4::Context->preference('Version') < TransformToNum($DBversion)) { >+ $dbh->do(qq{ >+ INSERT INTO systempreferences (variable, value, explanation, options, type) >+ VALUES ('StaffDetailItemSelection', '0', 'Enable item selection in record detail page', NULL, 'YesNo') >+ }); >+ print "Upgrade to $DBversion done (Add system preference StaffDetailItemSelection)\n"; >+ SetVersion($DBversion); >+} >+ > =head1 FUNCTIONS > > =head2 TableExists($table) >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc >index 553d9ae..2daacd3 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc >@@ -145,10 +145,6 @@ CAN_user_serials_create_subscription ) %] > <li><a id="edititems" href="/cgi-bin/koha/cataloguing/additem.pl?biblionumber=[% biblionumber %]">Edit items</a></li> > [% END %] > >- [% IF ( CAN_user_tools_items_batchmod ) %]<li><a href="/cgi-bin/koha/tools/batchMod.pl?op=show&biblionumber=[% biblionumber %]&src=CATALOGUING">Edit items in batch</a></li>[% END %] >- >- [% IF ( CAN_user_tools_items_batchdel ) %]<li><a href="/cgi-bin/koha/tools/batchMod.pl?del=1&op=show&biblionumber=[% biblionumber %]&src=CATALOGUING">Delete items in a batch</a></li>[% END %] >- > [% IF ( CAN_user_editcatalogue_edit_items ) %]<li><a href="/cgi-bin/koha/cataloguing/moveitem.pl?biblionumber=[% biblionumber %]">Attach item</a></li>[% END %] > > [% IF ( EasyAnalyticalRecords ) %][% IF ( CAN_user_editcatalogue_edit_items ) %]<li><a href="/cgi-bin/koha/cataloguing/linkitem.pl?biblionumber=[% biblionumber %]">Link to host item</a>[% END %][% END %] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/staff_client.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/staff_client.pref >index 462286a..1d9b928 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/staff_client.pref >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/staff_client.pref >@@ -128,3 +128,9 @@ Staff Client: > yes: Show > no: "Don't show" > - the cart option in the staff client. >+ - >+ - pref: StaffDetailItemSelection >+ choices: >+ yes: Enable >+ no: Disable >+ - item selection in record detail page. >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt >index b3a4240..989bc1a 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt >@@ -51,6 +51,42 @@ function verify_images() { > } > }); > } >+ >+ [% IF StaffDetailItemSelection %] >+ function selectAllItems(div) { >+ $("input[name='itemnumber'][type='checkbox']", div).attr('checked', 'checked'); >+ } >+ >+ function deselectAllItems(div) { >+ $("input[name='itemnumber'][type='checkbox']", div).removeAttr('checked'); >+ } >+ >+ function itemSelectionExecuteAction(div) { >+ var itemnumbers = new Array(); >+ $("input[name='itemnumber'][type='checkbox']:checked", div).each(function() { >+ itemnumbers.push($(this).val()); >+ }); >+ if (itemnumbers.length > 0) { >+ var action = $('select[name="itemselection_action"]', div).val(); >+ var del = (action == 'delete') ? 1 : 0; >+ var url = '/cgi-bin/koha/tools/batchMod.pl?op=show'; >+ if (action == 'delete') { >+ url += '&del=1'; >+ } >+ url += '&itemnumber=' + itemnumbers.join('&itemnumber='); >+ url += '&src=' + '[% "/cgi-bin/koha/catalogue/detail.pl?biblionumber=$biblionumber" |uri %]'; >+ new_window = $("input[name='new_window']", div).attr('checked'); >+ if (new_window) { >+ window.open(url); >+ } else { >+ window.location.href = url; >+ } >+ } else { >+ alert(_("Please select at least one item.")); >+ } >+ } >+ [% END %] >+ > $(document).ready(function() { > $('#bibliodetails').tabs(); > $('#search-form').focus(); >@@ -366,9 +402,28 @@ function verify_images() { > </ul> > > [% BLOCK items_table %] >+ [% IF (StaffDetailItemSelection) %] >+ <a href="#" onclick="selectAllItems($(this).parent()); return false;">Select all</a> | >+ <a href="#" onclick="deselectAllItems($(this).parent()); return false;">Deselect all</a> | >+ <form onsubmit="itemSelectionExecuteAction($(this).parent()); return false;"> >+ <label>Action:</label> >+ <select name="itemselection_action"> >+ [% IF CAN_user_tools_items_batchdel %] >+ <option value="delete">Delete selected items</option> >+ [% END %] >+ [% IF CAN_user_tools_items_batchmod %] >+ <option value="modify">Modify selected items</option> >+ [% END %] >+ </select> >+ <input type="submit" value="Go" /> >+ <input type="checkbox" name="new_window" /> >+ <label>Open in new window</label> >+ </form> >+ [% END %] > <table> > <thead> > <tr> >+ [% IF (StaffDetailItemSelection) %]<th></th>[% END %] > [% IF ( item_level_itypes ) %]<th>Item type</th>[% END %] > <th>Current location</th> > <th>Home library</th> >@@ -391,6 +446,11 @@ function verify_images() { > <tbody> > [% FOREACH item IN items %] > <tr> >+ [% IF (StaffDetailItemSelection) %] >+ <td style="text-align:center;vertical-align:middle"> >+ <input type="checkbox" value="[% item.itemnumber %]" name="itemnumber" /> >+ </td> >+ [% END %] > [% IF ( item_level_itypes ) %] > <td class="itype"> > [% IF !noItemTypeImages && item.imageurl %] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod-del.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod-del.tt >index 292b81f..615582a 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod-del.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod-del.tt >@@ -180,8 +180,8 @@ for( x=0; x<allColumns.length; x++ ){ > [% END %] > > <p> >- [% IF ( src == 'CATALOGUING') %] >- <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblionumber %]">Done</a> >+ [% IF src %] >+ <a href="[% src %]">Done</a> > [% ELSE %] > <a href="/cgi-bin/koha/tools/batchMod.pl?del=1">Return to batch item deletion</a> > [% END %] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod-edit.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod-edit.tt >index de67517..85afb92 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod-edit.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod-edit.tt >@@ -191,8 +191,8 @@ $(document).ready(function(){ > [% END %] > [% ELSE %] <!-- // show --> > <fieldset class="action"> >-[% IF ( src == 'CATALOGUING') %] >- <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% item_loo.biblionumber %]">Done</a> >+[% IF src %] >+ <a href="[% src %]">Done</a> > [% ELSE %] > <a href="/cgi-bin/koha/tools/batchMod.pl">Done</a> > [% END %] >-- >1.7.10.4
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 9044
:
13344
|
13513
|
13933
|
14737
|
16612
|
16707
|
16708
|
16711
|
19060
|
19344
|
19913
|
19914
|
19915
|
19916
|
21324
|
21325
|
21326
|
21327
|
21561
|
21562
|
21563
|
21564
|
21591
|
21634
|
21683
|
21745
|
21746
|
21747
|
21748
|
21749