Project @ iMath: Issueshttps://project.math.uzh.ch/https://project.math.uzh.ch/favicon.ico?16668783892024-02-11T18:35:34ZProject @ iMath
Redmine 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 #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 - 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 #14494 (In Progress): Bootstrap 5 Migrationhttps://project.math.uzh.ch/issues/144942022-07-10T08:17:45ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>QFQ per Extension Config auf BS3 oder BS5 schalten</li>
<li>Grafischer Formulareditor</li>
<li>Formulare sollen gut aussehen auf einem kleinen Screen und auf einem grossen.
<ul>
<li>D.h. es gibt eine maximale Breite bei einem Form.</li>
</ul></li>
</ul>
<ul>
<li>FormEditor nach Moeglichkeit grafische Unterstuetzung: d.h. Elemente per Drag'n'Drop anordnen.</li>
</ul> QFQ - Feature #13945 (Closed): As _link: content before/after linkhttps://project.math.uzh.ch/issues/139452022-03-23T08:36:08ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Oft waere es hilfreich bei einem Link noch Inhalt (inkl. HTML) davor oder danach ausgeben zu koennen.</p>
<p>Beispiel:</p>
<ul>
<li>In einem Report mit `SELECT ..., 'p:...' AS '_link|nowrap' koennten so z.B. dann doch '<td>" usw. erzeugt werden.</li>
<li>Werden mehrere Buttons gerendert koennen Abstaende direkt in der Link Definition gesetzt werden - der Code wird uebersichtlicher.</li>
</ul>
<p>Frage:</p>
<ul>
<li>Bei `r:5`: soll dann der before/after Inhalte gerendert werden oder nicht? Vorschlag: Nein.</li>
<li>Sollen wir als Schluesselwoerter 'einstellige Token', z.B.: v (before), V (after), nehmen oder 'speaking words'?</li>
</ul> QFQ - Feature #13113 (Closed): curl durch stream interface ersetzenhttps://project.math.uzh.ch/issues/131132021-10-03T18:59:29ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Scheinbar wird curl von aktuellen distros in PHP nicht mehr angeboten.</li>
<li>Siehe Kommentar in <a class="external" href="https://www.php.net/manual/en/function.curl-init.php">https://www.php.net/manual/en/function.curl-init.php</a></li>
<li>Alternative: das regulaere PHP stream interface</li>
</ul>
<pre>
$opts = array(
'http' => array (
'method'=>"POST",
'header'=>
"Accept-language: en\r\n".
"Content-type: application/x-www-form-urlencoded\r\n",
'content'=>http_build_query(array('foo'=>'bar'))
)
);
$context = stream_context_create($opts);
$fp = fopen('https://www.example.com', 'r', false, $context);
</pre> QFQ - Feature #12603 (New): Dropdown (Select), Radio, checkbox: itemListAlways={{!SELECT key, val...https://project.math.uzh.ch/issues/126032021-05-29T12:53:26ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Alle Elemente mit dynamischen key oder key/value Angaben haben das Problem, das wenn ein Wert gespeichert wurde, das Form spaeter wieder aufgerufen wird, der Wert nicht mehr in der neuen Liste enthalten hist - beim speichern der alte Wert verloren geht.</p>
<p>Der Effekt tritt gerne auf bei einer Semesterauswahlliste, die nur die sinnvollen zukuenftigen anzeigt. Eine Vorlesung aus einem alten Semester geoeffnet und gespeichert wird, dann ploetzlich einer andren Periode zugeordnet ist.</p>
<p>Vorschlag:</p>
<pre>
itemListAlways={{!SELECT key, value...}}
</pre>
<p>Das Ergebnis wird gemerged (&unify).</p> QFQ - Feature #12541 (Closed): AS _page / _link: Optional without {{pageAlias:T}}https://project.math.uzh.ch/issues/125412021-05-12T10:12:31ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Vorschlag von Benj:<br /><pre>
SELECT ... CONCAT(p:&form=coolForm&r=1|E|s) AS _link ...
</pre></p>
<p>Ziel ist das kein <code>{{pageAlias:T}}</code> in <code>p:id={{pageAlias:T}}&form=...</code> mehr noetig ist.</p>
<p>Wenn nach <code>p:</code> direkt ein <code>&</code> folgt, sollte die Erkennung einfach sein.</p> QFQ - Bug #12484 (Closed): Default: config.render = singlehttps://project.math.uzh.ch/issues/124842021-05-03T09:16:59ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Bei Neuinstallationen sollte by default config.render=single sein.</p>
<p>Aktuell ist es both</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 - Bug #11630 (Closed): Bitte check ob CALL() in 20.11.0 noch so funktioniert wie in 20.4.1https://project.math.uzh.ch/issues/116302020-11-25T20:04:40ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Im IK-Tool #11625 hat das SQL '<abbr title="">CALL</abbr>' noch funktioniert mit 20.4.1. Nach dem Update auf 20.11.0 funktioniert es nicht mehr.</p>
<p>In <a class="issue tracker-1 status-5 priority-2 priority-default closed" title="Bug: SQL: CALL() (Closed)" href="https://project.math.uzh.ch/issues/11325">#11325</a> wurde <abbr title="">CALL</abbr> angeblich implementiert (fuer 20.11.0) - es muss aber vorher schon mal funktioniert haben! Und nun, nachdem es neu implementiert ist, funktioniert es nicht mehr. Das macht alles kein Sinn.</p>
<p>Code aus IK Tool:<br /><pre>
# Action: 'moveToPool'
10 {
sql = SELECT '' FROM (SELECT '') AS fake WHERE '{{action:SE}}' = 'moveToPool'
10.sql = SELECT '' FROM (SELECT '') AS fake WHERE {{grIdPool:S0}}={{grIdPool2Bm:R}}
10.10.sql = CALL copyApplicationPostingUpload(@srcId:={{apId:S0}})
20.sql = UPDATE Application
SET grIdPool = {{grIdPool:S0}},
dateReceipt = IF( {{grIdPool:S0}}={{grIdPool2Bm:R}}, NOW(), dateReceipt),
finalCostCategory = IF({{grIdPool:S0}}={{grIdPool1Bm:R}},
CASE
WHEN totalCost=0 THEN ''
WHEN totalCost<100000 THEN 'below 100k'
WHEN totalCost<250000 THEN '100k to 250k'
ELSE 'above 250k'
END,
finalCostCategory)
WHERE id = {{apId:S0}} AND '{{action:SE}}' = 'moveToPool'
}
</pre></p>
<p><strong>Befuerchtung:</strong></p>
<ul>
<li>In 20.4.1 war noch Code in QFQ das `<abbr title="">CALL</abbr>` funktioniert und dieser Code ist bis 20.11.0 verloren gegangen.</li>
<li>Warum funktioniert es nicht, obwohl CR das als 'fixed/implemented' markiert hat in 20.11.0.</li>
</ul> QFQ - Bug #10505 (Closed): Drag'n'Drop broken on Multi DB Instancehttps://project.math.uzh.ch/issues/105052020-05-07T15:53:41ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Beim FormEditor funktioniert das Drag'n'Drop nicht.</p>
<p>Vermutlich hat es mit dem MultiDB Setup auf my/exam zu tun.</p>
<p>Check:</p>
<p>1) dbIndexQfq=1, dbIndexData=2:<br />[Check: OK] FormEditor<br />[Check: OK] Pure Data Form</p>
<p>2) dbIndexQfq=2, dbIndexData=1:<br />[Check: OK] FormEditor<br />[Check: OK] Pure Data Form</p>
<p>3) dbIndexQfq=1, dbIndexData=1: aber im Form ist dbIndexData=2<br />[Check: fail] FormEditor<br />[Check: fail] Pure Data Form<br />vermutlich ist das ok: QFQ initialisert keine zweite DB, daher ist dbIndexData=2 nicht vorhanden.</p>
<p>4) dbIndexQfq=2, dbIndexData=2:<br />[Check: OK] FormEditor<br />[Check: OK] Pure Data Form</p> QFQ - Bug #9532 (Closed): FE.type=upload: '{{fileDestination}}' savedhttps://project.math.uzh.ch/issues/95322019-11-08T15:29:54ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Wird ein Form gespeichert, ist in einem FE.type=Upload immer ...{fileDestination}}..., auch wenn kein File ausgewaehlt wurde. pathFileNAme wird kaputt geschrieben!</li>
</ul> 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 - Bug #8601 (Rejected): After PSR4 migration: autocron.php can't be loadedhttps://project.math.uzh.ch/issues/86012019-06-22T01:22:08ZCarsten Rosecarsten.rose@math.uzh.ch
<p>PHP Fatal error: Uncaught Error: Class 'IMATHUZH\Qfq\Core\External\AutoCron' not found in /var/www/html/preview/typo3conf/ext/qfq/Classes/External/autocron.php:36<br />Stack trace:<br />#0 {main}<br /> thrown in /var/www/html/preview/typo3conf/ext/qfq/Classes/External/autocron.php on line 36</p> QFQ - Feature #8082 (New): Contact form without saving recordhttps://project.math.uzh.ch/issues/80822019-03-18T13:13:09ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Fuer z.B. Kontaktformulare waere es sinnvoll wenn man eine Form konfigurieren koennte das keinen Record speichert.</p>
<p>Z.B. in dem man keine Primary Table spezifiziert.</p>
<p>Das gleiche koennte man in einem Passwort Reset Form benoetigen (#7164).</p> QFQ - Bug #7615 (Closed): Checkbox: wrap with label instead of div.https://project.math.uzh.ch/issues/76152019-01-07T17:48:54ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Damit ein Klick auf das Label einer Checkbox diese aktiviert, sollte sie in 'label' gewrapped werden und nichtwie bisher in 'div'</p> 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 #7404 (Rejected): 'Record Lock' on timeout forbids savehttps://project.math.uzh.ch/issues/74042018-12-02T10:43:00ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Wird ein Record bearbeitet und dauert das laenger als der PHP/Session Timeout und drueckt man dann save(), so ist kein speichern moeglich.</p> QFQ - Bug #7094 (Rejected): beforeLoad: sqlValidate fired even during savehttps://project.math.uzh.ch/issues/70942018-10-26T14:18:03ZCarsten Rosecarsten.rose@math.uzh.ch
<p>F.name=questionAnswerToken (IK)<br />FE.type=beforeLoad<br />FE.parameter.sqlValidate = ....</p>
<p>Laden ist ok<br />Speichern gibt die Fehlermeldung im Anhang.</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 - Feature #6249 (Closed): Drag and drop for Subrecordshttps://project.math.uzh.ch/issues/62492018-06-17T09:47:14ZCarsten Rosecarsten.rose@math.uzh.chQFQ - 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 #6176 (Closed): ExtraButtonInfo: Icon not aligned when error texthttps://project.math.uzh.ch/issues/61762018-06-07T05:29:07ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Wenn ein pattern error erscheint, rutschen die extraButtons nach unten. Wie ist denn da die Option ob sie nach oben auszurichten?</p>
<p><a class="external" href="https://webwork16.math.uzh.ch/crose/qfq/index.php?id=extrabutton">https://webwork16.math.uzh.ch/crose/qfq/index.php?id=extrabutton</a></p>
<p>Die ersten 3 Felder sind neu auch chektype=email eingestellt.</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 #5924 (Closed): config.qfq.ini/LocalConfiguration.php: der FormEditor nur mit 'dbIndexD...https://project.math.uzh.ch/issues/59242018-05-06T19:58:13ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Check warum das Setting via QFQ/ExtManager nicht ausreicht, sondern man in config.qfq.ini zusaetzlich angeben muss:</p>
<p>dbIndexData = 1</p> 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 - 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 - Support #3980 (Closed): Client: Bei Form Submit den Status 'submit_reason=save|save,close' ...https://project.math.uzh.ch/issues/39802017-06-27T11:03:44ZCarsten Rosecarsten.rose@math.uzh.ch
Die Information soll verwendet werden fuer
<ul>
<li>Record Locking</li>
<li>Redirection Target auf Server Seite bestimmen.</li>
</ul> 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 - Support #3928 (Closed): chromedriver aus package.json entfernthttps://project.math.uzh.ch/issues/39282017-06-17T14:00:56ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Der Build der QFQ Packages lief nicht mehr durch. Er blieb beim chromedriver haengen. Ich habe ihn aus dem package.json rausgenommen. Anschliessend wurden die Pakete wieder gebaut.</p>
<ul>
<li>CR soll unter Anleitung von RO das Problem debuggen.</li>
</ul>
Weitere Punkte:
<ul>
<li>CR soll testweise einen neuen Buildjob installieren </li>
<li>Wo liegt das Verzeichnis w3.math.uzh.ch/qfq/... ?</li>
<li>Wie fuehrt man den Buildjob interaktiv aus (z.B.: ssh root@alfred14; su - jenkins; cd ~/workspace/...; make snapshot ), um zu schauen wo es hakt?</li>
</ul> 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 - 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> QFQ - Bug #2720 (Closed): QFQ: required Radio - werden nicht rot markiert, bekommen keinen Focushttps://project.math.uzh.ch/issues/27202016-10-27T06:07:58ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Radios mit Status 'required' - falls nichts angegeben ist:
<ul>
<li>werden nicht rot wenn 'Save' gedrueckt wird.</li>
<li>bekommen keinen Fokus wenn 'Save' gedrueckt wird.</li>
</ul></li>
</ul>
<ul>
<li><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></li>
<li>Required Felder: Gender, Pet owner, Firstname</li>
</ul> QFQ - Support #1951 (Closed): Client: bei *allen* Formelementen wird 'required' gesetzt.https://project.math.uzh.ch/issues/19512016-05-03T16:18:06ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Direkt nach dem ausliefern des Forms haben im Client alle Formelemente das required Attribute gesetzt:</p>
<p>server: <input name="name:1" class="form-control" type="text" size="0" maxlength="128" value="Doe" data-hidden="no" data-disabled="no" data-required="no" ><br />client: <input required="" name="name:1" class="form-control" size="0" maxlength="128" value="Doe" data-hidden="no" data-disabled="no" data-required="no" type="text"></p>