@@ -397,6 +418,12 @@
$("#reopensub").click(function(){
return confirm(_("Are you sure you want to reopen this subscription?"));
});
+
+ $('.select-all, .clear-all').on('click', function(e) {
+ e.preventDefault();
+ var checkboxes = $(this).parents('form').find('input[type="checkbox"]');
+ checkboxes.prop('checked', $(this).hasClass('select-all'));
+ });
});
[% END %]
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-batchedit.tt
+++ a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-batchedit.tt
@@ -0,0 +1,153 @@
+[% USE AuthorisedValues %]
+[% USE Branches %]
+[% USE ItemTypes %]
+[% USE KohaDates %]
+[% INCLUDE 'doc-head-open.inc' %]
+
Koha › Serials › Batch edit
+ [% INCLUDE 'doc-head-close.inc' %]
+ [% INCLUDE 'calendar.inc' %]
+
+
+ [% INCLUDE 'header.inc' %]
+ [% INCLUDE 'serials-search.inc' %]
+
+
+
+
+
+
+
+
Subscription batch edit
+
+
+
You are about to edit the following subscriptions:
+
+
+
+ ISSN |
+ Title |
+ Notes |
+ Library |
+ Location |
+ Call number |
+ Expiration date |
+
+
+
+ [% FOREACH subscription IN subscriptions %]
+
+ [% subscription.biblio.biblioitem.issn %] |
+ [% subscription.biblio.title %] (#[% subscription.subscriptionid %]) |
+ [% subscription.notes %] [% IF subscription.internalnotes %]([% subscription.internalnotes %])[% END %] |
+ [% Branches.GetName(subscription.branchcode) %] |
+ [% AuthorisedValues.GetByCode('LOC', subscription.location) %] |
+ [% subscription.callnumber %] |
+ [% subscription.enddate | $KohaDates %] |
+
+ [% END %]
+
+
+
+
+
+
+
+
+ [% INCLUDE 'serials-menu.inc' %]
+
+
+
+ [% INCLUDE 'intranet-bottom.inc' %]
--- a/serials/subscription-batchedit.pl
+++ a/serials/subscription-batchedit.pl
@@ -0,0 +1,107 @@
+#!/usr/bin/perl
+
+# Copyright 2017 BibLibre
+#
+# 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 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
.
+
+use Modern::Perl;
+
+use CGI qw( -utf8 );
+
+use C4::Auth;
+use C4::Output;
+use Koha::Subscriptions;
+use Koha::Acquisition::Booksellers;
+use Koha::AdditionalField;
+use Koha::DateUtils;
+
+my $cgi = new CGI;
+
+my ($template, $loggedinuser, $cookie) = get_template_and_user({
+ template_name => 'serials/subscription-batchedit.tt',
+ query => $cgi,
+ type => 'intranet',
+ authnotrequired => 0,
+ flagsrequired => {serials => 'edit_subscription'},
+});
+
+my @subscriptionids = $cgi->multi_param('subscriptionid');
+
+my @subscriptions;
+foreach my $subscriptionid (@subscriptionids) {
+ my $subscription = Koha::Subscriptions->find($subscriptionid);
+
+ push @subscriptions, $subscription if $subscription;
+}
+
+my $additional_fields = Koha::AdditionalField->all({tablename => 'subscription'});
+
+my $batchedit = $cgi->param('batchedit');
+if ($batchedit) {
+ my %params = (
+ aqbooksellerid => scalar $cgi->param('booksellerid'),
+ location => scalar $cgi->param('location'),
+ branchcode => scalar $cgi->param('branchcode'),
+ itemtype => scalar $cgi->param('itemtype'),
+ notes => scalar $cgi->param('notes'),
+ internalnotes => scalar $cgi->param('internalnotes'),
+ serialsadditems => scalar $cgi->param('serialsadditems'),
+ enddate => dt_from_string(scalar $cgi->param('enddate')),
+ );
+
+ my $field_values = {};
+ foreach my $field (@$additional_fields) {
+ my $value = $cgi->param('field_' . $field->{id});
+ $field_values->{$field->{id}} = $value;
+ }
+
+ foreach my $subscription (@subscriptions) {
+ while (my ($key, $value) = each %params) {
+ if (defined $value and $value ne '') {
+ $subscription->$key($value);
+ }
+ }
+
+ foreach my $field (@$additional_fields) {
+ my $value = $field_values->{$field->{id}};
+ if (defined $value and $value ne '') {
+ $field->{values} //= {};
+ $field->{values}->{$subscription->subscriptionid} = $value;
+ }
+ }
+
+ $subscription->store;
+ }
+
+ foreach my $field (@$additional_fields) {
+ if (defined $field->{values}) {
+ $field->insert_values();
+ }
+ }
+
+ my $redirect_url = $cgi->param('referrer') // '/cgi-bin/koha/serials/serials-home.pl';
+ print $cgi->redirect($redirect_url);
+ exit;
+}
+
+$template->param(
+ subscriptions => \@subscriptions,
+ booksellers => [ Koha::Acquisition::Booksellers->search() ],
+ additional_fields => $additional_fields,
+ referrer => scalar $cgi->param('referrer'),
+);
+
+output_html_with_http_headers $cgi, $cookie, $template->output;
--