@@ -74,6 +74,10 @@ exclude-result-prefixes="#all"
7474 <ixsl : set-property name =" {'`' || $block/@about || '`'}" select =" ldh:new-object()" object =" ixsl:get(ixsl:window(), 'LinkedDataHub.contents')" />
7575 </xsl : if >
7676
77+ <!-- Initialize progress counters -->
78+ <xsl : variable name =" cache" select =" ixsl:get(ixsl:get(ixsl:window(), 'LinkedDataHub.contents'), '`' || $block/@about || '`')" />
79+ <xsl : sequence select =" ldh:update-progress-counter($cache, map{'container': $container}, 'init', ())" />
80+
7781 <xsl : variable name =" request-uri" select =" ldh:href(ac:document-uri($query-uri), map{})" as =" xs:anyURI" />
7882 <xsl : variable name =" request" select =" map{ 'method': 'GET', 'href': $request-uri, 'headers': map{ 'Accept': 'application/rdf+xml' } }" as =" map(*)" />
7983 <!-- $about in the query gets set to the @about of the *parent* block -->
@@ -89,7 +93,10 @@ exclude-result-prefixes="#all"
8993 'query-uri': $query-uri,
9094 'cache': ixsl:get(ixsl:get(ixsl:window(), 'LinkedDataHub.contents'), '`' || $block/@about || '`')
9195 }" />
92-
96+
97+ <!-- Track HTTP request start -->
98+ <xsl : sequence select =" ldh:update-progress-counter($cache, map{'container': $container}, 'start', ())" />
99+
93100 <xsl : sequence select ="
94101 ldh:load-block#3(
95102 $context,
@@ -120,8 +127,7 @@ exclude-result-prefixes="#all"
120127 ixsl:http-request($context('request')) =>
121128 ixsl:then(ldh:rethread-response($context, ?)) =>
122129 ixsl:then(ldh:handle-response#1) =>
123- ixsl:then(ldh:view-query-response#1) =>
124- ixsl:then(ldh:update-progress(?, 33))
130+ ixsl:then(ldh:view-query-response#1)
125131 " />
126132 </xsl : function >
127133
@@ -130,21 +136,18 @@ exclude-result-prefixes="#all"
130136
131137 <xsl : message >ldh:view-results-thunk</xsl : message >
132138
139+ <!-- Track HTTP request start -->
140+ <xsl : sequence select =" ldh:update-progress-counter($context('cache'), $context, 'start', ())" />
141+
133142 <xsl : sequence select ="
134143 ixsl:http-request($context('request')) =>
135144 ixsl:then(ldh:rethread-response($context, ?)) =>
136145 ixsl:then(ldh:handle-response#1) =>
137- ixsl:then(ldh:update-progress(?, 40)) =>
138146 ixsl:then(ldh:load-object-metadata#1) =>
139- ixsl:then(ldh:update-progress(?, 50)) =>
140147 ixsl:then(ldh:http-request-threaded#1) =>
141148 ixsl:then(ldh:handle-response#1) =>
142- ixsl:then(ldh:update-progress(?, 70)) =>
143149 ixsl:then(ldh:set-object-metadata#1) =>
144- ixsl:then(ldh:update-progress(?, 80)) =>
145- ixsl:then(ldh:render-view#1) =>
146- ixsl:then(ldh:update-progress(?, 90)) =>
147- ixsl:then(ldh:update-progress(?, 100))
150+ ixsl:then(ldh:render-view#1)
148151 " />
149152 </xsl : function >
150153
@@ -164,8 +167,12 @@ exclude-result-prefixes="#all"
164167 <xsl : choose >
165168 <xsl : when test =" $endpoint = sd:endpoint()" >
166169 <xsl : variable name =" object-uris" select =" distinct-values($results/rdf:RDF/rdf:Description/*/@rdf:resource[not(key('resources', .))])" as =" xs:string*" />
167- <xsl : variable name =" query-string" select =" $object-metadata-query || ' VALUES $this { ' || string-join(for $uri in $object-uris return '< ' || $uri || '> ', ' ') || ' }'" as =" xs:string" />
170+ <xsl : variable name =" query-string" select =" $object-metadata-query || ' VALUES $this { ' || string-join(for $uri in $object-uris return '< ' || $uri || '> ', ' ') || ' }'" as =" xs:string" />
168171 <xsl : variable name =" request" select =" map{ 'method': 'POST', 'href': ldh:href($endpoint), 'media-type': 'application/sparql-query', 'body': $query-string, 'headers': map{ 'Accept': 'application/rdf+xml' } }" as =" map(*)" />
172+
173+ <!-- Track HTTP request start -->
174+ <xsl : sequence select =" ldh:update-progress-counter($context('cache'), $context, 'start', ())" />
175+
169176 <xsl : sequence select =" map:merge(($context, map{ 'request': $request , 'response': () , 'results': $results }), map{ 'duplicates': 'use-last' })" />
170177 </xsl : when >
171178 <xsl : otherwise >
@@ -187,7 +194,7 @@ exclude-result-prefixes="#all"
187194
188195 <ixsl : set-style name =" cursor" select =" 'default'" object =" ixsl:page()//body" />
189196
190- <xsl : sequence select =" ldh:hide-block-progress-bar($context, ())[current-date() lt xs:date('2000-01-01')]" />
197+ <!-- <xsl:sequence select="ldh:hide-block-progress-bar($context, ())[current-date() lt xs:date('2000-01-01')]"/> -- >
191198 <xsl : sequence select ="
192199 error(
193200 QName('&ldh; ', 'ldh:HTTPError'),
@@ -207,6 +214,9 @@ exclude-result-prefixes="#all"
207214
208215 <xsl : message >ldh:set-object-metadata</xsl : message >
209216
217+ <!-- Mark metadata response as complete -->
218+ <xsl : sequence select =" ldh:update-progress-counter($context('cache'), $context, 'complete', ())" />
219+
210220 <xsl : for-each select =" $response" >
211221 <xsl : choose >
212222 <xsl : when test =" ?status = 200 and ?media-type = 'application/rdf+xml'" >
@@ -343,6 +353,7 @@ exclude-result-prefixes="#all"
343353 <xsl : param name =" endpoint" as =" xs:anyURI" />
344354 <xsl : param name =" select-xml" as =" document-node()" />
345355 <xsl : param name =" focus-var-name" as =" xs:string" />
356+ <xsl : param name =" cache" as =" item()" />
346357 <xsl : variable name =" select-xml" as =" document-node()" >
347358 <xsl : document >
348359 <!-- unset ORDER BY/LIMIT/OFFSET - we want to COUNT all of the container's children; ordering is irrelevant -->
@@ -377,8 +388,13 @@ exclude-result-prefixes="#all"
377388 map {
378389 'request': $request,
379390 'container': .,
380- 'count-var-name': $count-var-name
391+ 'count-var-name': $count-var-name,
392+ 'cache': $cache
381393 }" />
394+
395+ <!-- Track HTTP request start -->
396+ <xsl : sequence select =" ldh:update-progress-counter($cache, $context, 'start', ())" />
397+
382398 <ixsl : promise select =" ixsl:http-request($context('request')) =>
383399 ixsl:then(ldh:rethread-response($context, ?)) =>
384400 ixsl:then(ldh:handle-response#1) =>
@@ -829,6 +845,7 @@ exclude-result-prefixes="#all"
829845 <xsl : with-param name =" focus-var-name" select =" $focus-var-name" />
830846 <xsl : with-param name =" endpoint" select =" $endpoint" />
831847 <xsl : with-param name =" select-xml" select =" $select-xml" />
848+ <xsl : with-param name =" cache" select =" $cache" />
832849 </xsl : call-template >
833850 </xsl : for-each >
834851
@@ -845,8 +862,10 @@ exclude-result-prefixes="#all"
845862 'container': id($order-by-container-id, ixsl:page()),
846863 'id': $id,
847864 'predicate': $predicate,
848- 'order-by-predicate': $order-by-predicate
865+ 'order-by-predicate': $order-by-predicate,
866+ 'cache': $cache
849867 }" />
868+
850869 <ixsl : promise select =" ixsl:http-request($context('request')) =>
851870 ixsl:then(ldh:rethread-response($context, ?)) =>
852871 ixsl:then(ldh:handle-response#1) =>
@@ -1750,6 +1769,9 @@ exclude-result-prefixes="#all"
17501769 <xsl : with-param name =" cache" select =" $cache" />
17511770 </xsl : call-template >
17521771 </xsl : variable >
1772+ <!-- Mark query response as complete -->
1773+ <xsl : sequence select =" ldh:update-progress-counter($cache, $context, 'complete', ())" />
1774+
17531775 <xsl : sequence select =" map:merge((map{ 'block': $block }, $view-context))" />
17541776 </xsl : when >
17551777 <xsl : otherwise >
@@ -1779,7 +1801,7 @@ exclude-result-prefixes="#all"
17791801 </xsl : result-document >
17801802 </xsl : for-each >
17811803
1782- <xsl : sequence select =" ldh:hide-block-progress-bar($context, ())[current-date() lt xs:date('2000-01-01')]" />
1804+ <!-- <xsl:sequence select="ldh:hide-block-progress-bar($context, ())[current-date() lt xs:date('2000-01-01')]"/> -- >
17831805 <xsl : sequence select ="
17841806 error(
17851807 QName('&ldh; ', 'ldh:HTTPError'),
@@ -1814,6 +1836,7 @@ exclude-result-prefixes="#all"
18141836 <xsl : for-each select =" $results" >
18151837 <!-- use the BGPs where the predicate is a URI value and the subject and object are variables -->
18161838 <xsl : variable name =" bgp-triples-map" select =" $select-xml//json:map[json:string[@key = 'type'] = 'bgp']/json:array[@key = 'triples']/json:map[json:string[@key = 'subject'] = '?' || $initial-var-name][not(starts-with(json:string[@key = 'predicate'], '?'))][starts-with(json:string[@key = 'object'], '?')]" as =" element()*" />
1839+
18171840 <xsl : variable name =" order-by-var-name" select =" $select-xml/json:map/json:array[@key = 'order']/json:map[1]/json:string[@key = 'expression']/substring-after(., '?')" as =" xs:string?" />
18181841 <xsl : variable name =" order-by-predicate" select =" $bgp-triples-map[json:string[@key = 'object'] = '?' || $order-by-var-name][1]/json:string[@key = 'predicate']" as =" xs:anyURI?" />
18191842 <xsl : variable name =" desc" select =" $select-xml/json:map/json:array[@key = 'order']/json:map[1]/json:boolean[@key = 'descending']" as =" xs:boolean?" />
@@ -1879,6 +1902,9 @@ exclude-result-prefixes="#all"
18791902 <!-- loading is done - restore the default mouse cursor -->
18801903 <ixsl : set-style name =" cursor" select =" 'default'" object =" ixsl:page()//body" />
18811904
1905+ <!-- Mark main view query as complete -->
1906+ <xsl : sequence select =" ldh:update-progress-counter($cache, $context, 'complete', ())" />
1907+
18821908 <xsl : sequence select =" $context" />
18831909 </xsl : function >
18841910
@@ -1892,7 +1918,7 @@ exclude-result-prefixes="#all"
18921918 <xsl : variable name =" object-var-name" select =" $context('object-var-name')" as =" xs:string" />
18931919
18941920 <xsl : message >ldh:facet-filter-response</xsl : message >
1895-
1921+
18961922 <xsl : for-each select =" $response" >
18971923 <xsl : if test =" ?status = 200 and ?media-type = 'application/rdf+xml' and ?body" >
18981924 <xsl : variable name =" body" select =" ?body" as =" document-node()" />
@@ -1908,7 +1934,7 @@ exclude-result-prefixes="#all"
19081934 </xsl : if >
19091935 <!-- ignore error response -->
19101936 </xsl : for-each >
1911-
1937+
19121938 <xsl : sequence select =" $context" />
19131939 </xsl : function >
19141940
@@ -1920,7 +1946,7 @@ exclude-result-prefixes="#all"
19201946 <xsl : variable name =" results" select =" $context('results')" as =" document-node()" />
19211947
19221948 <xsl : message >ldh:parallax-response</xsl : message >
1923-
1949+
19241950 <xsl : for-each select =" $response" >
19251951 <xsl : choose >
19261952 <xsl : when test =" ?status = 200 and ?media-type = 'application/sparql-results+xml'" >
@@ -1976,7 +2002,7 @@ exclude-result-prefixes="#all"
19762002 <xsl : variable name =" predicate" select =" $context('predicate')" as =" xs:anyURI" />
19772003
19782004 <xsl : message >ldh:parallax-property-response</xsl : message >
1979-
2005+
19802006 <xsl : for-each select =" $response" >
19812007 <xsl : variable name =" results" select =" if (?status = 200 and ?media-type = 'application/rdf+xml') then ?body else ()" as =" document-node()?" />
19822008 <xsl : variable name =" existing-items" select =" $container/li" as =" element()*" />
@@ -2036,7 +2062,7 @@ exclude-result-prefixes="#all"
20362062 <xsl : variable name =" label-sample-var-name" select =" $context('label-sample-var-name')" as =" xs:string" />
20372063
20382064 <xsl : message >ldh:facet-value-response</xsl : message >
2039-
2065+
20402066 <xsl : for-each select =" $response" >
20412067 <xsl : variable name =" response" select =" ." as =" map(*)" />
20422068 <xsl : choose >
@@ -2182,6 +2208,9 @@ exclude-result-prefixes="#all"
21822208
21832209 <xsl : message >ldh:result-count-response</xsl : message >
21842210
2211+ <!-- Mark result count response as complete -->
2212+ <xsl : sequence select =" ldh:update-progress-counter($context('cache'), $context, 'complete', ())" />
2213+
21852214 <xsl : for-each select =" $response" >
21862215 <xsl : choose >
21872216 <xsl : when test =" ?status = 200 and ?media-type = 'application/sparql-results+xml'" >
@@ -2205,7 +2234,7 @@ exclude-result-prefixes="#all"
22052234 </xsl : otherwise >
22062235 </xsl : choose >
22072236 </xsl : for-each >
2208-
2237+
22092238 <xsl : sequence select =" $context" />
22102239 </xsl : function >
22112240
@@ -2220,7 +2249,7 @@ exclude-result-prefixes="#all"
22202249 <xsl : variable name =" order-by-predicate" select =" $context('order-by-predicate')" as =" xs:anyURI?" />
22212250
22222251 <xsl : message >ldh:order-by-response</xsl : message >
2223-
2252+
22242253 <xsl : for-each select =" $response" >
22252254 <xsl : if test =" ?status = 200 and ?media-type = 'application/rdf+xml' and ?body" >
22262255 <xsl : variable name =" body" select =" ?body" as =" document-node()" />
@@ -2234,7 +2263,7 @@ exclude-result-prefixes="#all"
22342263 </xsl : if >
22352264 <!-- ignore error response -->
22362265 </xsl : for-each >
2237-
2266+
22382267 <xsl : sequence select =" $context" />
22392268 </xsl : function >
22402269
0 commit comments