Changeset 25143

Show
Ignore:
Timestamp:
24.02.2012 13:11:42 (8 years ago)
Author:
sjm84
Message:

Added the ability to edit metadata on the document page

Location:
main/trunk/greenstone3/web/interfaces/oran
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/web/interfaces/oran/js/document_scripts.js

    r25142 r25143  
    541541} 
    542542 
     543function addEditMetadataLink(cell) 
     544{ 
     545    var id = cell.getAttribute("id").substring(6); 
     546    var metaTable = document.getElementById("meta" + id); 
     547 
     548    var row = cell.parentNode; 
     549    var newCell = document.createElement("TD"); 
     550    newCell.setAttribute("style", "font-size:0.7em; padding:0px 10px"); 
     551    var newLink = document.createElement("A"); 
     552    newLink.innerHTML = "edit metadata"; 
     553    newLink.setAttribute("href", "javascript:;"); 
     554    newLink.onclick = function() 
     555    { 
     556        if(metaTable.style.display == "none") 
     557        { 
     558            metaTable.style.display = "block"; 
     559            metaTable.metaNameField.style.display = "inline"; 
     560            metaTable.addRowButton.style.display = "inline"; 
     561        } 
     562        else 
     563        { 
     564            metaTable.style.display = "none"; 
     565            metaTable.metaNameField.style.display = "none"; 
     566            metaTable.addRowButton.style.display = "none"; 
     567        } 
     568    } 
     569    newCell.appendChild(newLink); 
     570    row.appendChild(newCell); 
     571     
     572    addFunctionalityToTable(metaTable); 
     573    metaTable.metaNameField.style.display = "none"; 
     574    metaTable.addRowButton.style.display = "none"; 
     575} 
     576 
    543577function readyPageForEditing() 
    544578{ 
    545579    var textDivs = gs.functions.getElementsByClassName("sectionText"); 
    546      
    547580    for(var i = 0; i < textDivs.length; i++) 
    548581    { 
     
    557590    editBar.appendChild(saveButton); 
    558591     
     592    var visibleMetadataList = document.createElement("SELECT"); 
     593    var allOption = document.createElement("OPTION"); 
     594    allOption.innerHTML = "All"; 
     595    visibleMetadataList.appendChild(allOption); 
     596    visibleMetadataList.setAttribute("id", "metadataSetList"); 
     597    var metadataListLabel = document.createElement("SPAN"); 
     598    metadataListLabel.setAttribute("style", "margin-left:20px;"); 
     599    metadataListLabel.innerHTML = "Visible metadata: "; 
     600    editBar.appendChild(metadataListLabel); 
     601    editBar.appendChild(visibleMetadataList); 
     602     
    559603    var statusBarDiv = document.createElement("DIV"); 
    560604    editBar.appendChild(statusBarDiv); 
    561605    _statusBar = new StatusBar(statusBarDiv); 
    562606     
     607    var titleDivs = gs.functions.getElementsByClassName("sectionTitle"); 
     608    for(var i = 0; i < titleDivs.length; i++) 
     609    { 
     610        addEditMetadataLink(titleDivs[i]); 
     611    } 
     612     
    563613    _baseURL = gs.xsltParams.library_name; 
    564614} 
  • main/trunk/greenstone3/web/interfaces/oran/js/documentmaker_scripts_util.js

    r25142 r25143  
    178178function save() 
    179179{ 
     180    var collection; 
     181    if(gs.cgiParams.c && gs.cgiParams.c != "") 
     182    { 
     183        collection = gs.cgiParams.c 
     184    } 
     185    else 
     186    { 
     187        collection = gs.cgiParams.p_c 
     188    } 
     189 
    180190    for(var i = 0; i < _deletedMetadata.length; i++) 
    181191    { 
     
    194204        var value = valueCell.innerHTML; 
    195205         
    196         gs.functions.removeArchivesMetadata(gs.cgiParams.p_c /*bad*/, "localsite" /*bad*/, docID, name, null, value, function(){console.log("REMOVED ARCHIVES");}); 
    197         addCollectionToBuild(gs.cgiParams.p_c); /*bad*/ 
     206        gs.functions.removeArchivesMetadata(collection /*bad*/, "localsite" /*bad*/, docID, name, null, value, function(){console.log("REMOVED ARCHIVES");}); 
     207        addCollectionToBuild(collection); /*bad*/ 
    198208         
    199209        removeFromParent(currentRow); 
     
    222232            if(changedElem.originalValue) 
    223233            { 
    224                 gs.functions.setArchivesMetadata(gs.cgiParams.p_c /*bad*/, "localsite" /*bad*/, docID, name, null, changedElem.innerHTML, changedElem.originalValue, "override", function(){console.log("SAVED ARCHIVES");}); 
     234                gs.functions.setArchivesMetadata(collection, "localsite" /*bad*/, docID, name, null, changedElem.innerHTML, changedElem.originalValue, "override", function(){console.log("SAVED ARCHIVES");}); 
    225235            } 
    226236            else 
    227237            { 
    228                 gs.functions.setArchivesMetadata(gs.cgiParams.p_c /*bad*/, "localsite" /*bad*/, docID, name, null, changedElem.innerHTML, null, "accumulate", function(){console.log("SAVED ARCHIVES");}); 
     238                gs.functions.setArchivesMetadata(collection, "localsite" /*bad*/, docID, name, null, changedElem.innerHTML, null, "accumulate", function(){console.log("SAVED ARCHIVES");}); 
    229239            } 
    230240            changedElem.originalValue = changedElem.innerHTML; 
    231             addCollectionToBuild(gs.cgiParams.p_c); 
     241            addCollectionToBuild(collection); 
    232242        } 
    233243        //Save content 
     
    628638    metaNameField.setAttribute("type", "text"); 
    629639    insertAfter(metaNameField, table); 
     640    table.metaNameField = metaNameField; 
    630641     
    631642    var addRowButton = document.createElement("BUTTON"); 
     
    661672        de.doc.registerEditSection(valueCell); 
    662673    }; 
     674    table.addRowButton = addRowButton; 
    663675    insertAfter(addRowButton, metaNameField); 
    664676} 
  • main/trunk/greenstone3/web/interfaces/oran/transform/pages/document.xsl

    r25142 r25143  
    9999            </tr></table> 
    100100             
    101             <div id="doc{@nodeID}" class="sectionContainer" style="display:block;"><!-- *** --> 
    102                 <xsl:if test="/page/pageRequest/paramList/param[@name = 'dmd']/@value = 'true'"> 
     101            <div id="doc{@nodeID}" class="sectionContainer"><!-- *** --> 
     102                <xsl:if test="/page/pageRequest/paramList/param[@name = 'documentbasket']/@value = 'on'"> 
    103103                    <table id="meta{@nodeID}"> 
     104                        <xsl:attribute name="style"> 
     105                            <xsl:choose> 
     106                                <xsl:when test="/page/pageRequest/paramList/param[@name = 'dmd']/@value = 'true'"> 
     107                                    <xsl:text>display:block;</xsl:text> 
     108                                </xsl:when> 
     109                                <xsl:otherwise> 
     110                                    <xsl:text>display:none;</xsl:text> 
     111                                </xsl:otherwise> 
     112                            </xsl:choose> 
     113                        </xsl:attribute> 
    104114                        <xsl:value-of select="util:clearMetadataStorage()"/> 
    105115                        <xsl:for-each select="metadataList/metadata"> 
     
    132142        </xsl:if> 
    133143         
    134         <xsl:if test="/page/pageRequest/paramList/param[@name = 'dmd']/@value = 'true'"> 
     144        <xsl:if test="/page/pageRequest/paramList/param[@name = 'documentbasket']/@value = 'on'"> 
    135145            <gsf:metadata name="all"/> 
    136146        </xsl:if>