From abbc56283daad1ee7931908798fc339df39aeba0 Mon Sep 17 00:00:00 2001
From: Lari Taskula <lari.taskula@hypernova.fi>
Date: Mon, 4 Dec 2023 22:51:45 +0000
Subject: [PATCH] Bug 35483: Restore holds table select to switch item level
 holds to record level holds
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

To test:
1. Apply patch
2. Add item level hold to a record/item, make sure patron has no other
   holds on that record
3. Go to /cgi-bin/koha/reserve/request.pl?biblionumber=xxx where xxx is
   the record you placed the hold for
4. Under "Existing holds" table, in "Details" column you should see
   "Only item <barcode>" dropdown
5. Select "Next available" from the dropdown
6. Click Update hold(s)
7. Observe dropdown is gone and cell value has changed from
   "Only item <barcode>" to "Next available"
8. Cancel the hold and add two item level holds for the same patron
9. Under "Existing holds" table, in "Details" column you should see
   "Only item <barcode>", but no select dropdown

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Anneli Österman <anneli.osterman@koha-suomi.fi>
---
 .../prog/en/includes/holds_table.inc          | 20 +++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/holds_table.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/holds_table.inc
index f443a7e197..35165e2e41 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/holds_table.inc
+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/holds_table.inc
@@ -175,6 +175,7 @@
                     [%- ELSE -%]
                         [%- IF ( hold.item_level_hold ) -%]
                             <em>
+                                [%- IF ! hold.change_hold_type_allowed -%]
                                 <span>Only item</span>
                                 <a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% hold.biblionumber | uri %]&amp;itemnumber=[% hold.itemnumber | uri %]#item[% hold.itemnumber | uri %]">
                                     [%- IF ( hold.barcodenumber ) -%]
@@ -184,6 +185,25 @@
                                         <span>No barcode</span>
                                     [%- END -%]
                                 </a>
+                                [%- ELSE -%]
+                                        <select name="change_hold_type_[% hold.reserve_id | html %]">
+                                        <option selected="selected" value="">Only item [%- IF ( hold.barcodenumber ) -%]
+                                            [%- hold.barcodenumber | html -%]
+                                        [%- ELSE -%]
+                                            No barcode
+                                        [%- END -%]
+                                        </option>
+                                        <option value="1">Next available</option>
+                                    </select>
+                                    [%- IF ( hold.barcodenumber ) -%]
+                                        <input type="hidden" name="itemnumber" value="[% hold.itemnumber | html %]" />
+                                    [%- END -%]
+                                    [%- IF hold.itemtype -%]
+                                        <span style="display:none">Next available [% ItemTypes.GetDescription( hold.itemtype ) | html %] item</span>
+                                    [%- ELSE -%]
+                                        <span style="display:none">Next available</span>
+                                    [%- END -%]
+                                [%- END -%]
                             </em>
                         [%- ELSE -%]
                             [%- IF hold.itemtype -%]
-- 
2.30.2