Project

General

Profile

Feature #17972

Updated by Carsten Rose 4 months ago

* 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 

 <pre> 
 <form class="qfq-form"> 
  ... 
 </form> 
 <script> 
 [insert here] 
 </script> 
 </pre> 


 Beispiel script im form: 
 <pre> 
 // document.querySelectorAll("{{&name%d:V}}") document.querySelectorAll("{{ref:name%d}}") # no jquery 
 if($("{{&name%d}}").value if($("{{ref:name%d}}").value === "{{SELECT name FROM person WHERE vorname = "Benjamin"}}") { 
     $("{{&matrikelnr}}").hide() $("{{ref:matrikelnr}}").hide() 
 } 
 </pre> 

 Beispiel Ausgabe: ausgabe: 
 <pre> 
 // document.querySelectorAll("[data-reference='name%d']") # no jquery 
 if($("[data-reference='name%d']").value === "Baer") { 
     $("[data-reference='matrikelnr']").hide() 
 } 
 </pre> 

 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. 
 * Bei der Suche nach dem

Back