From 803e19f107687326da88daf82be06dd1a1aa157f Mon Sep 17 00:00:00 2001
From: Matt Blenkinsop <matt.blenkinsop@ptfs-europe.com>
Date: Wed, 26 Jun 2024 10:56:15 +0000
Subject: [PATCH] Bug 37116: Redirect to batch serial modification when batch
modifying items
Test plan:
- Add a new subscription to a serial record (with option 'When receiving the serial --> create an item record')
- Receive several issues and create the items linked
- Back to bibliographic record
- Select several items and click to 'Modify selected items'
- Modify data (like add a public note)
- A box opens indicating that 'some of the items have linked serial issues, would you like to edit these as well ?'
- Click on "Edit serial issue"
- We switch to the issues
- Modify data of the issues (add a note for example like for the items) and save
- Both modifications (item and issue) are validated
---
.../en/includes/modals/edit_serial_issues.inc | 18 +++++++++++++---
.../prog/en/modules/tools/batchMod-edit.tt | 11 +++++++++-
.../intranet-tmpl/prog/js/pages/batchMod.js | 16 ++++++++++++++
tools/batchMod.pl | 21 +++++++++++++++++++
4 files changed, 62 insertions(+), 4 deletions(-)
diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/modals/edit_serial_issues.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/modals/edit_serial_issues.inc
index 53a1c03e1a5..7b227e5d185 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/modals/edit_serial_issues.inc
+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/modals/edit_serial_issues.inc
@@ -9,11 +9,23 @@
<h4 class="modal-title" id="edit-serial-issues-modal-label">Edit serial issues</h4>
</div>
<div class="modal-body">
- <h5 style="margin-bottom: 15px;">This item has a serial issue linked to it, would you like to edit this as well?</h5>
+ [% IF batch %]
+ <h5 style="margin-bottom: 15px;">Some of these items have linked serial issues, would you like to edit these as well?</h5>
+ [% ELSE %]
+ <h5 style="margin-bottom: 15px;">This item has a serial issue linked to it, would you like to edit this as well?</h5>
+ [% END %]
</div>
<div class="modal-footer">
- <button id="edit-serial-issues-modal-btn-submit" type="button" class="btn btn-primary"><i class="fa fa-exclamation-circle"></i> Edit serial issue</button>
- <button id="no-edit-serial-issues-modal-btn-submit" class="btn btn-default deny cancel" href="#" data-dismiss="modal" aria-hidden="true"><i class="fa fa-times"></i> Save item without editing serial issue</button>
+ [% IF batch %]
+ <button id="edit-serial-issues-modal-btn-submit" type="button" class="btn btn-primary"><i class="fa fa-exclamation-circle"></i> Edit serial issues</button>
+ [% ELSE %]
+ <button id="edit-serial-issues-modal-btn-submit" type="button" class="btn btn-primary"><i class="fa fa-exclamation-circle"></i> Edit serial issue</button>
+ [% END %]
+ [% IF batch %]
+ <button id="no-edit-serial-issues-modal-btn-submit" class="btn btn-default deny cancel" href="#" data-dismiss="modal" aria-hidden="true"><i class="fa fa-times"></i> Save items without editing serial issues</button>
+ [% ELSE %]
+ <button id="no-edit-serial-issues-modal-btn-submit" class="btn btn-default deny cancel" href="#" data-dismiss="modal" aria-hidden="true"><i class="fa fa-times"></i> Save item without editing serial issue</button>
+ [% END %]
</div>
</div>
</div>
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 b2b3161f21b..9aaae0a7a68 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
@@ -162,6 +162,9 @@
<input type="hidden" name="searchid" value="[% searchid | html %]" />
<input type="hidden" name="uploadedfileid" id="uploadedfileid" value="" />
<input type="hidden" name="src" id="src" value="[% src | html %]" />
+ [% FOREACH linked_serial_id IN linked_serial_ids %]
+ <input type="hidden" name="linked_serial_id" id="linked_serial_id" value="[% linked_serial_id | html %]" />
+ [% END %]
[% IF biblionumber %]
<input type="hidden" name="biblionumber" id="biblionumber" value="[% biblionumber | html %]" />
[% END %]
@@ -237,7 +240,12 @@
</fieldset>
<fieldset class="action">
- <input type="submit" id="mainformsubmit" class="btn btn-primary" value="Save" />
+ [% IF linked_serials %]
+ <input type="button" class="submit" value="Save" onclick="return ShowSerialEditingConfirmation(this.form)">
+ <input type="hidden" name="edit-serial-issues" id="edit-serial-issues" value />
+ [% ELSE %]
+ <input type="submit" id="mainformsubmit" class="btn btn-primary" value="Save" />
+ [% END %]
<a href="/cgi-bin/koha/tools/batchMod.pl" class="cancel">Cancel</a>
</fieldset>
</div> <!-- /#cataloguing_additem_newitem -->
@@ -260,6 +268,7 @@
</fieldset> <!-- /.action -->
[% END %]
</form>
+ [% INCLUDE 'modals/edit_serial_issues.inc' batch=1 %]
[% MACRO jsinclude BLOCK %]
[% Asset.js("lib/jquery/plugins/humanmsg.js") | $raw %]
diff --git a/koha-tmpl/intranet-tmpl/prog/js/pages/batchMod.js b/koha-tmpl/intranet-tmpl/prog/js/pages/batchMod.js
index df428f831bf..265336f7801 100644
--- a/koha-tmpl/intranet-tmpl/prog/js/pages/batchMod.js
+++ b/koha-tmpl/intranet-tmpl/prog/js/pages/batchMod.js
@@ -117,6 +117,11 @@ function hideAllColumns() {
Cookies.set("showColumns", cookieString, { expires: date, path: '/', sameSite: 'Lax' });
}
+function ShowSerialEditingConfirmation(form) {
+ $('#edit-serial-issues-modal').modal();
+ return false;
+}
+
$(document).ready(function () {
var items_table = KohaTable("itemst", {
"columnDefs": [
@@ -166,4 +171,15 @@ $(document).ready(function () {
}
}
});
+ $(document).on('click', '#edit-serial-issues-modal-btn-submit', function (e) {
+ e.preventDefault();
+ $('#edit-serial-issues-modal').modal('hide');
+ $('#edit-serial-issues').val('1');
+ return $("form[name='f'").submit();
+ });
+ $(document).on('click', '#no-edit-serial-issues-modal-btn-submit', function (e) {
+ e.preventDefault();
+ $('#edit-serial-issues-modal').modal('hide');
+ return $("form[name='f'").submit();
+ });
});
diff --git a/tools/batchMod.pl b/tools/batchMod.pl
index e6dc6ded998..f8c51318cba 100755
--- a/tools/batchMod.pl
+++ b/tools/batchMod.pl
@@ -186,6 +186,18 @@ if ( $op eq "cud-action" ) {
Koha::BackgroundJob::BatchUpdateItem->new->enqueue($params);
$nextop = 'enqueued';
$template->param( job_id => $job_id, );
+
+ if ( $input->param('edit-serial-issues') ) {
+ my @linked_serial_ids = $input->multi_param('linked_serial_id');
+ my $subscriptionid = Koha::Serials->find( $linked_serial_ids[0] )->subscriptionid;
+ my $redirect_url = "/cgi-bin/koha/serials/serials-edit.pl?";
+ for my $serial_id (@linked_serial_ids) {
+ $redirect_url .= "serialid=$serial_id&";
+ }
+ $redirect_url .= "subscriptionid=$subscriptionid";
+ print $input->redirect($redirect_url);
+ exit;
+ }
}
catch {
push @messages,
@@ -269,6 +281,15 @@ if ($op eq "cud-show" || $op eq "show"){
$template->param(itemnumbers_array => \@itemnumbers);
}
+ my @linked_serial_ids;
+ foreach my $itemnumber (@itemnumbers) {
+ my $item = Koha::Items->find($itemnumber);
+ my $serial_item = $item->serial_item;
+ push( @linked_serial_ids, $serial_item->serialid ) if $serial_item;
+ }
+ $template->param( linked_serial_ids => \@linked_serial_ids );
+ $template->param( linked_serials => 1 ) if scalar(@linked_serial_ids) > 0;
+
# now, build the item form for entering a new item
# Getting list of subfields to keep when restricted batchmod edit is enabled
--
2.39.3 (Apple Git-146)