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

Next revision
Previous revision
edicion_de_subcampos_codificados [07/11/2008 14:53]
fernando creado
edicion_de_subcampos_codificados [05/05/2009 00:00] (current)
Line 1: Line 1:
-====== Edición de subcampos codificados ​en Catalis ​======+====== Edición de subcampos codificados ======
  
-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.
  
-<​file>​ +A modo de ejemplo consideremos un elemento ficticio denominado "​Foo",​ almacenado en un subcampo ​$q del campo 999.
-cd htdocs/​catalis_pack/​catalis +
-find | xargs grep -il relator | grep -v '​loc/​marc'​+
  
-./xml/marc21.xml +Para clarificar el contexto dentro de cada archivo a modificar, se muestran las líneas correspondientes a los //relator codes//.
-./xml/relator.xml+
  
-./html/editCodes.htm+(Esto fue testeado exitosamente por Evangelina y Omar, de la Biblioteca Virtual de la UNR, el 11/nov/08.)
  
-./​js/​create-field-subfield.js 
-./​js/​validate.js 
-./​js/​aux-windows.js 
-./​js/​punctuation.js 
-./​js/​catalis.js 
  
 +=== XML ===
  
-XML +== foo.xml ==
-    frequency.xml+
  
-HTML +Creamos el archivo.
-    ------------------------------------ +
-    editCodes.htm +
-    ------------------------------------+
  
 +<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"​ :  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 35: 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 
  
-    ------------------------------------ 
-    create-field-subfield.js 
-    ------------------------------------ 
  
 +
 +
 +
 +=== JavaScript ===
 +
 +== 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 58: 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 67: Line 86:
  newSubfieldBox.style.lineHeight = "​17px";​  newSubfieldBox.style.lineHeight = "​17px";​
  }  }
 +</​code>​
  
 +== aux-windows.js ==
  
-    ------------------------------------ +Agregamos "​foo"​ en un par de líneas
-    aux-windows.js + 
-    ​------------------------------------ +<​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 86: 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 92: 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.1226076837.txt.gz · Last modified: 07/11/2008 00:00 (external edit)