Project @ iMath: Issueshttps://project.math.uzh.ch/https://project.math.uzh.ch/favicon.ico?16668783892024-02-27T15:36:32ZProject @ iMath
Redmine QFQ - Feature #18013 (New): Tablesorter: column view selectorhttps://project.math.uzh.ch/issues/180132024-02-27T15:36:32ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Der tablesorter merkt sich die Suchbegriffe und ausgewaehlten Spalten</li>
<li>Wird in einer Spalte A ein Suchbegriff eingegeben und diese Spalte ausgeblendet, wird anschliessend immer noch das gefilterte Ergebnis angezeigt.</li>
</ul>
<p>Das ist verwirrend!!!</p>
<p><img src="https://project.math.uzh.ch/attachments/download/9352/clipboard-202402271633-qfxra.png" alt="" /></p> QFQ - Feature #17858 (New): Check if QFQ is compatible with Typo3 V12https://project.math.uzh.ch/issues/178582024-02-11T18:35:34ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Wenn wir von isg_ldap_sso weg kommen (wird ersetzt durch oidc) gibt es keinen Grund mehr V12 noch nicht anzuschauen.</li>
<li>MNF ist noch auf V9 - Migration koennte ggfs. direkt auf V12 erfolgen.</li>
</ul> QFQ - Feature #17812 (New): Switch User: Neu/Alternativ auch mit FE Group Anpassunghttps://project.math.uzh.ch/issues/178122024-02-03T16:17:40ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Feature #17616 (New): Automate QFQ Build Prozesshttps://project.math.uzh.ch/issues/176162024-01-16T11:23:53ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Aktuell ist es extrem muehsam eine neue QFQ Version zu bauen.</li>
<li>Es waere sehr erstrebenswert neuen QFQ Versionen auf Knopfdruck erzeugen zu koennen.</li>
</ul>
<p>Ideen:</p>
<ul>
<li>Mit jedem Merge eines Branches in Develop wird ein Eintrag in die Releasenotes gemacht.
<ul>
<li>Im Merge Request steht die Ticketnummer.</li>
<li>Daraus kann das Subject fuer die `Releasenotes.nextversion` genommen werden.</li>
<li>Das Ticket wird in den Milestone '_nextversion' verschoben und auf 'Ready to sync' gesetzt.</li>
</ul></li>
</ul>
<ul>
<li>Bei einem Merge von Develop nach Master Files (alle in Develop gesammelten Branches auf einmal) wird eine neue Version gebaut
<ul>
<li>Es wird eine Versionsnummer besteimmt. Z.B. 24.1.3 - die '3' ist ein Counter die bei jeder neuen Version hochgezaehlt wird. Wechselt der Monat wird sie auf 0 zurueck gesetzt. Das Jahr wird ebenfalls automatisch angepasst.</li>
<li>In Project wird ein Milestones mit der neuen Versionsnummer angelegt.</li>
<li>`Releasenotes.nextversion` wird sortiert nach Features/Bug/Note und diese werden in die finalen Release-Notes kopiert.</li>
<li>Alle aufgefuehrten Tickets werden geschlossen. Der Milestone wird geschlossen.</li>
</ul></li>
</ul>
<p>Subject ist</p> QFQ - Bug #16965 (New): Unhandled exception on SQL queryhttps://project.math.uzh.ch/issues/169652023-09-28T12:36:23ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Feature #16849 (New): Mail: check FROM address for pattern or specific sender addresshttps://project.math.uzh.ch/issues/168492023-09-08T18:09:06ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Von den ZI wird gefordert das nur Emailadressen von Shared-Mailboxen als Absender verwendet werden duerfen.</li>
<li>Damit nicht so schnell Fehler auftreten, soll neue eine Liste von Adressen / Pattern in der QFQ config hinterlegt werden koennen, gegen die getestet werden</li>
</ul> QFQ - Bug #16736 (Closed): QFQ destroys it own confighttps://project.math.uzh.ch/issues/167362023-08-20T17:15:22ZCarsten Rosecarsten.rose@math.uzh.ch
<p>In #16717 zeigt sich teilweise taeglich das die QFQ Config kaputt geht.</p>
<ul>
<li>Es sollte eine Option geben die QFQ davon abhaelt die Config selber neu zu schreiben.</li>
<li>Es sollte ein Check eingebaut werden, der sicherstellt das nur ein Prozess gelichzeitig schreibt.</li>
<li>Es scheint so als wenn die config mehrmals pro Minute neu geschrieben wird - was ist da los?</li>
</ul> QFQ - Bug #16506 (In Progress): Error sendmail failed: Umlaute in FROM ADDRESShttps://project.math.uzh.ch/issues/165062023-06-30T07:34:07ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Wenn QFQ Mails sendet und in der FROM Adresse im Realname ein Umlaut vorkommt, verweigert Oultook die Annahme.</li>
<li>QFQ anpassen das alles Felder (TO, CC, BCC, From) auch UTF8 kodiert werden.</li>
</ul>
<pre>
UniqId:: 6486fd7720bd5
------------------------------------------------
toUser:: "Error sendmail failed
support:: [cmd=/var/www/html/typo3conf/ext/qfq/Classes/External/sendEmail -f "Universitäre Lehrförderung <lehrkredit-smtp@math.uzh.ch>" -t "sabine.schneider@ds.uzh.ch" -o message-charset="utf-8" -l "/var/www/html/fileadmin/protected/log/mail.log" -u "=?UTF-8?Q?Bitte=20um=20Best=C3=A4tigung:=20=20Antrag=20Lehrkredit?=
=?UTF-8?Q?=20durch=20Frau=20Dr.=20Daniela=20Fuhrmann?=" -m "Sehr geehrte Frau/Herr Sabine Schneider
Wir möchten Sie bitten den Lehrkredit Antrag von Frau Dr. Daniela Fuhrmann zu begutachten und zu bestätigen oder abzulehnen.
Bitte loggen Sie sich dazu auf der Lehrkredit Homepage ein unter:
</pre> QFQ - Feature #16350 (Closed): a) FormSubmiLog: update recordid after insert. b) sql.log: referen...https://project.math.uzh.ch/issues/163502023-06-03T09:14:49ZCarsten Rosecarsten.rose@math.uzh.ch
<p>a) FormSubmiLog: update recordid after insert.</p>
<ul>
<li>Aktuell steht in der Spalte 'recordId' bei Insert immer ein 0.</li>
<li>Gut waere wenn dort die neu angelegt ID stehen wuerde.</li>
<li>ACHTUNG: Im Mode LOG_MODIFY sollten INSERT/UPDATE fuer die Tabelle FormSubmitLog NICHT geloggt werden.</li>
</ul>
<p>b) sql.log: reference to FormSubmitLog entry</p>
<ul>
<li>Im sql.log fuer jede Query die Referenz angegeben auf den FormSubmitLog Record.</li>
</ul>
<p>c) Do not log Dirty</p>
<ul>
<li>Neu: Im Mode LOG_MODIFY sollten INSERT/UPDATE/DELETE fuer die Tabelle Dirty NICHT geloggt werden.</li>
</ul>
<p>d) REMOTE_ADDRESS / HTTP_X_REAL_IP</p>
<ul>
<li>Die I-MATH Homepage ist hinter einem Proxy.</li>
<li>Der Wert von $_SERVER[REMOTE_ADDRESS] ist daher immer die IP des Proxy</li>
<li>Das ist schlecht fuer
<ul>
<li>FormSubmitLog, denn dort wird die REMOTE_ADDRESS geloggt.</li>
<li>Fuer die Dirty Table, denn auch dort wird die REMOTE_ADDRESS geloggt.</li>
<li>QFQ Applikationen, die gerne wuessten von wo der aktuelle Aufruf kam.</li>
</ul></li>
</ul>
<ul>
<li>Der verwendete NGINX Proxy setzt die Server Variable HTTP_X_REAL_IP.</li>
<li>Falls HTTP_X_REAL_IP gesetzt ist, soll diese den Wert von REMOTE_ADDRESS ueberschreiben</li>
</ul> QFQ - Bug #16343 (New): QFQ/GMX: smtp recjects if subject contains umlaut and is not proper encodedhttps://project.math.uzh.ch/issues/163432023-06-02T14:50:23ZCarsten Rosecarsten.rose@math.uzh.ch
<p><img src="https://project.math.uzh.ch/attachments/download/7998/clipboard-202306021647-yhc8l.png" alt="" /></p>
<p><img src="https://project.math.uzh.ch/attachments/download/7999/clipboard-202306021647-sv9ak.png" alt="" /></p> QFQ - Feature #16303 (New): Restrict mail sendinghttps://project.math.uzh.ch/issues/163032023-05-27T13:42:07ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Um versehentliches massenhaftes versenden von Mails zu verhindern sollten vor jedem Mailversand Checks durchgefuehrt werden:</p>
<ul>
<li>Checks greifen nur wenn production='yes'</li>
<li>Wenn Check aktiv ist: QFQ Prozess vollstaendig beenden: Damit ist sichergestellt das keine Records als 'done' markiert werden.</li>
<li>Vor dem beenden eine Warnmail versenden an Support: Empfaenger ist konfigurierbar. Pro Minute maximail eine Warnmail.</li>
</ul>
<ul>
<li>Schutz individuelle Emailadresse: Wurden in den letzten 24h mehr als 10 Mails an die gleiche Adresse gesendet?</li>
<li>Schutz gegen Massenmail: Wurden in den letzten 24 Stunden mehr als 500 Mails versendet?</li>
</ul> QFQ - Feature #16297 (New): AutoCron: no SIP https://project.math.uzh.ch/issues/162972023-05-26T08:59:22ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Im AutoCron , wenn z.B. via Report eine Mail versendet wird, funktionieren SIP Parameter nicht (es gibt keine QFQ Session die weitergereicht wird)</li>
<li>Eine Loesung waere das ein AutoCron einen API Key bekommt, mit dem er aufgerufen wird, und dieser User (=API-Key) hat dann entsprechende Berechtigungen. </li>
<li>Der API Key wird in der QFQ Config zentral hinterlegt.</li>
<li>Der API Key ist im OS Crontab eingetragen und wird beim Aufruf mit uebergeben.</li>
</ul> QFQ - Feature #16219 (New): Security: IPs von Hacking Angriffen sperren - Integration voin Fail2Ban https://project.math.uzh.ch/issues/162192023-05-13T12:32:06ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Setup machen damit Fail2Ban automatisiert IPs sperrt.</li>
<li>Setup in qfq.io/doc unter Security dokumentieren.</li>
<li>Gewisse Fehler, z.B. 'Security: attack detected' werden via syslog gemeldent (konfigurierbar in QFQ). Fail2Ban agiert dann entsprechend</li>
<li>In den QFQ/T3 Instanzen eine Seite einrichten die gesperrte IPs anzeigt, damit man schnell testen kann ob eine IP betroffen ist.</li>
<li>Whitelist: IPs die nie gesperrt werden - z.B. UZH.</li>
<li>Greylist: IPs die umgeleitet werden auf eine Seite 'Your IP has been blocked' - z.B. alle Schweizer IPs</li>
<li>Integration eines IP/Geolocations Services.</li>
<li>Neu gesperrte IPs sollen via Mail gemeldet werden.</li>
<li>Bestehende Logfiles analysieren: klassische Versuche auf WP Dateien fuehren automatisch zu einer Sperrung der IP - da koennte z.B. ein cron job oder inotify daemon via fail2ban die IP sperren.</li>
</ul>
<p>Beispiel Angriff:</p>
<pre>
[2022-10-23 03:48:38 / 45.227.253.6 / &lt;no session cookie&gt;] Security: attack detected
Problem: Post/Get Honeypot variable 'email' detected: 1 UNION ALL SELECT NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL#
Post/Get Honeypot variable 'username' detected: 1
Post/Get Honeypot variable 'password' detected: 1
[2022-11-23 16:17:30 / 216.131.108.251 / 23r2ldp832obrii5t0oblg3i09] Security: attack detected
Problem: Value of GET variable 'sOIQ' too long. Allowed: 50, Length: 172. Value: '2408 AND 1=1 UNION ALL SELECT 1,NULL,'&lt;script&gt;alert(&quot;XSS&quot;)&lt;/script&gt;',table_name FROM information_schema.tables WHERE 2&gt;1--/**/; EXEC xp_cmdshell('cat ../../../etc/passwd')#'
[2022-12-28 02:21:54 / 45.81.39.101 / 2q5m8frmlchk9b0lndt3b00b1h] Security: attack detected
Problem: Value of GET variable 'CDRC' too long. Allowed: 50, Length: 172. Value: '4935 AND 1=1 UNION ALL SELECT 1,NULL,'&lt;script&gt;alert(&quot;XSS&quot;)&lt;/script&gt;',table_name FROM information_schema.tables WHERE 2&gt;1--/**/; EXEC xp_cmdshell('cat ../../../etc/passwd')#'
</pre> QFQ - Feature #15534 (New): FormEditor > CodeMirror > a) sql1: 'Home/End' jumps to technical line...https://project.math.uzh.ch/issues/155342023-02-12T17:05:01ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Hat man im CodeMirror eine Textzeile die im Editor umgebrochen wird und der Cursor steht auf (1), dann springt Taste 'home' auf (2). Gewuenscht waere (3). Es gibt bestimmt eine Option in CodeMirror die man setzen kann fuer das gewuenschte Verhalten - waere gut wenn das der Default waere.</p>
<p><img src="https://project.math.uzh.ch/attachments/download/7260/clipboard-202302121801-dbk1r.png" alt="" /></p>
<p>Wenn moeglich, bitte Highlight fuer matching brackets '({[<' by default aktivieren.</p> QFQ - Bug #15527 (Closed): Form/subrecord: class 'qfq-table-50' no impacthttps://project.math.uzh.ch/issues/155272023-02-12T09:55:29ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Unter <a class="external" href="http://docs.qfq.io/en/master/Form.html#type-subrecord">http://docs.qfq.io/en/master/Form.html#type-subrecord</a> ist fuer <code>subrecordTableClass</code> angegeben:</p>
<pre><code>subrecordTableClass = table table-hover qfq-subrecord-table qfq-table-50</code></pre>
<p>Die Klasse <code>qfq-table-50</code> sollte die Breite auf 50% setzen (<a class="external" href="http://docs.qfq.io/en/master/Report.html#qfq-css-classes">http://docs.qfq.io/en/master/Report.html#qfq-css-classes</a>)</p>
<p><img src="https://project.math.uzh.ch/attachments/download/7251/clipboard-202302121053-zswqs.png" alt="" /></p>
<p>Wird die Klasse <code>qfq-subrecord-table</code> weggelassen funktioniert es wieder, aber dann passt das Design nicht:</p>
<p><img src="https://project.math.uzh.ch/attachments/download/7252/clipboard-202302121055-hj7gi.png" alt="" /></p> QFQ - Bug #15521 (Closed): Form Editor: Create new / edit pills, assigns always a containerhttps://project.math.uzh.ch/issues/155212023-02-10T16:45:49ZCarsten Rosecarsten.rose@math.uzh.ch
<p>QFQ: 23.2.0</p>
<p>Wenn ein Formular Pills hat und ein weiterer Pill angelegt werden oder ein bestehender bearbeitet wird, so wird immer ein Container selektiert. <Leer> ist nicht moeglich.</p>
<p>FE Container: Nach Auswahl von <leer> wird automatisch wieder ein Pill selektiert.</p>
<p><img src="https://project.math.uzh.ch/attachments/download/7249/clipboard-202302101736-3ntz7.png" alt="" /></p>
<p><img src="https://project.math.uzh.ch/attachments/download/7250/clipboard-202302101737-vzkjj.png" alt="" /></p>
<p>FE.value:</p>
<pre>
{{feIdContainer:FR:::{{SELECT fe.feIdContainer FROM FormElement AS fe WHERE fe.formId={{formId:SR0}} AND fe.feIdContainer!=0 AND "{{class:FRD0:alnumx}}"!="action" ORDER BY fe.modified DESC LIMIT 1}}}}
</pre>
<p>Die Idee waere das STORE_FORM hier bei einem Dynamic Update greifen sollte und eine '0' liefern die ein POST gesendet haben sollte. Aber: '0' wird als leer angesehen und damit greift STORE_FORM nicht, und QFQ sucht dann in STORE_RECORD und anschliessend im default value.</p>
<p>Fuer das bestimmen, ob eine QFQ Variable im STORE_FORM gesetzt ist, sollte also nicht der Wert 0 oder '' entscheidend sein, sondern ob es einen POST gab und in diesem das zugehoerige FROM Element submitted wurde.</p> QFQ - Feature #15018 (New): SIP not found error: a) fix, b) more information for debugginghttps://project.math.uzh.ch/issues/150182022-11-11T11:34:41ZCarsten Rosecarsten.rose@math.uzh.ch
<p>a) Beim Download haben wir aktuell schwierig zu debuggende Fehler (kann nicht reproduziert werden). #14651, #15001.<br />b) Diverse Ideen:</p>
<ul>
<li>Die in #14651 genannte ID nicht als QFQ Exception gefunden: das macht auch Sinn, denn dort wird die SIP genannt und nicht die QFQ error Log id. Bitte in der Fehlermeldung auf dem Screen die QFQ Error Log ID nennen (am besten mit human readable Timestamp), die kaputte Sip sollte dann im Log stehen. </li>
<li>Im qfq.log bei der SIP Exception angeben wieviele Eintraege die QFQ Session hat. Hintergrund: sollte ein QFQ Coockie fehlen oder frisch angelegt worden sein und die QFQ Session noch quasi leer sein, wuerde man das dann sehen anhand der wenigen Eintaege.</li>
<li>Wenn eine FE Session existiert (und beim Download via Cookie mit uebergeben wurde): Details dazu anzeigen.</li>
<li>Gibt es eine Moeglichkeit das alle Cookies die auf dem Server sind anzuschauen? Ggfs. via IP Adresse Vergleich (wird die IP Adresse zum Cookie gespeichert?) herausfinden welche Cookies zu einem User gehoeren koennten. In dem Fall koennte man diese Cookies in der Exception (qfq.log) nennen, und den SIP Sip Store testweise mit den anderen passenden Sessions laden.</li>
<li>Was koennte man noch angeben?</li>
</ul> QFQ - Feature #14719 (New): Form > Subrecord: Drag'n'Drop - only activate if column 'columnOrd' e...https://project.math.uzh.ch/issues/147192022-09-13T07:29:47ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Aktuell wird bei jedem Subrecord DnD aktiviert, auch wenn es gar keine Spalte 'ord' gibt.</li>
<li>Neuer Default sollte sein, nur bei vorhandener Spalte den DnD zu aktivieren.</li>
</ul> QFQ - Bug #12513 (New): Implement server side check of maxlengthhttps://project.math.uzh.ch/issues/125132021-05-08T15:11:36ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Bei der Implementierung von <a class="issue tracker-2 status-2 priority-2 priority-default" title="Feature: TinyMCE Paste from Word & Character Count/Limit (In Progress)" href="https://project.math.uzh.ch/issues/12439">#12439</a> ist aufgefallen das es kein MaxLength Check auf der Server Seite gibt.</p>
<p>Ziel ist das ein Fehler ausgegeben wird, wenn die maximale Laenge ueberschritten ist.<br />Grund: der User muss informiert werden das seine Angaben nicht vollstaendig gespeichert werden konnten.</p> QFQ - Bug #12468 (Closed): Form: update Form.title after savehttps://project.math.uzh.ch/issues/124682021-04-30T06:19:11ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Aktuell wird der Titel nicht neu gerendert bei einem Save. Das sollte sein.</p> QFQ - Support #11849 (Rejected): Wizard: Form2 zu QFQhttps://project.math.uzh.ch/issues/118492021-01-14T09:10:10ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Wizard implementieren der einzelne oder alle form2 Forms nach QFQ kopiert.</li>
<li>Vermutlich via QFQ Query.</li>
<li>Absprechen mit MArc wie sich das mit FormAsFile verhaelt.</li>
</ul> QFQ - Support #9924 (Closed): fullCalendar: events do not start on full hourhttps://project.math.uzh.ch/issues/99242020-01-21T21:26:47ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Bei LSZGS sind die Events gegenueber dem Grid verschoben (vermutlich 15") (fc2.png).</li>
<li>In der FullCalendar Demo (V3) (fc1.png) ist das nicht der Fall - <a class="external" href="https://fullcalendar.io/docs/v3/vertical-resource-standard-demo">https://fullcalendar.io/docs/v3/vertical-resource-standard-demo</a></li>
</ul>
<p>Kannst Du das fixen?</p>
<pre>
# Calendar
20.sql = SELECT '<div class="qfq-calendar"
data-config=\'{
"themeSystem": "bootstrap3",
"height": "auto",
"header": {
"left": "title",
"center": "",
"right": ""
},
"defaultDate": "{{firstDate:R}}",
"now": "1999-12-31",
"allDaySlot": false,
"weekends": false,
"defaultView": "agenda",
"dayCount": 3,
"minTime": "08:00:00",
"maxTime": "18:00:00",
"businessHours": { "daysOfWeek": [ 1, 2, 3, 4 ], "startTime": "10:00", "endTime": "18:00" },
"events": [
{{meetings:R0}}
]}\'>
</div>'
</pre> QFQ - Feature #9548 (Rejected): FormElement: Pattern mismatch - optional report only on focus losthttps://project.math.uzh.ch/issues/95482019-11-11T22:04:37ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Es waere gut wenn man entscheiden koennte was man moechte:</p>
<ul>
<li>Check waehrend des tippens</li>
<li>Check bei 'lost focus'.</li>
</ul>
<p>Default sollte neu 'on focus lost' sein.</p>
<p>Bei einer Datumseingabe macht es keinen Sinn 'pattern mismatch' zu bekommen, nachdem man die erste Ziffer eingegeben hat.</p> QFQ - Feature #9526 (Closed): FormElement: redesign 'required' / 'pattern' visualizationhttps://project.math.uzh.ch/issues/95262019-11-07T13:44:12ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Aktuell wird, wenn in einem Form ein Required Feld nicht gefuellt ist, die ganze Form-Zeile auf 'rot' gesetzt.</p>
<ul>
<li>Das ist problematisch wenn mehrere Inputs in einer Zeile sind - es werden alle markiert.</li>
<li>Bei Radio / Checkbox / Upload,... ist die rote Umrandung (required, pattern error) nicht deutlich genug zu erkennen.</li>
</ul>
<p>Falls der Vorschlag nicht fuer alle Forms passend ist (sollte aber ok sein): es koennte eine Option geschaffen werden mit der man das umschalten kann (FE, Form, System).</p>
<p>Beispiel Form zum testen: <a class="external" href="http://webwork16.math.uzh.ch/crose/qfq/index.php?id=92">http://webwork16.math.uzh.ch/crose/qfq/index.php?id=92</a></p> QFQ - Bug #9477 (Rejected): Click on 'more' of QMORE() triggers a refresh of a pagehttps://project.math.uzh.ch/issues/94772019-10-28T16:20:55ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Auf der forkred Instanz gibt es auf der 'Suche' Seite (<a class="external" href="https://webwork16.math.uzh.ch/forkred/work/index.php?sword=rose&id=64">https://webwork16.math.uzh.ch/forkred/work/index.php?sword=rose&id=64</a> ) einen unschoenen Effekt: wenn man in der Spalte 'Comment' auf 'more' klickt wird die ganze Seite neu geladen. Anschliessend ist der Text wieder eingklappt (man kann ihn also gar nicht lesen).</p>
<p>Auf einer sehr aehnlichen Seite (<a class="external" href="https://webwork16.math.uzh.ch/forkred/work/index.php?id=administrationfk">https://webwork16.math.uzh.ch/forkred/work/index.php?id=administrationfk</a>) tritt der Effekt nicht auf.</p> QFQ - Bug #9173 (New): Stale Record Lock: Firefox https://project.math.uzh.ch/issues/91732019-09-18T21:42:34ZCarsten Rosecarsten.rose@math.uzh.ch
<p>a) Wird mit FF ein Candoc Antrag auf forkred18.math.uzh.ch/forkred wie folgt bearbeitet:</p>
<p>open, modify, save, close, open, modify, close: question 'save?' no > open</p>
<p>dann ist der Record anschliessend gesperrt.</p>
<p>Das Verhalten tritt nicht auf mit Opera. <br />Reproduzierbar mit FF unter Linux und MacOS X.</p>
<p>b) Es kann sein das der Effekt mit einem kleinen Form nicht auftritt.</p> QFQ - Support #8946 (Rejected): qbar broken, qifempty missinghttps://project.math.uzh.ch/issues/89462019-08-28T13:47:58ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Beim QFQ Update werden die prepared functions nicht mehr aktualisiert, resp. qbar() ist kaputt (backslash backslash | fehlt)</p> QFQ - Bug #8933 (Closed): Record lock: lock extend always failhttps://project.math.uzh.ch/issues/89332019-08-27T19:05:55ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Das 'auto extend' bei einem Record Lock funktioniert nicht mehr, wenn timeout Sekunden lang getippt wird.</p>
<p>a)</p>
<ul>
<li>User oeffnet einen Record.</li>
<li>Editiert solange bis der Timeout eintritt.</li>
<li>Bei Timeout geht ein Pop Up (siehe Screenshot) auf und zwingt den User zu einem Reload: Das sollte nicht sein - stattdessen muss der Lock verlaengert werden.</li>
</ul>
<p>b)</p>
<ul>
<li>Hinweis: wird nach der ersten Aenderung nicht weiter geaendert ist alles ok. Nach Timeout Sekunden kommt von rechts die Infobox das der Lock verlaengert wird. Bei der dann folgenden naechsten Aenderung wird der Lock erfolgreich verlaengert.</li>
<li>D.h. abgelaufene Locks werden verworfen und ein neuer erfolgreich ausgestellt.</li>
</ul> QFQ - Feature #7495 (Closed): data-enable-save-button: detect 'modified' toohttps://project.math.uzh.ch/issues/74952018-12-16T12:13:09ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Es gibt ein Tag auf einem Form, 'data-enable-save-button', das verwendet wird um den Save Button direkt beim Form-Load aktiv zu schalten (anstelle von 'bei erster Modifikation'). In QFQ/Form heisst das Attribute 'saveButtonActive'.</p>
<p>Rafi hat das so implementiert (soweit ich mich erinnere) das er in qfq.js in Form einfach 'dirty=yes' setzt.</p>
<p>Das hat einen unschoenen Effekt: sobald man das Form aufruft und dann im Browser 'Back' oder Form-Close klickt, wird man gefragt ob man speichern moechte. Man hat aber gar nichts geaendert!</p>
<p>Wenn es nicht zu viel Aufwand ist, bitte umstellen das 'dirty' wirklich 'dirty' meint und der Button trotzdem, auf Wunsch, aktiviert werden kann.</p> QFQ - Bug #7044 (Closed): Alert 'really delete?' might lock while browser tabhttps://project.math.uzh.ch/issues/70442018-10-19T07:22:52ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Reproduzieren (es ist 99% deterministisch)</p>
<ul>
<li><a class="external" href="http://webwork16.math.uzh.ch/crose/qfq/index.php?id=1">http://webwork16.math.uzh.ch/crose/qfq/index.php?id=1</a></li>
<li>Den ersten Button 'aa' aufrufen (Personenmaske mit 2 Uploads)</li>
<li>Schleife:
<ul>
<li>Upload (Picture) loeschen</li>
<li>Speichen (Form bleibt offen)</li>
<li>Neue Datei (Picture) auswaehlen</li>
<li>Upload (Picture) loeschen -- hier bleibt der Tab oft schon locked.</li>
</ul></li>
</ul> QFQ - Bug #7011 (Rejected): Button 'Einreichen' erscheint doppelt - Rahmen Pill falsch - GRC / Fo...https://project.math.uzh.ch/issues/70112018-10-16T06:32:47ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Button einreichen doppelt (FF) - wir (SW/CR) koennen das Problem mit den zwei Buttons nciht reproduzieren.</li>
<li>Ueber dem Button ist eine waagerechte Linie - die hat CR schoen oefter in letzter Zeit gesehen.</li>
</ul> QFQ - Bug #6345 (Closed): Second delete of a subrecord: page is blocked/darkhttps://project.math.uzh.ch/issues/63452018-07-02T21:06:47ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Wird in einem Form ein Subrecord geloescht, und sofort danach ein weiteres, so wird der Browsertab dunkel (=fehlermeldung) und man muss den Tab neu laden damit der Tab wieder hell wird.</p> QFQ - Bug #6232 (Closed): Missing required: Pill/Input not 'bring to front'https://project.math.uzh.ch/issues/62322018-06-14T11:28:14ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Auf dem Antragsformular fuer IK (<a class="external" href="https://webwork16.math.uzh.ch/mi/index.php?id=application">https://webwork16.math.uzh.ch/mi/index.php?id=application</a> > Neuer Antrag) gibt es einige Pflichtfelder, teilweise abhaengig vom Inhalt anderer. Fehlen 'required' Angaben auf den ersten 3 Pills, springt der Browser dort hin, bei den restlichen Pills funktioniert das nicht.</p>
<p>Achtung: die Required wird nur geprueft bei 'Einreichen' nicht bei 'save'.</p> QFQ - Bug #6023 (Closed): File Upload: Client (Browser) zeigt keine Fehlermeldung anhttps://project.math.uzh.ch/issues/60232018-05-16T19:33:24ZCarsten Rosecarsten.rose@math.uzh.ch
Wird versucht eine Datei hochzuladen (QFQ FormElemnt 'Upload'), die einen Fehler ausloest (z.B. unerlaubter Mime Type), sendet QFQ eine JSON Status. Z.B.:<br /><pre>
{"message":"<table class='table table-hover qfq-table-80'><thead><tr><th colspan='2'>Error<\/th><\/tr><\/thead><tr><td>Timestamp<\/td><td>2018.05.16 21:11:10 +0200<\/td><\/tr><tr><td>Code<\/td><td>1502<\/td><\/tr><tr><td>Message<\/td><td>Filetype not allowed. Allowed: application\/pdf<\/td><\/tr><\/table>","status":"error"}
</pre>
<ul>
<li>Das JSON ist in QFQ 0.25.11a und 18.4.4 sehr aehnlich.</li>
<li>In 0.25.11a kommt noch der alte drop down Dialog (upload.message.ok.png) - ok.</li>
<li>In 18.4.4 kommt kein Dialog, dafuer wird ein spinning gear angezeigt - error.</li>
</ul>
<p>Koenntest Du Dir das mal anschauen?</p>
<ul>
<li>Ich koennte mir vorstellen das alle Versionen mit den 'neuen' Alerts betroffen sind.</li>
<li>Es ist relativ dringend, es gab schon einige Beschwerden (PT2, LK, GRC).</li>
</ul>
<p>URLs zum testen:<br />1) OK: <a class="external" href="https://webwork16.math.uzh.ch/lehrkredit/cr/">https://webwork16.math.uzh.ch/lehrkredit/cr/</a><br />2) Broken: <a class="external" href="https://webwork16.math.uzh.ch/lehrkredit/work/">https://webwork16.math.uzh.ch/lehrkredit/work/</a><br />3) Broken: <a class="external" href="https://webwork16.math.uzh.ch/my">https://webwork16.math.uzh.ch/my</a></p>
<p>Bei 1 & 2: einloggen mit shortname Password > Admin / Pool > Status: 95 > Request > Uploads to request: Applicant, Admin - NEW > Upload > Filetype: ALL > 'file das kein PDF ist auswaehlen'> BANG</p> QFQ - Bug #5925 (Closed): Delete subrecord element: row remain visiblehttps://project.math.uzh.ch/issues/59252018-05-06T21:01:40ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Nach dem loeschen eines Subrecords bleibt dieser sichtbar.</li>
<li>Nach Reload der Seite wird der Record nicht mehr angezeigt.</li>
</ul> QFQ - Bug #5595 (Closed): Link 'Download' - only link, no buttonhttps://project.math.uzh.ch/issues/55952018-03-02T11:29:28ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>'...|b:0|...' sollte dazu fuehren das kein Button gerendert wird. Das funktioniert nicht.</li>
<li>Das sollte bei pagee, page.. usw auch der Fall sein.</li>
</ul> QFQ - Bug #5460 (Closed): New Alert: not visible on long pageshttps://project.math.uzh.ch/issues/54602018-02-18T16:04:29ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Wenn man auf einer Seite ist die laenger als eine Bildshirmseite ist und man einen Record loeschen moechte, kommt eine Sicherheitsabfrage. Dieser Dialog ist ganz oben auf der Seite. Hat man aber nach unten gescrollt, merkt man gar nicht das ein Dialog aufgegangen ist.</p> QFQ - Bug #5004 (Closed): FE Readonly - purges existing datahttps://project.math.uzh.ch/issues/50042017-11-27T12:28:58ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Enthaelt ein Form Readonly Elemente und wird das Form gespeichert, so sind anschliessend alle Spalten, derern FE readonly waren, leer.</p> QFQ - Feature #4766 (Closed): Report: fill STORE_RECORD with current row. Keep old valueshttps://project.math.uzh.ch/issues/47662017-10-15T09:17:19ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Wird eine Spalte (=Name der Variable) gesetzt, kann irgendwo im dem QFQ record darauf zugegriffen werden, ohne Angabe der Zeilennummer!!!</li>
<li>Es koennen die 'Escape' Qualifier verwendet werden!</li>
<li>Gut waere ein neuer 'Escape' Qualifier: XML - um XML Tags korrekt zu escapen - damit koennte sehr einfach XML Output erzeugt werden. </li>
<li>Gut waere ein neuer 'Escape' Qualifier: CSV - um das ';' korrekt zu escapen - damit koennte sehr einfach CSV Output erzeugt werden.</li>
</ul> QFQ - Support #4498 (Closed): Input Date / Datetime: a) width not 100%, b) Button Lock ist nach F...https://project.math.uzh.ch/issues/44982017-09-12T21:22:22ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>a) Wenn Input vom Typ 'date' oder 'datetime' in einem col-md-6 Div sind, sind sie nur halb so breit wie die regulaeren Inputs.
<ul>
<li>Wird das Attribut 'extraButtonLock' oder 'extraButtonInfo=test' gesetzt, haben die Elemente die gewuenschte 100% width in dem col-md-6.</li>
</ul>
</li>
<li>b) Mit Attribut 'extaButtonLock' ist das 'date'-Input, nach dem Form load, nicht gelockt. Das sollte aber sein.</li>
</ul> QFQ - Bug #4495 (Closed): Upload: Problem if mode is 'required'https://project.math.uzh.ch/issues/44952017-09-12T20:29:18ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Upload Feld mit mode='required'</li>
<li>Besthender Record wird geladen - dort existiert bereits ein Upload.</li>
<li>Beim Speichern gibt es eine Meldung das kein File angegeben ist:</li>
</ul>
<p>'Form is incomplete' und im Field: Please select a file.</p>
<p>Vermutlich ist das ein Client Problem.</p>
<p>Aktuell liegt das 'required' auf dem 'input / type=file'.</p>
<p>Der Upload Prozess ist beschrieben in 'CODING.md > upload'</p> QFQ - Support #4310 (Closed): Typeahead: Eingabe problematischhttps://project.math.uzh.ch/issues/43102017-08-26T16:53:11ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Wird in einem TypeAhead Feld ein Text eingetippt, dann mit der Maus irgendwo anders hin geklickt (lost focus), so steht der getippte Wert im Feld: ok</li>
<li>Wird dann der Record gespeichert, wird aber nicht der eingetippte Wert gespeichert, sondern der urspruenglich geladene.</li>
</ul>
<p>Sowohl der neue als auch der alte Value sind gueltige typeAhead Values.</p> QFQ - Support #4309 (Closed): typeahead: allow free entryhttps://project.math.uzh.ch/issues/43092017-08-26T16:29:45ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Problem: Bei typeahead koennen nur Werte gespeichert werden, die der Server findet.</p>
<ul>
<li>Das ist schlecht, denn im 'free' Modus kann man alles angeben, man bekommt beim speichern aber keinen Hinweis das der Wert nicht gespeichert wird.</li>
<li>Im POST ist der letzte gueltige Wert (also nicht die freie Eingabe).</li>
<li>Der Free Modus (non pedantic) sollte die freie Eingabe per Post senden. </li>
<li>Will man den User zwingen etwas aus den vorgegebenen Werten zu waehlen, gibt es 'pedantic'</li>
</ul> QFQ - Bug #4282 (Rejected): Dynamic Update: Update broken wenn mehrere Felder in einer Row sind.https://project.math.uzh.ch/issues/42822017-08-23T12:17:37ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Fehler konnte CR auf die Schnelle nicht reproduzieren.</li>
<li>Problem bei Karin
<ul>
<li>Feld A ist ein Dropdown</li>
<li>Feld B ist readonly und haengt von dem Wert in A ab.</li>
<li>Problem: Sind Felder A & B in einer Zeile, wird Feld A nach dem Update zurueck gesetzt (es sollte der gewaehlte Wert angezeigt werden)</li>
</ul>
</li>
<li>Es faellt auf das das zurueck gelieferte JSON zu viele Werte enthaelt (insbesonders an unsinnigen Stellen).</li>
<li>Im Test von CR mit A & B in einer Zeile scheint das Readonly bei FormLoad auch komisch zu sein.</li>
</ul> QFQ - Support #4278 (Closed): Language: Check that language settings are respectet a) during dyna...https://project.math.uzh.ch/issues/42782017-08-23T09:05:41ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Currently the FormElements overloaded at the beginnging - this is probably not sufficient for container.</p>
<p>SW: reported that the 'label' of 'pills' are still in default language.</p>
<p>Labels in FE also does not work.</p> QFQ - Feature #4049 (Closed): '{{...}}' with default valuehttps://project.math.uzh.ch/issues/40492017-07-05T05:38:23ZCarsten Rosecarsten.rose@math.uzh.ch
<p>{{<name>:<store>:<sanatize>:<escape>:<default value>}}</p> QFQ - Feature #3971 (Closed): Formular: Titel ist nicht schoen https://project.math.uzh.ch/issues/39712017-06-25T14:00:54ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Die Titel der QFQ Forms sehen ziemlich mickrig aus.</p>
<p>Sollen wir so wie 'navbar' einsetzen?</p>
<p><a class="external" href="http://getbootstrap.com/components/#navbar">http://getbootstrap.com/components/#navbar</a></p> QFQ - Feature #3678 (Closed): Design fuer QFQ Screenshotshttps://project.math.uzh.ch/issues/36782017-05-05T10:51:48ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Fuer die QFQ Doku waeren Screenshots gut. Damit diese ansprechend aussehen, sollten wir ein schlichtens Design haben (nicht sooo schlicht wir aktuell auf qfq.math.uzh.ch)</p>
<p>Koenntest Du etwas vorbereiten, am besten mit einem einfachen Menu damit wir auf qfq.math.uzh.ch gut damit arbeiten koennen.</p>
<p>Das Design kann gerne aussehen wie eine Standard Wordpress Installation.</p> QFQ - Support #3569 (Closed): Input Optional '0' unterdrueckenhttps://project.math.uzh.ch/issues/35692017-04-13T11:08:39ZCarsten Rosecarsten.rose@math.uzh.ch
<pre>
FE.type=text
Fe.checktype=digit
FE.value={{SELECT IF('{{zoraSavedSearchId:RE}}' = 0, '', '{{zoraSavedSearchId:RE}}') }}
table.columntype: int
</pre> QFQ - Bug #2723 (Closed): QFQ: required Checkboxes - auch wenn etwas angegeben ist wird dies nich...https://project.math.uzh.ch/issues/27232016-10-27T06:39:45ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Checkboxes mit Status 'required' - wenn etwas angegeben, wird nicht erkannt das etwas angegeben ist. Es ist kein Save moeglich.</p>
<p><a class="external" href="http://qfq.math.uzh.ch/crose/qfq-jqw/index.php?id=form">http://qfq.math.uzh.ch/crose/qfq-jqw/index.php?id=form</a></p>
<p>Required Felder: Gender, Pet owner, Firstname</p>