On OPAC/staff result page facets are truncated to 20 characters. On some OPAC
layout, it's not enough. A new syspref FacetLabelTruncationLength defines the
length to cut facets if necessary.

This patch add the syspref to searching.pref and add it to syspref various
language default values loaded into DB during installation process. It's not
necessary to update DB since length is fixed to 20 (as before) when this
syspref isn't defined in systemprefercences table.

Rebased to last HEAD: 2011.03.11

[Documentation] FacetLabelTruncationLength syspref in Searching tab

[3.2] It doesn't apply.
---
 C4/Search.pm                                       |    6 ++++--
 installer/data/mysql/de-DE/mandatory/sysprefs.sql  |    1 +
 installer/data/mysql/en/mandatory/sysprefs.sql     |    1 +
 installer/data/mysql/it-IT/necessari/sysprefs.sql  |    3 ++-
 installer/data/mysql/pl-PL/mandatory/sysprefs.sql  |    3 ++-
 ...m_preferences_full_optimal_for_install_only.sql |    1 +
 ...m_preferences_full_optimal_for_install_only.sql |    1 +
 .../en/modules/admin/preferences/searching.pref    |    5 +++++
 8 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/C4/Search.pm b/C4/Search.pm
index 26dc67f..35071f4 100644
--- a/C4/Search.pm
+++ b/C4/Search.pm
@@ -511,9 +511,11 @@ sub getRecords {
 
                             # fix the length that will display in the label,
                             my $facet_label_value = $one_facet;
+                            my $facet_max_length =
+                                
C4::Context->preference('FacetLabelTruncationLength') || 20;
                             $facet_label_value =
-                              substr( $one_facet, 0, 20 ) . "..."
-                              unless length($facet_label_value) <= 20;
+                              substr( $one_facet, 0, $facet_max_length ) . 
"..."
+                                if length($facet_label_value) > 
$facet_max_length;
 
                             # if it's a branch, label by the name, not the 
code,
                             if ( $link_value =~ /branch/ ) {
diff --git a/installer/data/mysql/de-DE/mandatory/sysprefs.sql 
b/installer/data/mysql/de-DE/mandatory/sysprefs.sql
index b752919..126da5e 100644
--- a/installer/data/mysql/de-DE/mandatory/sysprefs.sql
+++ b/installer/data/mysql/de-DE/mandatory/sysprefs.sql
@@ -142,6 +142,7 @@ INSERT INTO `systempreferences` 
(variable,value,explanation,options,type) VALUES
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('defaultSortOrder',NULL,'Specify the default sort 
order','asc|dsc|az|za','Choice');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('OPACdefaultSortField',NULL,'Specify the default field used for 
sorting','relevance|popularity|call_number|pubdate|acqdate|title|author','Choice');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('OPACdefaultSortOrder',NULL,'Specify the default sort 
order','asc|dsc|za|az','Choice');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('FacetLabelTruncationLength',20,'Specify the facet max length in 
OPAC',NULL,'Integer');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('staffClientBaseURL','','Specify the base URL of the staff 
client',NULL,'free');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('minPasswordLength',3,'Specify the minimum length of a patron/staff 
password',NULL,'free');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('noItemTypeImages',0,'If ON, disables item-type images',NULL,'YesNo');
diff --git a/installer/data/mysql/en/mandatory/sysprefs.sql 
b/installer/data/mysql/en/mandatory/sysprefs.sql
index 3e03cad..ff9dcd4 100644
--- a/installer/data/mysql/en/mandatory/sysprefs.sql
+++ b/installer/data/mysql/en/mandatory/sysprefs.sql
@@ -143,6 +143,7 @@ INSERT INTO `systempreferences` 
(variable,value,explanation,options,type) VALUES
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('defaultSortOrder',NULL,'Specify the default sort 
order','asc|dsc|az|za','Choice');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('OPACdefaultSortField',NULL,'Specify the default field used for 
sorting','relevance|popularity|call_number|pubdate|acqdate|title|author','Choice');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('OPACdefaultSortOrder',NULL,'Specify the default sort 
order','asc|dsc|za|az','Choice');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('FacetLabelTruncationLength',20,'Specify the facet max length in 
OPAC',NULL,'Integer');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('staffClientBaseURL','','Specify the base URL of the staff 
client',NULL,'free');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('minPasswordLength',3,'Specify the minimum length of a patron/staff 
password',NULL,'free');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('noItemTypeImages',0,'If ON, disables item-type images',NULL,'YesNo');
diff --git a/installer/data/mysql/it-IT/necessari/sysprefs.sql 
b/installer/data/mysql/it-IT/necessari/sysprefs.sql
index 27bb72e..4465b53 100644
--- a/installer/data/mysql/it-IT/necessari/sysprefs.sql
+++ b/installer/data/mysql/it-IT/necessari/sysprefs.sql
@@ -118,6 +118,7 @@ insert into `systempreferences` (`variable`, `value`, 
`options`, `explanation`,
 insert into `systempreferences` (`variable`, `value`, `options`, 
`explanation`, `type`) values('opaccredits','','70|10','Per impostare i credits 
HTML in fondo alla pagina dell\'OPAC','Textarea');
 insert into `systempreferences` (`variable`, `value`, `options`, 
`explanation`, `type`) 
values('OPACdefaultSortField','relevance','relevance|popularity|call_number|pubdate|acqdate|title|author','Specifica
 il campo usato di default per l\'ordinamento','Choice');
 insert into `systempreferences` (`variable`, `value`, `options`, 
`explanation`, `type`) 
values('OPACdefaultSortOrder','asc','asc|dsc|za|az','Specifica l\'ordine di 
default ','Choice');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('FacetLabelTruncationLength',20,'Specify the facet max length in 
OPAC',NULL,'Integer');
 insert into `systempreferences` (`variable`, `value`, `options`, 
`explanation`, `type`) values('OPACFRBRizeEditions','1','','Se ON, Koha farà 
delle richieste a uno o più ISBN web services per trovare gli ISBN associabili 
e li visualizzarà in un tab \'Edizioni\' nella visualizzazione 
dettagliata','YesNo');
 insert into `systempreferences` (`variable`, `value`, `options`, 
`explanation`, `type`) values('opacheader','','70|10','Inserire qui HTML da 
includere come header nell\'OPAC','Textarea');
 insert into `systempreferences` (`variable`, `value`, `options`, 
`explanation`, `type`) values('OpacHighlightedWords','1','','Se impostato, le 
parole cercate nell\'OPAC vengono poi evidenziate ','YesNo');
@@ -274,4 +275,4 @@ INSERT INTO systempreferences 
(variable,value,explanation,options,type) VALUES (
 INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES 
('ShelfBrowserUsesCcode','1','Use the item collection code when finding items 
for the shelf browser.','0','YesNo');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES ('AllowFineOverride','0','If on, staff will be able to issue books to 
patrons with fines greater than noissuescharge.','0','YesNo');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES ('AllFinesNeedOverride','1','If on, staff will be asked to override 
every fine, even if it is below noissuescharge.','0','YesNo');
-INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES ('AuthoritiesLog','0','If ON, log edit/create/delete actions on 
authorities.','','YesNo');
\ No newline at end of file
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES ('AuthoritiesLog','0','If ON, log edit/create/delete actions on 
authorities.','','YesNo');
diff --git a/installer/data/mysql/pl-PL/mandatory/sysprefs.sql 
b/installer/data/mysql/pl-PL/mandatory/sysprefs.sql
index 2743698..8bf8a3f 100644
--- a/installer/data/mysql/pl-PL/mandatory/sysprefs.sql
+++ b/installer/data/mysql/pl-PL/mandatory/sysprefs.sql
@@ -141,6 +141,7 @@ INSERT INTO `systempreferences` 
(variable,value,explanation,options,type) VALUES
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('defaultSortOrder',NULL,'Specify the default sort 
order','asc|dsc|az|za','Choice');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('OPACdefaultSortField',NULL,'Specify the default field used for 
sorting','relevance|popularity|call_number|pubdate|acqdate|title|author','Choice');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('OPACdefaultSortOrder',NULL,'Specify the default sort 
order','asc|dsc|za|az','Choice');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('FacetLabelTruncationLength',20,'Specify the facet max length in 
OPAC',NULL,'Integer');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('staffClientBaseURL','','Specify the base URL of the staff 
client',NULL,'free');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('minPasswordLength',3,'Specify the minimum length of a patron/staff 
password',NULL,'free');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('noItemTypeImages',0,'If ON, disables item-type images',NULL,'YesNo');
@@ -286,4 +287,4 @@ INSERT INTO systempreferences 
(variable,value,explanation,options,type) VALUES (
 INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES 
('ShelfBrowserUsesCcode','1','Use the item collection code when finding items 
for the shelf browser.','0','YesNo');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES ('AllowFineOverride','0','If on, staff will be able to issue books to 
patrons with fines greater than noissuescharge.','0','YesNo');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES ('AllFinesNeedOverride','1','If on, staff will be asked to override 
every fine, even if it is below noissuescharge.','0','YesNo');
-INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES ('AuthoritiesLog','0','If ON, log edit/create/delete actions on 
authorities.','','YesNo');
\ No newline at end of file
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES ('AuthoritiesLog','0','If ON, log edit/create/delete actions on 
authorities.','','YesNo');
diff --git 
a/installer/data/mysql/ru-RU/mandatory/system_preferences_full_optimal_for_install_only.sql
 
b/installer/data/mysql/ru-RU/mandatory/system_preferences_full_optimal_for_install_only.sql
index b00c1e7..132d402 100644
--- 
a/installer/data/mysql/ru-RU/mandatory/system_preferences_full_optimal_for_install_only.sql
+++ 
b/installer/data/mysql/ru-RU/mandatory/system_preferences_full_optimal_for_install_only.sql
@@ -170,6 +170,7 @@ INSERT INTO `systempreferences` 
(variable,value,explanation,options,type) VALUES
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('defaultSortOrder',NULL,'Specify the default sort 
order','asc|dsc|az|za','Choice');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('OPACdefaultSortField',NULL,'Specify the default field used for 
sorting','relevance|popularity|call_number|pubdate|acqdate|title|author','Choice');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('OPACdefaultSortOrder',NULL,'Specify the default sort 
order','asc|dsc|za|az','Choice');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('FacetLabelTruncationLength',20,'Specify the facet max length in 
OPAC',NULL,'Integer');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('staffClientBaseURL','','Specify the base URL of the staff 
client',NULL,'free');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('minPasswordLength',3,'Specify the minimum length of a patron/staff 
password',NULL,'free');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('noItemTypeImages',0,'If ON, disables item-type images',NULL,'YesNo');
diff --git 
a/installer/data/mysql/uk-UA/mandatory/system_preferences_full_optimal_for_install_only.sql
 
b/installer/data/mysql/uk-UA/mandatory/system_preferences_full_optimal_for_install_only.sql
index b9e1ca8..1fa7c20 100644
--- 
a/installer/data/mysql/uk-UA/mandatory/system_preferences_full_optimal_for_install_only.sql
+++ 
b/installer/data/mysql/uk-UA/mandatory/system_preferences_full_optimal_for_install_only.sql
@@ -169,6 +169,7 @@ INSERT INTO `systempreferences` 
(variable,value,explanation,options,type) VALUES
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('defaultSortOrder',NULL,'Specify the default sort 
order','asc|dsc|az|za','Choice');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('OPACdefaultSortField',NULL,'Specify the default field used for 
sorting','relevance|popularity|call_number|pubdate|acqdate|title|author','Choice');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('OPACdefaultSortOrder',NULL,'Specify the default sort 
order','asc|dsc|za|az','Choice');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('FacetLabelTruncationLength',20,'Specify the facet max length in 
OPAC',NULL,'Integer');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('staffClientBaseURL','','Specify the base URL of the staff 
client',NULL,'free');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('minPasswordLength',3,'Specify the minimum length of a patron/staff 
password',NULL,'free');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('noItemTypeImages',0,'If ON, disables item-type images',NULL,'YesNo');
diff --git 
a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/searching.pref 
b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/searching.pref
index cd924dc..c1d26d1 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/searching.pref
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/searching.pref
@@ -133,3 +133,8 @@ Searching:
                   yes: Show
                   no: "Don't show"
             - "an item's branch, location and call number in OPAC search 
results."
+        -
+            - Truncate facets length to
+            - pref: FacetLabelTruncationLength
+              class: integer
+            - characters, in OPAC/staff interface.
-- 
1.7.4

_______________________________________________
Koha-patches mailing list
[email protected]
http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-patches
website : http://www.koha-community.org/
git : http://git.koha-community.org/
bugs : http://bugs.koha-community.org/

Reply via email to