Changeset 33317 for main

Show
Ignore:
Timestamp:
09.07.2019 21:42:14 (7 weeks ago)
Author:
ak19
Message:

Incorporated request for GPS.mapOverlay for children of a section, following Kathy's explanation from last Thursday. map-scripts then adds the overlays for each child to its parent section's doc.mapoverlay. That seems to work for the solr-haminfo GPS map data demo collection. But Solr faceted searching still doesn't work the way I understand it should. And of course, we don't just want children of a section but all descendants and the section itself.

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

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/web/interfaces/default/js/map-scripts.js

    r33303 r33317  
    357357function toggleMapSection(options) 
    358358{ 
    359      
    360359    var sectionID = options["nodeID"]; 
    361360     
    362361    var titleClassifierEl = document.getElementById("title"+sectionID); 
    363362    var jsonNodesStr = titleClassifierEl.getAttribute("data-gps-map-json"); 
     363    //alert("@@@@ got jsonNodesStr |" + jsonNodesStr + "|"); 
    364364    var jsonNodes = JSON.parse(jsonNodesStr); 
    365365     
     
    703703 
    704704function createOverlayItems(doc, options) { 
    705     if(doc.mapoverlay) { 
    706         //console.log("Have shapes: " + doc.mapoverlay.toString()); 
     705    var loopCounter = 0; 
     706    if(doc.mapoverlay || doc.childrenMapoverlays) { 
     707        if(doc.mapoverlay) { 
     708            // append any child section's mapoverlays onto doc.mapoverlay 
     709            if(doc.childrenMapoverlays) {                
     710                for(loopCounter = 0; loopCounter < doc.childrenMapoverlays.length; loopCounter++) { 
     711                    //console.log("Pushing next child mapoverlay onto doc.mapoverlay: ", doc.childrenMapoverlays[loopCounter]); 
     712                    Array.prototype.push.apply(doc.mapoverlay, doc.childrenMapoverlays[loopCounter]);                    
     713                } 
     714                delete doc.childrenMapoverlays; // served its purpose 
     715            } 
     716        } else if (doc.childrenMapoverlays) { // no doc.mapoverlay 
     717            // construct doc.mapoverlay to contain each child section's mapoverlay 
     718            doc.mapoverlay = []; 
     719            for(loopCounter = 0; loopCounter < doc.childrenMapoverlays.length; loopCounter++) { 
     720                //console.log("Pushing next child mapoverlay onto originally empty doc.mapoverlay: ", doc.childrenMapoverlays[loopCounter]); 
     721                Array.prototype.push.apply(doc.mapoverlay, doc.childrenMapoverlays[loopCounter]); 
     722            }            
     723            delete doc.childrenMapoverlays;  // no more use for this 
     724        } 
     725        //console.log("@@@@ Have shapes: ", doc.mapoverlay);         
    707726        createShapes(doc, options); 
    708727    } else { // backwards compatible to deal with Lat and Lng meta stored for doc 
  • main/trunk/greenstone3/web/interfaces/default/transform/map-tools.xsl

    r33216 r33317  
    2121      <xsl:text>[</xsl:text> 
    2222      <xsl:for-each select="//documentNode"> 
    23     <xsl:if test="(metadataList/metadata[@name = 'Latitude'] and metadataList/metadata[@name = 'Longitude']) or metadataList/metadata[@name = 'Coordinate'] or metadataList/metadata[@name = 'GPS.mapOverlay']"> 
     23    <xsl:if test="(metadataList/metadata[@name = 'Latitude'] and metadataList/metadata[@name = 'Longitude']) or metadataList/metadata[@name = 'Coordinate'] or metadataList/metadata[@name = 'GPS.mapOverlay'] or metadataList/metadata[@name = 'children_GPS.mapOverlay']"> 
    2424      <xsl:text>{</xsl:text> 
    2525      <xsl:text disable-output-escaping="yes">"nodeID":"</xsl:text> 
     
    5656        <xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'GPS.mapOverlay']"/> 
    5757      </xsl:if> 
     58       
     59      <xsl:if test="metadataList/metadata[@name = 'children_GPS.mapOverlay']"> 
     60        <xsl:variable name="count"><xsl:value-of select="count(metadataList/metadata[@name = 'children_GPS.mapOverlay'])"/></xsl:variable> 
     61        <xsl:text disable-output-escaping="yes">,</xsl:text> 
     62        <xsl:text disable-output-escaping="yes">"childrenMapoverlays":[</xsl:text> 
     63        <xsl:for-each select="metadataList/metadata[@name = 'children_GPS.mapOverlay']"> 
     64            <xsl:value-of disable-output-escaping="yes" select="current()"/> 
     65            <xsl:if test="not(position() = $count)"> 
     66                <xsl:text disable-output-escaping="yes">,</xsl:text> 
     67            </xsl:if> 
     68        </xsl:for-each> 
     69        <xsl:text disable-output-escaping="yes">]</xsl:text> 
     70      </xsl:if> 
    5871                             
    5972      <xsl:text>}</xsl:text> 
     
    7184    <gsf:metadata name="Coordinate" hidden="true"/> 
    7285    <gsf:metadata name="GPS.mapOverlay" hidden="true"/> 
     86    <gsf:metadata name="GPS.mapOverlay" select="children" hidden="true"/> 
    7387<!--  these were included in version in query. don't think we need them... 
    7488    <gsf:metadata name="Image" hidden="true"/> 
  • main/trunk/greenstone3/web/interfaces/default/transform/pages/document.xsl

    r33172 r33317  
    844844                <xsl:when test="count(//documentNode) > 0"> 
    845845                    <xsl:for-each select="//documentNode"> 
    846                         <xsl:if test="(metadataList/metadata[@name = 'Latitude'] and metadataList/metadata[@name = 'Longitude']) or metadataList/metadata[@name = 'Coordinate'] or metadataList/metadata[@name = 'GPS.mapOverlay']"> 
     846                        <xsl:if test="(metadataList/metadata[@name = 'Latitude'] and metadataList/metadata[@name = 'Longitude']) or metadataList/metadata[@name = 'Coordinate'] or metadataList/metadata[@name = 'GPS.mapOverlay'] or metadataList/metadata[@name = 'children_GPS.mapOverlay']"> 
    847847                            <xsl:text>{</xsl:text> 
    848848                            <xsl:text disable-output-escaping="yes">"nodeID":"</xsl:text><xsl:value-of select="@nodeID"/><xsl:text disable-output-escaping="yes">",</xsl:text> 
     
    874874                            </xsl:if> 
    875875                             
     876                            <xsl:if test="metadataList/metadata[@name = 'children_GPS.mapOverlay']"> 
     877                                <xsl:variable name="count"><xsl:value-of select="count(metadataList/metadata[@name = 'children_GPS.mapOverlay'])"/></xsl:variable> 
     878                                <xsl:text disable-output-escaping="yes">,</xsl:text> 
     879                                <xsl:text disable-output-escaping="yes">"childrenMapoverlays":[</xsl:text> 
     880                                <xsl:for-each select="metadataList/metadata[@name = 'children_GPS.mapOverlay']"> 
     881                                    <xsl:value-of disable-output-escaping="yes" select="current()"/> 
     882                                    <xsl:if test="not(position() = $count)"> 
     883                                        <xsl:text disable-output-escaping="yes">,</xsl:text> 
     884                                    </xsl:if> 
     885                                </xsl:for-each> 
     886                                <xsl:text disable-output-escaping="yes">]</xsl:text> 
     887                            </xsl:if> 
     888                             
    876889                            <xsl:text>}</xsl:text> 
    877890                             
     
    886899                <xsl:otherwise> 
    887900                    <xsl:for-each select="/page/pageResponse/document"> 
    888                         <xsl:if test="(metadataList/metadata[@name = 'Latitude'] and metadataList/metadata[@name = 'Longitude']) or metadataList/metadata[@name = 'Coordinate']  or metadataList/metadata[@name = 'GPS.mapOverlay']"> 
     901                        <xsl:if test="(metadataList/metadata[@name = 'Latitude'] and metadataList/metadata[@name = 'Longitude']) or metadataList/metadata[@name = 'Coordinate']  or metadataList/metadata[@name = 'GPS.mapOverlay'] or metadataList/metadata[@name = 'children_GPS.mapOverlay']"> 
    889902                            <xsl:text>{</xsl:text> 
    890903                            <xsl:text disable-output-escaping="yes">"nodeID":"</xsl:text><xsl:value-of select="@selectedNode"/><xsl:text disable-output-escaping="yes">",</xsl:text> 
     
    916929                            </xsl:if> 
    917930                             
     931                            <xsl:if test="metadataList/metadata[@name = 'children_GPS.mapOverlay']"> 
     932                                <xsl:variable name="count"><xsl:value-of select="count(metadataList/metadata[@name = 'children_GPS.mapOverlay'])"/></xsl:variable> 
     933                                <xsl:text disable-output-escaping="yes">,</xsl:text> 
     934                                <xsl:text disable-output-escaping="yes">"childrenMapoverlays":[</xsl:text> 
     935                                <xsl:for-each select="metadataList/metadata[@name = 'children_GPS.mapOverlay']"> 
     936                                    <xsl:value-of disable-output-escaping="yes" select="current()"/>                                     
     937                                    <xsl:if test="not(position() = $count)"> 
     938                                        <xsl:text disable-output-escaping="yes">,</xsl:text> 
     939                                    </xsl:if> 
     940                                </xsl:for-each> 
     941                                <xsl:text disable-output-escaping="yes">]</xsl:text> 
     942                            </xsl:if> 
     943                             
    918944                            <xsl:text>}</xsl:text> 
    919945                        </xsl:if> 
     
    928954            search|browse|doc display view has mapEnabled=true --> 
    929955        <gsf:metadata name="Coordinate" hidden="true"/> 
    930         <gsf:metadata name="GPS.mapOverlay" hidden="true"/>      
     956        <gsf:metadata name="GPS.mapOverlay" hidden="true"/> 
     957        <gsf:metadata name="GPS.mapOverlay" select="true" hidden="true"/> 
    931958    </xsl:template> 
    932959