User Tools

Site Tools


edicion_de_subcampos_codificados

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

edicion_de_subcampos_codificados [30/04/2009 16:39]
fernando
edicion_de_subcampos_codificados [05/05/2009 00:00]
Line 1: Line 1:
-====== Edición de subcampos codificados en Catalis ====== 
  
-A raíz de una [[http://​groups.google.com/​group/​catalis/​browse_thread/​thread/​4c31389fd6c6a857|consulta en el grupo Catalis]], acá va una receta para lograr que un subcampo con valores codificados se pueda editar de manera análoga al subcampo $4 de los campos 700 (relator code). Es decir, que se abra una ventanita emergente que ofrezca la lista de códigos disponibles. 
- 
-A modo de ejemplo consideremos un elemento ficticio denominado "​Foo",​ almacenado en un subcampo $q del campo 999. 
- 
-Para clarificar el contexto dentro de cada archivo a modificar, se muestran las líneas correspondientes a los //relator codes//. 
- 
-ATENCION: esto aún no fue testeado (10 nov. 2008). 
- 
- 
- 
-=== XML === 
- 
-== foo.xml == 
- 
-Creamos el archivo. 
- 
-<code xml> 
-<?xml version="​1.0"​ encoding="​ISO-8859-1"?>​ 
- 
-<​fooCodes>​ 
- 
- <foo code="​a"​ name="​..."​ /> 
- <foo code="​b"​ name="​..."​ /> 
- <foo code="​c"​ name="​..."​ /> 
- <foo code="​d"​ name="​..."​ /> 
-        ... 
- <foo code="​z"​ name="​..."​ /> 
- 
-</​fooCodes>​ 
-</​code>​ 
- 
- 
-=== HTML === 
- 
-== editCodes.htm == 
- 
-Agregamos un bloque. 
- 
-<code javascript>​ 
- case "​relator"​ : 
- // TO-DO: pensar de qué manera se puede acotar la larga lista, en función del tipo 
- // de documento (video, musica, libro, etc.) 
- xmlCodes = callingWindowObject.xmlRelatorCodes;​ 
- Codes = xmlCodes.selectNodes("/"​ + "/​relator"​);​ 
- title = "​Relator codes";​ 
- break; 
-  
- case "​foo"​ : 
- xmlCodes = callingWindowObject.xmlFooCodes;​ 
- Codes = xmlCodes.selectNodes("/"​ + "/​foo"​);​ 
- title = "Foo codes";​ 
- break; 
-</​code>​ 
- 
- 
- 
- 
- 
- 
-=== JavaScript === 
- 
-== create-field-subfield.js == 
- 
-Agregamos un bloque. 
- 
-<​code>​ 
- // Subcampos cuyos valores se toman de tablas 
- if ( "​4"​ == code ) {   // Relator code 
- newSubfieldBox.readOnly = true;  // ATENCION: esta propiedad produce un bug al subir/bajar un subcampo $4 vacío 
- newSubfieldBox.onclick = function() { 
- editCodedData("​relator"​);​ 
- } 
- newSubfieldBox.style.fontFamily = "​lucida console";​ 
- newSubfieldBox.style.fontSize = "​14px";​ 
- newSubfieldBox.style.lineHeight = "​17px";​ 
- } 
-  
- else if ( tag_code.search(/​999q/​) != -1 ) {  // Foo code 
- newSubfieldBox.readOnly = true; 
- newSubfieldBox.onclick = function() { 
- editCodedData("​foo"​);​ 
- } 
- newSubfieldBox.style.fontFamily = "​lucida console";​ 
- newSubfieldBox.style.fontSize = "​14px";​ 
- newSubfieldBox.style.lineHeight = "​17px";​ 
- } 
-</​code>​ 
- 
-== aux-windows.js == 
- 
-Agregamos "​foo"​ en un par de líneas. 
- 
-<​code>​ 
-    function editCodedData(dataElement) 
-    { 
-    if ( dataElement.search(/​relator|foo|f041|f044/​) != -1 ) { 
-    var srcObject = event.srcElement;​ 
-    var activeCode = srcObject.value; ​ // TO-DO: evt for mozilla 
-    var codeType = "​single";​ 
-    var dialogLeft = event.clientX - 70; 
-    var dialogTop = event.clientY - 130; 
-    var URL = URL_EDIT_CODES;​ 
-    } else if ( 
-     
-    ... 
-     
-    if ( dataElement.search(/​relator|foo|f041|f044/​) != -1 ) { 
-    srcObject.value = newCode.value;​ 
-    //​displayPermanentTitle(srcObject,​newCode.description.substr(6),​40,​0);​ 
-    } else { 
-    ... 
-    } 
-</​code> ​   ​ 
-    ​ 
-== catalis.js == 
- 
-Agregamos dos líneas nuevas. 
- 
-<​code>​ 
-    URL_RELATOR_CODES = HTDOCS + "​xml/​relator.xml";​ 
-    URL_FOO_CODES = HTDOCS + "​xml/​foo.xml";​ 
-    ​ 
-    xmlRelatorCodes = importXML(URL_RELATOR_CODES);​ 
-    xmlFooCodes = importXML(URL_FOO_CODES);​ 
-</​code>​ 
- 
- 
-{{tag>​catalis}} 
edicion_de_subcampos_codificados.txt · Last modified: 05/05/2009 00:00 (external edit)