Hello Tim,
It appears that there is actually no event attached to this refresh
action. The latest 1.5beta build does not support this situation so a
Javascript error occurs (I don't know whether a warning should be
displayed or if it better just to ignore "unreachable" actions).
Please try again with an embedding xf:action for xf:setvalue followed by
xf:refresh (which might be useless BTW).
The next build should just ignore this.
Thanks!
--Alain
Le 28/02/2020 à 04:16, Tim Thompson a écrit :
Hello, Alain,
Thanks again for the latest updates! I have another test for you.
Here is my use case: I want to display an ephemeral "Loading" message
when I trigger a submission. To achieve this, I have an instance:
<instance id="state">
<data xmlns="">
<status loading="false" ready="false">...Loading...</status>
</data>
</instance>
When the submission is triggered, I call xf:setvalue to change the
@loading attribute to "true." This causes the loading message to
display. When the submission completes, the @loading attribute is set
to "false" again.
For the value change to take effect, I find that I have to call
xf:refresh, or else the binding won't be registered.
In the latest version of beta1.5, if I call xf:refresh from within an
xf:submit element, the following error is thrown. This does not occur
in XSLTForms 1.4.
XSLTForms Exception
--------------------------
Incorrect Javascript code generation:
XsltForms_abstractAction.prototype.init@https://www.tat2.io/basex2/static/xsltforms.js:11252:35
XsltForms_dispatch@https://www.tat2.io/basex2/static/xsltforms.js:11462:7
anonymous@https://www.tat2.io/basex2/static/xsltforms.js line 5740 >
Function:3:181
schback/<@https://www.tat2.io/basex2/static/xsltforms.js:5759:125
schback@https://www.tat2.io/basex2/static/xsltforms.js:5759:66
schloader@https://www.tat2.io/basex2/static/xsltforms.js:5780:11
XsltForms_class.activateAll@https://www.tat2.io/basex2/static/xsltforms.js:5815:11
xsltforms_init@https://www.tat2.io/basex2/static/xsltforms.js:16516:22
TypeError
mainaction.hasAttribute is not a function
However, if I call xf:refresh from within an xforms-submit action, no
error is thrown.
See examples:
*1. xf:setvalue with xf:refresh inside xf:submit (1.5beta)*:
https://www.tat2.io/basex2/static/xsltforms_setvalue_refresh_test_2020-02-27_1.5beta.xml
*2. xf:setvalue inside xf:submit, xf:refresh inside xforms-submit
action (1.5beta):*
https://www.tat2.io/basex2/static/xsltforms_setvalue_refresh_test_2020-02-27_1.5beta_v2.xml
*3. xf:setvalue with xf:refresh inside xf:submit (1.4):*
https://www.tat2.io/basex2/static/xsltforms_setvalue_refresh_test_2020-02-27_1.4.xml
Best regards,
Tim
--
Tim A. Thompson
Discovery Metadata Librarian
Yale University Library
On Mon, Feb 17, 2020 at 4:56 PM Tim Thompson <[email protected]
<mailto:[email protected]>> wrote:
Thank you, Alain!
If you don't mind, I have another test form that works in
XSLTForms 1.4 but not 1.5beta.
This one is testing xf:var again.
In 1.5beta, an error is thrown:
Assertion failed: Binding evaluation didn't returned a nodeset but
'1' for XPath expression: count(ancestor::item)
https://www.tat2.io/basex2/static/xsltforms_var_test_2020-02-17_with_var_1.5beta.xml
In 1.4, the form works as expected:
https://www.tat2.io/basex2/static/xsltforms_var_test_2020-02-17_with_var_1.4.xml
Best regards,
Tim
--
Tim A. Thompson
Discovery Metadata Librarian
Yale University Library
On Mon, Feb 17, 2020 at 3:54 PM Alain Couthures
<[email protected]
<mailto:[email protected]>> wrote:
Hello Tim,
This issue is now fixed (and some more actually...).
The new build can be downloaded at the same URL:
www.agencexml.com/1.5beta/xsltforms.zip
<http://www.agencexml.com/1.5beta/xsltforms.zip>
Thank you again for your contributions!
--Alain
Le 15/02/2020 à 01:15, Tim Thompson a écrit :
Hello, Alain,
Another test for you:
In XSLTForms 1.5beta, the DOMActivate event is not being
evoked for input controls. See this test form:
https://www.tat2.io/basex2/static/xsltforms_DOMActivate_test_2020-02-14_1-5beta.xml
Pressing "enter" in the input field does nothing, whereas
clicking the button triggers the event.
Compare this to a form running XSLTForms 1.4:
https://www.tat2.io/basex2/static/xsltforms_DOMActivate_test_2020-02-14_1-4.xml
Here, the DOMActivate enter works in both the input field
with the "enter" key and with the button.
All best,
Tim
--
Tim A. Thompson
Discovery Metadata Librarian
Yale University Library
On Wed, Feb 12, 2020 at 5:51 PM Tim Thompson
<[email protected] <mailto:[email protected]>> wrote:
Great! Works perfectly now. Looking forward to the XML
Prague proceedings and video for your presentation with
Steven Pemberton.
Thanks again,
Tim
--
Tim A. Thompson
Discovery Metadata Librarian
Yale University Library
On Wed, Feb 12, 2020 at 4:00 PM Alain Couthures
<[email protected]
<mailto:[email protected]>> wrote:
Hello Tim,
(1) The xf:group processing was not correct: in the
new approach, an xf-bound attribute has to be
automatically added to each xforms-* element when
xf-ref (or xf-bind) is evaluated as a non empty
nodeset. CSS attribute selectors are, then, used to
display/hide xforms-* elements accordingly.
(2) The xf:var processing was not functional: it
should now work, at least, outside of actions.
(3) The profiler is actually just another external
form: I have added the corresponding file into the
updated .zip file at
www.agencexml.com/1.5beta/xsltforms.zip
<http://www.agencexml.com/1.5beta/xsltforms.zip>
Thank you very much for your contributions!
--Alain
Le 09/02/2020 à 20:51, Tim Thompson a écrit :
Hello, Alain,
I've been testing an existing form with the new
release and have some feedback. First, the
performance improvement seems impressive, and CSS
styling with Bootstrap now seems much easier. Thank you!
I did notice some issues after testing, however.
(1)
There seems to be a bug with XPath predicate
filtering in xf:group elements. For example, a group
binding such as <xf:group
ref="instance('response')/response[*]">...</xf:group>,
where the response element should initially be empty
(before a submission is executed) does not seem to
work.
See the test form copied below. Example form at:
https://www.tat2.io/basex2/static/xsltforms_test_2020-02-09.xml
(2)
I see that the xforms:var element is not currently
supported. When loading a form with an XForms
variable defined, I get an error message:
Error initializing:
xforms:var is not supported
(3)
I also see that the XSLTForms Profiler does not seem
to be available. When I try to open it, I get an error:
File not found (404):
https://www.tat2.io/basex2/static/xsltforms_profiler.xhtml
*
*
*--Test form for XPath predicate bug--*
*
*
<?xml-stylesheet type="text/xsl" href="..."?>
<html
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xf="http://www.w3.org/2002/xforms"
xmlns:h="http://www.w3.org/1999/xhtml"
xmlns:ev="http://www.w3.org/2001/xml-events"
xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=UTF-8" />
<title>XForms/XPath Predicate Test</title>
<style type="text/css"/>
<model xmlns="http://www.w3.org/2002/xforms" id="m">
<instance id="default">
<data xmlns="">
<default/>
</data>
</instance>
<instance id="response">
<data xmlns="">
<response/>
</data>
</instance>
<instance id="response-test">
<data xmlns="">
<response>
<testing>Testing</testing>
</response>
</data>
</instance>
</model>
</head>
<body>
<div class="container-fluid">
<hr class="blue" />
<h1>XForms/XPath predicate test</h1>
<xf:group ref="instance('response')/response[*]">
<h2 style="color: red;">This should not
display!</h2>
<xf:output value="concat('Value of
"serialize(.)": ', serialize(.))"/>
</xf:group>
<xf:group
ref="instance('response-test')/response[*]">
<h2 style="color: blue;">This should
display.</h2>
<xf:output value="concat('Value of
"serialize(.)": ', serialize(.))"/>
</xf:group>
</div>
</body>
</html>
--
Tim A. Thompson
Discovery Metadata Librarian
Yale University Library
On Sun, Feb 9, 2020 at 11:06 AM Tim Thompson
<[email protected] <mailto:[email protected]>> wrote:
Hello, Alain,
Congratulations on this milestone! I am very
eager to try and test the new release. Is
XSLTForms now using Fleur for XPath parsing?
Does this mean that XPath 3.0 functions are now
supported? I guess I can test this myself :)
It's quite amazing to see the xsltforms.xsl file
down to just over 500 lines.
Thanks again for all your work.
Best regards,
Tim
--
Tim A. Thompson
Discovery Metadata Librarian
Yale University Library
On Wed, Feb 5, 2020 at 3:16 PM Alain Couthures
<[email protected]
<mailto:[email protected]>> wrote:
Hello,
Please find a new release for XSLTForms at
www.agencexml.com/1.5beta/xsltforms.zip
<http://www.agencexml.com/1.5beta/xsltforms.zip>
It has not yet been fully tested because a
lot of changes have been made and you are
welcome to locate remaining issues with your
own forms.
The XSLT part has been reduced to minimal
for better performance. Instead of parsing
the XPath expressions and transforming all
the XForms elements into HTML elements, it
basically just transposes the non-HTML
elements into sort-of custom elements:
xforms:* elements become xforms-* elements
with xf-* and ev-* attributes.
Have a look with your favorite browser
debugger! Actually, authors could even
prefer to directly write/generate forms with
this new notation and forget about the XSLT
step. You can compare two sources for the
same form: hello.xml and hello.htm
XSLTForms Javascript classes constructors
are obtaining their properties directly from
xf-* attributes and XPath parsing is then
performed.
No ids are automatically added as previously.
Extra xf-* attributes and extra xforms-*
elements are used to embed effective HTML
rendering elements, for example, xforms-body
or xforms-repeat-item while, before, span or
div elements where used.
XSLTForms classes for xforms:select and
xforms:itemset had to be partially rewritten.
SVG support has been basically tested too.
CSS styling is not anymore based on xforms-*
classes but on custom element names and
attribute selectors. For example, the extra
xf-bound attribute, when present, says that
the XForms control is bound to a node,
eventually a not relevant one, and the extra
xf-notrelevant attribute can, then, be
checked...
Thank you for your contribution!
--Alain
_______________________________________________
Xsltforms-support mailing list
[email protected]
<mailto:[email protected]>
https://lists.sourceforge.net/lists/listinfo/xsltforms-support
_______________________________________________
Xsltforms-support mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xsltforms-support