@@ -, +, @@ detail page (staff client) - Delete selected items: redirect to batch items deletion - Modify selected items: redirect to batch items modification --- catalogue/detail.pl | 20 ++++++- installer/data/mysql/sysprefs.sql | 1 + installer/data/mysql/updatedatabase.pl | 11 +++- .../intranet-tmpl/prog/en/includes/cat-toolbar.inc | 4 -- .../en/modules/admin/preferences/staff_client.pref | 6 ++ .../prog/en/modules/catalogue/detail.tt | 61 +++++++++++++++++++- .../prog/en/modules/tools/batchMod-del.tt | 4 +- .../prog/en/modules/tools/batchMod-edit.tt | 4 +- 8 files changed, 100 insertions(+), 11 deletions(-) --- a/catalogue/detail.pl +++ a/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, @@ -411,5 +411,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; --- a/installer/data/mysql/sysprefs.sql +++ a/installer/data/mysql/sysprefs.sql @@ -348,6 +348,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` ('SpineLabelShowPrintOnBibDetails','0','','If turned on, a \"Print Label\" link will appear for each item on the bib details page in the staff interface.','YesNo'), ('StaffAuthorisedValueImages','1',NULL,'','YesNo'), ('staffClientBaseURL','',NULL,'Specify the base URL of the staff client','free'), +('StaffDetailItemSelection', '0', NULL, 'Enable item selection in record detail page', 'YesNo'); ('StaffSerialIssueDisplayCount','3','','Number of serial issues to display per subscription in the Staff client','Integer'), ('StaticHoldsQueueWeight','0',NULL,'Specify a list of library location codes separated by commas -- the list of codes will be traversed and weighted with first values given higher weight for holds fulfillment -- alternatively, if RandomizeHoldsQueueWeight is set, the list will be randomly selective','Integer'), ('SubfieldsToUseWhenPrefill','','','Define a list of subfields to use when prefilling items (separated by space)','Free'), --- a/installer/data/mysql/updatedatabase.pl +++ a/installer/data/mysql/updatedatabase.pl @@ -7146,7 +7146,6 @@ if ( CheckVersion($DBversion) ) { SetVersion($DBversion); } - $DBversion = "3.13.00.022"; if ( CheckVersion($DBversion) ) { $dbh->do("DELETE from auth_tag_structure WHERE tagfield IN ('68a','68b')"); @@ -7155,6 +7154,16 @@ if ( CheckVersion($DBversion) ) { SetVersion($DBversion); } +$DBversion = "XXX"; +if ( CheckVersion($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) --- a/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc +++ a/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc @@ -145,10 +145,6 @@ CAN_user_serials_create_subscription ) %]
  • Edit items
  • [% END %] - [% IF ( CAN_user_tools_items_batchmod ) %]
  • Edit items in batch
  • [% END %] - - [% IF ( CAN_user_tools_items_batchdel ) %]
  • Delete items in a batch
  • [% END %] - [% IF ( CAN_user_editcatalogue_edit_items ) %]
  • Attach item
  • [% END %] [% IF ( EasyAnalyticalRecords ) %][% IF ( CAN_user_editcatalogue_edit_items ) %]
  • Link to host item[% END %][% END %] --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/staff_client.pref +++ a/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. --- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt @@ -70,7 +70,42 @@ function verify_images() { } - $(document).ready(function() { + [% 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(); $('.thumbnails > li > a > span.remove').click(function() { @@ -402,9 +437,28 @@ function verify_images() { [% BLOCK items_table %] + [% IF (StaffDetailItemSelection) %] + Select all | + Deselect all | +
    + + + + + +
    + [% END %] + [% IF (StaffDetailItemSelection) %][% END %] [% IF ( item_level_itypes ) %][% END %] @@ -427,6 +481,11 @@ function verify_images() { [% FOREACH item IN items %] + [% IF (StaffDetailItemSelection) %] + + [% END %] [% IF ( item_level_itypes ) %]
    Item typeCurrent location Home library
    + + [% IF !noItemTypeImages && item.imageurl %] --- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod-del.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod-del.tt @@ -180,8 +180,8 @@ for( x=0; x - [% IF ( src == 'CATALOGUING') %] - Done + [% IF src %] + Done [% ELSE %] Return to batch item deletion [% END %] --- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod-edit.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod-edit.tt @@ -204,8 +204,8 @@ $(document).ready(function(){ [% END %] [% ELSE %]
    -[% IF ( src == 'CATALOGUING') %] - Done +[% IF src %] + Done [% ELSE %] Done [% END %] --