Bugzilla – Attachment 134491 Details for
Bug 30579
When placing item level hold, some options that are not used are not disabled
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 30579: Disentangle multi-hold and single bib forms
Bug-30579-Disentangle-multi-hold-and-single-bib-fo.patch (text/plain), 51.62 KB, created by
Nick Clemens (kidclamp)
on 2022-05-03 10:22:44 UTC
(
hide
)
Description:
Bug 30579: Disentangle multi-hold and single bib forms
Filename:
MIME Type:
Creator:
Nick Clemens (kidclamp)
Created:
2022-05-03 10:22:44 UTC
Size:
51.62 KB
patch
obsolete
>From 57cd48a442f2fd18d18dd70c4c8ebe8337d767dc Mon Sep 17 00:00:00 2001 >From: Nick Clemens <nick@bywatersolutions.com> >Date: Thu, 21 Apr 2022 12:10:13 +0000 >Subject: [PATCH] Bug 30579: Disentangle multi-hold and single bib forms > >This patch simply groups the forms so that multi-hold and single >hold are each in their own section > >While there is some duplication from this, it makes the sections easier to read >and allows for more variation in the two forms > >To test: >1 - Place a single bib and multi bib hold in staff client >2 - Apply this patch >3 - Repeat and confirm nothing changes with this patch > >Signed-off-by: Andrew Fuerste-Henry <andrew@bywatersolutions.com> > >Signed-off-by: Rebecca Coert <rcoert@arlingtonva.us> >--- > .../prog/en/modules/reserve/request.tt | 586 ++++++++++-------- > 1 file changed, 314 insertions(+), 272 deletions(-) > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt >index 5319d2fec4..9ae668e72e 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt >@@ -436,28 +436,19 @@ > <div class="dialog alert hide holdalert"> > </div> > >- <fieldset class="rows"> >- <legend>Hold details</legend> >- <form action="placerequest.pl" method="post" name="form" id="hold-request-form"> >+ [% UNLESS ( multi_hold ) %] >+ <fieldset class="rows"> >+ <legend>Hold details</legend> >+ <form action="placerequest.pl" method="post" name="form" id="hold-request-form"> > >- <input type="hidden" name="borrowernumber" value="[% patron.borrowernumber | html %]" /> >- <input type="hidden" name="type" value="str8" /> >+ <input type="hidden" name="borrowernumber" value="[% patron.borrowernumber | html %]" /> >+ <input type="hidden" name="type" value="str8" /> > >- [% FOREACH biblionumber IN biblionumbers %] >- <input type="hidden" name="biblionumber" value="[% biblionumber | html %]"/> >- [% END %] >- [% IF ( multi_hold ) %] >- <input type="hidden" name="multi_holds" id="multi_holds" value="1" /> >- <input type="hidden" name="bad_bibs" id="bad_bibs" value=""/> >- <input type="hidden" name="request" value="any"/> >- [% FOREACH biblioloo IN biblioloop %] >- <input type="hidden" name="title_[% biblioloo.biblionumber | html %]" value="[% biblioloo.title | html %]"/> >- <input type="hidden" name="rank_[% biblioloo.biblionumber | html %]" value="[% biblioloo.rank | html %]"/> >+ [% FOREACH biblionumber IN biblionumbers %] >+ <input type="hidden" name="biblionumber" value="[% biblionumber | html %]"/> > [% END %] >- [% ELSE %] > <input type="hidden" name="title" value="[% biblio.title | html %]" /> > <input type="hidden" name="rank-request" value="[% fixedRank | html %]" /> >- [% END # /IF multi_hold %] > > <ol> > <li> >@@ -468,63 +459,40 @@ > Not defined yet > [% END %] > </li> >- >- [% UNLESS ( multi_hold ) %] >- <li> >- <span class="label">Estimated priority:</span> >- <strong>[% fixedRank | html %]</strong> >- </li> >- [% END %] >- >+ <li> >+ <span class="label">Estimated priority:</span> >+ <strong>[% fixedRank | html %]</strong> >+ </li> > <li> > <label for="holdnotes">Notes:</label> > <textarea id="holdnotes" name="notes" cols="30" rows="1"></textarea> > </li> > <li> > <label for="pickup">Pickup at:</label> >- [% UNLESS ( multi_hold ) %] > <select name="pickup" id="pickup" > data-biblio-id="[% biblio.biblionumber | html %]" > data-patron-id="[% patron.borrowernumber | html %]" > data-pickup-location-source="biblio"> > [% PROCESS options_for_libraries libraries => Branches.pickup_locations({ search_params => { biblio => biblionumber, patron => patron }, selected => pickup }) %] >- [% ELSE %] >- <select name="pickup" id="pickup_multi" data-patron-id="[% patron.borrowernumber | html %]"> >- <option value="" selected="selected"></option> >- [% FOREACH pickup_location IN multi_pickup_locations %] >- <option value="[% pickup_location.branchcode | html %]">[% pickup_location.branchname | html %]</option> >- [% END %] >- [% END %] > </select> > </li> >- >- [% UNLESS ( multi_hold ) %] >- [% IF Koha.Preference('AllowHoldItemTypeSelection') %] >- <li> >- <label for="itemtype">Request specific item type:</label> >- <select name="itemtype" id="itemtype"> >- <option value="">Any item type</option> >- [%- FOREACH itemtype IN available_itemtypes %] >- <option value="[% itemtype | html %]">[% ItemTypes.GetDescription( itemtype ) | html %]</option> >- [%- END %] >- </select> >- </li> >- [% END %] >- [% END # /UNLESS multi_hold %] >- >+ [% IF Koha.Preference('AllowHoldItemTypeSelection') %] >+ <li> >+ <label for="itemtype">Request specific item type:</label> >+ <select name="itemtype" id="itemtype"> >+ <option value="">Any item type</option> >+ [%- FOREACH itemtype IN available_itemtypes %] >+ <option value="[% itemtype | html %]">[% ItemTypes.GetDescription( itemtype ) | html %]</option> >+ [%- END %] >+ </select> >+ </li> >+ [% END %] > [% IF ( reserve_in_future ) %] > <li> > <label for="from">Hold starts on date:</label> > <input id="reserve_date" name="reserve_date" id="from" size="10" type="text" data-date_to="expiration_date" class="flatpickr" data-flatpickr-futuredate="true" /> > </li> > [% END %] >- >- <li> >- <label for="to">Hold expires on date:</label> >- <input id="expiration_date" name="expiration_date" id="to" size="10" type="text" class="flatpickr" data-flatpickr-futuredate="true" /> >- </li> >- >- [% UNLESS ( multi_hold ) %] > <li> > <label for="requestany">Hold next available item </label> > [% IF force_hold_level == 'item' %] >@@ -546,246 +514,324 @@ > [% ELSE %] > <input type="hidden" name="holds_to_place_count" value="1" /> > [% END %] >- [% END # /UNLESS multi_hold %] > >+ <li> >+ <label for="to">Hold expires on date:</label> >+ <input id="expiration_date" name="expiration_date" id="to" size="10" type="text" class="flatpickr" data-flatpickr-futuredate="true" /> >+ </li> > <li id="non_priority_list_item"> > <label for="non_priority">Non priority hold:</label> > <input name="non_priority" id="non_priority" type="checkbox" /> > <span class="hint">A non priority hold doesn't prevent a current checkout from renewing</span> > </li> > </ol> >- >- [% UNLESS ( multi_hold ) %] >- <fieldset class="action"> >- [% IF ( patron.borrowernumber ) %] >- [% IF ( override_required ) %] >- <button type="submit" class="btn btn-default warning"><i class="fa fa-exclamation-triangle "></i> Place hold</button> >- [% ELSIF ( none_available ) %] >- <button type="submit" disabled="disabled" class="btn btn-default btn-disabled">Place hold</button> >- [% ELSE %] >- <button type="submit" class="btn btn-default">Place hold</button> >- [% END %] >+ <fieldset class="action"> >+ [% IF ( patron.borrowernumber ) %] >+ [% IF ( override_required ) %] >+ <button type="submit" class="btn btn-default warning"><i class="fa fa-exclamation-triangle "></i> Place hold</button> >+ [% ELSIF ( none_available ) %] >+ <button type="submit" disabled="disabled" class="btn btn-default btn-disabled">Place hold</button> >+ [% ELSE %] >+ <button type="submit" class="btn btn-default">Place hold</button> > [% END %] >- </fieldset> >+ [% END %] >+ </fieldset> > >- [% biblio = biblioloop.0 %] >+ [% biblio = biblioloop.0 %] > >- <ol> >- [% UNLESS Koha.Preference('item-level_itypes') %] >- <li> >- <span class="label">Item typeX:</span> >- [% biblio.itemtype.translated_description | html %] >- </li> >- [% END %] >+ <ol> >+ [% UNLESS Koha.Preference('item-level_itypes') %] >+ <li> >+ <span class="label">Item typeX:</span> >+ [% biblio.itemtype.translated_description | html %] >+ </li> >+ [% END %] > >- [% IF ( biblio.biblioitem.publicationyear ) %] >- <li> >- <span class="label">Publication year:</span> >- [% biblio.biblioitem.publicationyear | html %] >- </li> >- [% END %] >- </ol> >+ [% IF ( biblio.biblioitem.publicationyear ) %] >+ <li> >+ <span class="label">Publication year:</span> >+ [% biblio.biblioitem.publicationyear | html %] >+ </li> >+ [% END %] >+ </ol> > >- <h2 style="padding: 0 1em;"> >- Place a hold on a specific item >- [% IF force_hold_level == 'item' %] >- <span class="error"><em>(Required)</em></span> >- [% END %] >- </h2> >- >- <table id="requestspecific"> >- <thead> >- <tr> >- <th>Hold</th> >- <th>Allowed pickup locations</th> >- [% IF Koha.Preference('item-level_itypes') %] >- <th>Item type</th> >- [% END %] >- <th>Barcode</th> >- <th>Home library</th> >- <th>Last location</th> >- [% IF itemdata_ccode %] >- <th>Collection</th> >- [% END %] >- <th>Call number</th> >- <th>Copy number</th> >- [% IF itemdata_enumchron %] >- <th>Vol no.</th> >- [% END %] >- <th>Information</th> >- </tr> >- </thead> >- <tbody> >- [% SET selected = 0 %] >- [% FOREACH itemloo IN biblio.itemloop %] >- [% UNLESS ( itemloo.hide ) %] >- <tr class="[% itemloo.backgroundcolor | html %]"> >- <td> >- [% IF force_hold_level == 'record' # Patron has placed a record level hold previously for this record %] >- <span class="error"> >- <i class="fa fa-times fa-lg" title="Cannot be put on hold"></i> >- Hold must be record level >- </span> >- [% ELSIF ( itemloo.available ) %] >- <input type="radio" name="checkitem" value="[% itemloo.itemnumber | html %]" /> >- [% ELSIF ( itemloo.override ) %] >- <input type="radio" name="checkitem" class="needsoverride" value="[% itemloo.itemnumber | html %]" /> >- <i class="fa fa-exclamation-triangle fa-lg" style="color:gold" title="Requires override of hold policy"/></i> >- [% ELSE %] >- <span class="error"> >- <i class="fa fa-times fa-lg" title="Cannot be put on hold"></i> >- [% IF itemloo.not_holdable %] >- [% IF itemloo.not_holdable == 'damaged' %] >- <span>Item damaged</span> >- [% ELSIF itemloo.not_holdable == 'ageRestricted' %] >- <span>Age restricted</span> >- [% ELSIF itemloo.not_holdable == 'tooManyHoldsForThisRecord' %] >- <span>Exceeded max holds per record</span> >- [% ELSIF itemloo.not_holdable == 'tooManyReservesToday' %] >- <span>Daily hold limit reached for patron</span> >- [% ELSIF itemloo.not_holdable == 'tooManyReserves' %] >- <span>Too many holds</span> >- [% ELSIF itemloo.not_holdable == 'notReservable' %] >- <span>Not holdable</span> >- [% ELSIF itemloo.not_holdable == 'cannotReserveFromOtherBranches' %] >- <span>Patron is from different library</span> >- [% ELSIF itemloo.not_holdable == 'branchNotInHoldGroup' %] >- <span>Cannot place hold from patron's library</span> >- [% ELSIF itemloo.not_holdable == 'itemAlreadyOnHold' %] >- <span>Patron already has hold for this item</span> >- [% ELSIF itemloo.not_holdable == 'cannotBeTransferred' %] >- <span>Cannot be transferred to pickup library</span> >- [% ELSIF itemloo.not_holdable == 'pickupNotInHoldGroup' %] >- <span>Only pickup locations within the same hold group are allowed</span> >- [% ELSIF itemloo.not_holdable == 'noReservesAllowed' %] >- <span>No reserves are allowed on this item</span> >- [% ELSIF itemloo.not_holdable == 'libraryNotPickupLocation' %] >- <span>Library is not a pickup location</span> >- [% ELSIF itemloo.not_holdable == 'no_valid_pickup_location' %] >- <span>No valid pickup location</span> >- [% ELSE %] >- <span>[% itemloo.not_holdable | html %]</span> >- [% END %] >+ <h2 style="padding: 0 1em;"> >+ Place a hold on a specific item >+ [% IF force_hold_level == 'item' %] >+ <span class="error"><em>(Required)</em></span> >+ [% END %] >+ </h2> >+ >+ <table id="requestspecific"> >+ <thead> >+ <tr> >+ <th>Hold</th> >+ <th>Allowed pickup locations</th> >+ [% IF Koha.Preference('item-level_itypes') %] >+ <th>Item type</th> >+ [% END %] >+ <th>Barcode</th> >+ <th>Home library</th> >+ <th>Last location</th> >+ [% IF itemdata_ccode %] >+ <th>Collection</th> >+ [% END %] >+ <th>Call number</th> >+ <th>Copy number</th> >+ [% IF itemdata_enumchron %] >+ <th>Vol no.</th> >+ [% END %] >+ <th>Information</th> >+ </tr> >+ </thead> >+ <tbody> >+ [% SET selected = 0 %] >+ [% FOREACH itemloo IN biblio.itemloop %] >+ [% UNLESS ( itemloo.hide ) %] >+ <tr class="[% itemloo.backgroundcolor | html %]"> >+ <td> >+ [% IF force_hold_level == 'record' # Patron has placed a record level hold previously for this record %] >+ <span class="error"> >+ <i class="fa fa-times fa-lg" title="Cannot be put on hold"></i> >+ Hold must be record level >+ </span> >+ [% ELSIF ( itemloo.available ) %] >+ <input type="radio" name="checkitem" value="[% itemloo.itemnumber | html %]" /> >+ [% ELSIF ( itemloo.override ) %] >+ <input type="radio" name="checkitem" class="needsoverride" value="[% itemloo.itemnumber | html %]" /> >+ <i class="fa fa-exclamation-triangle fa-lg" style="color:gold" title="Requires override of hold policy"/></i> >+ [% ELSE %] >+ <span class="error"> >+ <i class="fa fa-times fa-lg" title="Cannot be put on hold"></i> >+ [% IF itemloo.not_holdable %] >+ [% IF itemloo.not_holdable == 'damaged' %] >+ <span>Item damaged</span> >+ [% ELSIF itemloo.not_holdable == 'ageRestricted' %] >+ <span>Age restricted</span> >+ [% ELSIF itemloo.not_holdable == 'tooManyHoldsForThisRecord' %] >+ <span>Exceeded max holds per record</span> >+ [% ELSIF itemloo.not_holdable == 'tooManyReservesToday' %] >+ <span>Daily hold limit reached for patron</span> >+ [% ELSIF itemloo.not_holdable == 'tooManyReserves' %] >+ <span>Too many holds</span> >+ [% ELSIF itemloo.not_holdable == 'notReservable' %] >+ <span>Not holdable</span> >+ [% ELSIF itemloo.not_holdable == 'cannotReserveFromOtherBranches' %] >+ <span>Patron is from different library</span> >+ [% ELSIF itemloo.not_holdable == 'branchNotInHoldGroup' %] >+ <span>Cannot place hold from patron's library</span> >+ [% ELSIF itemloo.not_holdable == 'itemAlreadyOnHold' %] >+ <span>Patron already has hold for this item</span> >+ [% ELSIF itemloo.not_holdable == 'cannotBeTransferred' %] >+ <span>Cannot be transferred to pickup library</span> >+ [% ELSIF itemloo.not_holdable == 'pickupNotInHoldGroup' %] >+ <span>Only pickup locations within the same hold group are allowed</span> >+ [% ELSIF itemloo.not_holdable == 'noReservesAllowed' %] >+ <span>No reserves are allowed on this item</span> >+ [% ELSIF itemloo.not_holdable == 'libraryNotPickupLocation' %] >+ <span>Library is not a pickup location</span> >+ [% ELSIF itemloo.not_holdable == 'no_valid_pickup_location' %] >+ <span>No valid pickup location</span> >+ [% ELSE %] >+ <span>[% itemloo.not_holdable | html %]</span> > [% END %] >- </span> >- [% END # /IF force_hold_level %] >- </td> >- <td> >- [% IF (itemloo.pickup_locations_count > 0) %] >- <select name="item_pickup_[% itemloo.itemnumber | html %]" class="pickup_locations" style="width:100%;" >- data-item-id="[% itemloo.itemnumber | html %]" >- data-patron-id="[% patron.borrowernumber | html %]" >- data-pickup-location-source="item"> >- [% IF (itemloo.default_pickup_location) %] >- <option value="[% itemloo.default_pickup_location.branchcode | html %]" selected="selected">[% itemloo.default_pickup_location.branchname | html %]</option> >- [% END %] >- </select> >- [% END %] >- </td> >- [% IF Koha.Preference('item-level_itypes') %] >- <td> >- [% UNLESS ( noItemTypeImages ) %] >- [% IF ( itemloo.itemtype.image_location) %]<img src="[% itemloo.itemtype.image_location | html %]" alt="" /> <br /> [% END %] > [% END %] >- [% itemloo.itemtype.translated_description | html %] >- </td> >+ </span> >+ [% END # /IF force_hold_level %] >+ </td> >+ <td> >+ [% IF (itemloo.pickup_locations_count > 0) %] >+ <select name="item_pickup_[% itemloo.itemnumber | html %]" class="pickup_locations" style="width:100%;" >+ data-item-id="[% itemloo.itemnumber | html %]" >+ data-patron-id="[% patron.borrowernumber | html %]" >+ data-pickup-location-source="item"> >+ [% IF (itemloo.default_pickup_location) %] >+ <option value="[% itemloo.default_pickup_location.branchcode | html %]" selected="selected">[% itemloo.default_pickup_location.branchname | html %]</option> > [% END %] >+ </select> >+ [% END %] >+ </td> >+ [% IF Koha.Preference('item-level_itypes') %] > <td> >- [% itemloo.barcode | html %] >- </td> >- <td> >- [% Branches.GetName( itemloo.homebranch ) | html %] >+ [% UNLESS ( noItemTypeImages ) %] >+ [% IF ( itemloo.itemtype.image_location) %]<img src="[% itemloo.itemtype.image_location | html %]" alt="" /> <br /> [% END %] >+ [% END %] >+ [% itemloo.itemtype.translated_description | html %] > </td> >+ [% END %] >+ <td> >+ [% itemloo.barcode | html %] >+ </td> >+ <td> >+ [% Branches.GetName( itemloo.homebranch ) | html %] >+ </td> >+ <td> >+ [% Branches.GetName( itemloo.holdingbranch ) | html %] >+ </td> >+ [% IF itemdata_ccode %] > <td> >- [% Branches.GetName( itemloo.holdingbranch ) | html %] >+ [% IF ( itemloo.ccode ) %][% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.ccode', authorised_value => itemloo.ccode ) | html %][% END %] > </td> >- [% IF itemdata_ccode %] >- <td> >- [% IF ( itemloo.ccode ) %][% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.ccode', authorised_value => itemloo.ccode ) | html %][% END %] >- </td> >- [% END %] >+ [% END %] >+ <td> >+ [% itemloo.itemcallnumber | html %] >+ </td> >+ <td> >+ [% IF ( itemloo.copynumber ) %][% itemloo.copynumber | html %][% ELSE %] [% END %] >+ </td> >+ [% IF itemdata_enumchron %] > <td> >- [% itemloo.itemcallnumber | html %] >+ [% itemloo.enumchron | html %] > </td> >+ [% END %] >+ [% IF ( itemloo.onloan ) %] >+ <td data-order="[% itemloo.date_due | html %]"> >+ <span class="checkedout">Due [% itemloo.date_due | $KohaDates as_due_date => 1 %]</span> >+ [% ELSE %] > <td> >- [% IF ( itemloo.copynumber ) %][% itemloo.copynumber | html %][% ELSE %] [% END %] >- </td> >- [% IF itemdata_enumchron %] >- <td> >- [% itemloo.enumchron | html %] >- </td> >- [% END %] >- [% IF ( itemloo.onloan ) %] >- <td data-order="[% itemloo.date_due | html %]"> >- <span class="checkedout">Due [% itemloo.date_due | $KohaDates as_due_date => 1 %]</span> >- [% ELSE %] >- <td> >- [% IF ( itemloo.transfertwhen ) %] >- In transit from [% Branches.GetName( itemloo.transfertfrom ) | html %], >- to [% Branches.GetName( itemloo.transfertto ) | html %], since [% itemloo.transfertwhen | html %] >- [% END %] >- [% END %] >+ [% IF ( itemloo.transfertwhen ) %] >+ In transit from [% Branches.GetName( itemloo.transfertfrom ) | html %], >+ to [% Branches.GetName( itemloo.transfertto ) | html %], since [% itemloo.transfertwhen | html %] >+ [% END %] >+ [% END %] > >- [% IF ( itemloo.reservedate ) %] >- [% IF ( itemloo.nocancel ) %] >- Can't be cancelled when item is in transit >+ [% IF ( itemloo.reservedate ) %] >+ [% IF ( itemloo.nocancel ) %] >+ Can't be cancelled when item is in transit >+ [% ELSE %] >+ [% IF ( itemloo.waitingdate ) %]Waiting[% ELSE %]On hold[% END %] >+ [% IF ( itemloo.canreservefromotherbranches ) %] >+ for <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% itemloo.ReservedFor.borrowernumber | uri %]">[% itemloo.ReservedFor.firstname | html %] [% itemloo.ReservedFor.surname | html %]</a> >+ [% END %] >+ [% IF ( itemloo.waitingdate ) %]at[% ELSE %]expected at[% END %] >+ [% Branches.GetName( itemloo.ExpectedAtLibrary ) | html %] since >+ [% IF ( itemloo.waitingdate ) %] >+ [% itemloo.waitingdate | $KohaDates %] > [% ELSE %] >- [% IF ( itemloo.waitingdate ) %]Waiting[% ELSE %]On hold[% END %] >- [% IF ( itemloo.canreservefromotherbranches ) %] >- for <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% itemloo.ReservedFor.borrowernumber | uri %]">[% itemloo.ReservedFor.firstname | html %] [% itemloo.ReservedFor.surname | html %]</a> >+ [% IF ( itemloo.reservedate ) %] >+ [% itemloo.reservedate | html %] > [% END %] >- [% IF ( itemloo.waitingdate ) %]at[% ELSE %]expected at[% END %] >- [% Branches.GetName( itemloo.ExpectedAtLibrary ) | html %] since >- [% IF ( itemloo.waitingdate ) %] >- [% itemloo.waitingdate | $KohaDates %] >- [% ELSE %] >- [% IF ( itemloo.reservedate ) %] >- [% itemloo.reservedate | html %] >- [% END %] >- [% END %]. >- <a class="info cancel-hold" href="modrequest.pl?CancelBiblioNumber=[% itemloo.biblionumber | html %]&CancelBorrowerNumber=[% itemloo.ReservedFor.borrowernumber | html %]&CancelItemnumber=[% itemloo.itemnumber | html %]">Cancel hold</a> >- [% END # /IF itemloo.nocancel %] >- [% ELSE %] >- Not on hold >- [% END # /IF itemloo.reservedate %] >+ [% END %]. >+ <a class="info cancel-hold" href="modrequest.pl?CancelBiblioNumber=[% itemloo.biblionumber | html %]&CancelBorrowerNumber=[% itemloo.ReservedFor.borrowernumber | html %]&CancelItemnumber=[% itemloo.itemnumber | html %]">Cancel hold</a> >+ [% END # /IF itemloo.nocancel %] >+ [% ELSE %] >+ Not on hold >+ [% END # /IF itemloo.reservedate %] > >- [% IF itemloo.item_level_holds == "N" %] >- <br/>Item level hold not allowed from OPAC >- [% ELSIF itemloo.item_level_holds == "F" %] >- <br/>Item level hold forced from OPAC >- [% END %] >+ [% IF itemloo.item_level_holds == "N" %] >+ <br/>Item level hold not allowed from OPAC >+ [% ELSIF itemloo.item_level_holds == "F" %] >+ <br/>Item level hold forced from OPAC >+ [% END %] > >- [% IF ( itemloo.itemlost ) %] >- <span class="lost">[% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.itemlost', authorised_value => itemloo.itemlost ) | html %]</span> >- [% END %] >+ [% IF ( itemloo.itemlost ) %] >+ <span class="lost">[% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.itemlost', authorised_value => itemloo.itemlost ) | html %]</span> >+ [% END %] > >- [% IF ( itemloo.damaged ) %] >- <span class="dmg">[% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.damaged', authorised_value => itemloo.damaged ) | html %]</span> >- [% END %] >+ [% IF ( itemloo.damaged ) %] >+ <span class="dmg">[% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.damaged', authorised_value => itemloo.damaged ) | html %]</span> >+ [% END %] > >- [% IF ( itemloo.withdrawn ) %] >- <span class="wdn">[% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.withdrawn', authorised_value => itemloo.withdrawn ) | html %]</span> >- [% END %] >+ [% IF ( itemloo.withdrawn ) %] >+ <span class="wdn">[% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.withdrawn', authorised_value => itemloo.withdrawn ) | html %]</span> >+ [% END %] >+ >+ [% IF ( itemloo.notforloan ) %] >+ <span class="nfl">Not for loan ([% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.notforloan', authorised_value => itemloo.notforloan ) | html %])</span> >+ [% END %] >+ </td> >+ </tr> >+ [% END # / UNLESS itemloo.hide %] >+ [% END # /FOREACH itemloo %] >+ </tbody> >+ </table> <!-- /#requestspecific --> >+ >+ [% IF hiddencount %] >+ <form> >+ <p class="hiddencount"> >+ <a href="request.pl?biblionumber=[% biblio.biblionumber | uri %]&borrowernumber=[% borrowernumber | uri %]&showallitems=1">Show all items ([% biblio.hiddencount | html %] hidden)</a> >+ </p> >+ </form> >+ [% END # /IF hiddencount %] >+ >+ <fieldset class="action"> >+ [% IF ( patron AND patron.borrowernumber ) %] >+ [% IF ( override_required ) %] >+ <button type="submit" class="btn btn-default warning"><i class="fa fa-exclamation-triangle "></i> Place holds</button> >+ [% ELSIF ( none_available ) %] >+ <button class="btn btn-default" type="submit">Place holds</button> >+ [% ELSE %] >+ <button type="submit" class="btn btn-default">Place hold</button> >+ [% END %] >+ [% END # /IF patron %] >+ </fieldset> <!-- /.action --> >+ </form> <!-- /#hold-request-form --> >+ </fieldset> <!-- /.rows --> >+ [% ELSE # Multi-hold %] >+ <fieldset class="rows"> >+ <legend>Hold details</legend> >+ <form action="placerequest.pl" method="post" name="form" id="hold-request-form"> >+ >+ <input type="hidden" name="borrowernumber" value="[% patron.borrowernumber | html %]" /> >+ <input type="hidden" name="type" value="str8" /> >+ >+ [% FOREACH biblionumber IN biblionumbers %] >+ <input type="hidden" name="biblionumber" value="[% biblionumber | html %]"/> >+ [% END %] >+ <input type="hidden" name="multi_holds" id="multi_holds" value="1" /> >+ <input type="hidden" name="bad_bibs" id="bad_bibs" value=""/> >+ <input type="hidden" name="request" value="any"/> >+ [% FOREACH biblioloo IN biblioloop %] >+ <input type="hidden" name="title_[% biblioloo.biblionumber | html %]" value="[% biblioloo.title | html %]"/> >+ <input type="hidden" name="rank_[% biblioloo.biblionumber | html %]" value="[% biblioloo.rank | html %]"/> >+ [% END %] >+ >+ <ol> >+ >+ <li> >+ <span class="label">Patron:</span> >+ [% IF ( patron.borrowernumber ) %] >+ <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% patron.borrowernumber | uri %]">[% patron.firstname | html %] [% patron.surname | html %] ([% patron.cardnumber | html %])</a> >+ [% ELSE %] >+ Not defined yet >+ [% END %] >+ </li> >+ >+ <li> >+ <label for="holdnotes">Notes:</label> >+ <textarea id="holdnotes" name="notes" cols="30" rows="1"></textarea> >+ </li> >+ <li> >+ <label for="pickup">Pickup at:</label> >+ <select name="pickup" id="pickup_multi" data-patron-id="[% patron.borrowernumber | html %]"> >+ <option value="" selected="selected"></option> >+ [% FOREACH pickup_location IN multi_pickup_locations %] >+ <option value="[% pickup_location.branchcode | html %]">[% pickup_location.branchname | html %]</option> >+ [% END %] >+ </select> >+ </li> >+ >+ >+ [% IF ( reserve_in_future ) %] >+ <li> >+ <label for="from">Hold starts on date:</label> >+ <input id="reserve_date" name="reserve_date" id="from" size="10" type="text" data-date_to="expiration_date" class="flatpickr" data-flatpickr-futuredate="true" /> >+ </li> >+ [% END %] >+ >+ <li> >+ <label for="to">Hold expires on date:</label> >+ <input id="expiration_date" name="expiration_date" id="to" size="10" type="text" class="flatpickr" data-flatpickr-futuredate="true" /> >+ </li> >+ >+ >+ <li id="non_priority_list_item"> >+ <label for="non_priority">Non priority hold:</label> >+ <input name="non_priority" id="non_priority" type="checkbox" /> >+ <span class="hint">A non priority hold doesn't prevent a current checkout from renewing</span> >+ </li> >+ </ol> > >- [% IF ( itemloo.notforloan ) %] >- <span class="nfl">Not for loan ([% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.notforloan', authorised_value => itemloo.notforloan ) | html %])</span> >- [% END %] >- </td> >- </tr> >- [% END # / UNLESS itemloo.hide %] >- [% END # /FOREACH itemloo %] >- </tbody> >- </table> <!-- /#requestspecific --> >- >- [% IF hiddencount %] >- <form> >- <p class="hiddencount"> >- <a href="request.pl?biblionumber=[% biblio.biblionumber | uri %]&borrowernumber=[% borrowernumber | uri %]&showallitems=1">Show all items ([% biblio.hiddencount | html %] hidden)</a> >- </p> >- </form> >- [% END # /IF hiddencount %] >- >- [% ELSE # /UNLESS multi_hold %] > > <table id="requesttitles"> > <tr> >@@ -879,7 +925,6 @@ > [% END # /FOREACH biblioloo %] > </table> <!-- /#requesttitles --> > >- [% END # /UNLESS multi_hold %] > > <fieldset class="action"> > [% IF ( patron AND patron.borrowernumber ) %] >@@ -888,17 +933,14 @@ > [% ELSIF ( none_available ) %] > <button class="btn btn-default" type="submit">Place holds</button> > [% ELSE %] >- [% IF ( multi_hold ) %] >- <button type="submit" class="btn btn-default" id="multi_hold_submit">Place holds</button> >- [% ELSE %] >- <button type="submit" class="btn btn-default">Place hold</button> >- [% END %] >+ <button type="submit" class="btn btn-default" id="multi_hold_submit">Place holds</button> > [% END %] > [% END # /IF patron %] > </fieldset> <!-- /.action --> > </form> <!-- /#hold-request-form --> > </fieldset> <!-- /.rows --> >- [% END %] >+ [% END %] >+ [% END %] > > [% UNLESS ( patron ) %] > [% UNLESS borrowers %] >-- >2.30.2
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 30579
:
133549
|
133550
|
133574
|
133575
|
133689
|
133690
|
134270
|
134468
|
134469
|
134491
|
134492
|
134493
|
134893
|
134894
|
140951
|
140952
|
140953
|
140954
|
148835
|
148898
|
149271
|
150767
|
150786
|
151483
|
151493
|
151558
|
154881
|
154882
|
154883
|
154886
|
157787
|
157788
|
157789
|
157790
|
157791
|
157792
|
157937
|
157938
|
157939
|
157940
|
157941
|
157942
|
157943
|
163260
|
163261
|
163262
|
163263
|
163264
|
163265
|
163266
|
163267
|
166012
|
166013
|
166014
|
166015
|
166016
|
166017
|
166018
|
166019
|
166034
|
166035
|
166036
|
166037
|
166038
|
166039
|
166040
|
166041
|
166074
|
166075
|
166076
|
166077
|
166078
|
166079
|
166080
|
166081
|
166082
|
166264
|
166265
|
166266
|
166267
|
166268
|
166269
|
166270
|
166271
|
166272
|
166273
|
166274
|
166275