From 45e8ad4281297ad8a426a4056b5c1c2ca8c3d3fd Mon Sep 17 00:00:00 2001
From: Magnus Enger <magnus@enger.priv.no>
Date: Wed, 10 Oct 2012 16:43:19 +0200
Subject: [PATCH] Bug 2832 - Make alphabet localizable
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="utf-8"

Adds the "alphabet" syspref, which can hold a space separated list
of charachters, which can be expanded into browse links when needed.

To test:
- Make sure to run updatedatabase
- Check that the "alphabet" syspref was added under "I18N/L10N preferences"
- Check that browse links are displayed Home › Patrons
- Add some weird charachters like ÆØÅ to "alphabet" and check that the
  browse links are still displayed ok

Signed-off-by: Mirko Tietgen <mirko@abunchofthings.net>
---
 .../nb-NO/1-Obligatorisk/system_preferences.sql    |    1 +
 installer/data/mysql/sysprefs.sql                  |    1 +
 installer/data/mysql/updatedatabase.pl             |    7 +++++++
 .../en/modules/admin/preferences/i18n_l10n.pref    |    5 +++++
 .../prog/en/modules/members/member.tt              |    4 ++--
 members/members-home.pl                            |    3 +--
 6 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/installer/data/mysql/nb-NO/1-Obligatorisk/system_preferences.sql b/installer/data/mysql/nb-NO/1-Obligatorisk/system_preferences.sql
index 0ab90c3..88d0b23 100644
--- a/installer/data/mysql/nb-NO/1-Obligatorisk/system_preferences.sql
+++ b/installer/data/mysql/nb-NO/1-Obligatorisk/system_preferences.sql
@@ -25,5 +25,6 @@ UPDATE systempreferences SET value = 'nb-NO' WHERE variable = 'language';
 UPDATE systempreferences SET value = 'nb-NO' WHERE variable = 'opaclanguages';
 UPDATE systempreferences SET value = '<p>Velkommen til Koha...</p><hr />' WHERE variable = 'OpacMainUserBlock';
 UPDATE systempreferences SET value = '<p>Viktige lenker kan plasseres her</p>' WHERE variable = 'OpacNav';
+UPDATE systempreferences SET value = 'A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Æ Ø Å' WHERE variable = 'alphabet';
 
 UPDATE systempreferences SET value = '<li><a href="http://worldcat.org/search?q={TITLE}" target="_blank">Andre bibliotek (WorldCat)</a></li><li><a href="http://www.scholar.google.com/scholar?q={TITLE}" target="_blank">Andre databaser (Google Scholar)</a></li><li><a href="http://www.bookfinder.com/search/?author={AUTHOR}&amp;title={TITLE}&amp;st=xl&amp;ac=qr" target="_blank">Nettbutikker (Bookfinder.com)</a></li>' WHERE variable = 'OPACSearchForTitleIn';
diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql
index a4fceea..d0ed16c 100644
--- a/installer/data/mysql/sysprefs.sql
+++ b/installer/data/mysql/sysprefs.sql
@@ -386,3 +386,4 @@ INSERT INTO systempreferences (variable,value,explanation,type) VALUES('OPACdidy
 INSERT INTO systempreferences (variable,value,explanation,type) VALUES('INTRAdidyoumean',NULL,'Did you mean? configuration for the Intranet. Do not change, as this is controlled by /cgi-bin/koha/admin/didyoumean.pl.','Free');
 INSERT INTO systempreferences (variable, value, options, explanation, type) VALUES ('BlockReturnOfWithdrawnItems', '1', '0', 'If enabled, items that are marked as withdrawn cannot be returned.', 'YesNo');
 INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('HoldsToPullStartDate','2','Set the default start date for the Holds to pull list to this many days ago',NULL,'Integer');
+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('alphabet','A B C D E F G H I J K L M N O P Q R S T U V W X Y Z','Alphabet than can be expanded into browse links, e.g. on Home > Patrons',NULL,'free');
diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl
index e67bf3e..b719a80 100755
--- a/installer/data/mysql/updatedatabase.pl
+++ b/installer/data/mysql/updatedatabase.pl
@@ -6011,6 +6011,13 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
     SetVersion ($DBversion);
 }
 
+$DBversion = "3.09.00.XXX";
+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
+    $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('alphabet','A B C D E F G H I J K L M N O P Q R S T U V W X Y Z','Alphabet that can be expanded into browse links, e.g. on Home > Patrons',NULL,'free')");
+    print "Upgrade to $DBversion done (Bug 2832 - Add alphabet syspref)\n";
+    SetVersion($DBversion);
+}
+
 =head1 FUNCTIONS
 
 =head2 TableExists($table)
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/i18n_l10n.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/i18n_l10n.pref
index 02b8de6..cc6700b 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/i18n_l10n.pref
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/i18n_l10n.pref
@@ -31,3 +31,8 @@ I18N/L10N:
         - "Enable the following languages on the OPAC:"
         - pref: opaclanguages
           type: opac-languages
+    -
+        - "Use the alphabet"
+        - pref: alphabet
+          class: long
+        - for lists of browsable letters. This should be a space separated list of uppercase letters.
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/member.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/member.tt
index 64e410f..1a7079e 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/member.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/member.tt
@@ -24,8 +24,8 @@
 
 						<div class="browse">
 							Browse by last name:
-							[% FOREACH letter IN letters %]
-								<a href="/cgi-bin/koha/members/member.pl?quicksearch=1&amp;surname=[% letter.letter %]">[% letter.letter %]</a>
+							[% FOREACH letter IN alphabet.split(' ') %]
+								<a href="/cgi-bin/koha/members/member.pl?quicksearch=1&amp;surname=[% letter %]">[% letter %]</a>
 							[% END %]
 						</div>
 
diff --git a/members/members-home.pl b/members/members-home.pl
index 830800e..61eb83a 100755
--- a/members/members-home.pl
+++ b/members/members-home.pl
@@ -80,7 +80,6 @@ $template->param(
         "AddPatronLists_".C4::Context->preference("AddPatronLists")=> "1",
         no_add => $no_add,
             );
-my @letters = map { {letter => $_} } ( 'A' .. 'Z');
-$template->param( letters => \@letters );
+$template->param( 'alphabet' => C4::Context->preference('alphabet') );
 
 output_html_with_http_headers $query, $cookie, $template->output;
-- 
1.7.2.5