Actions
Feature #17972
openJavascript in Forms for Dynamic Update (among others)
Start date:
22.02.2024
Due date:
% Done:
0%
Estimated time:
Discuss:
Prio Planung:
No
Vote:
Description
- New textfield in form for javascript per formelement
- QFQ Variables inside the javascript get replaced (ex: {{id:R0}} = 25, {{SELECT name FROM person WHERE vorname = "Benjamin"}} = Baer)
- New variables for references to make dynamic update possible. Bsp: Form Element: name%d, im Javascript block ref returns a css selector: {{ref:name}} = [data-reference="name%d"]
- All Javascript text get added after the form
<form class="qfq-form"> ... </form> <script> [insert here] </script>
Beispiel script im form:
// document.querySelectorAll("{{&name%d:V}}") # no jquery if($("{{&name%d}}").value === "{{SELECT name FROM person WHERE vorname = "Benjamin"}}") { $("{{&matrikelnr}}").hide() }
Beispiel Ausgabe:
// document.querySelectorAll("[data-reference='name%d']") # no jquery if($("[data-reference='name%d']").value === "Baer") { $("[data-reference='matrikelnr']").hide() }
Anmerkung:
- Fuer die Referenzvariable war urspruenglich
{{ref:<name>}}
vereinbart und nichts gesagt zum Store. - Das Zeichen ':' hinter 'ref' kollidiert mit dem Delimiter fuer Store, Escape, Action ... - nicht gut.
- Neu: Anstelle von
{{ref:...
wird vorgeschlagen (und ist implementiert){{&<name>:V}}
- Das '&' ist in C als Adressoperator bekannt - das passt hier ziemlich gut.
- Der STORE_VAR wurde gewaehlt weil bereits andere System Angaben wie RANDOM, MIMETYPE usw. enthaelt. Der STORE_FORM ist mehr fuer Content gedacht, der STORE_RECORD passt hier gar nicht.
- Mit dem '&' am Anfang sollten Kollisionen sehr unwahrscheinlich sein.
Actions