Bugzilla – Attachment 143052 Details for
Bug 32028
Add page-section to various administration pages (part 2)
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 32028: Add page-section to smart-rules.tt and fix markup errors
Bug-32028-Add-page-section-to-smart-rulestt-and-fi.patch (text/plain), 151.54 KB, created by
Lucas Gass (lukeg)
on 2022-11-02 23:39:21 UTC
(
hide
)
Description:
Bug 32028: Add page-section to smart-rules.tt and fix markup errors
Filename:
MIME Type:
Creator:
Lucas Gass (lukeg)
Created:
2022-11-02 23:39:21 UTC
Size:
151.54 KB
patch
obsolete
>From 3a922dca188bdcf448119acaaf77f54159b46d72 Mon Sep 17 00:00:00 2001 >From: Lucas Gass <lucas@bywatersolutions.com> >Date: Wed, 2 Nov 2022 23:33:42 +0000 >Subject: [PATCH] Bug 32028: Add page-section to smart-rules.tt and fix markup > errors > >To test: >1. Apply patch >2. Go to Adminstration > Circulation and fine rules >3. Look at the page-section added and make sure each looks good. >4. Use an HTML validator to check and make sure the HTML looks good. > >Note: There are indentation changes and some fixes to bad markup ( stray tags, etc ). Since there were quite a few mark-up errors I am attaching the smart-rules.tt patch by itself. The rest of the Adminstration pages mentioned will be in a single patch that is incoming! >--- > .../prog/en/modules/admin/smart-rules.tt | 2166 +++++++++-------- > 1 file changed, 1089 insertions(+), 1077 deletions(-) > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/smart-rules.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/smart-rules.tt >index a850d9dff46..2ada871baf3 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/smart-rules.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/smart-rules.tt >@@ -63,886 +63,894 @@ > Defining circulation and fine rules for all libraries > [% END %] > </h1> >- <div class="help"> >- <p>The rules are applied from most specific to less specific, using the first found in this order:</p> >- <ul> >- <li>same library, same patron category, same item type</li> >- <li>same library, same patron category, all item types</li> >- <li>same library, all patron categories, same item type</li> >- <li>same library, all patron categories, all item types</li> >- <li>default (all libraries), same patron category, same item type</li> >- <li>default (all libraries), same patron category, all item types</li> >- <li>default (all libraries), all patron categories, same item type</li> >- <li>default (all libraries), all patron categories, all item types</li> >- </ul> >+ <div class="page-section"> >+ <div class="help"> >+ <p>The rules are applied from most specific to less specific, using the first found in this order:</p> >+ <ul> >+ <li>same library, same patron category, same item type</li> >+ <li>same library, same patron category, all item types</li> >+ <li>same library, all patron categories, same item type</li> >+ <li>same library, all patron categories, all item types</li> >+ <li>default (all libraries), same patron category, same item type</li> >+ <li>default (all libraries), same patron category, all item types</li> >+ <li>default (all libraries), all patron categories, same item type</li> >+ <li>default (all libraries), all patron categories, all item types</li> >+ </ul> > >- <p>Where an itemtype has a parent, the rule will display as "Parent->Child" and the number of >- current checkouts allowed will be limited to either the maximum for the parent (counting sibling types) >- or the specific rule's type, whichever is less.</p> >- <p>To modify a rule, create a new one with the same patron category and item type.</p> >- </div> >- <div> >- [% UNLESS restricted_to_own_library %] >- <form method="get" action="/cgi-bin/koha/admin/smart-rules.pl" id="selectlibrary"> >- Select a library : >- <select name="branch" id="branch" style="width:20em;"> >- <option value="*">Standard rules for all libraries</option> >- [% PROCESS options_for_libraries libraries => Branches.all( selected => current_branch, unfiltered => 1 ) %] >- </select> >- </form> >- [% IF ( definedbranch ) %] >- <form action="/cgi-bin/koha/admin/clone-rules.pl" method="post"> >- <label for="tobranch"><strong>Clone these rules to:</strong></label> >- <input type="hidden" name="frombranch" value="[% current_branch | html %]" /> >- <select name="tobranch" id="tobranch"> >- [% PROCESS options_for_libraries libraries => Branches.all( unfiltered => 1 ) %] >+ <p>Where an itemtype has a parent, the rule will display as "Parent->Child" and the number of >+ current checkouts allowed will be limited to either the maximum for the parent (counting sibling types) >+ or the specific rule's type, whichever is less.</p> >+ <p>To modify a rule, create a new one with the same patron category and item type.</p> >+ </div> >+ <div> >+ [% UNLESS restricted_to_own_library %] >+ <form method="get" action="/cgi-bin/koha/admin/smart-rules.pl" id="selectlibrary"> >+ Select a library : >+ <select name="branch" id="branch" style="width:20em;"> >+ <option value="*">Standard rules for all libraries</option> >+ [% PROCESS options_for_libraries libraries => Branches.all( selected => current_branch, unfiltered => 1 ) %] > </select> >- <input type="submit" id="clone_rules" value="Clone" /> > </form> >+ [% IF ( definedbranch ) %] >+ <form action="/cgi-bin/koha/admin/clone-rules.pl" method="post"> >+ <label for="tobranch"><strong>Clone these rules to:</strong></label> >+ <input type="hidden" name="frombranch" value="[% current_branch | html %]" /> >+ <select name="tobranch" id="tobranch"> >+ [% PROCESS options_for_libraries libraries => Branches.all( unfiltered => 1 ) %] >+ </select> >+ <input type="submit" id="clone_rules" value="Clone" /> >+ </form> >+ [% END %] > [% END %] >- [% END %] > >- <form method="post" action="/cgi-bin/koha/admin/smart-rules.pl"> >- <input type="hidden" name="op" value="add" /> >- <input type="hidden" name="branch" value="[% current_branch | html %]"/> >- <table id="default-circulation-rules"> >- <thead> >- <tr> >- <th> </th> >- <th class="fixed_sort">Patron category</th> >- <th> </th> >- <th class="fixed_sort">Item type</th> >- <th class="noExport">Actions</th> >- <th>Note</th> >- <th>Current checkouts allowed</th> >- <th>Current on-site checkouts allowed</th> >- <th>Loan period</th> >- <th>Days mode</th> >- <th>Unit</th> >- <th>Hard due date</th> >- <th>Decreased loan period for high holds (day)</th> >- <th>Fine amount</th> >- <th>Fine charging interval</th> >- <th>When to charge</th> >- <th>Fine grace period</th> >- <th>Overdue fines cap (amount)</th> >- <th>Cap fine at replacement price</th> >- <th>Suspension in days (day)</th> >- <th>Max. suspension duration (day)</th> >- <th>Suspension charging interval</th> >- <th>Renewals allowed (count)</th> >- [% IF Koha.Preference('UnseenRenewals') %] >- <th>Unseen renewals allowed (count)</th> >- [% END %] >- <th>Renewal period</th> >- <th>No renewal before</th> >- <th>Automatic renewal</th> >- <th>No automatic renewal after</th> >- <th>No automatic renewal after (hard limit)</th> >- <th>Holds allowed (total)</th> >- <th>Holds allowed (daily)</th> >- <th>Holds per record (count)</th> >- <th>On shelf holds allowed</th> >- <th>OPAC item level holds</th> >- [% IF Koha.Preference('ArticleRequests') %] >- <th>Article requests</th> >- [% END %] >- <th>Rental discount (%)</th> >- [% IF Koha.Preference('UseRecalls') %] >- <th>Recalls allowed (total)</th> >- <th>Recalls per record (count)</th> >- <th>On shelf recalls allowed</th> >- <th>Recall due date interval (day)</th> >- <th>Recall overdue fine amount</th> >- <th>Recall pickup period (day)</th> >- [% END %] >- <th class="noExport">Actions</th> >- </tr> >- </thead> >- <tbody> >- [% SET row_count = 0 %] >- [% FOREACH c IN categorycodes %] >- [% SET c = '' UNLESS c.defined %] >- [% FOREACH i IN itemtypes %] >- [% SET i = '' UNLESS i.defined %] >- [% SET note = all_rules.$c.$i.note %] >- [% SET maxissueqty = all_rules.$c.$i.maxissueqty %] >- [% SET maxonsiteissueqty = all_rules.$c.$i.maxonsiteissueqty %] >- [% SET issuelength = all_rules.$c.$i.issuelength %] >- [% SET daysmode = all_rules.$c.$i.daysmode %] >- [% SET lengthunit = all_rules.$c.$i.lengthunit %] >- [% SET hardduedate = all_rules.$c.$i.hardduedate %] >- [% SET hardduedatecompare = all_rules.$c.$i.hardduedatecompare %] >- [% SET fine = all_rules.$c.$i.fine %] >- [% SET chargeperiod = all_rules.$c.$i.chargeperiod %] >- [% SET chargeperiod_charge_at = all_rules.$c.$i.chargeperiod_charge_at %] >- [% SET firstremind = all_rules.$c.$i.firstremind %] >- [% SET overduefinescap = all_rules.$c.$i.overduefinescap %] >- [% SET cap_fine_to_replacement_price = all_rules.$c.$i.cap_fine_to_replacement_price %] >- [% SET finedays = all_rules.$c.$i.finedays %] >- [% SET maxsuspensiondays = all_rules.$c.$i.maxsuspensiondays %] >- [% SET suspension_chargeperiod = all_rules.$c.$i.suspension_chargeperiod %] >- [% SET renewalsallowed = all_rules.$c.$i.renewalsallowed %] >- [% SET unseenrenewalsallowed = all_rules.$c.$i.unseen_renewals_allowed %] >- [% SET renewalperiod = all_rules.$c.$i.renewalperiod %] >- [% SET norenewalbefore = all_rules.$c.$i.norenewalbefore %] >- [% SET auto_renew = all_rules.$c.$i.auto_renew %] >- [% SET no_auto_renewal_after = all_rules.$c.$i.no_auto_renewal_after %] >- [% SET no_auto_renewal_after_hard_limit = all_rules.$c.$i.no_auto_renewal_after_hard_limit %] >- [% SET reservesallowed = all_rules.$c.$i.reservesallowed %] >- [% SET holds_per_day = all_rules.$c.$i.holds_per_day %] >- [% SET holds_per_record = all_rules.$c.$i.holds_per_record %] >- [% SET onshelfholds = all_rules.$c.$i.onshelfholds %] >- [% SET opacitemholds = all_rules.$c.$i.opacitemholds %] >- [% SET article_requests = all_rules.$c.$i.article_requests %] >- [% SET rentaldiscount = all_rules.$c.$i.rentaldiscount %] >- [% SET decreaseloanholds = all_rules.$c.$i.decreaseloanholds %] >- [% SET recalls_allowed = all_rules.$c.$i.recalls_allowed %] >- [% SET recalls_per_record = all_rules.$c.$i.recalls_per_record %] >- [% SET on_shelf_recalls = all_rules.$c.$i.on_shelf_recalls %] >- [% SET recall_due_date_interval = all_rules.$c.$i.recall_due_date_interval %] >- [% SET recall_overdue_fine = all_rules.$c.$i.recall_overdue_fine %] >- [% SET recall_shelf_time = all_rules.$c.$i.recall_shelf_time %] >+ <form method="post" action="/cgi-bin/koha/admin/smart-rules.pl"> >+ <input type="hidden" name="op" value="add" /> >+ <input type="hidden" name="branch" value="[% current_branch | html %]"/> >+ <table id="default-circulation-rules"> >+ <thead> >+ <tr> >+ <th> </th> >+ <th class="fixed_sort">Patron category</th> >+ <th> </th> >+ <th class="fixed_sort">Item type</th> >+ <th class="noExport">Actions</th> >+ <th>Note</th> >+ <th>Current checkouts allowed</th> >+ <th>Current on-site checkouts allowed</th> >+ <th>Loan period</th> >+ <th>Days mode</th> >+ <th>Unit</th> >+ <th>Hard due date</th> >+ <th>Decreased loan period for high holds (day)</th> >+ <th>Fine amount</th> >+ <th>Fine charging interval</th> >+ <th>When to charge</th> >+ <th>Fine grace period</th> >+ <th>Overdue fines cap (amount)</th> >+ <th>Cap fine at replacement price</th> >+ <th>Suspension in days (day)</th> >+ <th>Max. suspension duration (day)</th> >+ <th>Suspension charging interval</th> >+ <th>Renewals allowed (count)</th> >+ [% IF Koha.Preference('UnseenRenewals') %] >+ <th>Unseen renewals allowed (count)</th> >+ [% END %] >+ <th>Renewal period</th> >+ <th>No renewal before</th> >+ <th>Automatic renewal</th> >+ <th>No automatic renewal after</th> >+ <th>No automatic renewal after (hard limit)</th> >+ <th>Holds allowed (total)</th> >+ <th>Holds allowed (daily)</th> >+ <th>Holds per record (count)</th> >+ <th>On shelf holds allowed</th> >+ <th>OPAC item level holds</th> >+ [% IF Koha.Preference('ArticleRequests') %] >+ <th>Article requests</th> >+ [% END %] >+ <th>Rental discount (%)</th> >+ [% IF Koha.Preference('UseRecalls') %] >+ <th>Recalls allowed (total)</th> >+ <th>Recalls per record (count)</th> >+ <th>On shelf recalls allowed</th> >+ <th>Recall due date interval (day)</th> >+ <th>Recall overdue fine amount</th> >+ <th>Recall pickup period (day)</th> >+ [% END %] >+ <th class="noExport">Actions</th> >+ </tr> >+ </thead> >+ <tbody> >+ [% SET row_count = 0 %] >+ [% FOREACH c IN categorycodes %] >+ [% SET c = '' UNLESS c.defined %] >+ [% FOREACH i IN itemtypes %] >+ [% SET i = '' UNLESS i.defined %] >+ [% SET note = all_rules.$c.$i.note %] >+ [% SET maxissueqty = all_rules.$c.$i.maxissueqty %] >+ [% SET maxonsiteissueqty = all_rules.$c.$i.maxonsiteissueqty %] >+ [% SET issuelength = all_rules.$c.$i.issuelength %] >+ [% SET daysmode = all_rules.$c.$i.daysmode %] >+ [% SET lengthunit = all_rules.$c.$i.lengthunit %] >+ [% SET hardduedate = all_rules.$c.$i.hardduedate %] >+ [% SET hardduedatecompare = all_rules.$c.$i.hardduedatecompare %] >+ [% SET fine = all_rules.$c.$i.fine %] >+ [% SET chargeperiod = all_rules.$c.$i.chargeperiod %] >+ [% SET chargeperiod_charge_at = all_rules.$c.$i.chargeperiod_charge_at %] >+ [% SET firstremind = all_rules.$c.$i.firstremind %] >+ [% SET overduefinescap = all_rules.$c.$i.overduefinescap %] >+ [% SET cap_fine_to_replacement_price = all_rules.$c.$i.cap_fine_to_replacement_price %] >+ [% SET finedays = all_rules.$c.$i.finedays %] >+ [% SET maxsuspensiondays = all_rules.$c.$i.maxsuspensiondays %] >+ [% SET suspension_chargeperiod = all_rules.$c.$i.suspension_chargeperiod %] >+ [% SET renewalsallowed = all_rules.$c.$i.renewalsallowed %] >+ [% SET unseenrenewalsallowed = all_rules.$c.$i.unseen_renewals_allowed %] >+ [% SET renewalperiod = all_rules.$c.$i.renewalperiod %] >+ [% SET norenewalbefore = all_rules.$c.$i.norenewalbefore %] >+ [% SET auto_renew = all_rules.$c.$i.auto_renew %] >+ [% SET no_auto_renewal_after = all_rules.$c.$i.no_auto_renewal_after %] >+ [% SET no_auto_renewal_after_hard_limit = all_rules.$c.$i.no_auto_renewal_after_hard_limit %] >+ [% SET reservesallowed = all_rules.$c.$i.reservesallowed %] >+ [% SET holds_per_day = all_rules.$c.$i.holds_per_day %] >+ [% SET holds_per_record = all_rules.$c.$i.holds_per_record %] >+ [% SET onshelfholds = all_rules.$c.$i.onshelfholds %] >+ [% SET opacitemholds = all_rules.$c.$i.opacitemholds %] >+ [% SET article_requests = all_rules.$c.$i.article_requests %] >+ [% SET rentaldiscount = all_rules.$c.$i.rentaldiscount %] >+ [% SET decreaseloanholds = all_rules.$c.$i.decreaseloanholds %] >+ [% SET recalls_allowed = all_rules.$c.$i.recalls_allowed %] >+ [% SET recalls_per_record = all_rules.$c.$i.recalls_per_record %] >+ [% SET on_shelf_recalls = all_rules.$c.$i.on_shelf_recalls %] >+ [% SET recall_due_date_interval = all_rules.$c.$i.recall_due_date_interval %] >+ [% SET recall_overdue_fine = all_rules.$c.$i.recall_overdue_fine %] >+ [% SET recall_shelf_time = all_rules.$c.$i.recall_shelf_time %] > >- [% SET show_rule = note || maxissueqty || maxonsiteissueqty || issuelength || daysmode || lengthunit || hardduedate || hardduedatecompare || fine || chargeperiod || chargeperiod_charge_at || firstremind || overduefinescap || cap_fine_to_replacement_price || finedays || maxsuspensiondays || suspension_chargeperiod || renewalsallowed || unseenrenewalsallowed || renewalperiod || norenewalbefore || auto_renew || no_auto_renewal_after || no_auto_renewal_after_hard_limit || reservesallowed || holds_per_day || holds_per_record || onshelfholds || opacitemholds || article_requests || rentaldiscount || decreaseloanholds || recalls_allowed || recalls_per_record || on_shelf_recalls || recall_due_date_interval || recall_overdue_fine || recall_shelf_time %] >- [% IF show_rule %] >- [% SET row_count = row_count + 1 %] >- <tr row_countd="row_[% row_count | html %]"> >- <td>[% IF ( c == undef ) %] >- 1 >- [% ELSE %] >- 0 >- [% END %]</td> >- <td> >- [% IF c == undef %] >- <em>All</em> >- [% ELSE %] >- [% Categories.GetName(c) | html %] >- [% END %] >- </td> >- <td>[% IF ( i == undef ) %] >- 1 >- [% ELSE %] >- 0 >- [% END %]</td> >- <td> >- [% IF i == undef %] >- <em>All</em> >- [% ELSE %] >- [% ItemTypes.GetDescription(i,1) | html %] >- [% END %] >- </td> >- <td class="actions"> >- <a href="#" class="editrule btn btn-default btn-xs"><i class="fa fa-pencil"></i> Edit</a> >- <a class="btn btn-default btn-xs delete" href="/cgi-bin/koha/admin/smart-rules.pl?op=delete&itemtype=[% i || '*' | html %]&categorycode=[% c || '*' | html %]&branch=[% current_branch | html %]"><i class="fa fa-trash"></i> Delete</a> >- </td> >- <td> >- [% IF note.defined && note != '' %] >- <a name="viewnote" data-toggle="popover" title="Note" data-content="[% note | html %]" data-placement="top" data-trigger="hover">View note</a> >- [% ELSE %]<span> </span>[% END %] >- </td> >- <td> >- [% IF maxissueqty.defined && maxissueqty != '' %] >- [% maxissueqty | html %] >- [% ELSE %] >- <span>Unlimited</span> >- [% END %] >- </td> >- <td> >- [% IF maxonsiteissueqty.defined && maxonsiteissueqty != '' %] >- [% maxonsiteissueqty | html %] >- [% ELSE %] >- <span>Unlimited</span> >- [% END %] >- </td> >- <td>[% issuelength | html %]</td> >- <td> >- [% SWITCH daysmode %] >- [% CASE 'Calendar' %]<span title="Use the calendar to skip days the library is closed">Skip closed days</span> >- [% CASE 'Datedue' %]<span title="Use the calendar to push the due date to the next open day">Next open day</span> >- [% CASE 'Days' %]<span title="Ignore the calendar">Ignore the calendar</span> >- [% CASE 'Dayweek' %]<span title="Use the calendar to push the due date to the next open matching weekday for weekly loan periods, or the next open day otherwise">Same week day</span> >- [% CASE %]<span title="Use the system preference 'useDaysMode' as a default value">Default</span> >- [% END %] >- </td> >- <td> >- [% IF ( lengthunit == 'days' ) %] >- <span>Days</span> >- [% ELSIF ( lengthunit == 'hours') %] >- <span>Hours</span> >- [% ELSE %] >- <span>Undefined</span> >- [% END %] >- </td> >- <td> >- [% IF ( hardduedate ) %] >- [% IF ( hardduedatecompare == '-1' ) %] >- before [% hardduedate | $KohaDates %] >- <input type="hidden" name="hardduedatecomparebackup" value="-1" /> >- [% ELSIF ( hardduedatecompare == '0' ) %] >- on [% hardduedate | $KohaDates %] >- <input type="hidden" name="hardduedatecomparebackup" value="0" /> >- [% ELSIF ( hardduedatecompare == '1' ) %] >- after [% hardduedate | $KohaDates %] >- <input type="hidden" name="hardduedatecomparebackup" value="1" /> >- [% END %] >- [% ELSE %] >- <span>None defined</span> >- [% END %] >- </td> >- <td>[% decreaseloanholds | html %]</td> >- <td>[% fine | html %]</td> >- <td>[% chargeperiod | html %]</td> >- <td>[% IF chargeperiod_charge_at %]Start of interval[% ELSE %]End of interval[% END %]</td> >- <td>[% firstremind | html %]</td> >- <td>[% overduefinescap | $Price %]</td> >- <td> >- [% IF cap_fine_to_replacement_price %] >- <input type="checkbox" checked="checked" disabled="disabled" /> >- [% ELSE %] >- <input type="checkbox" disabled="disabled" /> >- [% END %] >- </td> >- <td>[% finedays | html %]</td> >- <td>[% maxsuspensiondays | html %]</td> >- <td>[% suspension_chargeperiod | html %]</td> >- <td>[% renewalsallowed | html %]</td> >- [% IF Koha.Preference('UnseenRenewals') %] >+ [% SET show_rule = note || maxissueqty || maxonsiteissueqty || issuelength || daysmode || lengthunit || hardduedate || hardduedatecompare || fine || chargeperiod || chargeperiod_charge_at || firstremind || overduefinescap || cap_fine_to_replacement_price || finedays || maxsuspensiondays || suspension_chargeperiod || renewalsallowed || unseenrenewalsallowed || renewalperiod || norenewalbefore || auto_renew || no_auto_renewal_after || no_auto_renewal_after_hard_limit || reservesallowed || holds_per_day || holds_per_record || onshelfholds || opacitemholds || article_requests || rentaldiscount || decreaseloanholds || recalls_allowed || recalls_per_record || on_shelf_recalls || recall_due_date_interval || recall_overdue_fine || recall_shelf_time %] >+ [% IF show_rule %] >+ [% SET row_count = row_count + 1 %] >+ <tr row_countd="row_[% row_count | html %]"> >+ <td>[% IF ( c == undef ) %] >+ 1 >+ [% ELSE %] >+ 0 >+ [% END %]</td> >+ <td> >+ [% IF c == undef %] >+ <em>All</em> >+ [% ELSE %] >+ [% Categories.GetName(c) | html %] >+ [% END %] >+ </td> >+ <td>[% IF ( i == undef ) %] >+ 1 >+ [% ELSE %] >+ 0 >+ [% END %]</td> > <td> >- [% IF unseenrenewalsallowed.defined && unseenrenewalsallowed != '' %] >- [% unseenrenewalsallowed | html %] >+ [% IF i == undef %] >+ <em>All</em> >+ [% ELSE %] >+ [% ItemTypes.GetDescription(i,1) | html %] >+ [% END %] >+ </td> >+ <td class="actions"> >+ <a href="#" class="editrule btn btn-default btn-xs"><i class="fa fa-pencil"></i> Edit</a> >+ <a class="btn btn-default btn-xs delete" href="/cgi-bin/koha/admin/smart-rules.pl?op=delete&itemtype=[% i || '*' | html %]&categorycode=[% c || '*' | html %]&branch=[% current_branch | html %]"><i class="fa fa-trash"></i> Delete</a> >+ </td> >+ <td> >+ [% IF note.defined && note != '' %] >+ <a name="viewnote" data-toggle="popover" title="Note" data-content="[% note | html %]" data-placement="top" data-trigger="hover">View note</a> >+ [% ELSE %]<span> </span>[% END %] >+ </td> >+ <td> >+ [% IF maxissueqty.defined && maxissueqty != '' %] >+ [% maxissueqty | html %] > [% ELSE %] > <span>Unlimited</span> > [% END %] > </td> >- [% END %] >- <td>[% renewalperiod | html %]</td> >- <td>[% norenewalbefore | html %]</td> >- <td> >- [% IF auto_renew %] >- <span>Yes</span> >- [% ELSE %] >- <span>No</span> >- [% END %] >- </td> >- <td>[% no_auto_renewal_after | html %]</td> >- <td>[% no_auto_renewal_after_hard_limit | $KohaDates %]</td> >- <td> >- [% IF reservesallowed.defined && reservesallowed != '' %] >- [% reservesallowed | html %] >- [% ELSE %] >- <span>Unlimited</span> >- [% END %] >- </td> >- <td> >- [% IF holds_per_day.defined && holds_per_day != '' %] >- [% holds_per_day | html %] >- [% ELSE %] >- <span>Unlimited</span> >- [% END %] >- </td> >- <td> >- [% IF holds_per_record.defined && holds_per_record != '' %] >- [% holds_per_record | html %] >- [% ELSE %] >- <span>Unlimited</span> >- [% END %] >- </td> >- <td> >- [% IF onshelfholds == 1 %] >- <span>Yes</span> >- [% ELSIF onshelfholds == 2 %] >- <span>If all unavailable</span> >- [% ELSE %] >- <span>If any unavailable</span> >- [% END %] >- </td> >- <td> >- [% IF opacitemholds == 'F'%] >- <span>Force</span> >- [% ELSIF opacitemholds == 'Y'%] >- <span>Allow</span> >- [% ELSE %] >- <span>Don't allow</span> >- [% END %] >- </td> >- [% IF Koha.Preference('ArticleRequests') %] >- <td> >- [% IF article_requests == 'no' %] >- <span>No</span> >- [% ELSIF article_requests == 'yes' %] >- <span>Yes</span> >- [% ELSIF article_requests == 'bib_only' %] >- <span>Record only</span> >- [% ELSIF article_requests == 'item_only' %] >- <span>Item only</span> >+ <td> >+ [% IF maxonsiteissueqty.defined && maxonsiteissueqty != '' %] >+ [% maxonsiteissueqty | html %] >+ [% ELSE %] >+ <span>Unlimited</span> >+ [% END %] >+ </td> >+ <td>[% issuelength | html %]</td> >+ <td> >+ [% SWITCH daysmode %] >+ [% CASE 'Calendar' %]<span title="Use the calendar to skip days the library is closed">Skip closed days</span> >+ [% CASE 'Datedue' %]<span title="Use the calendar to push the due date to the next open day">Next open day</span> >+ [% CASE 'Days' %]<span title="Ignore the calendar">Ignore the calendar</span> >+ [% CASE 'Dayweek' %]<span title="Use the calendar to push the due date to the next open matching weekday for weekly loan periods, or the next open day otherwise">Same week day</span> >+ [% CASE %]<span title="Use the system preference 'useDaysMode' as a default value">Default</span> >+ [% END %] >+ </td> >+ <td> >+ [% IF ( lengthunit == 'days' ) %] >+ <span>Days</span> >+ [% ELSIF ( lengthunit == 'hours') %] >+ <span>Hours</span> >+ [% ELSE %] >+ <span>Undefined</span> >+ [% END %] >+ </td> >+ <td> >+ [% IF ( hardduedate ) %] >+ [% IF ( hardduedatecompare == '-1' ) %] >+ before [% hardduedate | $KohaDates %] >+ <input type="hidden" name="hardduedatecomparebackup" value="-1" /> >+ [% ELSIF ( hardduedatecompare == '0' ) %] >+ on [% hardduedate | $KohaDates %] >+ <input type="hidden" name="hardduedatecomparebackup" value="0" /> >+ [% ELSIF ( hardduedatecompare == '1' ) %] >+ after [% hardduedate | $KohaDates %] >+ <input type="hidden" name="hardduedatecomparebackup" value="1" /> >+ [% END %] >+ [% ELSE %] >+ <span>None defined</span> >+ [% END %] >+ </td> >+ <td>[% decreaseloanholds | html %]</td> >+ <td>[% fine | html %]</td> >+ <td>[% chargeperiod | html %]</td> >+ <td>[% IF chargeperiod_charge_at %]Start of interval[% ELSE %]End of interval[% END %]</td> >+ <td>[% firstremind | html %]</td> >+ <td>[% overduefinescap | $Price %]</td> >+ <td> >+ [% IF cap_fine_to_replacement_price %] >+ <input type="checkbox" checked="checked" disabled="disabled" /> >+ [% ELSE %] >+ <input type="checkbox" disabled="disabled" /> >+ [% END %] >+ </td> >+ <td>[% finedays | html %]</td> >+ <td>[% maxsuspensiondays | html %]</td> >+ <td>[% suspension_chargeperiod | html %]</td> >+ <td>[% renewalsallowed | html %]</td> >+ [% IF Koha.Preference('UnseenRenewals') %] >+ <td> >+ [% IF unseenrenewalsallowed.defined && unseenrenewalsallowed != '' %] >+ [% unseenrenewalsallowed | html %] >+ [% ELSE %] >+ <span>Unlimited</span> >+ [% END %] >+ </td> > [% END %] >- </td> >- [% END %] >- <td>[% rentaldiscount | html %]</td> >- [% IF Koha.Preference('UseRecalls') %] >- <td>[% recalls_allowed | html %]</td> >- <td>[% recalls_per_record | html %]</td> >+ <td>[% renewalperiod | html %]</td> >+ <td>[% norenewalbefore | html %]</td> >+ <td> >+ [% IF auto_renew %] >+ <span>Yes</span> >+ [% ELSE %] >+ <span>No</span> >+ [% END %] >+ </td> >+ <td>[% no_auto_renewal_after | html %]</td> >+ <td>[% no_auto_renewal_after_hard_limit | $KohaDates %]</td> >+ <td> >+ [% IF reservesallowed.defined && reservesallowed != '' %] >+ [% reservesallowed | html %] >+ [% ELSE %] >+ <span>Unlimited</span> >+ [% END %] >+ </td> > <td> >- [% IF on_shelf_recalls == 'all' %] >+ [% IF holds_per_day.defined && holds_per_day != '' %] >+ [% holds_per_day | html %] >+ [% ELSE %] >+ <span>Unlimited</span> >+ [% END %] >+ </td> >+ <td> >+ [% IF holds_per_record.defined && holds_per_record != '' %] >+ [% holds_per_record | html %] >+ [% ELSE %] >+ <span>Unlimited</span> >+ [% END %] >+ </td> >+ <td> >+ [% IF onshelfholds == 1 %] >+ <span>Yes</span> >+ [% ELSIF onshelfholds == 2 %] > <span>If all unavailable</span> > [% ELSE %] > <span>If any unavailable</span> > [% END %] > </td> >- <td>[% recall_due_date_interval | html %]</td> >- <td>[% recall_overdue_fine | $Price %]</td> >- <td>[% recall_shelf_time | html %]</td> >- [% END %] >- <td class="actions"> >- <a href="#" class="editrule btn btn-default btn-xs"><i class="fa fa-pencil"></i> Edit</a> >- <a class="btn btn-default btn-xs delete" href="/cgi-bin/koha/admin/smart-rules.pl?op=delete&itemtype=[% i || '*' | uri %]&categorycode=[% c || '*' | uri %]&branch=[% current_branch | uri %]"><i class="fa fa-trash"></i> Delete</a> >- </td> >- </tr> >- [% END %] >- [% END %] >- [% END %] >- <tr class="noExport" id="edit_row"> >- <td>2</td> >- <td> >- <select name="categorycode" id="categorycode"> >- <option value="*">All</option> >- [% FOREACH patron_category IN patron_categories%] >- <option value="[% patron_category.categorycode | html %]">[% patron_category.description | html %]</option> >- [% END %] >- </select> >- </td> >- <td>0</td> >- <td> >- <select name="itemtype" id="matrixitemtype" style="width:13em;"> >- <option value="*">All</option> >- [% FOREACH itemtypeloo IN itemtypeloop %] >- [% NEXT IF itemtypeloo.parent_type %] >- [% SET children = itemtypeloo.children_with_localization %] >- [% IF children.count %] >- <optgroup label="[% itemtypeloo.translated_description | html %]"> >- <option value="[% itemtypeloo.itemtype | html %]">[% itemtypeloo.translated_description | html %] (All)</option> >- [% FOREACH child IN children %] >- <option value="[% child.itemtype | html %]">[% child.translated_description | html %]</option> >+ <td> >+ [% IF opacitemholds == 'F'%] >+ <span>Force</span> >+ [% ELSIF opacitemholds == 'Y'%] >+ <span>Allow</span> >+ [% ELSE %] >+ <span>Don't allow</span> >+ [% END %] >+ </td> >+ [% IF Koha.Preference('ArticleRequests') %] >+ <td> >+ [% IF article_requests == 'no' %] >+ <span>No</span> >+ [% ELSIF article_requests == 'yes' %] >+ <span>Yes</span> >+ [% ELSIF article_requests == 'bib_only' %] >+ <span>Record only</span> >+ [% ELSIF article_requests == 'item_only' %] >+ <span>Item only</span> >+ [% END %] >+ </td> > [% END %] >- </optgroup> >- [% ELSE %] >- <option value="[% itemtypeloo.itemtype | html %]">[% itemtypeloo.translated_description | html %]</option> >- [% END %] >+ <td>[% rentaldiscount | html %]</td> >+ [% IF Koha.Preference('UseRecalls') %] >+ <td>[% recalls_allowed | html %]</td> >+ <td>[% recalls_per_record | html %]</td> >+ <td> >+ [% IF on_shelf_recalls == 'all' %] >+ <span>If all unavailable</span> >+ [% ELSE %] >+ <span>If any unavailable</span> >+ [% END %] >+ </td> >+ <td>[% recall_due_date_interval | html %]</td> >+ <td>[% recall_overdue_fine | $Price %]</td> >+ <td>[% recall_shelf_time | html %]</td> >+ [% END %] >+ <td class="actions"> >+ <a href="#" class="editrule btn btn-default btn-xs"><i class="fa fa-pencil"></i> Edit</a> >+ <a class="btn btn-default btn-xs delete" href="/cgi-bin/koha/admin/smart-rules.pl?op=delete&itemtype=[% i || '*' | uri %]&categorycode=[% c || '*' | uri %]&branch=[% current_branch | uri %]"><i class="fa fa-trash"></i> Delete</a> >+ </td> >+ </tr> > [% END %] >- </select> >- </td> >- <td class="actions"> >- <input type="hidden" name="branch" value="[% current_branch | html %]"/> >- <button type="submit" class="btn btn-default btn-xs"><i class="fa fa-save"></i> Save</button> >- <button name="cancel" class="clear_edit btn btn-default btn-xs"><i class="fa fa-undo"></i> Clear</button> >- </td> >- <td><input type="text" name="note" id="note" size="15" value="" maxlength="100"></td> >- <td><input type="text" name="maxissueqty" id="maxissueqty" size="3" /></td> >- <td><input type="text" name="maxonsiteissueqty" id="maxonsiteissueqty" size="3" /></td> >- <td><input type="text" name="issuelength" id="issuelength" size="3" /> </td> >- <td> >- <select name="daysmode" id="daysmode"> >- <option value="" title="Use the system preference 'useDaysMode' as a default value">Default</option> >- <option value="Calendar" title="Use the calendar to skip days the library is closed">Skip closed days</option> >- <option value="Datedue" title="Use the calendar to push the due date to the next open day">Next open day</option> >- <option value="Days" title="Ignore the calendar">Ignore the calendar</option> >- <option value="Dayweek" title="Use the calendar to push the due date to the next open matching weekday for weekly loan periods, or the next open day otherwise">Same week day</option> >- </select> >- </td> >- <td> >- <select name="lengthunit" id="lengthunit"> >- <option value="days" selected="selected">Days</option> >- <option value="hours">Hours</option> >- </select> >- </td> >- <td> >- <select name="hardduedatecompare" id="hardduedatecompare"> >- <option value="-1">Before</option> >- <option value="0">Exactly on</option> >- <option value="1">After</option> >- </select> >- <input type="text" size="10" id="hardduedate" name="hardduedate" value="[% hardduedate | html %]" class="flatpickr" /> >- <div class="hint">[% INCLUDE 'date-format.inc' %]</div> >- </td> >- <td><input type="text" name="decreaseloanholds" id="decreaseloanholds" size="2" /></td> >- <td><input type="text" name="fine" id="fine" size="4" /></td> >- <td><input type="text" name="chargeperiod" id="chargeperiod" size="2" /></td> >- <td> >- <select name="chargeperiod_charge_at" id="chargeperiod_charge_at"> >- <option value="0">End of interval</option> >- <option value="1">Start of interval</option> >- </select> >- </td> >- <td><input type="text" name="firstremind" id="firstremind" size="2" /> </td> >- <td><input type="text" name="overduefinescap" id="overduefinescap" size="6" /> </td> >- <td><input type="checkbox" name="cap_fine_to_replacement_price" id="cap_fine_to_replacement_price" /></td> >- <td><input type="text" name="finedays" id="fined" size="3" /> </td> >- <td><input type="text" name="maxsuspensiondays" id="maxsuspensiondays" size="3" /> </td> >- <td><input type="text" name="suspension_chargeperiod" id="suspension_chargeperiod" size="3" /> </td> >- <td><input type="text" name="renewalsallowed" id="renewalsallowed" size="2" /></td> >- [% IF Koha.Preference('UnseenRenewals') %] >- <td><input type="text" name="unseen_renewals_allowed" id="unseen_renewals_allowed" size="2" /></td> >- [% END %] >- <td><input type="text" name="renewalperiod" id="renewalperiod" size="3" /></td> >- <td><input type="text" name="norenewalbefore" id="norenewalbefore" size="3" /></td> >- <td> >- <select name="auto_renew" id="auto_renew"> >- <option value="no" selected>No</option> >- <option value="yes">Yes</option> >- </select> >- </td> >- <td><input type="text" name="no_auto_renewal_after" id="no_auto_renewal_after" size="3" /></td> >- <td> >- <input type="text" size="10" name="no_auto_renewal_after_hard_limit" id="no_auto_renewal_after_hard_limit" value="[% no_auto_renewal_after_hard_limit | html %]" class="flatpickr"/> >- <div class="hint">[% INCLUDE 'date-format.inc' %]</div> >- </td> >- <td><input type="text" name="reservesallowed" id="reservesallowed" size="2" /></td> >- <td><input type="text" name="holds_per_day" id="holds_per_day" size="2" /></td> >- <td><input type="text" name="holds_per_record" id="holds_per_record" size="2" /></td> >- <td> >- <select name="onshelfholds" id="onshelfholds"> >- <option value="1">Yes</option> >- <option value="0">If any unavailable</option> >- <option value="2">If all unavailable</option> >- </select> >- </td> >- <td> >- <select id="opacitemholds" name="opacitemholds"> >- <option value="N">Don't allow</option> >- <option value="Y">Allow</option> >- <option value="F">Force</option> >- </select> >- </td> >- [% IF Koha.Preference('ArticleRequests') %] >- <td> >- <select id="article_requests" name="article_requests"> >- <option value="no">No</option> >- <option value="yes">Yes</option> >- <option value="bib_only">Record only</option> >- <option value="item_only">Item only</option> >- </select> >- </td> >+ [% END %] > [% END %] >- <td><input type="text" name="rentaldiscount" id="rentaldiscount" size="2" /></td> >- [% IF Koha.Preference('UseRecalls') %] >- <td><input type="text" name="recalls_allowed" id="recalls_allowed" size="3"></td> >- <td><input type="text" name="recalls_per_record" id="recalls_per_record" size="3"></td> >+ <tr class="noExport" id="edit_row"> >+ <td>2</td> > <td> >- <select name="on_shelf_recalls" id="on_shelf_recalls"> >- <option value="any">If any unavailable</option> >- <option value="all">If all unavailable</option> >+ <select name="categorycode" id="categorycode"> >+ <option value="*">All</option> >+ [% FOREACH patron_category IN patron_categories%] >+ <option value="[% patron_category.categorycode | html %]">[% patron_category.description | html %]</option> >+ [% END %] > </select> > </td> >- <td><input type="text" name="recall_due_date_interval" id="recall_due_date_interval" size="3"></td> >- <td><input type="text" name="recall_overdue_fine" id="recall_overdue_fine" size="6"></td> >- <td><input type="text" name="recall_shelf_time" id="recall_shelf_time" size="3"></td> >- [% END %] >- <td class="actions"> >- <input type="hidden" name="branch" value="[% current_branch | html %]"/> >- <button type="submit" class="btn btn-default btn-xs"><i class="fa fa-save"></i> Save</button> >- <button name="cancel" class="clear_edit btn btn-default btn-xs"><i class="fa fa-undo"></i> Clear</button> >- </td> >- </tr> >- <tfoot> >- <tr> >- <th> </th> >- <th>Patron category</th> >- <th> </th> >- <th>Item type</th> >- <th> </th> >- <th>Note</th> >- <th>Current checkouts allowed</th> >- <th>Current on-site checkouts allowed</th> >- <th>Loan period</th> >- <th>Days mode</th> >- <th>Unit</th> >- <th>Hard due date</th> >- <th>Decreased loan period for high holds (day)</th> >- <th>Fine amount</th> >- <th>Fine charging interval</th> >- <th>Charge when?</th> >- <th>Fine grace period</th> >- <th>Overdue fines cap (amount)</th> >- <th>Cap fine at replacement price</th> >- <th>Suspension in days (day)</th> >- <th>Max. suspension duration (day)</th> >- <th>Suspension charging interval</th> >- <th>Renewals allowed (count)</th> >- [% IF Koha.Preference('UnseenRenewals') %] >- <th>Unseen renewals allowed (count)</th> >- [% END %] >- <th>Renewal period</th> >- <th>No renewal before</th> >- <th>Automatic renewal</th> >- <th>No automatic renewal after</th> >- <th>No automatic renewal after (hard limit)</th> >- <th>Holds allowed (total)</th> >- <th>Holds allowed (daily)</th> >- <th>Holds per record (count)</th> >- <th>On shelf holds allowed</th> >- <th>OPAC item level holds</th> >- [% IF Koha.Preference('ArticleRequests') %] >- <th>Article requests</th> >- [% END %] >- <th>Rental discount (%)</th> >- [% IF Koha.Preference('UseRecalls') %] >- <th>Recalls allowed (total)</th> >- <th>Recalls per record (count)</th> >- <th>On shelf recalls allowed</th> >- <th>Recall due date interval (day)</th> >- <th>Recall overdue fine amount</th> >- <th>Recall pickup period (day)</th> >- [% END %] >- <th> </th> >+ <td>0</td> >+ <td> >+ <select name="itemtype" id="matrixitemtype" style="width:13em;"> >+ <option value="*">All</option> >+ [% FOREACH itemtypeloo IN itemtypeloop %] >+ [% NEXT IF itemtypeloo.parent_type %] >+ [% SET children = itemtypeloo.children_with_localization %] >+ [% IF children.count %] >+ <optgroup label="[% itemtypeloo.translated_description | html %]"> >+ <option value="[% itemtypeloo.itemtype | html %]">[% itemtypeloo.translated_description | html %] (All)</option> >+ [% FOREACH child IN children %] >+ <option value="[% child.itemtype | html %]">[% child.translated_description | html %]</option> >+ [% END %] >+ </optgroup> >+ [% ELSE %] >+ <option value="[% itemtypeloo.itemtype | html %]">[% itemtypeloo.translated_description | html %]</option> >+ [% END %] >+ [% END %] >+ </select> >+ </td> >+ <td class="actions"> >+ <input type="hidden" name="branch" value="[% current_branch | html %]"/> >+ <button type="submit" class="btn btn-default btn-xs"><i class="fa fa-save"></i> Save</button> >+ <button name="cancel" class="clear_edit btn btn-default btn-xs"><i class="fa fa-undo"></i> Clear</button> >+ </td> >+ <td><input type="text" name="note" id="note" size="15" value="" maxlength="100"></td> >+ <td><input type="text" name="maxissueqty" id="maxissueqty" size="3" /></td> >+ <td><input type="text" name="maxonsiteissueqty" id="maxonsiteissueqty" size="3" /></td> >+ <td><input type="text" name="issuelength" id="issuelength" size="3" /> </td> >+ <td> >+ <select name="daysmode" id="daysmode"> >+ <option value="" title="Use the system preference 'useDaysMode' as a default value">Default</option> >+ <option value="Calendar" title="Use the calendar to skip days the library is closed">Skip closed days</option> >+ <option value="Datedue" title="Use the calendar to push the due date to the next open day">Next open day</option> >+ <option value="Days" title="Ignore the calendar">Ignore the calendar</option> >+ <option value="Dayweek" title="Use the calendar to push the due date to the next open matching weekday for weekly loan periods, or the next open day otherwise">Same week day</option> >+ </select> >+ </td> >+ <td> >+ <select name="lengthunit" id="lengthunit"> >+ <option value="days" selected="selected">Days</option> >+ <option value="hours">Hours</option> >+ </select> >+ </td> >+ <td> >+ <select name="hardduedatecompare" id="hardduedatecompare"> >+ <option value="-1">Before</option> >+ <option value="0">Exactly on</option> >+ <option value="1">After</option> >+ </select> >+ <input type="text" size="10" id="hardduedate" name="hardduedate" value="[% hardduedate | html %]" class="flatpickr" /> >+ <div class="hint">[% INCLUDE 'date-format.inc' %]</div> >+ </td> >+ <td><input type="text" name="decreaseloanholds" id="decreaseloanholds" size="2" /></td> >+ <td><input type="text" name="fine" id="fine" size="4" /></td> >+ <td><input type="text" name="chargeperiod" id="chargeperiod" size="2" /></td> >+ <td> >+ <select name="chargeperiod_charge_at" id="chargeperiod_charge_at"> >+ <option value="0">End of interval</option> >+ <option value="1">Start of interval</option> >+ </select> >+ </td> >+ <td><input type="text" name="firstremind" id="firstremind" size="2" /> </td> >+ <td><input type="text" name="overduefinescap" id="overduefinescap" size="6" /> </td> >+ <td><input type="checkbox" name="cap_fine_to_replacement_price" id="cap_fine_to_replacement_price" /></td> >+ <td><input type="text" name="finedays" id="fined" size="3" /> </td> >+ <td><input type="text" name="maxsuspensiondays" id="maxsuspensiondays" size="3" /> </td> >+ <td><input type="text" name="suspension_chargeperiod" id="suspension_chargeperiod" size="3" /> </td> >+ <td><input type="text" name="renewalsallowed" id="renewalsallowed" size="2" /></td> >+ [% IF Koha.Preference('UnseenRenewals') %] >+ <td><input type="text" name="unseen_renewals_allowed" id="unseen_renewals_allowed" size="2" /></td> >+ [% END %] >+ <td><input type="text" name="renewalperiod" id="renewalperiod" size="3" /></td> >+ <td><input type="text" name="norenewalbefore" id="norenewalbefore" size="3" /></td> >+ <td> >+ <select name="auto_renew" id="auto_renew"> >+ <option value="no" selected>No</option> >+ <option value="yes">Yes</option> >+ </select> >+ </td> >+ <td><input type="text" name="no_auto_renewal_after" id="no_auto_renewal_after" size="3" /></td> >+ <td> >+ <input type="text" size="10" name="no_auto_renewal_after_hard_limit" id="no_auto_renewal_after_hard_limit" value="[% no_auto_renewal_after_hard_limit | html %]" class="flatpickr"/> >+ <div class="hint">[% INCLUDE 'date-format.inc' %]</div> >+ </td> >+ <td><input type="text" name="reservesallowed" id="reservesallowed" size="2" /></td> >+ <td><input type="text" name="holds_per_day" id="holds_per_day" size="2" /></td> >+ <td><input type="text" name="holds_per_record" id="holds_per_record" size="2" /></td> >+ <td> >+ <select name="onshelfholds" id="onshelfholds"> >+ <option value="1">Yes</option> >+ <option value="0">If any unavailable</option> >+ <option value="2">If all unavailable</option> >+ </select> >+ </td> >+ <td> >+ <select id="opacitemholds" name="opacitemholds"> >+ <option value="N">Don't allow</option> >+ <option value="Y">Allow</option> >+ <option value="F">Force</option> >+ </select> >+ </td> >+ [% IF Koha.Preference('ArticleRequests') %] >+ <td> >+ <select id="article_requests" name="article_requests"> >+ <option value="no">No</option> >+ <option value="yes">Yes</option> >+ <option value="bib_only">Record only</option> >+ <option value="item_only">Item only</option> >+ </select> >+ </td> >+ [% END %] >+ <td><input type="text" name="rentaldiscount" id="rentaldiscount" size="2" /></td> >+ [% IF Koha.Preference('UseRecalls') %] >+ <td><input type="text" name="recalls_allowed" id="recalls_allowed" size="3"></td> >+ <td><input type="text" name="recalls_per_record" id="recalls_per_record" size="3"></td> >+ <td> >+ <select name="on_shelf_recalls" id="on_shelf_recalls"> >+ <option value="any">If any unavailable</option> >+ <option value="all">If all unavailable</option> >+ </select> >+ </td> >+ <td><input type="text" name="recall_due_date_interval" id="recall_due_date_interval" size="3"></td> >+ <td><input type="text" name="recall_overdue_fine" id="recall_overdue_fine" size="6"></td> >+ <td><input type="text" name="recall_shelf_time" id="recall_shelf_time" size="3"></td> >+ [% END %] >+ <td class="actions"> >+ <input type="hidden" name="branch" value="[% current_branch | html %]"/> >+ <button type="submit" class="btn btn-default btn-xs"><i class="fa fa-save"></i> Save</button> >+ <button name="cancel" class="clear_edit btn btn-default btn-xs"><i class="fa fa-undo"></i> Clear</button> >+ </td> > </tr> >- </tfoot> >- </tbody> >- </table> >- </form> >+ </tbody> >+ <tfoot> >+ <tr> >+ <th> </th> >+ <th>Patron category</th> >+ <th> </th> >+ <th>Item type</th> >+ <th> </th> >+ <th>Note</th> >+ <th>Current checkouts allowed</th> >+ <th>Current on-site checkouts allowed</th> >+ <th>Loan period</th> >+ <th>Days mode</th> >+ <th>Unit</th> >+ <th>Hard due date</th> >+ <th>Decreased loan period for high holds (day)</th> >+ <th>Fine amount</th> >+ <th>Fine charging interval</th> >+ <th>Charge when?</th> >+ <th>Fine grace period</th> >+ <th>Overdue fines cap (amount)</th> >+ <th>Cap fine at replacement price</th> >+ <th>Suspension in days (day)</th> >+ <th>Max. suspension duration (day)</th> >+ <th>Suspension charging interval</th> >+ <th>Renewals allowed (count)</th> >+ [% IF Koha.Preference('UnseenRenewals') %] >+ <th>Unseen renewals allowed (count)</th> >+ [% END %] >+ <th>Renewal period</th> >+ <th>No renewal before</th> >+ <th>Automatic renewal</th> >+ <th>No automatic renewal after</th> >+ <th>No automatic renewal after (hard limit)</th> >+ <th>Holds allowed (total)</th> >+ <th>Holds allowed (daily)</th> >+ <th>Holds per record (count)</th> >+ <th>On shelf holds allowed</th> >+ <th>OPAC item level holds</th> >+ [% IF Koha.Preference('ArticleRequests') %] >+ <th>Article requests</th> >+ [% END %] >+ <th>Rental discount (%)</th> >+ [% IF Koha.Preference('UseRecalls') %] >+ <th>Recalls allowed (total)</th> >+ <th>Recalls per record (count)</th> >+ <th>On shelf recalls allowed</th> >+ <th>Recall due date interval (day)</th> >+ <th>Recall overdue fine amount</th> >+ <th>Recall pickup period (day)</th> >+ [% END %] >+ <th> </th> >+ </tr> >+ </tfoot> >+ </table> >+ </form> >+ </div><!-- ./page-section --> > </div> > <div id="defaults-for-this-library" class="container"> >- <h3>Default checkout, hold and return policy[% IF humanbranch %] for [% Branches.GetName( humanbranch ) | html %][% END %]</h3> >- <p>You can set a default maximum number of checkouts, hold policy and return policy that will be used if none is defined below for a particular item type or category.</p> >- <form method="post" action="/cgi-bin/koha/admin/smart-rules.pl"> >- <input type="hidden" name="op" value="set-branch-defaults" /> >- <input type="hidden" name="branch" value="[% current_branch | html %]"/> >- <table> >- <tr> >- <th> </th> >- <th>Total current checkouts allowed</th> >- <th>Total current on-site checkouts allowed</th> >- <th>Maximum total holds allowed (count)</th> >- <th>Hold policy</th> >- <th>Hold pickup library match</th> >- <th>Return policy</th> >- <th class="noExport">Actions</th> >- </tr> >- [% SET patron_maxissueqty = CirculationRules.Search( current_branch, undef, undef, 'patron_maxissueqty', { want_rule => 1 } ) %] >- [% SET patron_maxonsiteissueqty = CirculationRules.Search( current_branch, undef, undef, 'patron_maxonsiteissueqty', { want_rule => 1 } ) %] >- [% SET rule_value = CirculationRules.Search( current_branch, undef , undef, 'max_holds', { want_rule => 1 } ) %] >- [% SET holdallowed = CirculationRules.Search( current_branch, undef, undef, 'holdallowed', { want_rule => 1 } ) %] >- [% SET hold_fulfillment_policy = CirculationRules.Search( current_branch, undef, undef, 'hold_fulfillment_policy', { want_rule => 1 }) %] >- [% SET returnbranch = CirculationRules.Search( current_branch, undef, undef, 'returnbranch', { want_rule => 1 }) %] >- [% SET default_checkout_hold_and_return_policy = ( patron_maxissueqty || patron_maxonsiteissueqty || rule_value || holdallowed || hold_fulfillment_policy || returnbranch ) %] >- <tr> >- <td> >- [% IF ( default_checkout_hold_and_return_policy ) %] >- <em> >- Defaults >- </em> >- [% ELSE %] >- Not set >- [% END %] >- </td> >- <td> >- <input type="text" name="patron_maxissueqty" size="9" value="[% patron_maxissueqty.rule_value | html %]" placeholder="Unlimited"/> >- </td> >- <td> >- <input type="text" name="patron_maxonsiteissueqty" size="9" value="[% patron_maxonsiteissueqty.rule_value | html %]" placeholder="Unlimited"/> >- </td> >- <td> >- <input name="max_holds" size="9" value="[% rule_value.rule_value | html %]" placeholder="Unlimited"/> >- </td> >- <td> >- <select name="holdallowed"> >- <option value=""> >- Not set >- </option> >- >- [% IF holdallowed.rule_value == 'from_any_library' %] >- <option value="from_any_library" selected="selected"> >- [% ELSE %] >- <option value="from_any_library"> >- [% END %] >- From any library >- </option> >- >- [% IF holdallowed.rule_value == 'from_local_hold_group' %] >- <option value="from_local_hold_group" selected="selected"> >- [% ELSE %] >- <option value="from_local_hold_group"> >- [% END %] >- From local hold group >- </option> >- >- [% IF holdallowed.rule_value == 'from_home_library' %] >- <option value="from_home_library" selected="selected"> >- [% ELSE %] >- <option value="from_home_library"> >- [% END %] >- From home library >- </option> >- >- [% IF holdallowed.rule_value == 'not_allowed' %] >- <option value="not_allowed" selected="selected"> >+ <h3>Default checkout, hold and return policy[% IF humanbranch %] for [% Branches.GetName( humanbranch ) | html %][% END %]</h3> >+ <div class="page-section"> >+ <p>You can set a default maximum number of checkouts, hold policy and return policy that will be used if none is defined below for a particular item type or category.</p> >+ <form method="post" action="/cgi-bin/koha/admin/smart-rules.pl"> >+ <input type="hidden" name="op" value="set-branch-defaults" /> >+ <input type="hidden" name="branch" value="[% current_branch | html %]"/> >+ <table> >+ <tr> >+ <th> </th> >+ <th>Total current checkouts allowed</th> >+ <th>Total current on-site checkouts allowed</th> >+ <th>Maximum total holds allowed (count)</th> >+ <th>Hold policy</th> >+ <th>Hold pickup library match</th> >+ <th>Return policy</th> >+ <th class="noExport">Actions</th> >+ </tr> >+ [% SET patron_maxissueqty = CirculationRules.Search( current_branch, undef, undef, 'patron_maxissueqty', { want_rule => 1 } ) %] >+ [% SET patron_maxonsiteissueqty = CirculationRules.Search( current_branch, undef, undef, 'patron_maxonsiteissueqty', { want_rule => 1 } ) %] >+ [% SET rule_value = CirculationRules.Search( current_branch, undef , undef, 'max_holds', { want_rule => 1 } ) %] >+ [% SET holdallowed = CirculationRules.Search( current_branch, undef, undef, 'holdallowed', { want_rule => 1 } ) %] >+ [% SET hold_fulfillment_policy = CirculationRules.Search( current_branch, undef, undef, 'hold_fulfillment_policy', { want_rule => 1 }) %] >+ [% SET returnbranch = CirculationRules.Search( current_branch, undef, undef, 'returnbranch', { want_rule => 1 }) %] >+ [% SET default_checkout_hold_and_return_policy = ( patron_maxissueqty || patron_maxonsiteissueqty || rule_value || holdallowed || hold_fulfillment_policy || returnbranch ) %] >+ <tr> >+ <td> >+ [% IF ( default_checkout_hold_and_return_policy ) %] >+ <em> >+ Defaults >+ </em> > [% ELSE %] >- <option value="not_allowed"> >- [% END %] >- No holds allowed >- </option> >- </select> >- </td> >- <td> >- <select name="hold_fulfillment_policy"> >- >- <option value=""> > Not set >- </option> >+ [% END %] >+ </td> >+ <td> >+ <input type="text" name="patron_maxissueqty" size="9" value="[% patron_maxissueqty.rule_value | html %]" placeholder="Unlimited"/> >+ </td> >+ <td> >+ <input type="text" name="patron_maxonsiteissueqty" size="9" value="[% patron_maxonsiteissueqty.rule_value | html %]" placeholder="Unlimited"/> >+ </td> >+ <td> >+ <input name="max_holds" size="9" value="[% rule_value.rule_value | html %]" placeholder="Unlimited"/> >+ </td> >+ <td> >+ <select name="holdallowed"> >+ <option value=""> >+ Not set >+ </option> > >- [% IF hold_fulfillment_policy.rule_value == 'any' %] >- <option value="any" selected="selected"> >- any library >+ [% IF holdallowed.rule_value == 'from_any_library' %] >+ <option value="from_any_library" selected="selected"> >+ [% ELSE %] >+ <option value="from_any_library"> >+ [% END %] >+ From any library > </option> >- [% ELSE %] >- <option value="any"> >- any library >+ >+ [% IF holdallowed.rule_value == 'from_local_hold_group' %] >+ <option value="from_local_hold_group" selected="selected"> >+ [% ELSE %] >+ <option value="from_local_hold_group"> >+ [% END %] >+ From local hold group > </option> >- [% END %] > >- [% IF hold_fulfillment_policy.rule_value == 'holdgroup' %] >- <option value="holdgroup" selected="selected"> >- item's hold group >+ [% IF holdallowed.rule_value == 'from_home_library' %] >+ <option value="from_home_library" selected="selected"> >+ [% ELSE %] >+ <option value="from_home_library"> >+ [% END %] >+ From home library > </option> >- [% ELSE %] >- <option value="holdgroup"> >- item's hold group >+ >+ [% IF holdallowed.rule_value == 'not_allowed' %] >+ <option value="not_allowed" selected="selected"> >+ [% ELSE %] >+ <option value="not_allowed"> >+ [% END %] >+ No holds allowed > </option> >- [% END %] >+ </select> >+ </td> >+ <td> >+ <select name="hold_fulfillment_policy"> > >- [% IF hold_fulfillment_policy.rule_value == 'patrongroup' %] >- <option value="patrongroup" selected="selected"> >- patron's hold group >+ <option value=""> >+ Not set > </option> >- [% ELSE %] >- <option value="patrongroup"> >- patron's hold group >+ >+ [% IF hold_fulfillment_policy.rule_value == 'any' %] >+ <option value="any" selected="selected"> >+ any library >+ </option> >+ [% ELSE %] >+ <option value="any"> >+ any library >+ </option> >+ [% END %] >+ >+ [% IF hold_fulfillment_policy.rule_value == 'holdgroup' %] >+ <option value="holdgroup" selected="selected"> >+ item's hold group >+ </option> >+ [% ELSE %] >+ <option value="holdgroup"> >+ item's hold group >+ </option> >+ [% END %] >+ >+ [% IF hold_fulfillment_policy.rule_value == 'patrongroup' %] >+ <option value="patrongroup" selected="selected"> >+ patron's hold group >+ </option> >+ [% ELSE %] >+ <option value="patrongroup"> >+ patron's hold group >+ </option> >+ [% END %] >+ >+ [% IF hold_fulfillment_policy.rule_value == 'homebranch' %] >+ <option value="homebranch" selected="selected"> >+ item's home library >+ </option> >+ [% ELSE %] >+ <option value="homebranch"> >+ item's home library >+ </option> >+ [% END %] >+ >+ [% IF hold_fulfillment_policy.rule_value == 'holdingbranch' %] >+ <option value="holdingbranch" selected="selected"> >+ item's holding library >+ </option> >+ [% ELSE %] >+ <option value="holdingbranch"> >+ item's holding library >+ </option> >+ [% END %] >+ </select> >+ </td> >+ <td> >+ <select name="returnbranch"> >+ >+ <option value=""> >+ Not set > </option> >- [% END %] > >- [% IF hold_fulfillment_policy.rule_value == 'homebranch' %] >+ [% IF returnbranch.rule_value == 'homebranch' %] > <option value="homebranch" selected="selected"> >- item's home library >- </option> >- [% ELSE %] >+ [% ELSE %] > <option value="homebranch"> >- item's home library >+ [% END %] >+ Item returns home > </option> >- [% END %] >- >- [% IF hold_fulfillment_policy.rule_value == 'holdingbranch' %] >+ [% IF returnbranch.rule_value == 'holdingbranch' %] > <option value="holdingbranch" selected="selected"> >- item's holding library >- </option> >- [% ELSE %] >+ [% ELSE %] > <option value="holdingbranch"> >- item's holding library >+ [% END %] >+ Item returns to issuing library >+ </option> >+ [% IF returnbranch.rule_value == 'noreturn' %] >+ <option value="noreturn" selected="selected"> >+ [% ELSE %] >+ <option value="noreturn"> >+ [% END %] >+ Item floats > </option> >+ </select> >+ </td> >+ <td class="actions"> >+ <button type="submit" class="btn btn-default btn-xs"><i class="fa fa-save"></i> Save</button> >+ [% IF ( default_checkout_hold_and_return_policy ) %] >+ <a class="btn btn-default btn-xs delete" href="/cgi-bin/koha/admin/smart-rules.pl?op=delete-branch-cat&categorycode=*&branch=[% current_branch | html %]" id="unset"><i class="fa fa-undo"></i> Unset</a> > [% END %] >- </select> >- </td> >- <td> >- <select name="returnbranch"> >+ </td> >+ </tr> >+ </table> >+ </form> >+ </div><!-- /.page-section --> >+ </div> >+ [% IF ( show_branch_cat_rule_form ) %] >+ <div id="holds-policy-by-patron-category" class="container"> >+ <h3>[% IF humanbranch %]Checkout, hold policy by patron category for [% Branches.GetName( humanbranch ) | html %][% ELSE %]Default checkout, hold policy by patron category[% END %]</h3> >+ <div class="page-section"> >+ <p>For this library, you can specify the maximum number of loans that >+ a patron of a given category can make, regardless of the item type. >+ </p> >+ <p>If the total amount loanable for a given patron category is left blank, >+ no limit applies, except possibly for a limit you define for a specific item type. >+ </p> >+ <form method="post" action="/cgi-bin/koha/admin/smart-rules.pl"> >+ <input type="hidden" name="op" value="add-branch-cat" /> >+ <input type="hidden" name="branch" value="[% current_branch | html %]"/> >+ <table> >+ <tr> >+ <th>Patron category</th> >+ <th>Total current checkouts allowed</th> >+ <th>Total current on-site checkouts allowed</th> >+ <th>Total holds allowed</th> >+ <th> </th> >+ </tr> >+ [% FOREACH c IN categorycodes %] >+ [% NEXT UNLESS c %] >+ [% SET patron_maxissueqty = CirculationRules.Search( branchcode, c, undef, 'patron_maxissueqty' ) %] >+ [% SET patron_maxonsiteissueqty = CirculationRules.Search( branchcode, c, undef, 'patron_maxonsiteissueqty' ) %] >+ [% SET max_holds = CirculationRules.Search( branchcode, c, undef, 'max_holds' ) %] > >- <option value=""> >- Not set >- </option> >+ [% IF ( patron_maxissueqty.defined && patron_maxissueqty != '' ) || ( patron_maxonsiteissueqty.defined && patron_maxonsiteissueqty != '' ) || ( max_holds.defined && max_holds != '' ) %] >+ <tr> >+ <td> >+ [% IF c == undef %] >+ <em>Default</em> >+ [% ELSE %] >+ [% Categories.GetName(c) | html %] >+ [% END %] >+ </td> >+ <td> >+ [% IF patron_maxissueqty.defined && patron_maxissueqty != '' %] >+ [% patron_maxissueqty | html %] >+ [% ELSE %] >+ <span>Unlimited</span> >+ [% END %] >+ </td> >+ <td> >+ [% IF patron_maxonsiteissueqty.defined && patron_maxonsiteissueqty != '' %] >+ [% patron_maxonsiteissueqty | html %] >+ [% ELSE %] >+ <span>Unlimited</span> >+ [% END %] >+ </td> >+ <td> >+ [% IF max_holds.defined && max_holds != '' %] >+ [% max_holds | html %] >+ [% ELSE %] >+ <span>Unlimited</span> >+ [% END %] >+ </td> > >- [% IF returnbranch.rule_value == 'homebranch' %] >- <option value="homebranch" selected="selected"> >- [% ELSE %] >- <option value="homebranch"> >- [% END %] >- Item returns home >- </option> >- [% IF returnbranch.rule_value == 'holdingbranch' %] >- <option value="holdingbranch" selected="selected"> >- [% ELSE %] >- <option value="holdingbranch"> >- [% END %] >- Item returns to issuing library >- </option> >- [% IF returnbranch.rule_value == 'noreturn' %] >- <option value="noreturn" selected="selected"> >- [% ELSE %] >- <option value="noreturn"> >- [% END %] >- Item floats >- </option> >- </select> >- </td> >- <td class="actions"> >- <button type="submit" class="btn btn-default btn-xs"><i class="fa fa-save"></i> Save</button> >- [% IF ( default_checkout_hold_and_return_policy ) %] >- <a class="btn btn-default btn-xs delete" href="/cgi-bin/koha/admin/smart-rules.pl?op=delete-branch-cat&categorycode=*&branch=[% current_branch | html %]" id="unset"><i class="fa fa-undo"></i> Unset</a> >+ <td class="actions"> >+ <a class="btn btn-default btn-xs delete" href="/cgi-bin/koha/admin/smart-rules.pl?op=delete-branch-cat&categorycode=[% c | html %]&branch=[% current_branch | html %]"><i class="fa fa-trash"></i> Delete</a> >+ </td> >+ </tr> > [% END %] >- </td> >- </tr> >- </table> >- </form> >+ [% END %] >+ <tr> >+ <td> >+ <select name="categorycode"> >+ [% FOREACH patron_category IN patron_categories%] >+ <option value="[% patron_category.categorycode | html %]">[% patron_category.description | html %]</option> >+ [% END %] >+ </select> >+ </td> >+ <td><input name="patron_maxissueqty" size="3" type="text" /></td> >+ <td><input name="patron_maxonsiteissueqty" size="3" type="text" /></td> >+ <td><input name="max_holds" size="3" type="text" /></td> >+ <td class="actions"><button type="submit" class="btn btn-default btn-xs"><i class="fa fa-plus"></i> Add</button></td> >+ </tr> >+ </table> >+ </form> >+ </div><!-- /.page-section --> > </div> >- [% IF ( show_branch_cat_rule_form ) %] >- <div id="holds-policy-by-patron-category" class="container"> >- <h3>[% IF humanbranch %]Checkout, hold policy by patron category for [% Branches.GetName( humanbranch ) | html %][% ELSE %]Default checkout, hold policy by patron category[% END %]</h3> >- <p>For this library, you can specify the maximum number of loans that >- a patron of a given category can make, regardless of the item type. >- </p> >- <p>If the total amount loanable for a given patron category is left blank, >- no limit applies, except possibly for a limit you define for a specific item type. >- </p> >- <form method="post" action="/cgi-bin/koha/admin/smart-rules.pl"> >- <input type="hidden" name="op" value="add-branch-cat" /> >- <input type="hidden" name="branch" value="[% current_branch | html %]"/> >- <table> >- <tr> >- <th>Patron category</th> >- <th>Total current checkouts allowed</th> >- <th>Total current on-site checkouts allowed</th> >- <th>Total holds allowed</th> >- <th> </th> >- </tr> >- [% FOREACH c IN categorycodes %] >- [% NEXT UNLESS c %] >- [% SET patron_maxissueqty = CirculationRules.Search( branchcode, c, undef, 'patron_maxissueqty' ) %] >- [% SET patron_maxonsiteissueqty = CirculationRules.Search( branchcode, c, undef, 'patron_maxonsiteissueqty' ) %] >- [% SET max_holds = CirculationRules.Search( branchcode, c, undef, 'max_holds' ) %] >+ [% END %] >+ >+ <div id="waiting-hold-cancel-category" class="container"> >+ [% IF humanbranch %] >+ <h3>Waiting hold cancellation policy for [% Branches.GetName( humanbranch ) | html %]</h3> >+ [% ELSE %] >+ <h3>Default waiting hold cancellation policy</h3> >+ [% END %] >+ <div class="page-section"> >+ <p>Specify if waiting holds can be cancelled for a given patron category.</p> >+ <form id="set-waiting-hold-cancellation" method="post" action="/cgi-bin/koha/admin/smart-rules.pl"> >+ <input type="hidden" name="op" value="set-waiting-hold-cancellation" /> >+ <input type="hidden" name="branch" value="[% current_branch | html %]"/> >+ <table> >+ <tr> >+ <th>Patron category</th> >+ <th>Item type</th> >+ <th>Cancellation allowed</th> >+ <th> </th> >+ </tr> >+ [% FOREACH c IN categorycodes %] >+ [% SET c = '*' UNLESS c.defined AND c != '' %] >+ [% FOREACH i IN itemtypes %] >+ [% SET i = '*' UNLESS i.defined AND i != '' %] > >- [% IF ( patron_maxissueqty.defined && patron_maxissueqty != '' ) || ( patron_maxonsiteissueqty.defined && patron_maxonsiteissueqty != '' ) || ( max_holds.defined && max_holds != '' ) %] >+ [% SET waiting_hold_cancellation = CirculationRules.Search( current_branch, c, i, 'waiting_hold_cancellation' ) %] >+ >+ [% IF ( waiting_hold_cancellation.defined && waiting_hold_cancellation != '' ) %] > <tr> > <td> >- [% IF c == undef %] >- <em>Default</em> >+ [% IF c == '*' %] >+ <em>All</em> > [% ELSE %] > [% Categories.GetName(c) | html %] > [% END %] > </td> > <td> >- [% IF patron_maxissueqty.defined && patron_maxissueqty != '' %] >- [% patron_maxissueqty | html %] >- [% ELSE %] >- <span>Unlimited</span> >- [% END %] >- </td> >- <td> >- [% IF patron_maxonsiteissueqty.defined && patron_maxonsiteissueqty != '' %] >- [% patron_maxonsiteissueqty | html %] >+ [% IF i == '*' %] >+ <em>All</em> > [% ELSE %] >- <span>Unlimited</span> >+ [% ItemTypes.GetDescription(i,1) | html %] > [% END %] > </td> > <td> >- [% IF max_holds.defined && max_holds != '' %] >- [% max_holds | html %] >+ [% IF waiting_hold_cancellation %] >+ <span>Yes</span> > [% ELSE %] >- <span>Unlimited</span> >+ <span>No</span> > [% END %] > </td> >- > <td class="actions"> >- <a class="btn btn-default btn-xs delete" href="/cgi-bin/koha/admin/smart-rules.pl?op=delete-branch-cat&categorycode=[% c | html %]&branch=[% current_branch | html %]"><i class="fa fa-trash"></i> Delete</a> >+ <a class="btn btn-default btn-xs delete" href="/cgi-bin/koha/admin/smart-rules.pl?op=del-waiting-hold-cancellation&waiting_hold_cancellation_category=[% c | uri %]&waiting_hold_cancellation_itemtype=[% i | uri %]&branch=[% current_branch | uri %]"><i class="fa fa-trash"></i> Delete</a> > </td> > </tr> >- [% END %] > [% END %] >- <tr> >- <td> >- <select name="categorycode"> >- [% FOREACH patron_category IN patron_categories%] >- <option value="[% patron_category.categorycode | html %]">[% patron_category.description | html %]</option> >- [% END %] >- </select> >- </td> >- <td><input name="patron_maxissueqty" size="3" type="text" /></td> >- <td><input name="patron_maxonsiteissueqty" size="3" type="text" /></td> >- <td><input name="max_holds" size="3" type="text" /></td> >- <td class="actions"><button type="submit" class="btn btn-default btn-xs"><i class="fa fa-plus"></i> Add</td> >- </tr> >- </table> >- </form> >- </div> >- [% END %] >- >- <div id="waiting-hold-cancel-category" class="container"> >- [% IF humanbranch %] >- <h3>Waiting hold cancellation policy for [% Branches.GetName( humanbranch ) | html %]</h3> >- [% ELSE %] >- <h3>Default waiting hold cancellation policy</h3> >- [% END %] >- <p>Specify if waiting holds can be cancelled for a given patron category.</p> >- <form id="set-waiting-hold-cancellation" method="post" action="/cgi-bin/koha/admin/smart-rules.pl"> >- <input type="hidden" name="op" value="set-waiting-hold-cancellation" /> >- <input type="hidden" name="branch" value="[% current_branch | html %]"/> >- <table> >- <tr> >- <th>Patron category</th> >- <th>Item type</th> >- <th>Cancellation allowed</th> >- <th> </th> >- </tr> >- [% FOREACH c IN categorycodes %] >- [% SET c = '*' UNLESS c.defined AND c != '' %] >- [% FOREACH i IN itemtypes %] >- [% SET i = '*' UNLESS i.defined AND i != '' %] >- >- [% SET waiting_hold_cancellation = CirculationRules.Search( current_branch, c, i, 'waiting_hold_cancellation' ) %] >- >- [% IF ( waiting_hold_cancellation.defined && waiting_hold_cancellation != '' ) %] >- <tr> >- <td> >- [% IF c == '*' %] >- <em>All</em> >- [% ELSE %] >- [% Categories.GetName(c) | html %] >- [% END %] >- </td> >- <td> >- [% IF i == '*' %] >- <em>All</em> >- [% ELSE %] >- [% ItemTypes.GetDescription(i,1) | html %] >- [% END %] >- </td> >- <td> >- [% IF waiting_hold_cancellation %] >- <span>Yes</span> >- [% ELSE %] >- <span>No</span> >- [% END %] >- </td> >- <td class="actions"> >- <a class="btn btn-default btn-xs delete" href="/cgi-bin/koha/admin/smart-rules.pl?op=del-waiting-hold-cancellation&waiting_hold_cancellation_category=[% c | uri %]&waiting_hold_cancellation_itemtype=[% i | uri %]&branch=[% current_branch | uri %]"><i class="fa fa-trash"></i> Delete</a> >- </td> >- </tr> > [% END %] > [% END %] >- [% END %] >- <tr> >- <td> >- <select name="waiting_hold_cancellation_category" id="waiting_hold_cancellation_category"> >- <option value="*">All</option> >- [% FOREACH patron_category IN patron_categories %] >- <option value="[% patron_category.categorycode | html %]">[% patron_category.description | html %]</option> >- [% END %] >- </select> >- </td> >- <td> >- <select name="waiting_hold_cancellation_itemtype" id="waiting_hold_cancellation_itemtype"> >- <option value="*">All</option> >- [% FOREACH itemtype IN itemtypeloop %] >- <option value="[% itemtype.itemtype | html %]">[% ItemTypes.GetDescription(itemtype.itemtype) | html %]</option> >- [% END %] >- </select> >- </td> >- <td> >- <select name="waiting_hold_cancellation_policy" id="waiting_hold_cancellation_policy"> >- <option value="0" selected>No</option> >- <option value="1">Yes</option> >- </select> >- </td> >- <td class="actions"><button type="submit" class="btn btn-default btn-xs"><i class="fa fa-plus"></i> Add</td> >- </tr> >- </table> >- </form> >+ <tr> >+ <td> >+ <select name="waiting_hold_cancellation_category" id="waiting_hold_cancellation_category"> >+ <option value="*">All</option> >+ [% FOREACH patron_category IN patron_categories %] >+ <option value="[% patron_category.categorycode | html %]">[% patron_category.description | html %]</option> >+ [% END %] >+ </select> >+ </td> >+ <td> >+ <select name="waiting_hold_cancellation_itemtype" id="waiting_hold_cancellation_itemtype"> >+ <option value="*">All</option> >+ [% FOREACH itemtype IN itemtypeloop %] >+ <option value="[% itemtype.itemtype | html %]">[% ItemTypes.GetDescription(itemtype.itemtype) | html %]</option> >+ [% END %] >+ </select> >+ </td> >+ <td> >+ <select name="waiting_hold_cancellation_policy" id="waiting_hold_cancellation_policy"> >+ <option value="0" selected>No</option> >+ <option value="1">Yes</option> >+ </select> >+ </td> >+ <td class="actions"><button type="submit" class="btn btn-default btn-xs"><i class="fa fa-plus"></i> Add</button></td> >+ </tr> >+ </table> >+ </form> >+ </div> <!-- /.page-section --> > </div> > > [% IF Koha.Preference('ArticleRequests') %] >@@ -994,7 +1002,7 @@ > </select> > </td> > <td><input name="open_article_requests_limit" size="3" type="text" /></td> >- <td class="actions"><button type="submit" class="btn btn-default btn-xs"><i class="fa fa-plus"></i> Add</td> >+ <td class="actions"><button type="submit" class="btn btn-default btn-xs"><i class="fa fa-plus"></i> Add</button></td> > </tr> > </table> > </form> >@@ -1052,7 +1060,7 @@ > </select> > </td> > <td><input name="article_request_fee" size="3" type="text" /></td> >- <td class="actions"><button type="submit" class="btn btn-default btn-xs"><i class="fa fa-plus"></i> Add</td> >+ <td class="actions"><button type="submit" class="btn btn-default btn-xs"><i class="fa fa-plus"></i> Add</button></td> > </tr> > </table> > </form> >@@ -1066,321 +1074,325 @@ > [% ELSE %] > <h3>Lost item fee refund on return policy for [% Branches.GetName(current_branch) | html %]</h3> > [% END %] >- <p>Specify the default policy for lost item fees on return. >- </p> >- <form method="post" action="/cgi-bin/koha/admin/smart-rules.pl"> >- <input type="hidden" name="op" value="mod-refund-lost-item-fee-rule" /> >- <input type="hidden" name="branch" value="[% current_branch | html %]" /> >- <table> >- <tr> >- <th>Refund lost item replacement fee</th> >- <th>Refund lost item processing fee</th> >- <th> </th> >- </tr> >- <tr> >- <td> >- <select name="lostreturn"> >- [%# Default branch %] >- [% IF ( current_branch == '*' ) %] >- [% IF ( defaultRefundRule == 'refund' ) %] >- <option value="refund" selected="selected">Refund lost item charge</option> >- <option value="refund_unpaid">Refund lost item charge (only if unpaid)</option> >- <option value="charge">Refund lost item charge and charge new overdue fine</option> >- <option value="restore">Refund lost item charge and restore overdue fine</option> >- <option value="0">Leave lost item charge</option> >- [% ELSIF ( defaultRefundRule == 'refund_unpaid' ) %] >- <option value="refund">Refund lost item charge</option> >- <option value="refund_unpaid" selected="selected">Refund lost item charge (only if unpaid)</option> >- <option value="charge">Refund lost item charge and charge new overdue fine</option> >- <option value="restore">Refund lost item charge and restore overdue fine</option> >- <option value="0">Leave lost item charge</option> >- [% ELSIF ( defaultRefundRule == 'charge' ) %] >- <option value="refund">Refund lost item charge</option> >- <option value="refund_unpaid">Refund lost item charge (only if unpaid)</option> >- <option value="charge" selected="selected">Refund lost item charge and charge new overdue fine</option> >- <option value="restore">Refund lost item charge and restore overdue fine</option> >- <option value="0">Leave lost item charge</option> >- [% ELSIF ( defaultRefundRule == 'restore' ) %] >- <option value="refund">Refund lost item charge</option> >- <option value="refund_unpaid">Refund lost item charge (only if unpaid)</option> >- <option value="charge">Refund lost item charge and charge new overdue fine</option> >- <option value="restore" selected="selected">Refund lost item charge and restore overdue fine</option> >- <option value="0">Leave lost item charge</option> >- [% ELSIF ( defaultRefundRule == 0 ) %] >- <option value="refund">Refund lost item charge</option> >- <option value="refund_unpaid">Refund lost item charge (only if unpaid)</option> >- <option value="charge">Refund lost item charge and charge new overdue fine</option> >- <option value="restore">Refund lost item charge and restore overdue fine</option> >- <option value="0" selected="selected">Leave lost item charge</option> >- [% ELSE %] >- <option value="refund">Refund lost item charge</option> >- <option value="refund_unpaid">Refund lost item charge (only if unpaid)</option> >- <option value="charge">Refund lost item charge and charge new overdue fine</option> >- <option value="restore">Refund lost item charge and restore overdue fine</option> >- <option value="0">Leave lost item charge</option> >- [% END %] >- [% ELSE %] >- [%# Branch-specific %] >- [% IF ( not refundLostItemFeeRule ) %] >- <option value="*" selected="selected"> >- [% ELSE %] >- <option value="*"> >- [% END %] >- [% IF defaultRefundRule == 'refund' %] >- <span>Use default (Refund lost item charge)</span> >- [% ELSIF defaultRefundRule == 'refund_unpaid' %] >- Use default (Refund lost item charge (only if unpaid)) >- [% ELSIF defaultRefundRule == 'charge' %] >- <span>Use default (Refund lost item charge and charge new overdue fine)</span> >- [% ELSIF defaultRefundRule == 'restore' %] >- <span>Use default (Refund lost item charge and restore overdue fine)</span> >- [% ELSE %] >- <span>Use default (Leave lost item charge)</span> >- [% END %] >- </option> >- [% IF ( not refundLostItemFeeRule ) %] >- <option value="refund">Refund lost item charge</option> >- <option value="refund_unpaid">Refund lost item charge (only if unpaid)</option> >- <option value="charge">Refund lost item charge and charge new overdue fine</option> >- <option value="restore">Refund lost item charge and restore overdue fine</option> >- <option value="0">Leave lost item charge</option> >- [% ELSE %] >- [% IF ( refundLostItemFeeRule.rule_value == 'refund' ) %] >+ <div class="page-section"> >+ <p>Specify the default policy for lost item fees on return.</p> >+ <form method="post" action="/cgi-bin/koha/admin/smart-rules.pl"> >+ <input type="hidden" name="op" value="mod-refund-lost-item-fee-rule" /> >+ <input type="hidden" name="branch" value="[% current_branch | html %]" /> >+ <table> >+ <tr> >+ <th>Refund lost item replacement fee</th> >+ <th>Refund lost item processing fee</th> >+ <th> </th> >+ </tr> >+ <tr> >+ <td> >+ <select name="lostreturn"> >+ [%# Default branch %] >+ [% IF ( current_branch == '*' ) %] >+ [% IF ( defaultRefundRule == 'refund' ) %] > <option value="refund" selected="selected">Refund lost item charge</option> > <option value="refund_unpaid">Refund lost item charge (only if unpaid)</option> > <option value="charge">Refund lost item charge and charge new overdue fine</option> > <option value="restore">Refund lost item charge and restore overdue fine</option> > <option value="0">Leave lost item charge</option> >- [% ELSIF ( refundLostItemFeeRule.rule_value == 'refund_unpaid' ) %] >+ [% ELSIF ( defaultRefundRule == 'refund_unpaid' ) %] > <option value="refund">Refund lost item charge</option> > <option value="refund_unpaid" selected="selected">Refund lost item charge (only if unpaid)</option> >- <option value="charge" selected="selected">Refund lost item charge and charge new overdue fine</option> >+ <option value="charge">Refund lost item charge and charge new overdue fine</option> > <option value="restore">Refund lost item charge and restore overdue fine</option> > <option value="0">Leave lost item charge</option> >- [% ELSIF ( refundLostItemFeeRule.rule_value == 'charge' ) %] >+ [% ELSIF ( defaultRefundRule == 'charge' ) %] > <option value="refund">Refund lost item charge</option> > <option value="refund_unpaid">Refund lost item charge (only if unpaid)</option> > <option value="charge" selected="selected">Refund lost item charge and charge new overdue fine</option> > <option value="restore">Refund lost item charge and restore overdue fine</option> > <option value="0">Leave lost item charge</option> >- [% ELSIF ( refundLostItemFeeRule.rule_value == 'restore' ) %] >+ [% ELSIF ( defaultRefundRule == 'restore' ) %] > <option value="refund">Refund lost item charge</option> > <option value="refund_unpaid">Refund lost item charge (only if unpaid)</option> > <option value="charge">Refund lost item charge and charge new overdue fine</option> > <option value="restore" selected="selected">Refund lost item charge and restore overdue fine</option> > <option value="0">Leave lost item charge</option> >- [% ELSIF ( refundLostItemFeeRule.rule_value == 0 ) %] >+ [% ELSIF ( defaultRefundRule == 0 ) %] > <option value="refund">Refund lost item charge</option> > <option value="refund_unpaid">Refund lost item charge (only if unpaid)</option> > <option value="charge">Refund lost item charge and charge new overdue fine</option> > <option value="restore">Refund lost item charge and restore overdue fine</option> > <option value="0" selected="selected">Leave lost item charge</option> >+ [% ELSE %] >+ <option value="refund">Refund lost item charge</option> >+ <option value="refund_unpaid">Refund lost item charge (only if unpaid)</option> >+ <option value="charge">Refund lost item charge and charge new overdue fine</option> >+ <option value="restore">Refund lost item charge and restore overdue fine</option> >+ <option value="0">Leave lost item charge</option> > [% END %] >- [% END %] >- [% END %] >- </select> >- </td> >- <td> >- <select name="processingreturn"> >- [%# Default branch %] >- [% IF ( current_branch == '*' ) %] >- [% IF ( defaultProcessingRefundRule == 'refund' ) %] >- <option value="refund" selected="selected">Refund lost item processing charge</option> >- <option value="refund_unpaid">Refund lost item processing charge (only if unpaid)</option> >- <option value="0">Leave lost item processing charge</option> >- [% ELSIF ( defaultProcessingRefundRule == 'refund_unpaid' ) %] >- <option value="refund">Refund lost item charge</option> >- <option value="refund_unpaid" selected="selected">Refund lost item processing charge (only if unpaid)</option> >- <option value="0">Leave lost item processing charge</option> >- [% ELSIF ( defaultProcessingRefundRule == 0 ) %] >- <option value="refund">Refund lost item processing charge</option> >- <option value="refund_unpaid">Refund lost item processing charge (only if unpaid)</option> >- <option value="0" selected="selected">Leave lost item processing charge</option> >- [% ELSE %] >- <option value="refund">Refund lost item processing charge</option> >- <option value="refund_unpaid">Refund lost item processing charge (only if unpaid)</option> >- <option value="0">Leave lost item processing charge</option> >- [% END %] >- [% ELSE %] >- [%# Branch-specific %] >- [% IF ( not refundProcessingFeeRule ) %] >- <option value="*" selected="selected"> >- [% ELSE %] >- <option value="*"> >- [% END %] >- [% IF defaultProcessingRefundRule == 'refund' %] >- <span>Use default (Refund lost item processing charge)</span> >- [% ELSIF defaultProcessingRefundRule == 'refund_unpaid' %] >- Use default (Refund lost item processing charge (only if unpaid)) > [% ELSE %] >- <span>Use default (Leave lost item processing charge)</span> >+ [%# Branch-specific %] >+ [% IF ( not refundLostItemFeeRule ) %] >+ <option value="*" selected="selected"> >+ [% ELSE %] >+ <option value="*"> >+ [% END %] >+ [% IF defaultRefundRule == 'refund' %] >+ <span>Use default (Refund lost item charge)</span> >+ [% ELSIF defaultRefundRule == 'refund_unpaid' %] >+ Use default (Refund lost item charge (only if unpaid)) >+ [% ELSIF defaultRefundRule == 'charge' %] >+ <span>Use default (Refund lost item charge and charge new overdue fine)</span> >+ [% ELSIF defaultRefundRule == 'restore' %] >+ <span>Use default (Refund lost item charge and restore overdue fine)</span> >+ [% ELSE %] >+ <span>Use default (Leave lost item charge)</span> >+ [% END %] >+ </option> >+ [% IF ( not refundLostItemFeeRule ) %] >+ <option value="refund">Refund lost item charge</option> >+ <option value="refund_unpaid">Refund lost item charge (only if unpaid)</option> >+ <option value="charge">Refund lost item charge and charge new overdue fine</option> >+ <option value="restore">Refund lost item charge and restore overdue fine</option> >+ <option value="0">Leave lost item charge</option> >+ [% ELSE %] >+ [% IF ( refundLostItemFeeRule.rule_value == 'refund' ) %] >+ <option value="refund" selected="selected">Refund lost item charge</option> >+ <option value="refund_unpaid">Refund lost item charge (only if unpaid)</option> >+ <option value="charge">Refund lost item charge and charge new overdue fine</option> >+ <option value="restore">Refund lost item charge and restore overdue fine</option> >+ <option value="0">Leave lost item charge</option> >+ [% ELSIF ( refundLostItemFeeRule.rule_value == 'refund_unpaid' ) %] >+ <option value="refund">Refund lost item charge</option> >+ <option value="refund_unpaid" selected="selected">Refund lost item charge (only if unpaid)</option> >+ <option value="charge" selected="selected">Refund lost item charge and charge new overdue fine</option> >+ <option value="restore">Refund lost item charge and restore overdue fine</option> >+ <option value="0">Leave lost item charge</option> >+ [% ELSIF ( refundLostItemFeeRule.rule_value == 'charge' ) %] >+ <option value="refund">Refund lost item charge</option> >+ <option value="refund_unpaid">Refund lost item charge (only if unpaid)</option> >+ <option value="charge" selected="selected">Refund lost item charge and charge new overdue fine</option> >+ <option value="restore">Refund lost item charge and restore overdue fine</option> >+ <option value="0">Leave lost item charge</option> >+ [% ELSIF ( refundLostItemFeeRule.rule_value == 'restore' ) %] >+ <option value="refund">Refund lost item charge</option> >+ <option value="refund_unpaid">Refund lost item charge (only if unpaid)</option> >+ <option value="charge">Refund lost item charge and charge new overdue fine</option> >+ <option value="restore" selected="selected">Refund lost item charge and restore overdue fine</option> >+ <option value="0">Leave lost item charge</option> >+ [% ELSIF ( refundLostItemFeeRule.rule_value == 0 ) %] >+ <option value="refund">Refund lost item charge</option> >+ <option value="refund_unpaid">Refund lost item charge (only if unpaid)</option> >+ <option value="charge">Refund lost item charge and charge new overdue fine</option> >+ <option value="restore">Refund lost item charge and restore overdue fine</option> >+ <option value="0" selected="selected">Leave lost item charge</option> >+ [% END %] >+ [% END %] > [% END %] >- </option> >- [% IF ( not refundProcessingFeeRule ) %] >- <option value="refund">Refund lost item processing charge</option> >- <option value="refund_unpaid">Refund lost item processing charge (only if unpaid)</option> >- <option value="0">Leave lost item processing charge</option> >- [% ELSE %] >- [% IF ( refundProcessingFeeRule.rule_value == 'refund' ) %] >+ </select> >+ </td> >+ <td> >+ <select name="processingreturn"> >+ [%# Default branch %] >+ [% IF ( current_branch == '*' ) %] >+ [% IF ( defaultProcessingRefundRule == 'refund' ) %] > <option value="refund" selected="selected">Refund lost item processing charge</option> > <option value="refund_unpaid">Refund lost item processing charge (only if unpaid)</option> > <option value="0">Leave lost item processing charge</option> >- [% ELSIF ( refundProcessingFeeRule.rule_value == 'refund_unpaid' ) %] >- <option value="refund">Refund lost item processing charge</option> >+ [% ELSIF ( defaultProcessingRefundRule == 'refund_unpaid' ) %] >+ <option value="refund">Refund lost item charge</option> > <option value="refund_unpaid" selected="selected">Refund lost item processing charge (only if unpaid)</option> > <option value="0">Leave lost item processing charge</option> >- [% ELSIF ( refundProcessingFeeRule.rule_value == 0 ) %] >+ [% ELSIF ( defaultProcessingRefundRule == 0 ) %] > <option value="refund">Refund lost item processing charge</option> > <option value="refund_unpaid">Refund lost item processing charge (only if unpaid)</option> > <option value="0" selected="selected">Leave lost item processing charge</option> >+ [% ELSE %] >+ <option value="refund">Refund lost item processing charge</option> >+ <option value="refund_unpaid">Refund lost item processing charge (only if unpaid)</option> >+ <option value="0">Leave lost item processing charge</option> > [% END %] >- [% END %] >- [% END %] >- </select> >- </td> >- <td class="actions"> >- <button type="submit" class="btn btn-default btn-xs"><i class="fa fa-save"></i> Save</button> >- </td> >- </td> >- </tr> >- </table> >- </form> >+ [% ELSE %] >+ [%# Branch-specific %] >+ [% IF ( not refundProcessingFeeRule ) %] >+ <option value="*" selected="selected"> >+ [% ELSE %] >+ <option value="*"> >+ [% END %] >+ [% IF defaultProcessingRefundRule == 'refund' %] >+ <span>Use default (Refund lost item processing charge)</span> >+ [% ELSIF defaultProcessingRefundRule == 'refund_unpaid' %] >+ Use default (Refund lost item processing charge (only if unpaid)) >+ [% ELSE %] >+ <span>Use default (Leave lost item processing charge)</span> >+ [% END %] >+ </option> >+ [% IF ( not refundProcessingFeeRule ) %] >+ <option value="refund">Refund lost item processing charge</option> >+ <option value="refund_unpaid">Refund lost item processing charge (only if unpaid)</option> >+ <option value="0">Leave lost item processing charge</option> >+ [% ELSE %] >+ [% IF ( refundProcessingFeeRule.rule_value == 'refund' ) %] >+ <option value="refund" selected="selected">Refund lost item processing charge</option> >+ <option value="refund_unpaid">Refund lost item processing charge (only if unpaid)</option> >+ <option value="0">Leave lost item processing charge</option> >+ [% ELSIF ( refundProcessingFeeRule.rule_value == 'refund_unpaid' ) %] >+ <option value="refund">Refund lost item processing charge</option> >+ <option value="refund_unpaid" selected="selected">Refund lost item processing charge (only if unpaid)</option> >+ <option value="0">Leave lost item processing charge</option> >+ [% ELSIF ( refundProcessingFeeRule.rule_value == 0 ) %] >+ <option value="refund">Refund lost item processing charge</option> >+ <option value="refund_unpaid">Refund lost item processing charge (only if unpaid)</option> >+ <option value="0" selected="selected">Leave lost item processing charge</option> >+ [% END %] >+ [% END %] >+ [% END %] >+ </select> >+ </td> >+ <td class="actions"> >+ <button type="submit" class="btn btn-default btn-xs"><i class="fa fa-save"></i> Save</button> >+ </td> >+ </tr> >+ </table> >+ </form> >+ </div><!-- /.page-section --> > </div> > > <div id="holds-policy-by-item-type" class="container"> > <h3>[% IF humanbranch %]Holds policy by item type for [% Branches.GetName( humanbranch ) | html %][% ELSE %]Default holds policy by item type[% END %]</h3> >- <p> >- For this library, you can edit rules for given itemtypes, regardless >- of the patron's category. >- </p> >- <p> >- Currently, this means hold policies. >- The various policies have the following effects: >- </p> >- <ul> >- <li><strong>From any library:</strong> Patrons from any library may put this item on hold. <cite>(default if none is defined)</cite></li> >- <li><strong>From local hold group:</strong> Only patrons from libraries in the same item's home library hold groups may put this book on hold.</li> >- <li><strong>From home library:</strong> Only patrons from the item's home library may put this book on hold.</li> >- <li><strong>No holds allowed:</strong> No patron may put this book on hold.</li> >- </ul> >- <p><strong>Note: </strong>If the system preference 'AllowHoldPolicyOverride' is enabled, these policies can be overridden by your circulation staff.</br /> >- <strong>Important:</strong> >+ <div class="page-section"> >+ <p> >+ For this library, you can edit rules for given itemtypes, regardless >+ of the patron's category. >+ </p> >+ <p> >+ Currently, this means hold policies. >+ The various policies have the following effects: >+ </p> > <ul> >- <li>The hold policies are applied based on the ReservesControlBranch system preference which is set to <a href="/cgi-bin/koha/admin/preferences.pl?op=search&searchfield=ReservesControlBranch">[% Koha.Preference('ReservesControlBranch') | html %]</a>.</li> >- <li>The return policy is applied based on the CircControlReturnsBranch system preference which is set to <a href=""/cgi-bin/koha/admin/preferences.pl?op=search&searchfield=CircControlReturnsBranch">[% Koha.Preference('CircControlReturnsBranch') | html %]</a>.</li> >+ <li><strong>From any library:</strong> Patrons from any library may put this item on hold. <cite>(default if none is defined)</cite></li> >+ <li><strong>From local hold group:</strong> Only patrons from libraries in the same item's home library hold groups may put this book on hold.</li> >+ <li><strong>From home library:</strong> Only patrons from the item's home library may put this book on hold.</li> >+ <li><strong>No holds allowed:</strong> No patron may put this book on hold.</li> > </ul> >- </p> >+ <p> >+ <strong>Note: </strong> >+ If the system preference 'AllowHoldPolicyOverride' is enabled, these policies can be overridden by your circulation staff. >+ </p> >+ <strong>Important:</strong> >+ <ul> >+ <li>The hold policies are applied based on the ReservesControlBranch system preference which is set to <a href="/cgi-bin/koha/admin/preferences.pl?op=search&searchfield=ReservesControlBranch">[% Koha.Preference('ReservesControlBranch') | html %]</a>.</li> >+ <li>The return policy is applied based on the CircControlReturnsBranch system preference which is set to <a href="/cgi-bin/koha/admin/preferences.pl?op=search&searchfield=CircControlReturnsBranch">[% Koha.Preference('CircControlReturnsBranch') | html %]</a>.</li> >+ </ul> > >- <form method="post" action="/cgi-bin/koha/admin/smart-rules.pl"> >- <input type="hidden" name="op" value="add-branch-item" /> >- <input type="hidden" name="branch" value="[% current_branch | html %]"/> >- <table> >- <tr> >- <th>Item type</th> >- <th>Hold policy</th> >- <th>Hold pickup library match</th> >- <th>Return policy</th> >- <th> </th> >- </tr> >- [% FOREACH i IN itemtypeloop %] >- [% SET holdallowed = CirculationRules.Search( branchcode, undef, i.itemtype, 'holdallowed' ) %] >- [% SET hold_fulfillment_policy = CirculationRules.Search( branchcode, undef, i.itemtype, 'hold_fulfillment_policy' ) %] >- [% SET returnbranch = CirculationRules.Search( branchcode, undef, i.itemtype, 'returnbranch' ) %] >+ <form method="post" action="/cgi-bin/koha/admin/smart-rules.pl"> >+ <input type="hidden" name="op" value="add-branch-item" /> >+ <input type="hidden" name="branch" value="[% current_branch | html %]"/> >+ <table> >+ <tr> >+ <th>Item type</th> >+ <th>Hold policy</th> >+ <th>Hold pickup library match</th> >+ <th>Return policy</th> >+ <th> </th> >+ </tr> >+ [% FOREACH i IN itemtypeloop %] >+ [% SET holdallowed = CirculationRules.Search( branchcode, undef, i.itemtype, 'holdallowed' ) %] >+ [% SET hold_fulfillment_policy = CirculationRules.Search( branchcode, undef, i.itemtype, 'hold_fulfillment_policy' ) %] >+ [% SET returnbranch = CirculationRules.Search( branchcode, undef, i.itemtype, 'returnbranch' ) %] > >- [% IF holdallowed || hold_fulfillment_policy || returnbranch %] >- <tr> >- <td> >- [% i.translated_description | html %] >- </td> >- <td> >- [% IF holdallowed == 'from_any_library' %] >- <span>From any library</span> >- [% ELSIF holdallowed == 'from_local_hold_group' %] >- <span>From local hold group</span> >- [% ELSIF holdallowed == 'from_home_library' %] >- <span>From home library</span> >- [% ELSE %] >- <span>No holds allowed</span> >- [% END %] >- </td> >- <td> >- [% IF hold_fulfillment_policy == 'any' %] >- <span>any library</span> >- [% ELSIF hold_fulfillment_policy == 'homebranch' %] >- <span>item's home library</span> >- [% ELSIF hold_fulfillment_policy == 'holdgroup' %] >- <span>item's hold group</span> >- [% ELSIF hold_fulfillment_policy == 'patrongroup' %] >- <span>patron's hold group</span> >- [% ELSIF hold_fulfillment_policy == 'holdingbranch' %] >- <span>item's holding library</span> >- [% END %] >- </td> >- <td> >- [% IF returnbranch == 'homebranch' %] >- <span>Item returns home</span> >- [% ELSIF returnbranch == 'holdingbranch' %] >- <span>Item returns to issuing branch</span> >- [% ELSIF returnbranch == 'noreturn' %] >- <span>Item floats</span> >- [% END %] >- </td> >- <td class="actions"> >- <a class="btn btn-default btn-xs delete" href="/cgi-bin/koha/admin/smart-rules.pl?op=delete-branch-item&itemtype=[% i.itemtype | uri %]&branch=[% current_branch | uri %]"><i class="fa fa-trash"></i> Delete</a> >- </td> >- </tr> >- [% END %] >- [% END %] >- <tr> >- <td> >- <select name="itemtype"> >- [% FOREACH itemtypeloo IN itemtypeloop %] >- <option value="[% itemtypeloo.itemtype | html %]">[% itemtypeloo.translated_description | html %]</option> >+ [% IF holdallowed || hold_fulfillment_policy || returnbranch %] >+ <tr> >+ <td> >+ [% i.translated_description | html %] >+ </td> >+ <td> >+ [% IF holdallowed == 'from_any_library' %] >+ <span>From any library</span> >+ [% ELSIF holdallowed == 'from_local_hold_group' %] >+ <span>From local hold group</span> >+ [% ELSIF holdallowed == 'from_home_library' %] >+ <span>From home library</span> >+ [% ELSE %] >+ <span>No holds allowed</span> >+ [% END %] >+ </td> >+ <td> >+ [% IF hold_fulfillment_policy == 'any' %] >+ <span>any library</span> >+ [% ELSIF hold_fulfillment_policy == 'homebranch' %] >+ <span>item's home library</span> >+ [% ELSIF hold_fulfillment_policy == 'holdgroup' %] >+ <span>item's hold group</span> >+ [% ELSIF hold_fulfillment_policy == 'patrongroup' %] >+ <span>patron's hold group</span> >+ [% ELSIF hold_fulfillment_policy == 'holdingbranch' %] >+ <span>item's holding library</span> >+ [% END %] >+ </td> >+ <td> >+ [% IF returnbranch == 'homebranch' %] >+ <span>Item returns home</span> >+ [% ELSIF returnbranch == 'holdingbranch' %] >+ <span>Item returns to issuing branch</span> >+ [% ELSIF returnbranch == 'noreturn' %] >+ <span>Item floats</span> >+ [% END %] >+ </td> >+ <td class="actions"> >+ <a class="btn btn-default btn-xs delete" href="/cgi-bin/koha/admin/smart-rules.pl?op=delete-branch-item&itemtype=[% i.itemtype | uri %]&branch=[% current_branch | uri %]"><i class="fa fa-trash"></i> Delete</a> >+ </td> >+ </tr> > [% END %] >- </select> >- </td> >- <td> >- <select name="holdallowed"> >- <option value="from_any_library">From any library</option> >- <option value="from_local_hold_group">From local hold group</option> >- <option value="from_home_library">From home library</option> >- <option value="not_allowed">No holds allowed</option> >- </select> >- </td> >- <td> >- <select name="hold_fulfillment_policy"> >- <option value="any"> >- any library >- </option> >+ [% END %] >+ <tr> >+ <td> >+ <select name="itemtype"> >+ [% FOREACH itemtypeloo IN itemtypeloop %] >+ <option value="[% itemtypeloo.itemtype | html %]">[% itemtypeloo.translated_description | html %]</option> >+ [% END %] >+ </select> >+ </td> >+ <td> >+ <select name="holdallowed"> >+ <option value="from_any_library">From any library</option> >+ <option value="from_local_hold_group">From local hold group</option> >+ <option value="from_home_library">From home library</option> >+ <option value="not_allowed">No holds allowed</option> >+ </select> >+ </td> >+ <td> >+ <select name="hold_fulfillment_policy"> >+ <option value="any"> >+ any library >+ </option> > >- <option value="holdgroup"> >- item's hold group >- </option> >+ <option value="holdgroup"> >+ item's hold group >+ </option> > >- <option value="patrongroup"> >- patron's hold group >- </option> >+ <option value="patrongroup"> >+ patron's hold group >+ </option> > >- <option value="homebranch"> >- item's home library >- </option> >+ <option value="homebranch"> >+ item's home library >+ </option> > >- <option value="holdingbranch"> >- item's holding library >- </option> >- </select> >- </td> >- <td> >- <select name="returnbranch"> >- <option value="homebranch">Item returns home</option> >- <option value="holdingbranch">Item returns to issuing library</option> >- <option value="noreturn">Item floats</option> >- </select> >- </td> >- <td class="actions"><button type="submit" class="btn btn-default btn-xs"><i class="fa fa-plus"></i> Add</button></td> >- </tr> >- </table> >- </form> >+ <option value="holdingbranch"> >+ item's holding library >+ </option> >+ </select> >+ </td> >+ <td> >+ <select name="returnbranch"> >+ <option value="homebranch">Item returns home</option> >+ <option value="holdingbranch">Item returns to issuing library</option> >+ <option value="noreturn">Item floats</option> >+ </select> >+ </td> >+ <td class="actions"><button type="submit" class="btn btn-default btn-xs"><i class="fa fa-plus"></i> Add</button></td> >+ </tr> >+ </table> >+ </form> >+ </div><!-- /.page-section --> > </div> > </main> > </div> <!-- /.col-sm-10.col-sm-push-2 --> >-- >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 32028
:
143052
|
143146
|
143214
|
143260
|
143261
|
143498
|
143499
|
143500
|
143503
|
143506
|
143507
|
143508
|
143509