This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
edicion_de_subcampos_codificados [07/11/2008 16:08] fernando |
edicion_de_subcampos_codificados [04/05/2009 21:33] fernando |
||
---|---|---|---|
Line 2: | Line 2: | ||
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 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//. | ||
+ | |||
+ | (Esto fue testeado exitosamente por Evangelina y Omar, de la Biblioteca Virtual de la UNR, el 11/nov/08.) | ||
=== XML === | === XML === | ||
- | == frequency.xml == | + | == foo.xml == |
+ | |||
+ | Creamos el archivo. | ||
<code xml> | <code xml> | ||
<?xml version="1.0" encoding="ISO-8859-1"?> | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
- | <relatorCodes> | + | <fooCodes> |
- | <relator code="act" name="Actor" /> | + | <foo code="a" name="..." /> |
- | <relator code="adp" name="Adapter" /> | + | <foo code="b" name="..." /> |
- | <relator code="aft" name="Author of afterword, colophon, etc." /> | + | <foo code="c" name="..." /> |
- | <relator code="ann" name="Annotator" /> | + | <foo code="d" name="..." /> |
- | <relator code="ant" name="Bibliographic antecedent" /> | + | |
- | <relator code="app" name="Applicant" /> | + | |
- | <relator code="aqt" name="Author in quotations or text abstracts" /> | + | |
- | <relator code="arc" name="Architect" /> | + | |
- | <relator code="arr" name="Arranger" /> | + | |
... | ... | ||
- | <relator code="wit" name="Witness" /> | + | <foo code="z" name="..." /> |
- | </relatorCodes> | + | </fooCodes> |
</code> | </code> | ||
+ | |||
=== HTML === | === HTML === | ||
== editCodes.htm == | == editCodes.htm == | ||
+ | |||
+ | Agregamos un bloque. | ||
<code javascript> | <code javascript> | ||
Line 41: | 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> | </code> | ||
+ | |||
+ | |||
+ | |||
+ | |||
Line 53: | Line 63: | ||
== create-field-subfield.js == | == create-field-subfield.js == | ||
- | <code javascript> | + | 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 65: | 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 78: | Line 90: | ||
== aux-windows.js == | == aux-windows.js == | ||
- | <code javascript> | + | 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 92: | 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 102: | Line 116: | ||
== catalis.js == | == catalis.js == | ||
- | <code javascript> | + | 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> | </code> | ||
+ | |||
+ | |||
+ | {{tag>catalis admin}} |