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

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
edicion_de_subcampos_codificados [07/11/2008 15:20]
fernando
edicion_de_subcampos_codificados [04/05/2009 21:33]
fernando
Line 1: Line 1:
 ====== Edición de subcampos codificados en Catalis ====== ====== 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 se pueda editar de manera análoga al subcampo $4 de los campos 700 (relator code).+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.
  
-Comenzamos por identificar los archivos involucrados: ​+A modo de ejemplo consideremos un elemento ficticio denominado "​Foo",​ almacenado en un subcampo $q del campo 999.
  
-<​code>​ +Para clarificar el contexto dentro de cada archivo a modificar, se muestran las líneas correspondientes a los //​relator ​codes//.
-cd htdocs/catalis_pack/catalis +
-$ find . | xargs grep -il relator ​| grep -v 'loc/marc'+
  
-./​xml/​marc21.xml +(Esto fue testeado exitosamente por Evangelina y Omar, de la Biblioteca Virtual de la UNR, el 11/nov/08.)
-./xml/relator.xml+
  
-./​html/​editCodes.htm 
- 
-./​js/​create-field-subfield.js 
-./​js/​validate.js 
-./​js/​aux-windows.js 
-./​js/​punctuation.js 
-./​js/​catalis.js 
-</​code>​ 
  
 === XML === === XML ===
  
-== frequency.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>​
  
  
Line 30: Line 36:
 == editCodes.htm == == editCodes.htm ==
  
 +Agregamos un bloque.
  
 +<code javascript>​
  case "​relator"​ :  case "​relator"​ :
  // TO-DO: pensar de qué manera se puede acotar la larga lista, en función del tipo  // TO-DO: pensar de qué manera se puede acotar la larga lista, en función del tipo
Line 39: Line 47:
  break;  break;
   
- case "frequency" : + case "foo" : 
- xmlCodes = callingWindowObject.xmlFrequencyCodes+ xmlCodes = callingWindowObject.xmlFooCodes
- Codes = xmlCodes.selectNodes("/"​ + "/frequency"); + Codes = xmlCodes.selectNodes("/"​ + "/foo"); 
- title = "Frequency ​codes";​+ title = "Foo codes";​
  break;  break;
 +</​code>​
 +
 +
 +
 +
 +
  
 === JavaScript === === JavaScript ===
Line 49: Line 63:
 == create-field-subfield.js == == create-field-subfield.js ==
  
 +Agregamos un bloque.
  
 +<​code>​
  // Subcampos cuyos valores se toman de tablas  // Subcampos cuyos valores se toman de tablas
  if ( "​4"​ == code ) {   // Relator code  if ( "​4"​ == code ) {   // Relator code
Line 61: Line 77:
  }  }
   
- else if ( tag_code.search(/​86[34]w/) != -1 ) {  // Frequency ​code.  Expresión alternativa:​ /​863w|864w/ ​+ else if ( tag_code.search(/​999q/) != -1 ) {  // Foo code
  newSubfieldBox.readOnly = true;  newSubfieldBox.readOnly = true;
  newSubfieldBox.onclick = function() {  newSubfieldBox.onclick = function() {
- editCodedData("​frequency");+ editCodedData("​foo");
  }  }
  newSubfieldBox.style.fontFamily = "​lucida console";​  newSubfieldBox.style.fontFamily = "​lucida console";​
Line 70: Line 86:
  newSubfieldBox.style.lineHeight = "​17px";​  newSubfieldBox.style.lineHeight = "​17px";​
  }  }
 +</​code>​
  
 == aux-windows.js == == aux-windows.js ==
  
-    ​+Agregamos "​foo"​ en un par de líneas. 
 + 
 +<​code>​
     function editCodedData(dataElement)     function editCodedData(dataElement)
     {     {
-    if ( dataElement.search(/​relator|frequency|f041|f044/​) != -1 ) {+    if ( dataElement.search(/​relator|foo|f041|f044/​) != -1 ) {
     var srcObject = event.srcElement;​     var srcObject = event.srcElement;​
     var activeCode = srcObject.value; ​ // TO-DO: evt for mozilla     var activeCode = srcObject.value; ​ // TO-DO: evt for mozilla
Line 88: Line 106:
     ...     ...
         
-    if ( dataElement.search(/​relator|frequency|f041|f044/​) != -1 ) {+    if ( dataElement.search(/​relator|foo|f041|f044/​) != -1 ) {
     srcObject.value = newCode.value;​     srcObject.value = newCode.value;​
     //​displayPermanentTitle(srcObject,​newCode.description.substr(6),​40,​0);​     //​displayPermanentTitle(srcObject,​newCode.description.substr(6),​40,​0);​
Line 94: Line 112:
     ...     ...
     }     }
-    ​+</​code> ​   ​
     ​     ​
 == catalis.js == == catalis.js ==
  
-    ​+Agregamos dos líneas nuevas. 
 + 
 +<​code>​
     URL_RELATOR_CODES = HTDOCS + "​xml/​relator.xml";​     URL_RELATOR_CODES = HTDOCS + "​xml/​relator.xml";​
-    ​URL_FREQUENCY_CODES ​= HTDOCS + "xml/frequency.xml";+    ​URL_FOO_CODES ​= HTDOCS + "xml/foo.xml";
     ​     ​
     xmlRelatorCodes = importXML(URL_RELATOR_CODES);​     xmlRelatorCodes = importXML(URL_RELATOR_CODES);​
-    ​xmlFrequencyCodes ​= importXML(URL_FREQUENCY_CODES); +    ​xmlFooCodes ​= importXML(URL_FOO_CODES); 
-    ​ +</code> 
-</file>+ 
 + 
 +{{tag>catalis admin}}
edicion_de_subcampos_codificados.txt · Last modified: 05/05/2009 00:00 (external edit)