Skip to content

Commit 178ccd4

Browse files
committed
XSLT fixes
1 parent b2114ea commit 178ccd4

1 file changed

Lines changed: 15 additions & 56 deletions

File tree

  • src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/client

src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/client/form.xsl

Lines changed: 15 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,7 @@ WHERE
357357
<xsl:param name="context" as="map(*)"/>
358358
<xsl:param name="response" as="map(*)"/>
359359

360-
<xsl:sequence select="map:merge(($context, map{ 'response': $response }))"/>
360+
<xsl:sequence select="map:merge(($context, map{ 'response': $response }), map{ 'duplicates': 'use-last' })"/>
361361
</xsl:function>
362362

363363
<xsl:function name="ldh:http-request-threaded" as="map(*)" ixsl:updating="yes">
@@ -436,51 +436,7 @@ WHERE
436436
'resource': $resource,
437437
'types': $types,
438438
'response': () (: clear old response :)
439-
}))"/>
440-
</xsl:for-each>
441-
</xsl:when>
442-
<!-- error response -->
443-
<xsl:otherwise>
444-
<ixsl:set-style name="cursor" select="'default'" object="ixsl:page()//body"/>
445-
<xsl:sequence select="ixsl:call(ixsl:window(), 'alert', [ ?message ])"/>
446-
</xsl:otherwise>
447-
</xsl:choose>
448-
</xsl:for-each>
449-
</xsl:function>
450-
451-
<xsl:function name="ldh:load-edited-resource" as="item()*" ixsl:updating="yes">
452-
<xsl:param name="request" as="map(*)"/>
453-
<xsl:param name="response" as="map(*)"/>
454-
<xsl:variable name="block" select="$request('block')" as="element()"/>
455-
<xsl:variable name="about" select="$request('about')" as="xs:anyURI"/>
456-
457-
<xsl:for-each select="$response">
458-
<xsl:choose>
459-
<xsl:when test="?status = 200 and ?media-type = 'application/rdf+xml'">
460-
<xsl:variable name="etag" select="?headers?etag" as="xs:string?"/>
461-
462-
<xsl:for-each select="?body">
463-
<ixsl:set-property name="{'`' || ac:absolute-path(ldh:base-uri(.)) || '`'}" select="ldh:new-object()" object="ixsl:get(ixsl:window(), 'LinkedDataHub.contents')"/>
464-
<!-- store document under window.LinkedDataHub.contents[$base-uri].results -->
465-
<ixsl:set-property name="results" select="." object="ixsl:get(ixsl:get(ixsl:window(), 'LinkedDataHub.contents'), '`' || ac:absolute-path(ldh:base-uri(.)) || '`')"/>
466-
<!-- store ETag header value under window.LinkedDataHub.contents[$base-uri].etag -->
467-
<ixsl:set-property name="etag" select="$etag" object="ixsl:get(ixsl:get(ixsl:window(), 'LinkedDataHub.contents'), '`' || ac:absolute-path(ldh:base-uri(.)) || '`')"/>
468-
469-
<xsl:variable name="resource" select="key('resources', $about)" as="element()"/> <!-- TO-DO: handle error -->
470-
<xsl:variable name="types" select="distinct-values($resource/rdf:type/@rdf:resource)" as="xs:anyURI*"/>
471-
<xsl:variable name="query-string" select="'DESCRIBE $Type VALUES $Type { ' || string-join(for $type in $types return '&lt;' || $type || '&gt;', ' ') || ' }'" as="xs:string"/>
472-
<xsl:variable name="request-uri" select="ac:build-uri(resolve-uri('ns', $ldt:base), map{ 'query': $query-string, 'accept': 'application/rdf+xml' })" as="xs:anyURI"/>
473-
<xsl:variable name="http-request" select="map{ 'method': 'GET', 'href': $request-uri, 'headers': map{ 'Accept': 'application/rdf+xml' } }" as="map(*)"/>
474-
<xsl:variable name="callback-context" as="map(*)" select="
475-
map{
476-
'block': $block,
477-
'resource': $resource,
478-
'types': $types
479-
}"/>
480-
<xsl:variable name="request" select="map:merge(($http-request, $callback-context))" as="map(*)"/>
481-
<xsl:sequence select="ixsl:http-request($request) =>
482-
ixsl:then(ldh:handle-response($request, ?)) =>
483-
ixsl:then(ldh:load-type-metadata($request, ?))"/>
439+
}), map{ 'duplicates': 'use-last' })"/>
484440
</xsl:for-each>
485441
</xsl:when>
486442
<!-- error response -->
@@ -535,7 +491,7 @@ WHERE
535491
'constraints': $constraints,
536492
'shapes': $shapes,
537493
'object-metadata': $object-metadata
538-
}))"/>
494+
}), map{ 'duplicates': 'use-last' })"/>
539495
</xsl:when>
540496
<!-- error response -->
541497
<xsl:otherwise>
@@ -560,7 +516,7 @@ WHERE
560516
</xsl:variable>
561517
<xsl:sequence select="map:merge(($context, map{
562518
'document': $document
563-
}))"/>
519+
}), map{ 'duplicates': 'use-last' })"/>
564520
</xsl:function>
565521

566522
<xsl:function name="ldh:render-row-form" as="item()*" ixsl:updating="yes">
@@ -823,7 +779,7 @@ WHERE
823779
<xsl:param name="block" select="ancestor::div[contains-token(@class, 'modal-constructor')]" as="element()"/>
824780
<xsl:sequence select="ixsl:call(ixsl:event(), 'preventDefault', [])"/>
825781
<xsl:variable name="form" select="." as="element()"/>
826-
<xsl:variable name="method" select="@method" as="xs:string"/>
782+
<xsl:variable name="method" select="upper-case(@method)" as="xs:string"/>
827783
<xsl:variable name="modal" select="false()" as="xs:boolean"/>
828784
<xsl:variable name="id" select="ixsl:get($form, 'id')" as="xs:string"/>
829785
<xsl:variable name="action" select="ixsl:get($form, 'action')" as="xs:anyURI"/>
@@ -877,7 +833,7 @@ WHERE
877833
<xsl:param name="block" select="ancestor::div[contains-token(@class, 'block')][1]" as="element()"/>
878834
<xsl:sequence select="ixsl:call(ixsl:event(), 'preventDefault', [])"/>
879835
<xsl:variable name="form" select="." as="element()"/>
880-
<xsl:variable name="method" select="@method" as="xs:string"/>
836+
<xsl:variable name="method" select="upper-case(@method)" as="xs:string"/>
881837
<xsl:variable name="modal" select="false()" as="xs:boolean"/>
882838
<xsl:variable name="id" select="ixsl:get($form, 'id')" as="xs:string"/>
883839
<xsl:variable name="action" select="ixsl:get($form, 'action')" as="xs:anyURI"/>
@@ -1105,7 +1061,7 @@ WHERE
11051061
<xsl:sequence select="map:merge((
11061062
$context,
11071063
map{ 'rendered-row': $rendered }
1108-
))"/>
1064+
), map{ 'duplicates': 'use-last' })"/>
11091065

11101066
<ixsl:set-style name="cursor" select="'default'" object="ixsl:page()//body"/>
11111067
</xsl:for-each>
@@ -1120,11 +1076,13 @@ WHERE
11201076
<xsl:for-each select="$response">
11211077
<xsl:variable name="href" select="ac:absolute-path(xs:anyURI(ixsl:location()))" as="xs:anyURI"/> <!-- TO-DO: pass $context?base-uri -->
11221078
<xsl:variable name="request" select="map{ 'method': 'GET', 'href': $href, 'headers': map{ 'Accept': 'application/xhtml+xml' } }" as="map(*)"/>
1123-
<xsl:variable name="context" as="map(*)" select="
1079+
<xsl:variable name="context" select="map:merge((
1080+
$context,
11241081
map{
11251082
'request': $request,
11261083
'href': $href
1127-
}"/>
1084+
}
1085+
), map{ 'duplicates': 'use-last' })" as="map(*)"/>
11281086
<xsl:sequence select="
11291087
ixsl:http-request($context('request')) (: Step 1: send initial request :)
11301088
=> ixsl:then(ldh:rethread-response($context, ?)) (: Step 2: attach response to context :)
@@ -1164,14 +1122,15 @@ WHERE
11641122
<xsl:variable name="block" select="$context('block')" as="element()"/>
11651123
<xsl:variable name="form" select="$context('form')" as="element()?"/>
11661124
<xsl:variable name="modal" select="$context('modal')" as="xs:boolean"/>
1167-
<xsl:variable name="resources" select="$context('resources')" as="document-node()"/>
1125+
<!-- <xsl:variable name="resources" select="$context('resources')" as="document-node()"/>-->
11681126

11691127
<xsl:message>ldh:modal-form-submit-violation</xsl:message>
11701128

11711129
<xsl:for-each select="$response">
11721130
<xsl:variable name="body" select="?body" as="document-node()"/>
11731131
<!-- TO-DO: refactor to use asynchronous HTTP requests -->
1174-
<xsl:variable name="types" select="distinct-values($body/rdf:RDF/*[not(@rdf:about = $doc-uri)]/rdf:type/@rdf:resource)" as="xs:anyURI*"/>
1132+
<!-- inverse $types expression compared to ldh:row-form-submit-violation -->
1133+
<xsl:variable name="types" select="distinct-values($body/rdf:RDF/*[@rdf:about = $doc-uri]/rdf:type/@rdf:resource)" as="xs:anyURI*"/>
11751134
<xsl:variable name="query-string" select="'DESCRIBE $Type VALUES $Type { ' || string-join(for $type in $types return '&lt;' || $type || '&gt;', ' ') || ' }'" as="xs:string"/>
11761135
<xsl:variable name="request-uri" select="ac:build-uri(resolve-uri('ns', $ldt:base), map{ 'query': $query-string, 'accept': 'application/rdf+xml' })" as="xs:anyURI"/>
11771136
<xsl:variable name="type-metadata" select="if (exists($types)) then document($request-uri) else ()" as="document-node()?"/>
@@ -1251,7 +1210,7 @@ WHERE
12511210
<xsl:variable name="block" select="$context('block')" as="element()"/>
12521211
<xsl:variable name="form" select="$context('form')" as="element()?"/>
12531212
<xsl:variable name="modal" select="$context('modal')" as="xs:boolean"/>
1254-
<xsl:variable name="resources" select="$context('resources')" as="document-node()"/>
1213+
<!-- <xsl:variable name="resources" select="$context('resources')" as="document-node()"/>-->
12551214

12561215
<xsl:message>ldh:row-form-submit-violation</xsl:message>
12571216

0 commit comments

Comments
 (0)