Translate the icon labels in TPAC
authorThomas Berezansky <tsbere@mvlc.org>
Tue, 10 Dec 2013 18:54:40 +0000 (13:54 -0500)
committerBen Shum <bshum@biblio.org>
Wed, 18 Dec 2013 18:34:13 +0000 (13:34 -0500)
Instead of just using English.

Also, in the event we have a search_label, use it.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Ben Shum <bshum@biblio.org>
Open-ILS/src/sql/Pg/990.schema.unapi.sql
Open-ILS/src/sql/Pg/upgrade/XXXX.cvm_translated.sql [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/misc_util.tt2

index 78a9a2c..c7bc8bb 100644 (file)
@@ -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 (file)
index 0000000..9f8c6b5
--- /dev/null
@@ -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;
index cdd8eff..41ac634 100644 (file)
         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;
                 '//*[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;