Project @ iMath: Issueshttps://project.math.uzh.ch/https://project.math.uzh.ch/favicon.ico?16668783892024-01-18T16:07:53ZProject @ iMath
Redmine QFQ - Feature #17649 (New): Integrate Etherpad as editorhttps://project.math.uzh.ch/issues/176492024-01-18T16:07:53ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Um mit mehreren Personen an einem Dokument (z.B. qfqWiki) zu arbeiten, koennten wir als Editor Element den <a class="external" href="https://etherpad.org/">https://etherpad.org/</a> verwenden.</li>
<li>Min. via Plugin koennen sogar Bilder eingebunden werden.</li>
<li>Evtl. ist der Etherpad eine Alternative zu TinyMCE.</li>
<li>Wunsch fuer Bilder: per Mausklick kann umgeschaltet werden zwischen Thumbail und regulaere Groesse.
<ul>
<li>Nach dem Einfuegen (und fuer alle anderen) wird nur das Thumbnail angezeigt.</li>
<li>Hintergrund: waehrend eines Meetings wird ein Protokoll erstellt und dabei werden Screenshots gemacht und eingefuegt - die sind aber by Default so gross das der Rest des Textes verschwindet und man die Uebersicht verliert. Thumbnails loesen das Problem.</li>
</ul></li>
</ul>
<ul>
<li>Ggfs. Etherpad nicht nur in einem Form zeigen, sondern direkt in Report.</li>
</ul> QFQ - Feature #17412 (In Progress): Per Form: note, tag, reminder date, done flaghttps://project.math.uzh.ch/issues/174122023-12-05T22:38:13ZCarsten Rosecarsten.rose@math.uzh.ch
<p>In unseren QFQ Applikationen fuer die Benutzer aber auch fuer die Applikationsentwickler waere folgende Funktion nett:</p>
<ul>
<li>Auf einem Formular gibt es einen <strong>Button</strong> via dem man sich Notizen zum aktuellen Record (Antrag, ...) macht (entweder als Popup oder Modal).</li>
<li>Die Option kann an/abgeschaltet werden (auch dynamisch je nach eingeloggtem User)</li>
<li>Die Logik soll fix in QFQ mittels form/qfqr Files hinterlegt sein. </li>
<li>Durch toolspezifische Formulare/Reports kann es an das Tool angepasst werden.</li>
<li>Titel sollte veränderbar sein.</li>
</ul>
<p>Details:</p>
<ul>
<li>Eine Notiz kann private, <group> oder public sein.
<ul>
<li>Welche <group's> es gibt kann konfiguriert werden. Bsp: admin, developer, dekanat, ...</li>
<li>Es stehen nur solche Gruppen zur Verfuegung in der man selbst Member ist.</li>
</ul></li>
</ul>
<ul>
<li>Der <strong>Button</strong> zeigt die Anzahl Notizen an. Symbol: Blatt Papier mit der Anzahl Notizen als kleine Zahl in einer Ecke. Sobald es min. eine Notiz gibt hat das Blatt eine Farbe.</li>
<li>Hover/Tooltip zeigt die letzten 5 Notizen an (Note, Tag, Author, Created, Reminder, Resubmission).</li>
<li>Die Tags sollen dazu verwendet werden die Notizen zu klassifizieren: todo / feedback / hold / not yet / ...
<ul>
<li>Pro Notizen koennen beliebig viele Tags vergeben werden.</li>
<li>Neue Tags koennen on the fly erzeugt werden.</li>
<li>Die Tags werden mit Typeahead erfasst.</li>
</ul></li>
</ul>
<ul>
<li>Auf dem allgemeinen Dashboard werden die eigenen/group/all Notizen als Summe angezeigt - ein Klick darauf fuehrt in die Listenansicht.</li>
<li>In der Listenansicht werden die eigenen/<group>/alle Notizen angezeigt werden.
<ul>
<li>Sortiert nach 'last modified', Filter auf a) 'user'/'group', b) Inhalt, c) Tags</li>
<li>In der Listenansicht kann von der Notiz direkt zum Antrag / Form / ... gesprungen werden.
<ul>
<li>Damit das funktioniert muessen im Hintergrund weitere Informationen bei der Notiz abgelegt werden (Formular, detail Parameter, ...).</li>
</ul></li>
</ul>
<ul>
<li>Es koennen Notizen angelegt werden, die keinem Form/Record zugeordnet sind. Anwendung: persoenliche Todo Liste, Bsp: 'morgen unbedingt nach Urlaub fragen'.</li>
</ul></li>
</ul>
<ul>
<li>Im Dashboard und in der Listenansicht werden Notizen mit abgelaufenem Reminder besonders hervorgehoben.</li>
<li>Ist das reminder date abgelaufen wird eine Mail versendet.</li>
<li>Pro Notiz kann das Flag 'done' gesetzt werden (dann wird kein Reminder versendet).</li>
</ul>
<p>Anmerkungen:</p>
<ul>
<li>Eine Notiz kann als 'Ticket' gesehen werden (erscheint im Dashboard, kann auf 'done' gesetzt werden, kann tags zur Klassifizierung enthalten).</li>
<li>In dem aktuellen Konzept hat die Notiz mehr einen 'History' Character als Ticket.</li>
<li>Zukunft: zu einer Notiz koennten weitere Informationen abgelegt werden (Assignee, Due Date, ...), damit waere dann ein Ticketsystem moeglich. </li>
<li>Im jetzigen Konzept werden die Notizen i.d.R. einem Table/Record zugeordnet. </li>
<li>Bei z.B. Rueckfragen oder Diskussion waere zusaetzlich eine Thread-ID interressant.</li>
<li>Mit dem Thread Konzept waere das eine interessante Moeglichkeit eine 'minimale Chat Logik' mit QFQ auszuliefern. Das koennte direkt in BEF fuer die Rueckfragen verwendet werden.</li>
</ul> QFQ - Bug #17397 (Closed): Dynamic Update Broken After CodingWeek23 only for r>0https://project.math.uzh.ch/issues/173972023-12-01T16:29:46ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Beispiel:</p>
<ul>
<li>Form CR: BugDynamicUpdateBrokenAfterCodingWeek23, webwork20 > FormElement > dynamicUpdate</li>
<li>Im FormEditor tritt der Effekt nicht auf</li>
</ul>
<p><img src="https://project.math.uzh.ch/attachments/download/8845/clipboard-202312011729-4aiwe.png" alt="" /></p> QFQ - Bug #16345 (ToDo): TinyMCE: size / min-height scheint in QFQ V23.3.0 nicht zu funktionierenhttps://project.math.uzh.ch/issues/163452023-06-02T15:15:54ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Bitte anschauen / fixen:</p>
<ul>
<li>TinyMCE / Codemirror</li>
<li>Gibt es eine Moeglickeit 'autogrow' zu implementieren?</li>
<li>In der Doku bei Editor (TinMCE, CodeMirror) ist gar nichts zur Groesse bechrieben (zumindest habe ich es nicht gefunden) - dort bitte dokumentieren. Ggfs. muss dann bei 'FE.typ=Text' eine Anmerkung gemacht werden falls sich die Notation unterscheidet.</li>
</ul>
<p><img src="https://project.math.uzh.ch/attachments/download/7997/clipboard-202306021607-rahke.png" alt="" /></p> 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 - Bug #16264 (Closed): Multi DB Broken since QFQ V23.2.0https://project.math.uzh.ch/issues/162642023-05-20T13:38:44ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Befinden sich DB 'Data' und DB 'System' auf unterschiedlichen Servern, kann der tt-content Record (BodyText) nicht geladen werden.</p>
<p>Data mit System zu tauchen wird nichts bringen ... dann kann Data nicht mehr geladen werden.</p>
<p>Das Problem ist hier markiert:<br /><img src="https://project.math.uzh.ch/attachments/download/7916/clipboard-202305201532-ma8ty.png" alt="" /></p>
<p><img src="https://project.math.uzh.ch/attachments/download/7917/clipboard-202305201534-wxiot.png" alt="" /></p> 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 #14321 (Closed): Remember last used pill: on/off a) system wide, b) per formhttps://project.math.uzh.ch/issues/143212022-06-14T12:06:18ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Bitte eine Option einbauen das 'remember last pill' deaktiviert werden kann.</p>
<p>Bei default soll es 'on' sein.</p>
<p>a) Form.parameter.rememberLastPill=0|1</p>
<p>b) Systemweit: QFQ Extension Config > Form-Config</p>
<p>Als Checkbox wie bei:</p>
<p><img src="https://project.math.uzh.ch/attachments/download/6261/clipboard-202206141403-cxlyu.png" alt="" /></p>
<p>Bitte bei der Implementierung mit CR besprechen wie das 'default' setzen und die '0|1' implementiert wird.</p>
<p>Hint: QFQ Best Practice ist, das wenn ein Parameter ohne Value angegeben ist, dieser automatisch '1' gesetzt wird.</p> QFQ - Bug #13716 (Closed): Firefox ask to store username/passwordhttps://project.math.uzh.ch/issues/137162022-01-25T10:21:51ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Bei dem 'Event' Form in SeminarLive fragt Firefox (Chrome tut das dort nicht) ob er Username/Password speichern soll sobald man den Pill wechselt.<br /><img src="https://project.math.uzh.ch/attachments/download/5797/password.png" alt="" /></li>
<li>Das Form ist angehaengt und kann importiert werden - die primary table muss sicher angepasst werden.</li>
<li>Bitte check woran das liegt und was wir bei QFQ aendern muessen damit das nicht mehr passiert.</li>
<li>Sollte der Fehler nicht reproduzierbar bitte bei CR melden.</li>
<li>Ursache koennte das 'hide password' oder auch die vielen Dynamic Update sein.</li>
</ul>
<ul>
<li>Der Effekt stoert sehr, gerade in SeminarLive bei dem in Kuerze viele User mit arbeiten werden.</li>
</ul> QFQ - Support #13432 (Rejected): Dynamic Update / Checkbox / r=... in QFQ Record: brokenhttps://project.math.uzh.ch/issues/134322021-11-25T15:20:08ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Wenn eine Checkbox mit dynamic update konfiguriert ist, und das Form statisch, mit einer fixen r=... im T3/QFQ Record aufgerufen wird, dann funktioniert das Dynamic Update nicht.</p>
<p>Gemeldet von ES in medtool</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 #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 - Bug #12464 (Rejected): QFQ Function: check for caching problem https://project.math.uzh.ch/issues/124642021-04-29T07:42:27ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Bitte ueberpruefen das wenn in einer loop eine QFQ Functon mehrfach aufgerufen wird, sich veraenderte Eingangsparameter durchsetzen.</p>
<pre>
10 {
sql = SELECT p.id AS _pId FORM Person AS p
20 {
function = testFunction (pId) => fullName
}
30.sql = SELECT '{{fulNam:R}}'
}
---------------
testFunction
10 {
SELECT p.name, p.firstName FROM Person AS p WHERE p.id={{pId:R}}
}
</pre> QFQ - Feature #11892 (Closed): tablesorter: columns with links are hard to order - new qualifier ...https://project.math.uzh.ch/issues/118922021-01-23T12:57:20ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Tabellenspalten mit `... AS _link` lassen sich nicht ordnen.</li>
<li>Workaround ist ein `<span style="display: none;">???</span>` vor dem Link generieren zu lassen (via Report Notation). '???' ist dann das Sortierkriterium. Das ist aufwendig.</li>
</ul>
Idee:
<ul>
<li>Neuer Qualifier 'Y:????'.</li>
<li>'???' ist das Ordnungskriterium</li>
<li>Der generierte HTML Code wird vor dem Link ausgeben.</li>
</ul> 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 #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 #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 #8668 (Closed): Pill disabled: dyamic mode 'hidden' not respected - FE is still requiredhttps://project.math.uzh.ch/issues/86682019-07-03T15:28:44ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Ist ein FE in einem Pill und dieses Pill ist disabled, dann sollten diese FE bei einem Save nicht beachtet werden.</p>
<p>Das ist vermutlich fuer FE mit static mode bereits implementiert. Fuer FE bei denen der mode dynamisch ermittelt <br />wird, fehlt es noch.</p>
<p>Evtl. tritt der Fehler auch nur auf bei FE wenn sie auf einem Pill sind das dynamic mode hat.</p>
<p>Fehler ist aufgetreten in #8651</p> 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 #7650 (Closed): Optional do not show 'required' sign on FormElementhttps://project.math.uzh.ch/issues/76502019-01-15T08:18:13ZCarsten Rosecarsten.rose@math.uzh.ch
<p>In Sonderfaellen kann es gewuenscht sein, das ein FormElement Label nicht mit dem roten Stern (=required) markiert ist.</p>
<p>Bitte Flag einbauen das man es fuer ein Element ausschalten kann.</p> QFQ - Feature #6723 (New): Report QFQ Installation and Versionhttps://project.math.uzh.ch/issues/67232018-09-16T09:25:53ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Es waere gut wenn man eine Uebersicht haette wo welche Installation mit welche QFQ version laufen.</p>
<p>In der Configuration eintragen:</p>
<pre>
serviceReportQfqVersion = https://qfq.io/index.php?id=service&version={{qfqVersion:Y}}[,<next reporting URL>]
</pre>
<ul>
<li>Die Variable {{qfqVersion}} gibt es vermutlich noch nicht.</li>
<li>Der Aufruf erfolgt via wget (nicht via file_get_content, da dort allow_url_fopen benoetigt wird)
<ul>
<li>bei der Erstinstallation </li>
<li>bei jedem QFQ Update</li>
</ul></li>
</ul>
<ul>
<li>Das sollte einfach zu implementieren sein: QFQ checkt die Versionsnummer bei jedem Start, dort koennte der Hook eingbaut werden.</li>
<li>Es koennen mit Komma getrennt mehrere Service URLs angegeben werden - so koennte MNF z.B. ein eigenes Reporting haben und I-MATH bekommt auch was davon mit.</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 #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 #4869 (New): Dynamic Update (show, hide, readonly?, required?) for Template Group E...https://project.math.uzh.ch/issues/48692017-11-04T10:36:18ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Requested in <a class="issue tracker-1 status-5 priority-3 priority-high3 closed behind-schedule" title="Bug: Dynamic updates Pill - show/hide (Closed)" href="https://project.math.uzh.ch/issues/4865">#4865</a></li>
<li>Die Umsetzung sollte nicht so schwierig sein um eine komplette TG-Group aus/einzublenden.</li>
<li>Ob 'readonly' und 'required' Sinn machen ist nicht klar.</li>
<li>Dynamic Update innerhalb einer TG pro FE ist vermutlich schwierig - wird aber benoetigt (siehe unten)</li>
</ul> QFQ - Feature #4812 (Closed): Subrecord:detect system/typo3 varnames in 'detail' like 'id', 's', ...https://project.math.uzh.ch/issues/48122017-10-24T21:22:52ZCarsten Rosecarsten.rose@math.uzh.chQFQ - 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 - Feature #3981 (Closed): Record Lockinghttps://project.math.uzh.ch/issues/39812017-06-27T11:17:44ZCarsten Rosecarsten.rose@math.uzh.ch
<p>QFQ benoetigt einen Mechnismus fuer ein Form/Record Locking.</p>
<a name="Variante-A-polling-websockets"></a>
<h1 >Variante A: polling / websockets<a href="#Variante-A-polling-websockets" class="wiki-anchor">¶</a></h1>
<ul>
<li>User A bearbeitet Record X.</li>
<li>User B moechte den Record zum bearbeiten oeffnen.
<ul>
<li>Er bekommt einen Hinweis das A ihn geoeffnet hat und wird gefragt ob A informiert werden soll das Form zu schliessen.</li>
<li>Falls 'bitte informieren': User A hat 30 Sekunden Zeit darauf zu reagieren. </li>
</ul>
</li>
<li>Weiteres Verhalten noch nicht definiert..</li>
</ul>
<a name="Variante-B-Nur-Hinweis"></a>
<h1 >Variante B: Nur Hinweis<a href="#Variante-B-Nur-Hinweis" class="wiki-anchor">¶</a></h1>
<ul>
<li>User A oeffnet auf Form 1 den Record X.</li>
<li>QFQ merkt sich 'primary' Table von 'Form 1', Record ID, User, IP, Zeitpunkt.</li>
<li>QFQ loescht den Lock, sobald das Form geschlossen wird oder User A ein Typo3 FE Session Timeout hat.</li>
<li>User B meochte den Record zum bearbeiten oeffnen und erhaelt einen Hinweis, das der Record bereits durch User A geoeffnet wurde (wann, IP). User kann waehhlen 'edit' oder 'cancel'.</li>
<li>Klickt User A auf Save, wird das 'modified' Datum mit dem urspruenglichen Wert verglichen (wird beim Form Load auf dem Server gespeichert, evtl als SIP).
<ul>
<li>Gibt es eine Aenderung kann der User auswaehlen was er tun moechte. </li>
<li>Der Unterschied wird in Form eine Tabelle angezeigt.</li>
</ul></li>
</ul>
<a name="Hinweis-3980"></a>
<h1 >Hinweis - <a class="issue tracker-3 status-5 priority-3 priority-high3 closed" title="Support: Client: Bei Form Submit den Status 'submit_reason=save|save,close' mitsenden (Closed)" href="https://project.math.uzh.ch/issues/3980">#3980</a><a href="#Hinweis-3980" class="wiki-anchor">¶</a></h1> 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 - Support #3465 (Closed): Save button: optional 'active after form load'https://project.math.uzh.ch/issues/34652017-03-30T05:02:16ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Aktuell gibt es ein Formular das nur eine Mail ausloesen soll. Dieses Form kann nicht ausgeloest werden, da der Save Button erst aktiv wird nach der ersten Aenderung.</p>
<p>Es waere gut wenn es eine Option geben wuerde, um beim Form load den Button gleich aktiv zu machen.</p> QFQ - Feature #3129 (Closed): Form-Designhttps://project.math.uzh.ch/issues/31292017-01-30T23:07:04ZCarsten Rosecarsten.rose@math.uzh.chQFQ - 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> QFQ - Support #1896 (Closed): Enable Button 'Save' auf Tastendruck: <input, type=date / datetime-...https://project.math.uzh.ch/issues/18962016-04-24T15:47:26ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Bei Input Felder mit type = date | datetime-local | time wird der Save Button nicht beim ersten Keypress in dem Inputfeld aktiviert. <br />Bei Input Felder mit typ=text ist das der Fall - das ist sinnvoll damit der User nicht erst in das Form klicken muss um anschliessend 'save' druecken zu koennen.</p>