Skip to content

Commit 44a266a

Browse files
committed
[refactor] Cleanup and enable debugging of XForm via Query Parameter
1 parent c0abe80 commit 44a266a

2 files changed

Lines changed: 26 additions & 22 deletions

File tree

src/main/xar-resources/form.xq

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
xquery version "1.0";
22

3-
declare namespace html="http://www.w3.org/1999/xhtml";
4-
declare namespace xf="http://www.w3.org/2002/xforms";
3+
import module namespace rh = "http://localhost/manuForma/request-helper" at "./modules/request-helper.xqm";
54

65
(:~
76
: Note need to add app:dir var, and use in configuring css
@@ -73,26 +72,14 @@ declare function local:insert-element($node as node()?, $new-node as node(),
7372
else $node
7473
};
7574

76-
let $form-name := request:get-parameter("form", "")
77-
let $form-path := $form-name
75+
76+
let $form-path := rh:request-param("form", "")
77+
let $xsltforms-debug := rh:request-param-yes-no("xsltforms-debug")
7878
let $form-doc := doc($form-path)
7979
let $form-description := <div class="description">Form Place Holder</div>
8080
let $form-doc := local:insert-element($form-doc, $form-description, 'iframe', 'remove')
81-
let $dummy := request:set-attribute("betterform.filter.ignoreResponseBody", "true")
82-
let $xslt-pi := processing-instruction xml-stylesheet {'type="text/xsl" href="/exist/rest/db/apps/xsltforms/xsltforms.xsl"'}
83-
let $css-pi := processing-instruction css-conversion {'no'}
84-
let $debug := processing-instruction xsltforms-options {'debug="no"'}
85-
(: Server side variables :)
86-
let $transform := doc('/exist/rest/db/apps/xsltforms/xsltforms.xsl')
87-
let $params :=
88-
<parameters>
89-
<param name="omit-xml-declaration" value="yes"/>
90-
<param name="indent" value="no"/>
91-
<param name="media-type" value="text/html"/>
92-
<param name="method" value="xhtml"/>
93-
<param name="baseuri" value="/exist/rest/db/apps/xsltforms/"/>
94-
</parameters>
95-
96-
let $serialization-options := 'method=xml media-type=text/html omit-xml-declaration=yes indent=no'
97-
let $cache := current-dateTime()
98-
return ($xslt-pi,$css-pi, $debug, $form-doc)
81+
let $xslt-pi := processing-instruction xml-stylesheet { 'type="text/xsl" href="/exist/rest/db/apps/xsltforms/xsltforms.xsl"' }
82+
let $css-pi := processing-instruction css-conversion { 'no' }
83+
let $debug := processing-instruction xsltforms-options { concat('debug="', $xsltforms-debug, '"') }
84+
return
85+
($xslt-pi, $css-pi, $debug, $form-doc)

src/main/xar-resources/modules/request-helper.xqm

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,23 @@ declare function rh:request-param-bool($name as xs:string) as xs:boolean {
4646
lower-case(rh:request-param($name, "false")[1]) eq "true"
4747
};
4848

49+
(:~
50+
: Get a HTTP request parameter as a "yes" or "no" value.
51+
: "true" is also considered as "yes".
52+
: Unlike request:get-parameter this will ignore parameters that have an empty string value.
53+
:
54+
: @param $name the name of the HTTP request parameter
55+
:
56+
: @return either "yes", or "no".
57+
:)
58+
declare function rh:request-param-yes-no($name as xs:string) as xs:string {
59+
if (lower-case(rh:request-param($name, "no")[1]) = ("yes", "true"))
60+
then
61+
"yes"
62+
else
63+
"no"
64+
};
65+
4966
(:~
5067
: Get HTTP request parameters.
5168
: Unlike request:get-parameter this will ignore parameters that have an empty string value.

0 commit comments

Comments
 (0)