From f337381d70245adfef0037f1033fc8bde0eab6c1 Mon Sep 17 00:00:00 2001 From: Thomas Berezansky Date: Tue, 10 Dec 2013 13:54:40 -0500 Subject: [PATCH] Translate the icon labels in TPAC Instead of just using English. Also, in the event we have a search_label, use it. Signed-off-by: Thomas Berezansky Signed-off-by: Ben Shum --- Open-ILS/src/sql/Pg/990.schema.unapi.sql | 1 + .../sql/Pg/upgrade/XXXX.cvm_translated.sql | 29 +++++++++++++++++++ .../src/templates/opac/parts/misc_util.tt2 | 20 ++++++++++++- 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.cvm_translated.sql diff --git a/Open-ILS/src/sql/Pg/990.schema.unapi.sql b/Open-ILS/src/sql/Pg/990.schema.unapi.sql index 78a9a2cc90..c7bc8bba36 100644 --- a/Open-ILS/src/sql/Pg/990.schema.unapi.sql +++ b/Open-ILS/src/sql/Pg/990.schema.unapi.sql @@ -1127,6 +1127,7 @@ CREATE OR REPLACE FUNCTION unapi.mra ( obj_id BIGINT, format TEXT, ename TEXT, XMLATTRIBUTES( key AS name, cvm.value AS "coded-value", + cvm.id AS "cvmid", rad.filter, rad.sorter ), diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.cvm_translated.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.cvm_translated.sql new file mode 100644 index 0000000000..9f8c6b5fbc --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.cvm_translated.sql @@ -0,0 +1,29 @@ +CREATE OR REPLACE FUNCTION unapi.mra ( obj_id BIGINT, format TEXT, ename TEXT, includes TEXT[], org TEXT, depth INT DEFAULT NULL, slimit HSTORE DEFAULT NULL, soffset HSTORE DEFAULT NULL, include_xmlns BOOL DEFAULT TRUE ) RETURNS XML AS $F$ + SELECT XMLELEMENT( + name attributes, + XMLATTRIBUTES( + CASE WHEN $9 THEN 'http://open-ils.org/spec/indexing/v1' ELSE NULL END AS xmlns, + 'tag:open-ils.org:U2@mra/' || mra.id AS id, + 'tag:open-ils.org:U2@bre/' || mra.id AS record + ), + (SELECT XMLAGG(foo.y) + FROM (SELECT XMLELEMENT( + name field, + XMLATTRIBUTES( + key AS name, + cvm.value AS "coded-value", + cvm.id AS "cvmid", + rad.filter, + rad.sorter + ), + x.value + ) + FROM EACH(mra.attrs) AS x + JOIN config.record_attr_definition rad ON (x.key = rad.name) + LEFT JOIN config.coded_value_map cvm ON (cvm.ctype = x.key AND code = x.value) + )foo(y) + ) + ) + FROM metabib.record_attr mra + WHERE mra.id = $1; +$F$ LANGUAGE SQL STABLE; diff --git a/Open-ILS/src/templates/opac/parts/misc_util.tt2 b/Open-ILS/src/templates/opac/parts/misc_util.tt2 index cdd8eff81f..41ac634edc 100644 --- a/Open-ILS/src/templates/opac/parts/misc_util.tt2 +++ b/Open-ILS/src/templates/opac/parts/misc_util.tt2 @@ -79,6 +79,21 @@ END; END; + # Get CCVM labels + BLOCK get_ccvm_label; + IF !ctx.ccvm_cache.$id; + fetch_ccvm = ctx.search_ccvm('id', id); + IF fetch_ccvm; + ctx.ccvm_cache.$id = fetch_ccvm.0; + END; + END; + IF search_label and ctx.ccvm_cache.$id.search_label; + ctx.ccvm_cache.$id.search_label; + ELSE; + ctx.ccvm_cache.$id.value; + END; + END; + # Extract MARC fields from XML # get_marc_attrs( { marc_xml => doc } ) BLOCK get_marc_attrs; @@ -429,7 +444,10 @@ '//*[local-name()="attributes"]/*[local-name()="field"][@name="' _ icon_style _ '"]'); IF node AND node.textContent; type = node.textContent; - args.format_label = node.getAttribute('coded-value') + args.format_label = PROCESS get_ccvm_label id=node.getAttribute('cvmid') search_label=1; + IF !args.format_label; + args.format_label = node.getAttribute('coded-value'); + END; args.schema.itemtype = schema_typemap.$type || 'CreativeWork'; args.format_icon = ctx.media_prefix _ '/images/format_icons/' _ icon_style _ '/' _ type _ '.png'; LAST; -- 2.43.2