In summary:
<include fragment="program/step/whatever-the-path-is">
<before question="foo_bar">
<static>Some information about foo_bar</static>
</before>
<after question="baz">
<question id="quux"/>
<question id="quuux"/>
</after>
<modify question="pct_alcohol_sales">
<!-- {} is both consitent with existing substitution syntax, and
`{}` itself is common with utilities like `find`; it will be
replaced with the current value to allow for appending,
prepending, both, or removing entirely -->
<attribute name="when" value="{} deli"/>
</modify>
<modify question="sell_under-label">
<append>
<assert:equal ref="c:manufacturers-noc-needed" value="'0'" forEach="true">
<assert:message>Use class 54444 instead of
12467</assert:message>
</assert:equal>
</append>
</modify>
</include>
The new 'pre-rate-expiration' and 'post-rate-expiration' attributes
will be used by Liza to determine how long quotes may remain open
before being locked. The corresponding 'pre-rate-grace-period' and
'post-rate-grace-period' attributes will delay the locking effect
without changing the official expiration date.
* src/group/accordion.xsl: New file.
* src/group/group.xsl: Include new file.
* src/group/stacked.xsl (stacked-group): Name template.
[group, class]: New params. Use themin dl.
Otherwise the final argument to `triggerFieldUpdate' will always be `true',
meaning that data didn't change (when in fact it did). Ideally, it should
never be the case that there's a value in the diff that isn't in the bucket,
but it could happen.
This potential unearths old bugs from 2013/2014 (internal id: FS#14712), but
hopefully those situations no longer apply after various changes to liza
since.
* src/program-data-api.xsl (compiler:compile-api-init)[lv:question/lv:data]:
Give bucket precedence over diff for `cdata'.
DEV-4077
This was previously a runtime error in liza, which is far too late.
* src/program-preprocess.xsl (preproc:expand): Produce error when
referencing a dapi that has no corresponding api definition.
This includes some refactoring that makes this change deceptively complex;
it's not.
* src/progui-class.xsl: Add `xs' namespace prefix.
(build-group-fields): Extract code into `compiler:group-refs' to reduce
duplicate logic (this bug was caused by inconsistencies between the
duplicate logic).
(compiler:group-refs): New function. Recurse for linked groups.
* src/program-data-api.xsl (compiler:compile)[lv:question/lv:data]: Replace
inline map with reference to dapimap.
(compilre:gen-data-map)[lv:data]: Remove template.
* src/progui-class.xsl (build-program-class)[/lv:program]: New dapi
property.
(build-dapimap): New template.
(compiler:dapi-qmap): New function.
This reverts commit 6dd21729e9.
We can't do this, because then the Quote Server won't be aware that this
field exists and will strip it from all saves!
This was causing the type to be output as "undefined" even if something else
had already defined the type.
This whole thing needs revisiting, but this will help for now.
* src/program-build-meta.xsl (build-meta): Ignore lv:external without @type.
This address two common cases where lv:display should be used in place of
lv:answer.
* src/program-preprocess.xsl (preproc:expand)[lv:answer[@type]]: Fail and
recommend lv:display when `@type' is provided.
[lv:answer[not(@ref=/lv:question/@id)]]: Fail when `@ref' does not
reference a known question.
So apparently I have been providing errors, but the system had no code to
actually do anything with them. Wonderful.
* src/program-preprocess.xsl (preproc:error)[preproc:error]: New template:
output error message.
(preprocess)[*]: Terminate on preproc:error.
* src/util/serialize.xsl (struct:items-from-attrs): Normalize attribute
value whitespace.
* test/util/serialize.xspec: New test.
(foo:elementw): New stub.