Project @ iMath: Issueshttps://project.math.uzh.ch/https://project.math.uzh.ch/favicon.ico?16668783892023-03-16T12:01:35ZProject @ iMath
Redmine QFQ - Feature #15812 (New): Upload: download button appears after uploading filehttps://project.math.uzh.ch/issues/158122023-03-16T12:01:35ZJan Haller
<p>Weiterentwicklung von <a class="issue tracker-1 status-1 priority-2 priority-default" title="Bug: Upload: download button not shown after pressing save (New)" href="https://project.math.uzh.ch/issues/15795">#15795</a>:<br />Nach dem Upload (Datei auswaehlen, noch kein Save gedrueckt) soll ein Downloadbutton erscheinen, um die Datei direkt wieder herunzerzuladen.</p>
<p><img src="https://project.math.uzh.ch/attachments/download/7532/clipboard-202303161301-3ezmi.png" alt="" /></p> QFQ - Bug #15050 (New): Farbe Textfeld grau bei Wechsel von readonly auf show https://project.math.uzh.ch/issues/150502022-11-18T15:05:39ZJan Haller
<p>Textfeld mit TypeAhead bleibt grau, wenn mit Dynamic Update von readonly auf show gewechselt wird. Ursache <input background-color:"transparent"> (siehe Screenshot).</p> QFQ - Bug #15047 (New): {{allRequiredGiven:V}} = 0, wenn Note Formelement auf required isthttps://project.math.uzh.ch/issues/150472022-11-18T10:11:34ZPascal Rössler
<p>Wenn ein Note Formelement auf mode=required hat, ist {{allRequiredGiven:V}} immer = 0. Da man ein Formelement vom Typ Note gar nicht ausfüllen kann.</p> QFQ - Bug #11195 (New): Dynamic Update: Note not updated if new text is empty (v20.4)https://project.math.uzh.ch/issues/111952020-09-25T09:14:05ZNicola Chiapolini
<p>We had a dynamic updated note-Element with value</p>
<p><code>#!report<br />10.sql = SELECT notes FROM rooms WHERE building = '{{building:FSRD:alnumx}}' AND room = '{{room:FSRD:alnumx}}'<br />10.twig = {{ result.0.notes }}<br /></code></p>
<p>The note-Element is not updated, if the notes is empty or the query does not return a row.<br />The following code works:</p>
<p><code>#!report<br />10.sql = SELECT notes, RAND() AS dummy FROM rooms WHERE building = '{{building:FSRD:alnumx}}' AND room = '{{room:FSRD:alnumx}}'<br />10.twig = <span>{{ result.0.notes }}</span><br /></code></p>
<p>(Since we only update via T3 Extension store, we are still running 20.4 so this might be fixed by now.)</p> QFQ - Feature #10014 (New): Manual.rst: describe behaviour and process order of fillStoreVar, sla...https://project.math.uzh.ch/issues/100142020-02-01T21:27:54ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Die Parameter muessen klarer beschrieben werden. Insbesondere auch die zeitliche Abhaengigkeit.</p>
<p>fillStoreVar auf Form Ebene ist nicht klar, das es fuer FE genutzt werden kann.</p>
<p>Unteschiedliches Verhalten von FE Native, TemplateGroup, Upload und ggfs. doppeltes feuern beschreiben.</p>
<p>Verstaendnisfrage von NC: Wird sqlBefore vor dem eigentlichen SendMail ausgefuehrt? A: Nein. Der Begriff 'sqlBefore/After' wird nicht verstanden das er sich auf sqlInsert/sqlUpdate bezieht.</p>
<p>Es sollten andere Begriffe gefunden werden.</p> QFQ - Feature #9983 (New): Report Notation: new keyword 'range'https://project.math.uzh.ch/issues/99832020-01-28T10:14:16ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Mitunter moechte man ueber records iterieren. Das ist nervig in SQL zu implementieren.</p>
<p>Vorschlag:</p>
<p>10.range = 1:10</p>
<p>Das 'range' Keyword ist exklusiv oder zu 'sql'.<br />Beides gleichzeitig ist nicht erlaubt.</p>
<p>Es wird ein Resultset mit der Spalten 'counter' erzeugt.</p> QFQ - Bug #9855 (New): Required Checkhttps://project.math.uzh.ch/issues/98552020-01-09T10:28:50ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Bitte fuer alle Input Typen (inkl. 'File'), ueberpruefen das ein Form Save unmoeglich ist (resp. markiert wird), wenn required aktiv ist, das Feld aber leer ist.</p>
<p>Das Attribute 'acceptZeroAsRequired' auch testen.</p>
<p>Bei 'fe.mode=<via dynamic update veraendert>' bitte alle Varianten testen (n=normal, r=required, FL=Form Load, FDU=Form Dynamic Update):<br /><pre>
FL FDU
--------
n n
n r
r n
r r
</pre></p> QFQ - Feature #9853 (New): Check das SQL / QFQ / Mail Logfile geschrieben wirdhttps://project.math.uzh.ch/issues/98532020-01-09T10:15:45ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Feature #9777 (New): Logging QFQ Variableshttps://project.math.uzh.ch/issues/97772019-12-16T16:17:48ZMarc Egger
<p>We need the ability to see how a variable is replaced and also which variables exist at a certain point in time in a specific store.</p>
<p>Solutions:</p>
<ul>
<li>Introduce the '?' syntax:
<ul>
<li>{{? someVariable:VR0}}, {{? SELECT ... }}, {{?! SELECT ... }}, ...</li>
<li>the parser will replace the variable as usual and write the result to qfq.log</li>
<li>{{? * :V}} will output all the V-store variables</li>
</ul>
</li>
<li>Introduce '?' as a variable:
<ul>
<li>{{ ? : VR }}</li>
<li>All variables in stores V and R will be written to qfq.log</li>
</ul></li>
</ul>
<p>Marc preferes the first variant, since it is more powerfull.</p> QFQ - Bug #9773 (New): form.parameter.formModeGlobal=requiredOffhttps://project.math.uzh.ch/issues/97732019-12-16T13:37:31ZMarc Egger
<p>When form parameter formModeGlobal is set to requiredOff then the required fields should not be marked orange, if they are not filled out. But they are marked orange.</p> QFQ - Feature #9602 (New): Form definition as JSONhttps://project.math.uzh.ch/issues/96022019-11-20T09:22:08ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Nach Diskussion mit BB, ME: Die Formdefintion soll neu als JSON Datei abgelegt werden.</p>
<ul>
<li>Mergen von Forms (mehrere Entwickler) sollte moeglich werden.</li>
<li>Copy/Paste von Forms oder FormElementen via Zwischenablage.</li>
<li>Die Forms werden weiterhin im FormEditor bearbeitet.</li>
<li>Alle Form JSON Dateien werden in einem Verzeichnis abgelegt.</li>
</ul> QFQ - Feature #7920 (New): FE: Syntax Highlight, Zeinlenumbruchhttps://project.math.uzh.ch/issues/79202019-02-20T15:48:33ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Im FormEditor ist es sehr muehsam ohne Syntax Highlight und ohne Zeilenumbruch (SQl Query auf mehrere Zeilen verteilen) arbeiten zu muessen.</p> QFQ - Feature #7812 (New): FE 'Subrecord' - new option 'subrecordShowFilter', 'subrecordPaging'https://project.math.uzh.ch/issues/78122019-02-05T10:58:00ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Wird die Option angezeigt wird automatisch der tablesorter Filter angezeigt.</li>
<li>Alternativ kann eine Zahl angegeben werden. Sobald die Anzahl der Records >=der Zahl ist, wird der Filter eingeblendet.</li>
<li>Eine Option 'subrecordPaging'</li>
</ul> QFQ - Bug #7795 (New): Readonly Form: Typeahead-Felderhttps://project.math.uzh.ch/issues/77952019-01-31T15:12:58ZElias Villiger
<p>Ein FormElement, das ein typeAheadSql definiert hat, zeigt weiterhin ein Dropdown-Menu an, auch wenn es auf Readonly gesetzt ist.</p>
<p>Bearbeitet werden kann das Input-Element aber nicht.</p> QFQ - Feature #7683 (New): Special column names in '{{ SELECT ... AS _link }}' should be detectedhttps://project.math.uzh.ch/issues/76832019-01-19T13:51:40ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Aktuell ist es nur moeglich '{{ ... AS _link}}' zu schreiben. Gut waeren auch alle anderen Links.</li>
<li>Liefert das Select mehr als ein Record und hat Special Columnnames, sollten diese alle einzeln gerendert werden - damit koennte man im Titel eines Forms mehrere Buttons erzeugen, z.B. beim IK Tool Links auf beliebig viele alte Antraege.</li>
</ul> QFQ - Feature #7681 (New): Optional switch off 'check for modified record'https://project.math.uzh.ch/issues/76812019-01-19T09:41:20ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Aktuell wird in Form bei 'aquireLock' geprueft ob sich der Record zwischen FormLoad und FirstChange veraendert hat.</p>
<p>Es waere gut wenn man den Check pro Form abschalten koennte, besser noch wenn man die Spalten definieren koennte, die zu einem Check herangezogen werden.</p>
<p>checkModified=off|*|id,name,modified,...</p>
<p>Grund: es koennte die Situation geben das eine Spalte veraendert wurde, dies aber keinen Einfluss auf das Formular hat. Dann waere es unguenstig wenn es keine Moeglichkeit gaebe den Check abzuschalten.</p> QFQ - Bug #7574 (New): Substitute error: form element not reported / dont parse Form.notehttps://project.math.uzh.ch/issues/75742019-01-02T20:29:00ZCarsten Rosecarsten.rose@math.uzh.ch
<p>In einem Formelement im Feld 'note' war eingegeben</p>
<p>'{{formModeGlobal::SE}}'='','close','no') }}</p>
<p>Das fuehrte zu dem Fehlern 'uknown check mode' (es war ein Doppelpunkt zu viel).</p>
<ul>
<li>Es sollte die Spalte (in dem Fall 'note') und das Formularelement ausgegeben werden.</li>
<li>Das Feld 'note' sollte nicht geparst werden - es hat keine Funktion.</li>
</ul> QFQ - Feature #7521 (New): TemplateGroup: fe.type=uploadhttps://project.math.uzh.ch/issues/75212018-12-20T16:45:56ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Aktuell werden in TemplateGroups keine File Upload Felder unterstuetzt.</p>
<p>Das sollte implementiert werden oder zumindest verhindert werden das man das im FormEditor konfiguieren kann.</p> QFQ - Bug #7512 (New): FE: inputType=number >> 'pattern' is not respectedhttps://project.math.uzh.ch/issues/75122018-12-19T14:07:02ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Bei einem Input Feld (column.typ=int) wird scheinbar kein Pattern ausgeliefert. Zumindest beschwert sich der Browser nicht bei Falscheingabe.</p>
<p>Wird im FE gesetzt 'inputType=text', klappt es.</p>
<p>Auch fuer 'numerische' eingaben kann ein Pattern sinnvoll sein. Z.B. bei Jahreszahlen die genau 4 Stellen haben sollen: [\d]{4}</p> QFQ - Bug #7456 (Some day maybe): Todos in Code: solve or make tickethttps://project.math.uzh.ch/issues/74562018-12-11T09:23:08ZMarc EggerQFQ - Feature #7342 (New): add content = hide_thishttps://project.math.uzh.ch/issues/73422018-11-23T10:19:19ZNicola Chiapolini
<p>When using a super-/subquery combination as an if-then construct, I want to hide the content of the super-query but show the result of sub-queries. At the moment this is not possible with the <code>content</code>-keyword. It would be nice to have the option to not hide the subqueries.</p>
<p>Personlly I would think it most logical to make this the default for <code>hide</code> and use e.g. <code>hide_all</code> to include subqueries. For backwards compatibility however, the new behaviour should probably get the new keyword. I suggest something like <code>hide_this</code></p> QFQ - Feature #7280 (New): recently used tablehttps://project.math.uzh.ch/issues/72802018-11-18T08:55:10ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Neue Tabelle 'RecentlyUsed'</li>
<li>Wird bei formLoad (!) automatisch gefuellt.</li>
<li>Columns
<ul>
<li>feUser, (cookie falls kein feUser eingeloggt)</li>
<li>form</li>
<li>table</li>
<li>recordId</li>
<li>misc (z.B. 'switchUser')</li>
</ul></li>
</ul> QFQ - Bug #7219 (New): typeSheadSql / typeAheadSqlPrefetch: change to curly braceshttps://project.math.uzh.ch/issues/72192018-11-09T07:10:27ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Scheinbar werden 'typeSheadSql' / 'typeAheadSqlPrefetch' ohne Curly Braces definiert. Das ist inkonsequent.</p>
<ul>
<li>Anpassen das alt und neu funktioniert</li>
<li>Doku</li>
</ul> QFQ - Feature #7175 (New): Upload: md5 hash as filenamehttps://project.math.uzh.ch/issues/71752018-11-05T16:59:00ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Fuer w3/my wird eine Funktion benoetigt, das ein Student nicht ausversehen zweimal die gleiche Datei hochlaedt.</li>
<li>Theoretisch koennte es auch moeglich, das Dateien mit unterschiedlichem Dateinamen identisch sind.</li>
<li>Eine Loesung waere ueber den Dateiinhalt einen MD5 Hash zu erzeugen und die Datei dann mit dem hash als Namen zu speichern (fileReplace=no).</li>
<li>Vorschlag:
<ul>
<li>Neue Option im Upload FE: `fileNameMD5= filename+TimeStamp | content`</li>
</ul></li>
</ul>
<ul>
<li>Netter Nebeneffekt: aus dem Dateinamen kann nicht erkannt werden worum es im Inhalt geht.</li>
<li>Es muesste eine neue STORE_VARS variable definiert werden: 'md5'</li>
<li>In fe.paramter.fileDestination = fileadmin/uploads/{{md5:V}}</li>
</ul> QFQ - Feature #7119 (New): Upload: scaleDownWidth, scaleDownHeighthttps://project.math.uzh.ch/issues/71192018-10-28T09:51:51ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Bei Pixel Bildern die hochgeladen werden, waere es gut wenn man eine maximale Breite/Hoehe angeben kann.</p> QFQ - Feature #7109 (New): Dynamic Updates: row/element hidehttps://project.math.uzh.ch/issues/71092018-10-27T10:04:10ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Erkennung ob ein oder mehrere Elemente per ROW anhand og im FE 'row' und '/row' aktiv sind.</li>
<li>FE.parameter 'modeHide' kontrolliert ob nur das element ausgeblendet werden soll, oder die ganze row.
<ul>
<li>modeHide=row|element
<ul>
<li>default bei row mit einem element: row</li>
<li>default bei row mit mehreren elemente: element</li>
</ul></li>
</ul></li>
</ul>
<ul>
<li>row, ein element
<ul>
<li>ganze zeile kann ein/ausgeblendet werden.</li>
</ul></li>
</ul>
<ul>
<li>row, mehrere elemente
<ul>
<li>einzelne elemente koennen ein/ausgblendet werden (by default bleibt die ganze row sichtbar)</li>
<li>das erste element der row bestimmt die htmlId der ganzen row</li>
<li>falls beim ersten element ein flag gesetzt ist: bestimmt dieses element ob die ganze row ein/ausgeblendet werden soll.</li>
</ul></li>
</ul>
<ul>
<li>Es ist wichtig, das elemente, die ein und ausgeblendet werden sollen, durch QFQ in col-md gewrapped werden. Das impliziert das nicht mehrere FE einer col-md gruppe ein/ausgeblendet werden koennen.</li>
</ul> QFQ - Feature #7102 (New): Comment sign in report: '#' and '--'https://project.math.uzh.ch/issues/71022018-10-27T08:55:24ZCarsten Rosecarsten.rose@math.uzh.ch
<p><a class="external" href="https://www.w3schools.com/Sql/sql_comments.asp">https://www.w3schools.com/Sql/sql_comments.asp</a></p>
<ul>
<li>Laut SQL Spec kann '--' am Zeilenanfang, aber auch mitten in der Zeile stehen.</li>
<li>Wenn es im SQL Statement steht, wird SQL das haendeln und alles richtig machen</li>
<li>Steht es am Zeilenanfang, sollte QFQ den Rest gar nicht parsen.</li>
<li>Atom unterstuetzt mit Ctl-/ das auskommentieren via '--' am Zeilenanfang</li>
<li>'/*' ist fuer den QFQ Parser schwer umzusetzen - es SQL daher ueberlassen. In QFQ Doku darauf eingehen.</li>
</ul> QFQ - Bug #7002 (New): Dynamic Update: row does not disappear / appearhttps://project.math.uzh.ch/issues/70022018-10-14T18:03:58ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Via dynamicUpdate scheint das aus/einblenden von Rows in Formularen nicht mehr zu funktionieren, wenn die Startbedingung 'hidden' ist.</p>
<p>Mit Startbedingung 'show' wird zwar das Input Element aus/eingeblendet, aber das Label bleibt stehen.</p>
<p>Beobachtet im IK-Tool bei der Zuweisung von Rollen zu einer Person.</p> QFQ - Bug #6912 (New): error Message Var 'deadline' already set in SIP - in Form with FE.value={...https://project.math.uzh.ch/issues/69122018-10-06T08:30:43ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>IK Tool, Form 'application'</li>
<li>FE.name=deadline, column=value: {{deadline:R:::{{deadlinePeriod:Y}}}}</li>
<li>Es sollte die deadline gesetzt werden, abhaengig davon ob der Record schon existiert oder nicht.</li>
<li>Es kam eine Meldung: SIP Value 'deadline' already set - keine Erklaerung wie das sein kann.</li>
</ul> QFQ - Feature #6855 (New): With {{feUser:U}}!={{feUser:T}}: Save / Delete: only possible with {{...https://project.math.uzh.ch/issues/68552018-09-27T20:55:38ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Sollte {{feUser:U}}!='' UND {{feUser:U}}!={{feUser:T}} sein:</p>
<p>- Dann darf speichern nur moeglich sein wenn {{feUserSave:U}}='yes' gesetzt ist.<br />- Dann darf loeschen nur moeglich sein wenn {{feUserDelete:U}}='yes' gesetzt ist.</p>
<p>Hintergrund: damit kann einfach sichergestellt werden das man Dozenten, die die Identiaet eines Users uebernehmen, keine Daten veraendern koennen.</p>
<p>Das Form sollte dann einen disabled 'save', 'delete' Button haben, mit einem Hinweis warum das nicht geht.</p> QFQ - Feature #6765 (New): Moeglichkeit via QFQ eigene Logs zu schreibenhttps://project.math.uzh.ch/issues/67652018-09-19T20:08:48ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Es waere gut fuer das IK Tool ein zentrales Logfile zu haben wer wann was angestossen hat.</li>
<li>Das Logfile sollte via Browser einsehbar sein.</li>
<li>Evtl. ist es auch eine LOG Tabelle. ggfs. Wird die MailLog & JSON FormSubmit Log Tabelle aufgeloest.</li>
</ul> QFQ - Bug #6677 (New): Error message FE Action Element: no/wrong FE reference who cause the problem.https://project.math.uzh.ch/issues/66772018-09-12T21:15:27ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Falls in einem FE Action Element 'beforeSave' (vermutlich alle Action Elemente) ein Fehler in einer SQL Query auftritt, wird kein oder ein falsches FE Element als Verursacher angegeben.</p> QFQ - Feature #6609 (New): Formlet: JSON API erweiternhttps://project.math.uzh.ch/issues/66092018-09-04T08:28:51ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Im QFQ 'PROTOCOL.md' ist ein Standard QFQ API mit einigen wenigen Feldern definiert.</p>
<p>Gut waere wenn die folgenden supported waeren:</p>
<p>"status": "success"|"error",<br />"message": "<message>" <br />"redirect": "no" | "url" | "url-skip-history" | "auto" | "close" <br />"redirect-url": "<url>"</p>
<p>Die waeren dann also auf der gleichen (obersten) Ebene wie 'elements'.</p> QFQ - Feature #6594 (New): Excel: on download, check if there is a valid siphttps://project.math.uzh.ch/issues/65942018-08-31T21:55:24ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Um sich vor unerlaubten Zugriff zu schuetzen, kann bei 'XLS?' output getestet werden (qfq content record, special column name), ob der Aufruf via einer SIP erfolgt ist (downloads sind immer via sip encrypted):</p>
<ul>
<li>Sollte die SIP nicht existieren, bricht QFQ ab.</li>
<li>Zum debuggen wird eine Excel export Seite auch direkt aufgerufen. In dem Fall ist womoeglich keine SIP in der URL. Aber dann gibt es einen BE User > die BE existenz autorisiert den Aufruf.</li>
<li>Optional: Die Erlaubnis zum Zugriff sollte nur fuer die erste _XLS? Spalte getestet werden.</li>
</ul>
<ul>
<li>Option: es gibt es ein Flag auf dem QFQ, der den Check ausschaltet: downloadCheckSipExist=0</li>
</ul> QFQ - Bug #6462 (New): File Upload: Nutzlose Fehlermeldung wenn Datei zu grosshttps://project.math.uzh.ch/issues/64622018-07-27T14:55:58ZNicola Chiapolini
<p>Ich habe eben <a class="issue tracker-1 status-5 priority-2 priority-default closed" title="Bug: File Upload: keine Fehlermeldung wenn Datei zu gross (Closed)" href="https://project.math.uzh.ch/issues/6139">#6139</a> mit 18.6.1 getestet. Ich bekomme nun zwar eine Fehlermeldung, die ist aber nicht sehr informativ:</p>
<pre>
2018.07.27 16:53:23 +0200, Reference: 5b5b31e3f0447
SIP invalid:
</pre> QFQ - Feature #6437 (New): Neuer Mode Button bei FormElementenhttps://project.math.uzh.ch/issues/64372018-07-17T13:47:38ZStefan Willi
<p>Es ist verwirrend, wenn man einer der 4 Mode (show, required, readonly, hidden) anwählt und trotzdem bei 'Mode sql' etwas eingibt, dass die Funktionalität der Buttons nicht mehr wirkt.</p>
<p>Kann man nicht ein 5. Button ('custom' oder sowas in der Art) erstellen und das Mode sql Feld als dynamic update nur dann anzeigen, falls man bei 'Mode' custom anwählt?</p> QFQ - Feature #6292 (New): Download: File speichern mit Hash aber original Filename in der Datenb...https://project.math.uzh.ch/issues/62922018-06-22T11:01:47ZBenjamin Baerbenjamin.baer@math.uzh.ch
<p>Die Idee:</p>
<ul>
<li>Datei wird hochgeladen</li>
<li>QFQ speichert die Datei unter md5 hash in einem Ordner (auch ohne Datei Endungen)</li>
<li>QFQ schreibt im Datensatz der auf das file verlinkt auch den original Filenamen rein</li>
<li>Bei korrektem Download ueber die Download API wird der richtige filename aus der Datenbank zurueck geliefert</li>
</ul>
<p>Probleme mit den leserlichen Filenamen ist das diese meist Informationen ueber den Inhalt liefern (bsp: Arztzeugnis_Max_Muster.pdf).</p>
<p>Dies ist natuerlich nur sinnvoll fuer Dateien die sicher gespeichert werden muessen, nicht zB. den Flyer oder ein Bild das direkt auf die Homepage kommt.</p> QFQ - Feature #6289 (New): Form: Loghttps://project.math.uzh.ch/issues/62892018-06-20T21:54:37ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Ziel: der Developer bekommt ein detailliertes Log angezeigt, mit den Deatils was in einem Form alles passiert.</li>
<li>Das Log wird in eine Datei geschrieben.</li>
<li>Ist eine Person im BE eingeloggt, erscheint auf dem Form ein neuer Button, um das Log zu anzuzeigen. </li>
<li>Die Anzeige aktiviert das Log.</li>
<li>Ein Log bleibt max. 30 Minuten aktiv, danach muss es erneut gestartet werden.</li>
<li>Bei jedem Neustart eines Logs, wird das alte Log ueberschrieben.</li>
<li>Ein Form befindet sich im Debug mode, wenn eine Logdatei existiert und juenger als 30 mins ist.</li>
<li>Pro Form gibt es ein:
<ul>
<li>Log all user: <t3>/tmp/form.<formname>.log</li>
<li>Log current user: <t3>/tmp/form.<formname>.<beuser>.log</li>
<li>mit dem 'all user'-Log kann ein Developer einen non-Developer debuggen.</li>
</ul></li>
</ul>
<ul>
<li>Das Log wird via 'monitor' angezeigt.</li>
<li>Evtl. via dem Record, der auch den FormEditor anzeigt. Page 'form'</li>
<li>Aufruf:
<ul>
<li>form=formname&_formLog=logSession</li>
<li>form=formname&_formLog=logAll</li>
</ul></li>
</ul> QFQ - Feature #5782 (New): NextCloud APIhttps://project.math.uzh.ch/issues/57822018-04-05T14:31:41ZCarsten Rosecarsten.rose@math.uzh.ch
Via QFQ koennen
<ul>
<li>Verzeichnisse und Dateien erzeugt werden, in einem Order der via Nextcloud / Owncloud synchronisiert wird.</li>
<li>Koennen Shares verwaltet werden.</li>
<li>Koennen Aenderungen an Files/Verzeichnissen erkannt werden und eine Reaktion in der Db ausloesen.</li>
</ul>
Beispiel:
<ul>
<li>Via QFQ wird ein neues Nextcloud Verzeichnis angelegt.</li>
<li>In QFQ sind Personen hinterlegt. Diese Personen bekommen eine Freigabe (API). Die Personen werden via API informiert.</li>
<li>Ein QFQ Upload Dialog speichert eine Datei direkt in einem Nextcloud Verzeichnis/Share - dadurch erhalten alle User des Shares direkt Zugriff auf die Datei.</li>
<li>Ein User speichert ein File in einem Share - QFQ erkennt die Aenderung und koennte z.B. einen Import starten.</li>
</ul> QFQ - Bug #5576 (New): Using MySQL 'DROP' requires privilege - wich is not really necessary.https://project.math.uzh.ch/issues/55762018-02-28T17:40:58ZNicola Chiapolini
<p>Auf unserer neuen Installation hat das Anlegen der System-Tabellen (wieder) nicht geklappt. Dieses Mal habe ich das Problem identifiziert.</p>
<p>Die Datei <code>qfq/sql/formEditor.sql</code> enthält ein nicht auskommentierten DROP-Befehl. Entweder muss der auskommentiert werden (patch im Anhang) oder dann muss in der Doku DROP als nötiges Recht für den QFQ-DB-User erwähnt werden.</p> QFQ - Feature #5131 (New): Activate Spin Gear ('wait/busy' indicator) via LINK attributehttps://project.math.uzh.ch/issues/51312017-12-16T20:41:30ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Pages die z.B. Mails mit Attachments versenden benoetigen teilweise etliche Sekunden.</p>
<p>Es waere gut wenn man in der Zeit das 'spinning gear' wie beim 'download' Link anzeigen koennte.</p> QFQ - Bug #4756 (New): Form dirty even nothing changeshttps://project.math.uzh.ch/issues/47562017-10-13T15:09:33ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Bei GRC und anderen Seiten, faellt auf das ein Form als 'dirty' markiert wird (beim verlassen des Forms ohne zu speichern wird nachgefragt ob man speichern moechte) obwohl nichts veraendert wurde. 'Einfache' Formulare sind ok.</li>
</ul>
<p>Evtl. hat es etwas mit Typeahead zu tun.</p>
<ul>
<li>Das gleiche passiert beim IK Tool 'Applciation' wenn man es im 'Read Only' Mode aufruft (im Archiv).</li>
</ul> QFQ - Feature #4250 (New): AutoCron in QFQ via PHPhttps://project.math.uzh.ch/issues/42502017-08-17T20:23:25ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Die AutoCron Features in PHP implementieren, ohne das eine T3 Seite benoetigt wird.</p>
Verbesserungen:
<ul>
<li>Massiv einfacheres Setup.</li>
<li>Evtl. koennte das PHP Skript durch Typo3 Cron aufgerufen werden - dann entfaellt sogar System Console Eintrag.</li>
<li>Aus dem PHP Skript koennen auch Mails versendet werden (kein dediziertes Skript noetig) - damit koennen einfach grId und xId gesetzt werden.</li>
<li>DB Credentials sind in PHP bekannt (zentrale Konfiguration).</li>
</ul>
Neu:
<ul>
<li>AutoCron Formular wird by default mit ausgeliefert.</li>
<li>In T3 Doku ist ein Beispiel QFQ Report fuer CrontEdit aufgefuehrt.</li>
<li>Es gibt Cron.grIdTyp, die im Beispiel aber nicht benutzt wird um Croneintraege zu klassifizieren.</li>
</ul> QFQ - Feature #4082 (New): Dynamic Update: modeSql - useful defaulthttps://project.math.uzh.ch/issues/40822017-07-08T09:40:12ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Liefert die 'modeSql' keinen Record (z.B. bei r=0) wird das FE immer angezeigt. Gut waere wenn in so einem Fall des statische Setting (show, hidden ,... ) verwendet wird.
<ul>
<li>Verhalten im Manual beschreiben.</li>
</ul>
</li>
<li>Status Quo: FE mit 'hidden' werden nicht im Client gerendert - die koennen anschliessend nicht eingeschaltet werden. Loesungsvorschlag: falls ein modeSql angegeben, das Element trotzdem rendern.</li>
</ul> QFQ - Feature #4023 (New): prepared statements - FE action: salveId, sqlInsert, sqlUpdate, sqlDel...https://project.math.uzh.ch/issues/40232017-07-02T14:01:33ZCarsten Rosecarsten.rose@math.uzh.ch
<p>For every sql query, add a new element 'Arg'. Eg.:</p>
<pre>
slaveId = {{SELECT id FROM Person WHERE id=?}}
slaveIdArg = {{id}}
sqlInsert = {{INSERT INTO Person (name, firstName) VALUES (?,?)}}
sqlInsertArg = {{name:F:allbut}}, {{firstName:F:allbut}}
</pre>
* The ...Arg definition should not be fired directly. Instead search for all (non wrapped) ',' , split, replace every by it's onw, build array with the values, fire the prepared statement. QFQ - Feature #3567 (Some day maybe): 'Save', 'Close', 'New' als FormElementhttps://project.math.uzh.ch/issues/35672017-04-13T10:47:15ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Bug #3547 (New): FE of type 'note' causes writing of empty fields.https://project.math.uzh.ch/issues/35472017-04-10T22:14:04ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Beim save eines Records werden alle FormElemente vom Typ "note" auf leer gesetzt. Das hiess in dem Fall, dass der Name, Geschlecht, Titel der Personen gelöscht wurden, sobald versucht wurde, die Form zu speichern.</p> QFQ - Feature #3537 (Some day maybe): SHOW COLUMNS FROM tableName - Extend '{{!...' definitionhttps://project.math.uzh.ch/issues/35372017-04-09T08:09:34ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Ziel war urspruenglich ein TypeAhead fuer Spaltennamen im Form 'FormElement' zu implementieren.<br />Bei der folgenden Beschreibung ist nicht klar ob sich der Aufwand lohnt das zu implementieren:</p>
<pre>
{{!'%s',1,'id'|'%s %s %s',1,2,3,'value'|SHOW COLUMNS FROM {{SELECT f.tableName FROM Form AS f WHERE f.id={{formId:S0}} LIMIT 1}} }}
</pre><br />Erklaerung:
* Kommt nach dem '{{!' kein SQL Schluesselwort, wird der String nach '|' explodiert.
* Ab dem ersten Einzelelement welches mit einem SQL Schluesselwort beginnt, werden alle folgende Einzelelemente wieder zu einem Element zusammengesetzt.
* Die vorderen Einzelelemente sind printf() Anweisungen, mit der Ergaenzung das falls der letzte Parameter (z.B. 'id') in Ticks steht, dies der neue Spaltenname ist.
* Die Nummern nach dem Formatstring sind die Spaltenindizes des Resultsets. QFQ - Feature #3504 (New): Logging: welche Action FEs werden wann wie ausgefuehrthttps://project.math.uzh.ch/issues/35042017-04-04T08:36:30ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Es waere gut wenn es Logfile geben wuerde in dem notiert wird welche Action FE ausgefuehrt wird und wie. Aktuell gibt es das Problem das wenn bei templatgroups die maxlength nicht gesetzt ist, die Elemente zwar korrekt angezeigt werden, beim speichern aber kein postprocessing erfolgt. das ist fuer einen entwickler, der keine debugging moeglichkeit hat, kaum nachzuvollziehen.</p>
Idee:
<ul>
<li>Ein Form kann in einen Debug Log Modus versetzt werden, in dem auf dem Form der neue 'debug' button geklickt wird. Nur BE User sehen diesen Button.</li>
<li>Dies oeffnet die Seite 'debug' mit einer 'monitor' Spalte, um das Logfile konstant anzuzeigen.</li>
<li>Alle Requests in der aktuellen Session auf diesem From werden gelogged.</li>
<li>In der php session wird vermerkt, das fuer dieses Form das Logging aktiviert ist.</li>
<li>Wird ein Form ge'debug'ed, und existieren Files fuer diese Form, und sind die 'last modified' timestamps der Datei aelter als 4h, werden die alten Dateien geloescht.</li>
<li>Wird die PHP Session beendet, verfaellt das debug Flag.</li>
<li>Name der Logdatei: fileadmin/protected/log/<formname>+<uniq timestamp>.log. Der Name sollte damit ausreichend eindeutig sein, das sich mehrere user/debug session nicht in den Weg kommen.</li>
</ul> QFQ - Feature #3273 (Some day maybe): Dirty Flag in Formhttps://project.math.uzh.ch/issues/32732017-03-04T13:30:44ZElias Villiger
<p>Gewünscht ist die Möglichkeit, innerhalb eines FormElements abzufragen, ob der aktuelle Record Änderungen enthält, die noch nicht gespeichert wurden. Das entsprechende dirty flag muss natürlich dynamic update tauglich sein.</p>
<p>Gebraucht für HMS:</p>
<blockquote>
<p>Der "Submit" button einer application sollte nur dann aktiv sein, wenn der Record gespeichert wurde. Andernfalls wird eine Notiz angezeigt, dass der Record zuerst gespeichert werden muss.</p>
</blockquote>