From 5449a194bfdfbe132911b9e0a8e809804d60c39d Mon Sep 17 00:00:00 2001
From: Jason Etheridge <jason@esilibrary.com>
Date: Sun, 31 Jul 2011 01:39:39 -0400
Subject: [PATCH] Org setting for the result cap for Patron Search

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
---
 Open-ILS/src/sql/Pg/950.data.seed-values.sql       | 18 +++++++++++++
 ...ata.org-setting-ui.patron_search.result_cap.sql | 30 ++++++++++++++++++++++
 .../staff_client/server/patron/search_result.js    |  7 +++++
 3 files changed, 55 insertions(+)
 create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.data.org-setting-ui.patron_search.result_cap.sql

diff --git a/Open-ILS/src/sql/Pg/950.data.seed-values.sql b/Open-ILS/src/sql/Pg/950.data.seed-values.sql
index 29a4f90302..01416a0338 100644
--- a/Open-ILS/src/sql/Pg/950.data.seed-values.sql
+++ b/Open-ILS/src/sql/Pg/950.data.seed-values.sql
@@ -2840,6 +2840,24 @@ INSERT into config.org_unit_setting_type
         ),
         'bool'
     )
+,(
+        'ui.patron_search.result_cap',
+        oils_i18n_gettext(
+            'ui.patron_search.result_cap',
+            'GUI: Cap results in Patron Search at this number.',
+            'coust',
+            'label'
+        ),
+        oils_i18n_gettext(
+            'ui.patron_search.result_cap',
+            'So for example, if you search for John Doe, normally you would get'
+            || ' at most 50 results.  This setting allows you to raise or lower'
+            || ' that limit.',
+            'coust',
+            'description'
+        ),
+        'integer'
+    )
 ;
 
 UPDATE config.org_unit_setting_type
diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.data.org-setting-ui.patron_search.result_cap.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.data.org-setting-ui.patron_search.result_cap.sql
new file mode 100644
index 0000000000..aacc6c9adb
--- /dev/null
+++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.data.org-setting-ui.patron_search.result_cap.sql
@@ -0,0 +1,30 @@
+-- Evergreen DB patch XXXX.data.org-setting-ui.patron_search.result_cap.sql
+--
+-- New org setting ui.patron_search.result_cap
+--
+BEGIN;
+
+-- check whether patch can be applied
+SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version);
+
+INSERT INTO config.org_unit_setting_type ( name, label, description, datatype )
+    VALUES (
+        'ui.patron_search.result_cap',
+        oils_i18n_gettext(
+            'ui.patron_search.result_cap',
+            'GUI: Cap results in Patron Search at this number.',
+            'coust',
+            'label'
+        ),
+        oils_i18n_gettext(
+            'ui.patron_search.result_cap',
+            'So for example, if you search for John Doe, normally you would get'
+            || ' at most 50 results.  This setting allows you to raise or lower'
+            || ' that limit.',
+            'coust',
+            'description'
+        ),
+        'integer'
+    );
+
+COMMIT;
diff --git a/Open-ILS/xul/staff_client/server/patron/search_result.js b/Open-ILS/xul/staff_client/server/patron/search_result.js
index 5449753379..6d71bd50b2 100644
--- a/Open-ILS/xul/staff_client/server/patron/search_result.js
+++ b/Open-ILS/xul/staff_client/server/patron/search_result.js
@@ -26,6 +26,13 @@ patron.search_result.prototype = {
         obj.OpenILS.data = new OpenILS.data(); obj.OpenILS.data.init({'via':'stash'});
         var obscure_dob = String( obj.OpenILS.data.hash.aous['circ.obscure_dob'] ) == 'true';
 
+        var result_cap_setting = obj.OpenILS.data.hash.aous[
+            'ui.patron_search.result_cap'
+        ];
+        if (typeof result_cap_setting != 'undefined') {
+            obj.result_cap = Math.abs( result_cap_setting );
+        }
+
         JSAN.use('util.list'); obj.list = new util.list('patron_list');
 
         JSAN.use('patron.util');
-- 
2.11.0