Ignore:
Timestamp:
2008-08-08T12:17:50+12:00 (16 years ago)
Author:
anna
Message:

Improved customization of metadata sets/elements used in the Depositor. Two aspects involved: the front-end user interface (depositoraction.cpp) and back-end GLI format panel. Associated changes include the depositor's macro file, GLI dictionary and GLI help document

File:
1 edited

Legend:

Unmodified
Added
Removed
  • gsdl/trunk/macros/deposit.dm

    r14738 r16680  
    1616# collector
    1717_globallinks_ {_homelink_}
     18
     19# metadata fields that will be displayed in the step1 page,
     20# this is determined by the depositormetadata macro defined in the collection's collect.cfg
     21_metadataconf_ {var DepositorMDFields = new Array();}
     22
     23# store any existing metadata values
     24_cachedmetadatavalues_ {var CachedMDValues = new Array();}
    1825
    1926#######################################################################
     
    146153
    147154#here goes the "memorization" macros for each form field. 
    148 _di1md.dc.Title_ {_If_("_:cgiargdi1md.dc.Title_" eq  "_cgiargdi1md.dc.Title_",_cgiargdi1md.dc.Title_,)}
    149 _di1md.dc.Creator_ {_If_("_:cgiargdi1md.dc.Creator_" eq  "_cgiargdi1md.dc.Creator_",_cgiargdi1md.dc.Creator_,)}
    150 _di1md.dc.Description_ {_If_("_:cgiargdi1md.dc.Description_" eq  "_cgiargdi1md.dc.Description_",_cgiargdi1md.dc.Description_,)}
     155#_di1md.Title_ {_If_("_:cgiargdi1md.Title_" eq  "_cgiargdi1md.Title_",_cgiargdi1md.Title_,)}
     156#_di1md.Creator_ {_If_("_:cgiargdi1md.Creator_" eq  "_cgiargdi1md.Creator_",_cgiargdi1md.Creator_,)}
     157#_di1md.Description_ {_If_("_:cgiargdi1md.Description_" eq  "_cgiargdi1md.Description_",_cgiargdi1md.Description_,)}
     158#_di1md.Subject_ {_If_("_:cgiargdi1md.Subject_" eq "_cgiargdi1md.Subject_",_cgiargdi1md.Subject,)}
    151159
    152160_step1scriptextra_ {
     161
     162_metadataconf_
     163_cachedmetadatavalues_
     164
     165function loadForm() \{
     166
     167    var formcontainer = document.getElementById('formcontainer');
     168   
     169    if (!formcontainer) \{
     170        return;
     171    \}
     172   
     173    for (i=0; i < DepositorMDFields.length; i++) \{
     174        if (DepositorMDFields[i]==null) \{
     175            continue;
     176        \}
     177        metadataField = DepositorMDFields[i];
     178       
     179        var labelCell = document.createElement("td");
     180        labelCell.innerHTML = metadataField.label + ": ";
     181        labelCell.setAttribute("title", metadataField.tooltip);                         
     182
     183        var cachedValue;
     184        if(CachedMDValues[0] !=null && CachedMDValues[0]["di1md." + metadataField.name])\{
     185            cachedValue = CachedMDValues[0]["di1md." + metadataField.name];
     186        \} else \{
     187            cachedValue = "";
     188        \}
     189       
     190        var inputObj;
     191        if (metadataField.type=="text") \{
     192            inputObj = document.createElement("input");             
     193            inputObj.setAttribute("type","text");           
     194            inputObj.setAttribute("size","74");
     195            inputObj.setAttribute("value", cachedValue);
     196        \}
     197        else if (metadataField.type=="textarea") \{
     198            inputObj = document.createElement("textarea");             
     199            inputObj.setAttribute("rows","5");
     200            inputObj.setAttribute("cols", "40");
     201            inputObj.innerHTML = cachedValue;
     202        \} 
     203        inputObj.setAttribute("name", "di1md."+ metadataField.name);       
     204       
     205        var inputCell = document.createElement("td");
     206        inputCell.appendChild(inputObj);       
     207                               
     208        var entry = document.createElement("tr");   
     209        entry.appendChild(labelCell);
     210        entry.appendChild(inputCell);
     211       
     212        formcontainer.appendChild(entry);
     213    \}
     214\}
    153215
    154216function check\_submit (gotopage) \{
     
    157219  form.submit();
    158220\}
     221
     222if (window.addEventListener) window.addEventListener("load", loadForm, false);
     223else if (window.attachEvent) window.attachEvent("onload", loadForm);
     224
    159225}
    160226
     
    165231<input type=hidden name="e" value="_decodedcompressedoptions_">
    166232<input type=hidden name="p" value="_cgiargp_">
     233
    167234
    168235<center>
     
    178245
    179246<!--input goes here-->
    180 <p><table>
    181 <tr>
    182   <td>_textTitle_:</td>
    183   <td> <input type=text name=di1md.dc.Title value="_di1md.dc.Title_" size=74></td>
    184 </tr>
    185 <tr>
    186   <td>_textCreator_:</td>
    187   <td><input type=text name=di1md.dc.Creator value = "_di1md.dc.Creator_" size=74></td>
    188 </tr>
    189 <tr>
    190   <td>_textDescription_:</td>
    191   <td> <textarea rows=5 cols=40 name=di1md.dc.Description>_di1md.dc.Description_</textarea></td>
    192 
    193 </tr>
    194 </table>
    195 
    196 <!--
    197 <BR>
    198 <BR>
    199 <p>_textDescription_: <textarea rows=5 cols=20 name=di1md.dc.Description>_di1md.dc.Description_</textarea></p>
    200 </ul>
    201 -->
     247<!--dynamic load the metadata elements as configured in the collection's collect.cfg-->
     248<p><table id="formcontainer"></table>
    202249
    203250<div class="divbar">&nbsp;</div>
     
    249296
    250297#here goes the "memorization" macros for each form field. 
    251 #_di1_ {_If_("_:cgiargdi1md.dc.Title_" eq  "_cgiargdi1md.dc.Title_",_cgiargdi1md.dc.Title_,)}
    252 #_di1md.dc.Creator_ {_If_("_:cgiargdi1md.dc.Creator_" eq  "_cgiargdi1md.dc.Creator_",_cgiargdi1md.dc.Creator_,)}
     298#_di1_ {_If_("_:cgiargdi1md.Title_" eq  "_cgiargdi1md.Title_",_cgiargdi1md.Title_,)}
     299#_di1md.Creator_ {_If_("_:cgiargdi1md.Creator_" eq  "_cgiargdi1md.Creator_",_cgiargdi1md.Creator_,)}
    253300
    254301_step3scriptextra_ {
Note: See TracChangeset for help on using the changeset viewer.