From 96c6bdd925268ca98116f8660e607986741cf209 Mon Sep 17 00:00:00 2001
From: Kyle M Hall <kyle@bywatersolutions.com>
Date: Fri, 13 Apr 2012 11:12:29 -0400
Subject: [PATCH] Bug 7951 - Suspending holds needs a system preference
Adds system preferences SuspendHoldsIntranet and SuspendHoldsOpac.
---
circ/circulation.pl | 6 +++---
installer/data/mysql/sysprefs.sql | 2 ++
installer/data/mysql/updatedatabase.pl | 8 ++++++++
.../en/modules/admin/preferences/circulation.pref | 12 ++++++++++++
.../prog/en/modules/circ/circulation.tt | 4 +++-
.../prog/en/modules/members/moremember.tt | 3 +++
.../prog/en/modules/reserve/request.tt | 5 ++++-
koha-tmpl/opac-tmpl/prog/en/modules/opac-user.tt | 2 ++
members/moremember.pl | 4 +++-
opac/opac-user.pl | 5 ++++-
reserve/request.pl | 5 ++++-
11 files changed, 48 insertions(+), 8 deletions(-)
diff --git a/circ/circulation.pl b/circ/circulation.pl
index bcbcb6f..2dd3b6a 100755
--- a/circ/circulation.pl
+++ b/circ/circulation.pl
@@ -704,7 +704,9 @@ $template->param(
soundon => C4::Context->preference("SoundOn"),
fast_cataloging => $fast_cataloging,
CircAutoPrintQuickSlip => C4::Context->preference("CircAutoPrintQuickSlip"),
- activeBorrowerRelationship => (C4::Context->preference('borrowerRelationship') ne ''),
+ activeBorrowerRelationship => (C4::Context->preference('borrowerRelationship') ne ''),
+ SuspendHoldsIntranet => C4::Context->preference('SuspendHoldsIntranet'),
+ AutoResumeSuspendedHolds => C4::Context->preference('AutoResumeSuspendedHolds'),
);
# save stickyduedate to session
@@ -729,6 +731,4 @@ $template->param(
canned_bor_notes_loop => $canned_notes,
);
-$template->param( AutoResumeSuspendedHolds => C4::Context->preference('AutoResumeSuspendedHolds') );
-
output_html_with_http_headers $query, $cookie, $template->output;
diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql
index 7a3731c..5a29d3f 100644
--- a/installer/data/mysql/sysprefs.sql
+++ b/installer/data/mysql/sysprefs.sql
@@ -362,3 +362,5 @@ INSERT INTO systempreferences (variable,value,options,explanation,type) VALUES('
INSERT INTO systempreferences (variable,value,options,explanation,type) VALUES ('AutoResumeSuspendedHolds', '1', NULL , 'Allow suspended holds to be automatically resumed by a set date.', 'YesNo');
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('OpacStarRatings','all',NULL,'disable|all|details','Choice');
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('OpacBrowseResults','1','Disable/enable browsing and paging search results from the OPAC detail page.',NULL,'YesNo');
+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('SuspendHoldsIntranet', '1', NULL , 'Allow holds to be suspended from the intranet.', 'YesNo');
+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('SuspendHoldsOpac', '1', NULL , 'Allow holds to be suspended from the OPAC.', 'YesNo');
diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl
index 596aefe..f761be8 100755
--- a/installer/data/mysql/updatedatabase.pl
+++ b/installer/data/mysql/updatedatabase.pl
@@ -5196,6 +5196,14 @@ if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
SetVersion($DBversion);
}
+$DBversion = "3.07.00.XXX";
+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
+ $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('SuspendHoldsIntranet', '1', NULL , 'Allow holds to be suspended from the intranet.', 'YesNo')");
+ $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('SuspendHoldsOpac', '1', NULL , 'Allow holds to be suspended from the OPAC.', 'YesNo')");
+ print "Upgrade to $DBversion done (Add system preference OpacBrowseResults ))\n";
+ SetVersion($DBversion);
+}
+
=head1 FUNCTIONS
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref
index 471aa0e..a792c28 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref
@@ -350,6 +350,18 @@ Circulation:
yes: Allow
no: "Don't allow"
- suspended holds to be automatically resumed by a set date.
+ -
+ - pref: SuspendHoldsIntranet
+ choices:
+ yes: Allow
+ no: "Don't allow"
+ - holds to be suspended from the intranet.
+ -
+ - pref: SuspendHoldsOpac
+ choices:
+ yes: Allow
+ no: "Don't allow"
+ - holds to be suspended from the OPAC.
Fines Policy:
-
- Calculate fines based on days overdue
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt
index b41184e..cb32cc1 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt
@@ -990,6 +990,7 @@ No patron matched <span class="ex">[% message %]</span>
<fieldset class="action"><input type="submit" class="cancel" name="submit" value="Cancel marked holds" /></fieldset>
</form>
+ [% IF SuspendHoldsIntranet %]
<fieldset class="action">
<form action="/cgi-bin/koha/reserve/modrequest_suspendall.pl" method="post">
<input type="hidden" name="from" value="circ" />
@@ -1041,8 +1042,9 @@ No patron matched <span class="ex">[% message %]</span>
<input type="submit" value="Resume all suspended holds" />
</form>
</fieldset>
+ [% END # IF SuspendHoldsIntranet %]
- [% ELSE %]
+[% ELSE %]
<p>Patron has nothing on hold.</p>
[% END %]
</div> <!-- reservesloop -->
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt
index 202c9d3..9033f5c 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt
@@ -646,6 +646,8 @@ function validate1(date) {
<fieldset class="action"><input type="submit" class="cancel" name="submit" value="Cancel marked holds" /></fieldset>
</form>
+
+ [% IF SuspendHoldsIntranet %]
<fieldset class="action">
<form action="/cgi-bin/koha/reserve/modrequest_suspendall.pl" method="post">
<input type="hidden" name="from" value="borrower" />
@@ -697,6 +699,7 @@ function validate1(date) {
<input type="submit" value="Resume all suspended holds" />
</form>
</fieldset>
+ [% END # IF SuspendHoldsIntranet %]
[% ELSE %]<p>Patron has nothing on hold.</p>[% END %]
</div>
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt
index effeb7a..971b041 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt
@@ -598,7 +598,7 @@ function checkMultiHold() {
<th><img src="/intranet-tmpl/[% theme %]/img/go-bottom.png" border="0" alt="Toggle set to lowest priority" /></th>
[% END %]
<th> </th>
- <th> </th>
+ [% IF SuspendHoldsIntranet %]<th> </th><!-- Suspend Holds Column Header -->[% END %]
</tr>
[% FOREACH reserveloo IN biblioloo.reserveloop %]
[% UNLESS ( loop.odd ) %]<tr class="highlight">[% ELSE %]<tr>[% END %]
@@ -730,6 +730,7 @@ function checkMultiHold() {
</a>
</td>
+ [% IF SuspendHoldsIntranet %]
<td>
[% UNLESS ( reserveloo.wait ) %]
<input type="button" value="[% IF ( reserveloo.suspend ) %]Unsuspend[% ELSE %]Suspend[% END %]" onclick="window.location.href='request.pl?action=toggleSuspend&borrowernumber=[% reserveloo.borrowernumber %]&biblionumber=[% reserveloo.biblionumber %]&date=[% reserveloo.date %]&suspend_until=' + $('#suspend_until_[% reserveloo.borrowernumber %]').val()" />
@@ -768,6 +769,8 @@ function checkMultiHold() {
<input type="hidden" name="suspend_until" value="" />
[% END %]
</td>
+ [% END # IF SuspendHoldsIntranet %]
+
</tr>
[% END %] <!-- existing reserveloop -->
diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-user.tt b/koha-tmpl/opac-tmpl/prog/en/modules/opac-user.tt
index 9729c7c..03fb16d 100644
--- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-user.tt
+++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-user.tt
@@ -421,6 +421,7 @@ $.tablesorter.addParser({
</tbody>
</table>
+ [% IF SuspendHoldsOpac %]
<div>
<form action="/cgi-bin/koha/opac-modrequest-suspend.pl" method="post">
<input type="submit" name="submit" class="icon delete cancel" value="Suspend all holds" onclick="return confirmDelete('Are you sure you want to suspend all holds?');" />
@@ -472,6 +473,7 @@ $.tablesorter.addParser({
<input type="hidden" name="suspend" value="0" />
</form>
</div>
+ [% END %]
</div>
[% END %]
</div><!-- /opac-user views -->
diff --git a/members/moremember.pl b/members/moremember.pl
index cc9afb9..ef8cf64 100755
--- a/members/moremember.pl
+++ b/members/moremember.pl
@@ -430,7 +430,9 @@ $template->param(
samebranch => $samebranch,
quickslip => $quickslip,
activeBorrowerRelationship => (C4::Context->preference('borrowerRelationship') ne ''),
- AutoResumeSuspendedHolds => C4::Context->preference('AutoResumeSuspendedHolds') );
+ AutoResumeSuspendedHolds => C4::Context->preference('AutoResumeSuspendedHolds'),
+ SuspendHoldsIntranet => C4::Context->preference('SuspendHoldsIntranet'),
+);
output_html_with_http_headers $input, $cookie, $template->output;
diff --git a/opac/opac-user.pl b/opac/opac-user.pl
index a9a6305..c91d584 100755
--- a/opac/opac-user.pl
+++ b/opac/opac-user.pl
@@ -362,7 +362,10 @@ $template->param(
);
$template->param( DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar() );
-$template->param( AutoResumeSuspendedHolds => C4::Context->preference('AutoResumeSuspendedHolds') );
+$template->param(
+ SuspendHoldsOpac => C4::Context->preference('SuspendHoldsOpac'),
+ AutoResumeSuspendedHolds => C4::Context->preference('AutoResumeSuspendedHolds') ,
+);
output_html_with_http_headers $query, $cookie, $template->output;
diff --git a/reserve/request.pl b/reserve/request.pl
index d9e5904..99d6a0a 100755
--- a/reserve/request.pl
+++ b/reserve/request.pl
@@ -633,7 +633,10 @@ if ( C4::Context->preference( 'AllowHoldDateInFuture' ) ) {
$template->param( reserve_in_future => 1 );
}
-$template->param( AutoResumeSuspendedHolds => C4::Context->preference('AutoResumeSuspendedHolds') );
+$template->param(
+ SuspendHoldsIntranet => C4::Context->preference('SuspendHoldsIntranet'),
+ AutoResumeSuspendedHolds => C4::Context->preference('AutoResumeSuspendedHolds'),
+);
# printout the page
output_html_with_http_headers $input, $cookie, $template->output;
--
1.7.2.5