@@ -126,7 +126,7 @@ exclude-result-prefixes="#all"
126126 <xsl : param name =" select-xml" as =" document-node()" />
127127 <xsl : param name =" endpoint" as =" xs:anyURI" />
128128 <xsl : param name =" base-uri" as =" xs:anyURI" />
129-
129+
130130 <!-- wrap SELECT into a DESCRIBE -->
131131 <xsl : variable name =" query-xml" as =" element()" >
132132 <xsl : apply-templates select =" $select-xml" mode =" ldh:wrap-describe" />
@@ -136,14 +136,19 @@ exclude-result-prefixes="#all"
136136 <xsl : variable name =" query-string" select =" ixsl:call(ixsl:call(ixsl:get(ixsl:get(ixsl:window(), 'SPARQLBuilder'), 'SelectBuilder'), 'fromQuery', [ $query-json ]), 'toString', [])" as =" xs:string" />
137137 <xsl : variable name =" results-uri" select =" ac:build-uri($endpoint, map{ 'query': $query-string })" as =" xs:anyURI" />
138138 <xsl : variable name =" request-uri" select =" ldh:href($ldt:base, ac:absolute-path($base-uri), map{}, $results-uri)" as =" xs:anyURI" />
139-
140- <ixsl : schedule-action http-request =" map{ 'method': 'GET', 'href': $request-uri, 'headers': map{ 'Accept': 'application/rdf+xml' } }" >
141- <xsl : call-template name =" onGeoResultsLoad" >
142- <xsl : with-param name =" container" select =" $container" />
143- <xsl : with-param name =" container-id" select =" $container-id" />
144- <xsl : with-param name =" block-uri" select =" $block-uri" />
145- </xsl : call-template >
146- </ixsl : schedule-action >
139+ <xsl : variable name =" request" select =" map{ 'method': 'GET', 'href': $request-uri, 'headers': map{ 'Accept': 'application/rdf+xml' } }" as =" map(*)" />
140+ <xsl : variable name =" context" as =" map(*)" select ="
141+ map{
142+ 'request': $request,
143+ 'container': $container,
144+ 'container-id': $container-id,
145+ 'block-uri': $block-uri
146+ }" />
147+ <ixsl : promise select =" ixsl:http-request($context('request')) =>
148+ ixsl:then(ldh:rethread-response($context, ?)) =>
149+ ixsl:then(ldh:handle-response#1) =>
150+ ixsl:then(ldh:geo-results-response#1)"
151+ on-failure =" ldh:form-horizontal-submit-error#1" />
147152 </xsl : template >
148153
149154 <!-- create and render OpenLayers map -->
@@ -321,35 +326,40 @@ exclude-result-prefixes="#all"
321326 <!-- CALLBACKS -->
322327
323328 <!-- when container RDF/XML results load, render them -->
324- <xsl : template name =" onGeoResultsLoad" >
325- <xsl : context-item as =" map(*)" use =" required" />
326- <xsl : param name =" container" as =" element()" />
327- <xsl : param name =" container-id" as =" xs:string" />
328- <xsl : param name =" block-uri" select =" xs:anyURI($container/@about)" as =" xs:anyURI" />
329+ <xsl : function name =" ldh:geo-results-response" as =" map(*)" ixsl : updating =" yes" >
330+ <xsl : param name =" context" as =" map(*)" />
331+ <xsl : variable name =" response" select =" $context('response')" as =" map(*)" />
332+ <xsl : variable name =" container" select =" $context('container')" as =" element()" />
333+ <xsl : variable name =" container-id" select =" $context('container-id')" as =" xs:string" />
334+ <xsl : variable name =" block-uri" select =" $context('block-uri')" as =" xs:anyURI" />
329335
330336 <ixsl : set-style name =" cursor" select =" 'default'" object =" ixsl:page()//body" />
331337
332- <xsl : choose >
333- <xsl : when test =" ?status = 200 and ?media-type = 'application/rdf+xml'" >
334- <xsl : for-each select =" ?body" >
335- <xsl : call-template name =" ldh:DrawMap" >
336- <xsl : with-param name =" block-uri" select =" $block-uri" />
337- <xsl : with-param name =" canvas-id" select =" $container-id || '-map-canvas'" />
338+ <xsl : for-each select =" $response" >
339+ <xsl : choose >
340+ <xsl : when test =" ?status = 200 and ?media-type = 'application/rdf+xml'" >
341+ <xsl : for-each select =" ?body" >
342+ <xsl : call-template name =" ldh:DrawMap" >
343+ <xsl : with-param name =" block-uri" select =" $block-uri" />
344+ <xsl : with-param name =" canvas-id" select =" $container-id || '-map-canvas'" />
345+ </xsl : call-template >
346+ </xsl : for-each >
347+ </xsl : when >
348+ <xsl : otherwise >
349+ <!-- error response - could not load query results -->
350+ <xsl : call-template name =" render-container-error" >
351+ <xsl : with-param name =" container" select =" $container" />
352+ <xsl : with-param name =" message" select =" ?message" />
338353 </xsl : call-template >
339- </xsl : for-each >
340- </xsl : when >
341- <xsl : otherwise >
342- <!-- error response - could not load query results -->
343- <xsl : call-template name =" render-container-error" >
344- <xsl : with-param name =" container" select =" $container" />
345- <xsl : with-param name =" message" select =" ?message" />
346- </xsl : call-template >
347- </xsl : otherwise >
348- </xsl : choose >
354+ </xsl : otherwise >
355+ </xsl : choose >
356+ </xsl : for-each >
349357
350358 <!-- loading is done - restore the default mouse cursor -->
351359 <ixsl : set-style name =" cursor" select =" 'default'" object =" ixsl:page()//body" />
352- </xsl : template >
360+
361+ <xsl : sequence select =" $context" />
362+ </xsl : function >
353363
354364 <xsl : template match =" ." mode =" ixsl:onMapMarkerClick" >
355365 <xsl : param name =" event" select =" ixsl:event()" />
0 commit comments