Skip to content

Commit

Permalink
Field flow: Handle HTML tags in unlinked list items
Browse files Browse the repository at this point in the history
Previously, when the plugin encountered list items that didn't start off with an anchor, it used each item's first child node as a label/value. That was fine if the only child was a text node. But not when nested elements were in play...

For example:
* If a list item's first child node was an element node, wb.escapeAttribute() raised the following JS exception (since it expects strings - not element nodes):
  * Uncaught TypeError: can't access property "replace", str is null
* If a list item started off with a text node and was followed by any element nodes, only the text node's content would be retained... resulting in the rest of the content getting truncated

This fixes it by deriving list item labels from their inner HTML code (like what's already done for anchors), as well as stripping HTML tags out of option elements and value attributes. HTML formatting is retained for checkbox/radio button labels.

Also updated examples to demonstrate affected scenarios:
* Redirection example:
  * Bold a link in a list item
* Other examples:
  * Add italics/bolding in all "(Set 5)"/"(Ensemble 5)" list items
  • Loading branch information
EricDunsworth committed Dec 1, 2023
1 parent 74b26eb commit 962229c
Show file tree
Hide file tree
Showing 7 changed files with 71 additions and 65 deletions.
10 changes: 5 additions & 5 deletions components/wb-fieldflow/alternative-en.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
description: "Find styling alternatives for field flow."
tag: "fieldflow"
parentdir: "fieldflow"
dateModified: "2021-04-28"
dateModified: "2023-12-01"
---
<ul class="list-inline">
<li><a class="btn btn-primary" href="fieldflow-doc-en.html">Documentation</a></li>
Expand Down Expand Up @@ -99,7 +99,7 @@ <h3>Large checkboxes</h3>
<li data-wb-fieldflow="ajax/ajax-2.html">(Set 2) Vestibulum pretium tortor vel facilisis sodales.</li>
<li data-wb-fieldflow="ajax/ajax-3.html">(Set 3) Nunc sit amet dui ut justo efficitur dapibus.</li>
<li data-wb-fieldflow="ajax/ajax-4.html">(Set 4) Praesent at purus ut turpis sollicitudin aliquam.</li>
<li data-wb-fieldflow="ajax/ajax-5.html">(Set 5) Sed eget dui ac nunc mattis consequat in a ex.</li>
<li data-wb-fieldflow="ajax/ajax-5.html">(Set 5) <em>Sed eget dui ac <strong>nunc mattis</strong> consequat</em> in a ex.</li>
</ul>
</div>

Expand All @@ -110,7 +110,7 @@ <h3>Large checkboxes</h3>
&lt;li data-wb-fieldflow=&quot;ajax/ajax-2.html&quot;&gt;(Set 2) Vestibulum pretium tortor vel facilisis sodales.&lt;/li&gt;
&lt;li data-wb-fieldflow=&quot;ajax/ajax-3.html&quot;&gt;(Set 3) Nunc sit amet dui ut justo efficitur dapibus.&lt;/li&gt;
&lt;li data-wb-fieldflow=&quot;ajax/ajax-4.html&quot;&gt;(Set 4) Praesent at purus ut turpis sollicitudin aliquam.&lt;/li&gt;
&lt;li data-wb-fieldflow=&quot;ajax/ajax-5.html&quot;&gt;(Set 5) Sed eget dui ac nunc mattis consequat in a ex.&lt;/li&gt;
&lt;li data-wb-fieldflow=&quot;ajax/ajax-5.html&quot;&gt;(Set 5) &lt;em&gt;Sed eget dui ac &lt;strong&gt;nunc mattis&lt;/strong&gt; consequat&lt;/em&gt; in a ex.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</code></pre>

Expand All @@ -122,7 +122,7 @@ <h3>Large radio buttons</h3>
<li data-wb-fieldflow="ajax/ajax-2.html">(Set 2) Vestibulum pretium tortor vel facilisis sodales.</li>
<li data-wb-fieldflow="ajax/ajax-3.html">(Set 3) Nunc sit amet dui ut justo efficitur dapibus.</li>
<li data-wb-fieldflow="ajax/ajax-4.html">(Set 4) Praesent at purus ut turpis sollicitudin aliquam.</li>
<li data-wb-fieldflow="ajax/ajax-5.html">(Set 5) Sed eget dui ac nunc mattis consequat in a ex.</li>
<li data-wb-fieldflow="ajax/ajax-5.html">(Set 5) <em>Sed eget dui ac <strong>nunc mattis</strong> consequat</em> in a ex.</li>
</ul>
</div>

Expand All @@ -133,7 +133,7 @@ <h3>Large radio buttons</h3>
&lt;li data-wb-fieldflow=&quot;ajax/ajax-2.html&quot;&gt;(Set 2) Vestibulum pretium tortor vel facilisis sodales.&lt;/li&gt;
&lt;li data-wb-fieldflow=&quot;ajax/ajax-3.html&quot;&gt;(Set 3) Nunc sit amet dui ut justo efficitur dapibus.&lt;/li&gt;
&lt;li data-wb-fieldflow=&quot;ajax/ajax-4.html&quot;&gt;(Set 4) Praesent at purus ut turpis sollicitudin aliquam.&lt;/li&gt;
&lt;li data-wb-fieldflow=&quot;ajax/ajax-5.html&quot;&gt;(Set 5) Sed eget dui ac nunc mattis consequat in a ex.&lt;/li&gt;
&lt;li data-wb-fieldflow=&quot;ajax/ajax-5.html&quot;&gt;(Set 5) &lt;em&gt;Sed eget dui ac &lt;strong&gt;nunc mattis&lt;/strong&gt; consequat&lt;/em&gt; in a ex.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</code></pre>

Expand Down
10 changes: 5 additions & 5 deletions components/wb-fieldflow/alternative-fr.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
description: "Trouver des alternatives de styles pour le déroulement de champs."
tag: "fieldflow"
parentdir: "fieldflow"
dateModified: "2021-04-28"
dateModified: "2023-12-01"
---
<ul class="list-inline">
<li><a class="btn btn-primary" href="fieldflow-doc-fr.html">Documentation</a></li>
Expand Down Expand Up @@ -100,7 +100,7 @@ <h3>Grandes cases à cocher</h3>
<li data-wb-fieldflow="ajax/ajax-2.html">(Ensemble 2) Vestibulum pretium tortor vel facilisis sodales.</li>
<li data-wb-fieldflow="ajax/ajax-3.html">(Ensemble 3) Nunc sit amet dui ut justo efficitur dapibus.</li>
<li data-wb-fieldflow="ajax/ajax-4.html">(Ensemble 4) Praesent at purus ut turpis sollicitudin aliquam.</li>
<li data-wb-fieldflow="ajax/ajax-5.html">(Ensemble 5) Sed eget dui ac nunc mattis consequat in a ex.</li>
<li data-wb-fieldflow="ajax/ajax-5.html">(Ensemble 5) <em>Sed eget dui ac <strong>nunc mattis</strong> consequat</em> in a ex.</li>
</ul>
</div>

Expand All @@ -111,7 +111,7 @@ <h3>Grandes cases à cocher</h3>
&lt;li data-wb-fieldflow=&quot;ajax/ajax-2.html&quot;&gt;(Ensemble 2) Vestibulum pretium tortor vel facilisis sodales.&lt;/li&gt;
&lt;li data-wb-fieldflow=&quot;ajax/ajax-3.html&quot;&gt;(Ensemble 3) Nunc sit amet dui ut justo efficitur dapibus.&lt;/li&gt;
&lt;li data-wb-fieldflow=&quot;ajax/ajax-4.html&quot;&gt;(Ensemble 4) Praesent at purus ut turpis sollicitudin aliquam.&lt;/li&gt;
&lt;li data-wb-fieldflow=&quot;ajax/ajax-5.html&quot;&gt;(Ensemble 5) Sed eget dui ac nunc mattis consequat in a ex.&lt;/li&gt;
&lt;li data-wb-fieldflow=&quot;ajax/ajax-5.html&quot;&gt;(Ensemble 5) &lt;em&gt;Sed eget dui ac &lt;strong&gt;nunc mattis&lt;/strong&gt; consequat&lt;/em&gt; in a ex.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</code></pre>

Expand All @@ -123,7 +123,7 @@ <h3>Grands boutons radio</h3>
<li data-wb-fieldflow="ajax/ajax-2.html">(Ensemble 2) Vestibulum pretium tortor vel facilisis sodales.</li>
<li data-wb-fieldflow="ajax/ajax-3.html">(Ensemble 3) Nunc sit amet dui ut justo efficitur dapibus.</li>
<li data-wb-fieldflow="ajax/ajax-4.html">(Ensemble 4) Praesent at purus ut turpis sollicitudin aliquam.</li>
<li data-wb-fieldflow="ajax/ajax-5.html">(Ensemble 5) Sed eget dui ac nunc mattis consequat in a ex.</li>
<li data-wb-fieldflow="ajax/ajax-5.html">(Ensemble 5) <em>Sed eget dui ac <strong>nunc mattis</strong> consequat</em> in a ex.</li>
</ul>
</div>

Expand All @@ -134,7 +134,7 @@ <h3>Grands boutons radio</h3>
&lt;li data-wb-fieldflow=&quot;ajax/ajax-2.html&quot;&gt;(Ensemble 2) Vestibulum pretium tortor vel facilisis sodales.&lt;/li&gt;
&lt;li data-wb-fieldflow=&quot;ajax/ajax-3.html&quot;&gt;(Ensemble 3) Nunc sit amet dui ut justo efficitur dapibus.&lt;/li&gt;
&lt;li data-wb-fieldflow=&quot;ajax/ajax-4.html&quot;&gt;(Ensemble 4) Praesent at purus ut turpis sollicitudin aliquam.&lt;/li&gt;
&lt;li data-wb-fieldflow=&quot;ajax/ajax-5.html&quot;&gt;(Ensemble 5) Sed eget dui ac nunc mattis consequat in a ex.&lt;/li&gt;
&lt;li data-wb-fieldflow=&quot;ajax/ajax-5.html&quot;&gt;(Ensemble 5) &lt;em&gt;Sed eget dui ac &lt;strong&gt;nunc mattis&lt;/strong&gt; consequat&lt;/em&gt; in a ex.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</code></pre>

Expand Down
Loading

0 comments on commit 962229c

Please sign in to comment.