Changeset 33317


Ignore:
Timestamp:
2019-07-09T21:42:14+12:00 (5 years 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 edited

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   
Note: See TracChangeset for help on using the changeset viewer.