Project @ iMath: Issueshttps://project.math.uzh.ch/https://project.math.uzh.ch/favicon.ico?16668783892024-03-20T23:59:51ZProject @ iMath
Redmine QFQ - Bug #18184 (New): _link combination of g:_blank and q:.. not workinghttps://project.math.uzh.ch/issues/181842024-03-20T23:59:51ZEnis Nuredini
<p>Wird das special column name _link in Verbindung mit g:_blank und q:... verwendet dann wird nach Klick darauf nicht in einem neuem Tab geöffnet sondern im aktuellen. Das Attribut target wird auf den Button korrekt gesetzt. Es scheint etwas mit dem Handling beim Bestätigen des Alerts zu tun.</p> QFQ - Support #18057 (New): {{sqlLog:Y}} returns empty string when not configuredhttps://project.math.uzh.ch/issues/180572024-03-05T07:31:43ZElias Villiger
<p>When the QFQ config for <code>sqlLog</code> (or <code>qfqLog</code>, <code>mailLog</code>) is empty, the default log directory (<code>fileadmin/protected/qfqProject/log/sql.log</code>) is used.</p>
<p>When retrieving <code>{{sqlLog:Y}}</code> from the System Store, this returns an empty string (corresponding to the config value).</p>
<p>Expected behavior: When there's no specific log path configured, I would expect it to return the default/actual path to the log file.</p>
<p>Example use case: <a class="external" href="https://docs.qfq.io/en/master/Report.html#monitor">https://docs.qfq.io/en/master/Report.html#monitor</a></p> QFQ - Feature #17958 (New): Screenshare via QFQ / jitsi or ms-teamshttps://project.math.uzh.ch/issues/179582024-02-20T15:00:41ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Auf der post.ch Seite wird ein Screenshare fuer Support angeboten:</p>
<p><img src="https://project.math.uzh.ch/attachments/download/9290/clipboard-202402201547-6x5e3.png" alt="" /></p>
<p>Idee:</p>
<ul>
<li>Wir bieten das gleiche an via jitsi.</li>
<li>Koennte interessant sein fuer alle Tools, wenn die User Probleme mit einem Antrag haben.</li>
<li>Es geht nicht darum um 24/7 erreichbar zu sein, sondern dem User eine Moeglichkeit zu geben zu einem vereinbarten Zeitpunkt eine Verbindung herzustellen, ohne das eine Jitsi URL abgesprochen werden muss.</li>
<li>Ggfs. ist es auch via Teams moeglich.</li>
</ul> QFQ - Feature #17829 (New): QFQ Add/Remove classes in parameterhttps://project.math.uzh.ch/issues/178292024-02-06T13:25:19ZEnis Nuredini
<p>Über das Parameter Feld sollten Klassen hinzufügbar oder entfernbar sein.</p> QFQ - Bug #17778 (New): Upload Filepond Dynamic Update - first load hiddenhttps://project.math.uzh.ch/issues/177782024-01-31T15:39:49ZEnis Nuredini
<p>Ausgangssituation:<br />Ein Upload FormElement (Version Filepond) wird beim ersten Aufruf als hidden geladen und danach via Dynamic Update auf show gesetzt, bzw. eingeblendet.</p>
<p>Resultat: Filepond Objekt ist noch nicht initialisiert.</p>
<p>Ursache: Filepond kann nur initialisiert werden wenn das Upload Input Element sichtbar im DOM angezeigt wird. Beim Wechsel von Pills wurde schon eine Lösung dafür implementiert. Beim Einblenden von neuen Upload Elementen via Dynamic Update fehlt eine solche Lösung für die Initialisierung von Filepond. In solchen Fällen kann uploadType = v1 als Übergang verwendet werden.</p> QFQ - Feature #17670 (New): WeasyPrint (instead of wkhtml) for PDF with header/footer/toc/...https://project.math.uzh.ch/issues/176702024-01-21T11:03:47ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Unter <a class="external" href="https://wkhtmltopdf.org/status.html">https://wkhtmltopdf.org/status.html</a> weist wkhtml eindringlich daraufhin das wenn wkhtml fuer nicht vertrauenswuerde HTML content verwendet wird, der Server uebernommen werden kann.</p>
<p>Das ist bei uns zwar nicht der Fall, aber weasyprint sollte einen Blick wert sein.</p>
<p>Das Hauptproblem bei wkthml ist, das sobald eine Datei (js, css, png, jpg,...) nicht geladen werden kann, es sofort einen Abbruch gibt, aber keinen Hinweis auf die Ursache.</p>
<ul>
<li><a class="external" href="https://weasyprint.org/">https://weasyprint.org/</a></li>
<li><a class="external" href="https://github.com/Kozea/WeasyPrint/">https://github.com/Kozea/WeasyPrint/</a></li>
</ul> QFQ - Bug #17668 (New): TypAhead: checks 'value', but should check 'key'https://project.math.uzh.ch/issues/176682024-01-19T20:19:07ZCarsten Rosecarsten.rose@math.uzh.ch
<p>QFQ 23.6.2</p>
<p><img src="https://project.math.uzh.ch/attachments/download/9061/clipboard-202401192117-qlllp.png" alt="" /></p>
<p>Beim laden des Forms (wenn ein User selektiert ist mit special char im Namen wie `Faske, Ida Synnøve`) gibt es im Client gleich ein 'invalid char'. Speichern wird entsprechend auch abgelehnt.</p>
<ul>
<li>checkType=auto setzt vermutlich 'alnumx' Pattern</li>
<li>Der Pattern Check prueft vermutlich den Value, es sollte eigentlich der Key getestet werden</li>
</ul>
<ul>
<li>Funktioniert nicht, sollte es aber: Encode=specialchar, checkType=auto</li>
<li>Funktioniert, aber unnoetig kompliziert: Encode=none, checkType=allbut</li>
</ul> QFQ - Feature #17577 (New): QFQ Doc: local render / Sphinx & MkDochttps://project.math.uzh.ch/issues/175772024-01-13T13:39:29ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Es waere gut wenn man die QFQ Doc lokale rendern koennte um schneller zu sehen wie etwas aussieht.</p>
<ul>
<li>Um schnell etwas auszuprobieren sind a) Commmits auf 'Develop' und b) warten bis RTD fertig ist, einfach zu unpraktisch.</li>
<li>RTD rendert nur auf Branch Master & Develop - d.h. niemand ausser CR kann schauen wie die Doku aussieht.</li>
</ul>
<ul>
<li><a class="external" href="https://me-readthedocs.readthedocs.io/en/latest/custom_installs/local_rtd_vm.html">https://me-readthedocs.readthedocs.io/en/latest/custom_installs/local_rtd_vm.html</a></li>
<li><a class="external" href="https://me-readthedocs.readthedocs.io/en/latest/guides/tools.html">https://me-readthedocs.readthedocs.io/en/latest/guides/tools.html</a></li>
<li><a class="external" href="https://training.nih-cfde.org/en/latest/General-Tools/Web-Development/mkdocs/">https://training.nih-cfde.org/en/latest/General-Tools/Web-Development/mkdocs/</a></li>
</ul> QFQ - Feature #17544 (New): QFQ Installation Wizard / Defaultshttps://project.math.uzh.ch/issues/175442024-01-09T12:19:59ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Im Meeting mit Philipp, Enis, Benj und Carsten wurden besprochen das wir einen Installation Wizard benoetigen.</p>
<ul>
<li>Kontrolle das die BaseURL stimmt (falls nicht ok, bitte im Installtool setzen).</li>
<li>Frage ob Tabellen angelegt werden sollen:
<ul>
<li>Period</li>
<li>Category (ex Ggroup) - Weiterer Vorschlag: Grp (in dem Fall kann 'gr' als Prefix weiter verwendet werden). implement mit Ticket <a class="issue tracker-2 status-2 priority-3 priority-high3" title="Feature: Per Form: note, tag, reminder date, done flag (In Progress)" href="https://project.math.uzh.ch/issues/17412">#17412</a> </li>
<li>Glue (ex GroupMember) implement mit Ticket <a class="issue tracker-2 status-2 priority-3 priority-high3" title="Feature: Per Form: note, tag, reminder date, done flag (In Progress)" href="https://project.math.uzh.ch/issues/17412">#17412</a></li>
<li>Upload. implement mit Ticket #filepond</li>
<li>Translation</li>
<li>Chat implement mit Ticket #chat</li>
<li>Note</li>
<li>NoteItem ( fuer form NoteItem Ticket <a class="issue tracker-2 status-2 priority-3 priority-high3" title="Feature: Per Form: note, tag, reminder date, done flag (In Progress)" href="https://project.math.uzh.ch/issues/17412">#17412</a>)</li>
<li>Person</li>
<li>Account</li>
<li>Address</li>
<li>PersonRole</li>
<li>Role</li>
</ul></li>
</ul>
<ul>
<li>BestPractice Doku & Seite / ttcontent anlegen (Auswahl als welches Child Element)
<ul>
<li>Settings (based on Grp/Glue) via.</li>
<li>Person / Adresse / Account / Rolle</li>
<li>FormEditor</li>
<li>Beispiel Chat</li>
</ul></li>
</ul>
<p><img src="https://project.math.uzh.ch/attachments/download/8961/clipboard-202401091319-wrmqh.png" alt="" /></p>
<p>switchdrive/qfq/DB/QFQ_Best_Practice_Tables.drawio</p>
<ul>
<li>Der Wizard soll bei der ersten Installation automatisch aufgehen.</li>
<li>Der Wizard soll auch spaeter noch gestartet werden koennen.</li>
<li>Im Wizard angeben wie man ihn spaeter erneut starten kann.</li>
<li>Aufruf koennte via einem HTML/PHP Form gemacht werden, das nur startet wenn ein BE User eingeloggt ist: BE Cookie mit der T3 BE User Tabelle vergleichen).</li>
</ul> QFQ - Feature #17442 (New): Rearrange form buttonshttps://project.math.uzh.ch/issues/174422023-12-07T12:53:28ZKrzysztof Putyra
<a name="Overview-of-the-problem"></a>
<h1 >Overview of the problem<a href="#Overview-of-the-problem" class="wiki-anchor">¶</a></h1>
The current arrangement <code>[save][close] [delete] [new]</code> is flawed: it makes people afraid to click "close", because the impression is that the button deletes data. This is caused by how our brain processes this information:
<ul>
<li>the two buttons are next to each other with icons suggesting opposite actions</li>
<li>opposite <em>action</em> to "safe" is "delete" ("don't safe" is <em>no action</em>)</li>
<li>close button is normally the last one in a group, so our brain does not expect it at the current position</li>
</ul>
<p>Moreover, because [save] and [close] are next to each other and [delete] is separated, the brain ignores [delete] when looking at [close] and tries to make connection only with [save]. This could be improved by placing [delete] between [safe] and [close]</p>
<a name="An-alternate-arrangement"></a>
<h1 >An alternate arrangement<a href="#An-alternate-arrangement" class="wiki-anchor">¶</a></h1>
<p><code>[safe] [new][delete] [close]</code></p>
<ul>
<li>[close] is the last button</li>
<li>[delete] does not touch [safe], which prevents accidental clicks</li>
<li>[delete] is between [safe] and [close] to prevent the brain making a connection between these two buttons</li>
<li>choosing for [safe] an icon related to [delete] instead of a tick may improve the situation as well</li>
</ul> QFQ - Feature #17439 (New): Novu Open Source Notification Managementhttps://project.math.uzh.ch/issues/174392023-12-07T07:37:09ZCarsten Rosecarsten.rose@math.uzh.ch
<p><a class="external" href="https://www.heise.de/ratgeber/Novu-Open-Source-Notification-Management-fuer-Web-Apps-9543007.html?wt_mc=intern.red.plus.newsticker.7-tage-news.teaser.teaser">https://www.heise.de/ratgeber/Novu-Open-Source-Notification-Management-fuer-Web-Apps-9543007.html?wt_mc=intern.red.plus.newsticker.7-tage-news.teaser.teaser</a></p>
<p>Koennte eingesetzt werden fuer</p>
<ul>
<li>Dashboard</li>
<li>Am I-MATH gibt es viele T3 Instanzen - damit koennten Notifications unterschiedlicher Tools gebuendelt werden.</li>
<li>Notez: falls wir eine App machen </li>
<li>Wuerde sich das als Chat-Server eignen?</li>
</ul> QFQ - Feature #16113 (New): Report, Subrecord: action on multiple elementshttps://project.math.uzh.ch/issues/161132023-04-26T15:11:17ZCarsten Rosecarsten.rose@math.uzh.ch
Alternativer Titel: <strong>HTML table row multi select action</strong>
<ul>
<li>Records können auf Report und Formebene (Subrecord) selektiert und zusammen "bearbeitet" werden (Action wird auf alle selektierten Records angewendet).</li>
<li>Actions sind über Dropdown abrufbar</li>
<li>1 Action = 1 <em>Function</em>
<ul>
<li><em>Anmerkung CR:</em> das mit 'Functions' (weil wir so viele brauchen pro Menu) muessen wir trennen von qfqFunctions - denn 'Functions' stehen ja im aktuellen tt-content wuerden nicht gefunden werden wenn sie in einem anderen Record stehen. Aus meiner Sicht aber genau so sinnvoll! Ein tt-content Record entspricht einer Klasse.</li>
</ul></li>
</ul>
<p><img src="https://project.math.uzh.ch/attachments/download/7783/clipboard-202304261709-sosbw.png" alt="" /></p>
<p><img src="clipboard-202304261709-w1hfg.png" alt="" /></p> QFQ - Feature #12135 (New): Subrecord: Notizhttps://project.math.uzh.ch/issues/121352021-03-12T16:10:44ZElias Villiger
<p>Aktuell wird bei einem subrecords mit FE.note = test die Notiz ("test") unterhalb der Subrecord-Tabelle angezeigt.</p>
<p>Würde es Sinn machen, die Notiz bei den Subrecords direkt im Anschluss an das Label zu verschieben? (siehe Screenshot)</p> QFQ - Feature #11534 (New): Report: Action on selected rows - Table batchprocessing featurehttps://project.math.uzh.ch/issues/115342020-11-17T11:06:12ZSimon Grüning
<p>See attached picture. A feature to add an additional column of check-boxes at the beginning of a table, and the ability to have buttons ex. "with selected: move all to bla". So batch processing of table rows / records.</p>
<p>Implementation idea: via javascript? Buttons passing list of id's (or respective sip's) of records and action onto backend.</p> QFQ - Feature #10384 (New): Parameter Exchange QFQ Instanceshttps://project.math.uzh.ch/issues/103842020-04-08T11:35:00ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Bei <a class="external" href="http://www.math">www.math</a> und w3/my haben wir das Problem das wir gerne Parameter uebergeben wuerden</p>
<ul>
<li>Join video conference</li>
<li>access recording </li>
<li>NEWS: Preview einer neu angelegten News (MY) auf MATH anzeigen.</li>
</ul>
<p>- die Instanzen sind aber unanabhaengig von einander.</p>
Idee:
<ul>
<li>[registered sip] <a class="external" href="http://www.math">www.math</a> (QFQ) kann ueber eine API SIPs bei w3/math registrieren. Das koennte aehnlich sein wie persistente SIPs (eine spezielle Variante). Solche registered SIPs sind unpersoenlich.</li>
<li>[encoded sip] zwischen den instanzen werden public keys (shared secred) ausgetauscht. Damit werden die Parameter verschluesselt und uebergeben.</li>
</ul>
<p>Notes:</p>
<ul>
<li><a class="external" href="https://stackoverflow.com/questions/9262109/simplest-two-way-encryption-using-php">https://stackoverflow.com/questions/9262109/simplest-two-way-encryption-using-php</a>
* Comment von 'Hemerson Varela' >> libsodium</li>
</ul> QFQ - Feature #10345 (New): Templates - Patterns QFQ Stylehttps://project.math.uzh.ch/issues/103452020-04-02T21:10:52ZBenjamin Baerbenjamin.baer@math.uzh.ch
<p>Ein "Pattern" im Design ist eine Vorgabe wie etwas aussehen soll.</p>
<p>Nehmen wir mal als Beispiel das teachingtool:</p>
<pre><div class="item">
<div class="item-background"></div>
<a class="item-image" style="background-image: url('typo3conf/ext/qfq/Classes/Api/download.php?s=5e8651ff802ce')" href="?id=tool&amp;toolId=118"></a>
<div class="item-description">Hinweise für die Übertragung einer geplanten Multiple-Choice-Prüfung in ein alternatives digitales Format</div>
<span class="item-meta">1.4.2020 17:02 Uhr</span><a class="item-title" href="?id=tool&amp;toolId=118">MC-Prüfungen (Remote)</a>
<div class="item-tags">
Tags:
<a class="label label-primary" href="index.php?id=alltools&amp;tagId=104">Leistungsnachweise</a>
<a class="label label-primary" href="index.php?id=alltools&amp;tagId=126">Digitale Lehre</a>
</div>
</div></pre>
<p>Nun brauchen wir diesen Satz an mehreren Orten vom Teachingtool - und wenn man etwas am Grunddesign aendert, muss man an jeden Ort denken in dem es vorkommt.</p>
<p>Mit dingen wie _link machen wir es uns relativ einfach diese Dinge zu erstellen - ist in diesem Sinne bereits ein Pattern.</p>
<p>Nun, wandeln wir obigen Satz mal in ein Pattern um:<br /> <pre><div class="item">
<div class="item-background"></div>
<a class="item-image" style="background-image: url('{{backgroundImage:R}}')" href="{{toolLink:R}}"></a>
<div class="item-description">{{itemDescription:R}}</div>
<span class="item-meta">{{dateTime:R0}}</span><a class="item-title" href="{{toolLink:R}}">{{itemTitle:RE}}</a>
<div class="item-tags">
Tags:
{{@tagLoopStart}}<a class="label label-primary" href="{{itemTagLink:R}}">{{itemTagName:R0}}</a>{{@tagLoopEnd}}
</div>
</div></pre></p>
<p>Und dazu dann der SQL Aufruf:<br /><pre>10 {
sql = SELECT "blabla" AS _itemTitle, ....
pattern = item
20 {
sql = SELECT CONCAT('index.php?id=tag&tagId=", tag.id) AS _itemTagLink, tag.name AS _itemTagName ...
loop = tagLoop
}
}</pre></p>
<p>Die Designs selbst koennten dabei aehnlich wie System Variabeln definiert werden und seitenweit abgelegt sein. Oder besser wie Form direkt ueber eine Art editor im frontend erstellt (bzw. gleich als git datei - um die eigenen HTML Editoren verwenden zu koennen)</p>
<p>Pattern wird natuerlich hier immer quasi erst "renr" ausgefuehrt, da einzelne Teile aus subqueries kommen koennten (und mit loops sogar muessen). Neben Store :R koennte man auch die anderen Stores abfragen, vorallem Y und U.</p> QFQ - Bug #9855 (New): Required Checkhttps://project.math.uzh.ch/issues/98552020-01-09T10:28:50ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Bitte fuer alle Input Typen (inkl. 'File'), ueberpruefen das ein Form Save unmoeglich ist (resp. markiert wird), wenn required aktiv ist, das Feld aber leer ist.</p>
<p>Das Attribute 'acceptZeroAsRequired' auch testen.</p>
<p>Bei 'fe.mode=<via dynamic update veraendert>' bitte alle Varianten testen (n=normal, r=required, FL=Form Load, FDU=Form Dynamic Update):<br /><pre>
FL FDU
--------
n n
n r
r n
r r
</pre></p> QFQ - Bug #9024 (Some day maybe): QFQ Einarbeitunghttps://project.math.uzh.ch/issues/90242019-09-05T07:37:03ZAnonymous
<ul>
<li>Stores
<ul>
<li><a class="external" href="https://qfq.io/doc/Manual.html#store">https://qfq.io/doc/Manual.html#store</a></li>
</ul></li>
</ul>
<ul>
<li>Variable
<ul>
<li>Sanitize: <a class="external" href="https://qfq.io/doc/Manual.html#sanitize-class">https://qfq.io/doc/Manual.html#sanitize-class</a></li>
<li>Store (s.o.)
<ul>
<li>Mehrere Stores: Prio / Fallback</li>
</ul></li>
</ul></li>
</ul>
<ul>
<li>Aufgabe:
<ul>
<li>Eine T3 Beispielseite erstellen mit der Ausgabe einiger Variablen aus z.B. STORE_SYSTEM , STORE_RECORD, STORE_CLIENT, STORE_VAR</li>
</ul></li>
</ul>
<ul>
<li>Nested Query:
<ul>
<li>Parameter Uebergabe: Spaltenname >> {{id:R}}</li>
</ul>
<ul>
<li><a class="external" href="https://qfq.io/doc/Manual.html#qfq-keywords-bodytext">https://qfq.io/doc/Manual.html#qfq-keywords-bodytext</a></li>
<li>Wrap mit HTML Elementen: head, tail, rbeg, rend, renr, fbeg, fend</li>
</ul>
<ul>
<li>Aufgabe: geschaltete HTML Tabelle - Person, pro Person Tabelle mit Adressen</li>
</ul></li>
</ul> QFQ - Bug #9020 (Some day maybe): radio mit buttonClass und dynamicUpdate lassen sich nicht kombi...https://project.math.uzh.ch/issues/90202019-09-04T12:55:38ZNicola Chiapolini
<p>Wenn ich meinem Radio-Element eine buttonClass gebe um die Bootstrap-Buttons zu erhalten, funktioniert dynamic update nicht mehr.</p> QFQ - Feature #8056 (Some day maybe): Termin Organisation (Reservation)https://project.math.uzh.ch/issues/80562019-03-15T07:05:55ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Fuer das Consulting Tool <a class="external" href="https://project.math.uzh.ch/projects/as-consulting-rf/wiki">https://project.math.uzh.ch/projects/as-consulting-rf/wiki</a> waere eine unabhaengige Terminplanung gut.</p>
<p>Unter <a class="external" href="https://www.terminland.de/online-terminplaner/">https://www.terminland.de/online-terminplaner/</a> kann man kostenlos einen Kalender managen. Man kann auch Fragen stellen die beantwortet werden.</p>
<p>Erste Idee</p>
<ul>
<li>Ein Modul innerhalb von QFQ (Alternativ gibt es evtl. T3 Extensions?).</li>
<li>Es wird nur ein Kalender angezeigt und ein Form um den Termin einzutragen.</li>
<li>Reduzierung auf das noetigste, da nicht klar ist ob das wirlich ein Requirement ist (UZH verwendet Lotus).</li>
<li>Nice to have:
<ul>
<li>Owner traegt seine verfuegbaren Timeslots in einem dedizierten Zimbra Kalender ein.</li>
<li>Client kann aus diesen Terminen auswaehlen.</li>
<li>Das UI Reserviert den Termin im Zimbra Kalender</li>
<li>Falls alles mittels einer 'externen DB' (=Zimbra Kalender) laeuft, muesste QFQ nichts lokal speichern. Evtl. spiegelt Zimbra den Kalender in eine lokale Tabelle.</li>
</ul></li>
</ul>
<p>Zweite Idee</p>
<ul>
<li>Open source service selber hosten. Variante: <a class="external" href="https://demo.easyappointments.org/index.php">https://demo.easyappointments.org/index.php</a></li>
</ul>
<p>Use cases:</p>
<ul>
<li>Terminplanung fuer Prof / Studenten (nutzen i.d.R. keinen Lotus Kalender)</li>
<li>Heterogene Gruppen UZH, ETHZ, ... - typischerweise in einer 1:1 Beziehung (falls mehr als 2 Parteien involviert sind, ist doodle bessser).</li>
</ul> QFQ - Feature #7921 (Some day maybe): Rest API Export: URL kuerzer machenhttps://project.math.uzh.ch/issues/79212019-02-20T15:49:11ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Kann man die REST URL kuerzer machen durch einen Symlink oder eine Apache Config 'Alias'?</li>
</ul> QFQ - Bug #7402 (Some day maybe): thumbnail cache: outdated picture when permission denied and pe...https://project.math.uzh.ch/issues/74022018-11-30T16:11:17ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Wird ein Image ersetzt, hat neu aber den Owner 'root', ist folgendes Verhalten zu beobachten wenn QFQ das thumbnail neu rendert (versucht).</p>
<ul>
<li>QFQ erzeugt von einem Image ein thumbnail.</li>
<li>Der Webmaster kopiert eine neue Datei, mit dem gleichen Namen ueber die alte Datei.</li>
<li>Die neue Datei hat faelchslicherweise als owner=root gesetzt. Der Apache Prozess kann nicht darauf zugreifen.
<ul>
<li>Obwohl der Zugriff nicht funktioniert, gibt es keine Fehlermeldung (im Client) - gut waere ein 'broken image'.</li>
</ul></li>
</ul>
<ul>
<li>Der Browser zeigt die thumbnails nicht an (weiss).</li>
<li>Anschliessend werden die Permissions/Owner korrekt gesetzt.</li>
<li>Nach einem Reload im Browser werden die urspruenglichen Thmumbnails angezeigt (also von den alten Bildern)!</li>
</ul> QFQ - Bug #7281 (Some day maybe): Subrecords: on large screen separator line too shorthttps://project.math.uzh.ch/issues/72812018-11-18T09:09:38ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Subrecords: bei besonders breiten Seiten und keinem subrecord, wird die Linie unter dem plus Zeichen nur auf halbe Breite gerendert.</p> QFQ - Feature #7229 (Some day maybe): New FormElement.type: Buttonhttps://project.math.uzh.ch/issues/72292018-11-12T11:46:31ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Erscheint im Form als normales Formularelement</li>
<li>Kann oben in der Buttonleiste erscheinen</li>
<li>Button kann ein normaler Link sein</li>
<li>Button kann eine Download sein</li>
<li>Button kann speichern, loeschen, schliessen</li>
<li>Button kann ein Custom redirect haben</li>
<li>Button kann optional den 'wollen sie speichern'-Dialog unterdruecken.</li>
<li>Es muss sichergestellt sein das 'Dirty' Records abgeraeumt werden.</li>
<li>Es sollte moeglich sein mehrere Buttons in einer Gruppe darzustellen. Neu koennten die bestehenden Gruppen ein Label bekommen, so dass man neue Buttons zu den Systemgruppen hinzufuegen kann.</li>
</ul> QFQ - Feature #7108 (Some day maybe): QFQ Wrap Elementshttps://project.math.uzh.ch/issues/71082018-10-27T10:01:32ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>erklaeren wie welche elemente gewrapped werden.</li>
<li>Screenshots
<ul>
<li>static: untereinander, hinteinander</li>
<li>dynamicUpdate: innerhalb einer Zeile ein/ausblenden</li>
</ul></li>
</ul>
<ul>
<li>Optionen
<ul>
<li>BS Columns. Insbesondere was passiert wenn bscolumns=0</li>
<li>row, label, /label, input, /input, note, /note, /row</li>
<li>FE.parameter: FE_WRAP_ROW, FE_WRAP_LABEL, FE_WRAP_INPUT, FE_WRAP_NOTE</li>
</ul></li>
</ul>
<ul>
<li>Unit Test ob ALLE Kombinationen funktioneren.</li>
</ul> QFQ - Feature #6704 (Some day maybe): Upload Mode: Bilder in Notizen rechts sollen aktuellen Uplo...https://project.math.uzh.ch/issues/67042018-09-14T11:11:06ZElias Villiger
<p><p><a href="{{pathFileName:FR0:allbut:d}}"><img style="height: 48px;" src="{{pathFileName:FR0:allbut:d}}" /></a></p></p> QFQ - Feature #6084 (Some day maybe): New escape type: 'D' - convert datehttps://project.math.uzh.ch/issues/60842018-05-26T16:50:16ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Wenn das default date Format nicht 'yyyy-mm-dd' ist, wird eine Variable mit diesem Typ in der MySQL Format gewandelt.</p>
<p>projektStart='11.12.1314 01:23:45'</p>
<p>{{projektStart:F:alnumx:D}} >> '1314-12-11 01:23:45'</p>
<p>Die Variable muss ein gueltiges Datum sein, sonst ist die sanatize class verletzt.</p> QFQ - Feature #5895 (Some day maybe): Tutorial: List of all QFQ Featureshttps://project.math.uzh.ch/issues/58952018-05-01T15:00:23ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Link to 'Best Practice' - Beispiel(e) im Tutorial.md.</li>
<li>Link zu Manual.rst an die Stelle wo das Feature vollstaendig beschrieben wird.</li>
</ul>
<ul>
<li><a class="external" href="https://git.math.uzh.ch/typo3/qfq/blob/master/Documentation/Tutorial.rst">https://git.math.uzh.ch/typo3/qfq/blob/master/Documentation/Tutorial.rst</a></li>
</ul> QFQ - Feature #5892 (Some day maybe): QFQ should use T3 API to manipulate FE GROUP membershiphttps://project.math.uzh.ch/issues/58922018-05-01T13:20:51ZCarsten Rosecarsten.rose@math.uzh.ch
<p>QFQ sollte eine Moeglichkeit anbieten, die FE Groups in T3 zu einem User setzen zu koennen.</p>
<ul>
<li>Das setzen passiert beim aktuell eingeloggten User. </li>
<li>Die Aenderungen sollten sofort sichtbar sein.</li>
<li>Ein oder mehrere Gruppen setzen.</li>
<li>Falls Gruppen nicht angegeben sind, diese Membership loeschen.</li>
<li>Ein Best Practice sollte in der LDAP Extension zu finden sein.</li>
<li>Column '_feGroup'</li>
<li>Modifier:
<ul>
<li>add:<feGroup[,feGroup]> - add feGroup membership for current user.</li>
<li>delete:<feGroup[,feGroup]> - delete feGroup membership for current user.</li>
<li>set:<feGroup[,feGroup]> - set (remove non given) feGroup</li>
<li><string>_:<feGroup[,feGroup]> - set (remove non given) <string>_* classes. E.g. 'auto_:auto_admin,auto_reviewer' will remove all non given 'auto_*' groups and set the given one.</li>
<li>user:<feUser> - optional. If not given take the current user. If there is no user, do nothing.</li>
</ul></li>
</ul> QFQ - Feature #5851 (Some day maybe): Queue System implementieren: MQTT, RabbitMQhttps://project.math.uzh.ch/issues/58512018-04-21T12:47:24ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Parallel zu AutoCron soll ein Queue System fuer QFQ zur Verfuegung stehen.</p>
Ziele:
<ul>
<li>Vereinzelung von eingehenden Tickets. Bsp.: mehrere Tickets treffen quasi gleichzeitig ein, es soll aber immer nur eine Anfrage zu einer Zeit bearbeitet werden.</li>
<li>Monitoring welche Tickets bereits abgearbeitet sind. Neu erstellte Tickets bekommen eine ID, die angefragt werden kann.</li>
<li>Zugriffs Beschraenkung.</li>
<li>Tickets einstellen, von ausserhalb QFQ.</li>
</ul>
Anwendung:
<ul>
<li>Ein OS Cronjob erstellt ein Ticket, das PDFs auf Vorrat gerendert werden sollen. </li>
<li>Der Apache haelt keine Verbindung zum Client offen. </li>
<li>Ggfs. wird QFQ ohne Apache via Commandline aufgerufen. </li>
<li>Es muesste eine tt_content ID uebergeben werden.</li>
</ul> QFQ - Feature #5805 (New): TypeAHead SQL value instead of key storedhttps://project.math.uzh.ch/issues/58052018-04-10T13:16:59ZNicola Chiapolini
<p>Ich habe ein Textfeld mit folgenden Parametern:</p>
<p><code><br />typeAheadSql = SELECT shortname AS 'id', CONCAT(firstname, ' ', lastname, ', ', shortname) AS 'value' FROM _right_to_confer_phd WHERE lastname LIKE ? OR firstname LIKE ? or shortname LIKE ? ORDER BY lastname<br />typeAheadSqlPrefetch = SELECT CONCAT(firstname, ' ', lastname, ', ', shortname) AS value FROM _right_to_confer_phd WHERE shortname=?<br />typeAheadMinLength = 1<br />typeAheadLimit = 20<br />typeAheadPedantic = 0<br /></code></p>
<p>Die Suche funktioniert, aber beim Speichern wird der Value (firstname lastname, shortname) statt der id (shortname) gespeichert.<br />Problem scheint, dass JS im hidden Feld den Value statt der id einfügt...</p> QFQ - Feature #5452 (Some day maybe): Thumbnails from PDF: bad qualityhttps://project.math.uzh.ch/issues/54522018-02-16T09:34:55ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Wird ein Thumbnail von einem PDF gerendert (nur bei der ersten Seite) passiert das aktuell via GraphicsMagic.</p>
<p>Bei kleinen Thumbnails ist das kein Problem. Bei groesseren Bilder (width>500) sieht es nicht mehr gut aus.</p>
<p>Wird inkscape verwendet, sieht es anders schlecht aus: by default hat inkscape Probleme mit den LaTeX Schriften beim Import von PDF. Inkscape kann zusaetzlich importieren 'with poppler' - dann sieht es gut auch. Auf die schnelle haben BB,CR aber keine Commandline Option gefunden, das auch bei 'without-gui' zu aktivieren.</p> QFQ - Feature #5342 (Some day maybe): _link - with HTML Attributeshttps://project.math.uzh.ch/issues/53422018-02-02T17:50:28ZBenjamin Baerbenjamin.baer@math.uzh.ch
<p>data Attributes need to be set sometime.</p>
<p>Carsten proposed a general attribute option:</p>
<pre>
'p:...|c:someClass|a:data-target="www.google.ch" data-payload="stuff"' AS _link
</pre> QFQ - Feature #5160 (Some day maybe): QFQ collaborative / together.js, ShareJS, y-js, collaborati...https://project.math.uzh.ch/issues/51602017-12-23T16:04:11ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li><a class="external" href="https://togetherjs.com">https://togetherjs.com</a></li>
<li><a class="external" href="https://github.com/josephg/ShareJS">https://github.com/josephg/ShareJS</a></li>
<li><a class="external" href="http://y-js.org/#!/examples">http://y-js.org/#!/examples</a> (incl. RTE)</li>
<li><a class="external" href="https://www.npmjs.com/package/collaborative">https://www.npmjs.com/package/collaborative</a></li>
<li><a class="external" href="https://blog.pusher.com/build-collaborative-text-editor-javascript/">https://blog.pusher.com/build-collaborative-text-editor-javascript/</a></li>
</ul> QFQ - Feature #5129 (Some day maybe): Reports: SQL fuer x Achse und y Achsehttps://project.math.uzh.ch/issues/51292017-12-15T14:08:56ZBenjamin Baerbenjamin.baer@math.uzh.ch
<p>Moeglichkeit x und y Achse in einer SQL Stufe zu generieren und Kinder dann beide Values zu vererben</p>
<p>Nuetzlich fuer Tabellen die Horizontal und Vertikal generiert werden, bsp. Overview Points</p>
<p>Beispiel:<br /><pre>
10 {
xsql = SELECT id FROM Exercises
ysql = SELECT id FROM Students
rbeg = <tr>
xhead = <thead>
yhead = <tbody>
xfbeg = <th>
xfend = </th>
yfbeg = <td>
...
20 {
sql = SELECT grade FROM Grades WHERE idExercise = {{10x.id}} AND idStudent = {{10y.id}}
}
</pre></p> QFQ - Feature #4816 (Some day maybe): Templates for QFQ Reports (Tables, Radios, ..)https://project.math.uzh.ch/issues/48162017-10-25T11:33:18ZBenjamin Baerbenjamin.baer@math.uzh.ch
<p>Easy way to create bootstrap tables and other template based fluff.</p>
<p>Now:<br /><pre>
10 {
sql = SELECT v.id AS _id, m.nr, CONCAT(v.name, ' (', v.gr_id, ')'), CONCAT('p:cassignment&grId=', v.gr_id, '&semId=',
v.sem_id, '|S|s') AS _link, CONCAT('p:exercisesheets&vId=', v.id, '&gr_id=', v.gr_id, '&semId=', v.sem_id,
'|E|s') AS _link
FROM vorlesung AS v, gruppe_member AS gm, modul AS m
WHERE v.sem_id = 35
AND v.v_typ = 'VL'
AND v.id = gm.x_id2
AND gm.gr_id = 896
AND m.id = gm.x_id
head = <table class="table table-condensed table-striped">
<thead>
<tr>
<th width="70">Modul</th>
<th>Name</th>
<th width="50"></th>
<th width="50"></th>
</tr>
</thead>
<tbody>
rbeg = <tr>
rend = </tr>
fbeg = <td>
fend = </td>
tail = </tbody></table>
}
</pre></p>
<p>Then:</p>
<pre>
10 {
sql = SELECT v.id AS _id, m.nr, CONCAT(v.name, ' (', v.gr_id, ')'), CONCAT('p:cassignment&grId=', v.gr_id, '&semId=',
v.sem_id, '|S|s') AS _link, CONCAT('p:exercisesheets&vId=', v.id, '&gr_id=', v.gr_id, '&semId=', v.sem_id,
'|E|s') AS _link
FROM vorlesung AS v, gruppe_member AS gm, modul AS m
WHERE v.sem_id = 35
AND v.v_typ = 'VL'
AND v.id = gm.x_id2
AND gm.gr_id = 896
AND m.id = gm.x_id
type = table
head = <th width="70">Modul</th>
<th>Name</th>
<th width="50"></th>
<th width="50"></th>
}
</pre>
<p>list</p>
<p>Now:<br /><pre>
10 {
sql = SELECT p.name, ', ', p.vorname
FROM person AS p
WHERE ....
head = <ul>
rbeg = <li>
rend = </li>
tail = </ul>
}
</pre></p>
<p>Then: <br /><pre>
10 {
sql = SELECT p.name, ', ', p.vorname
FROM person AS p
WHERE ....
type = list
}
</pre></p> QFQ - Feature #4640 (Some day maybe): Rename System Formshttps://project.math.uzh.ch/issues/46402017-09-25T14:22:33ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Form, FormElement, Cron ... umbenennen zu _Form, _FormElement, _Cron</p> QFQ - Feature #4551 (Some day maybe): Set 'pills' via dynamicUpdate to show/hide/disabledhttps://project.math.uzh.ch/issues/45512017-09-17T15:43:07ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Bug #4546 (Some day maybe): NH: SIP storage is destroyed https://project.math.uzh.ch/issues/45462017-09-16T09:00:14ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Nicolas hatte einige Tage lang den Effekt, das die SIPs immer mal wieder ungueltig waren. Vermutlich hat QFQ die SIP storage abgeraeumt weil ein Angriff erkannt wurde.</p> QFQ - Feature #4446 (Some day maybe): New FE get same feIdContainerId as last modifed FEhttps://project.math.uzh.ch/issues/44462017-09-09T15:10:40ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Wenn ein neues FE angelegt wird, als container denjenigen Vorschlagen, den das zuletzt editierte FE hat.</p> QFQ - Feature #4445 (Some day maybe): template group: Option to simulate fieldsethttps://project.math.uzh.ch/issues/44452017-09-09T15:07:37ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Macht es Sinn das Label zu rendern ( so dass kein fieldset aufwendig angelegt werden muss)?</p>
<p>Man koennte eine Option setzen, um eine TemplateGroup das Verhalten eines Fieldsets zu geben.</p> QFQ - Feature #4435 (Some day maybe): Report: striptags - specify allowed tagshttps://project.math.uzh.ch/issues/44352017-09-09T13:41:29ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Bei 'AS _striptags' koennte man die erlaubten Tags anhaengen mit ':'. Bsp:</p>
<pre>
AS '_striptags:<a><br>'
</pre>
<p>Fuer das Manual:</p>
<pre>
This function does not modify any attributes on the tags that you allow using allowable_tags, including the style and onmouseover attributes that a mischievous user may abuse when posting text that will be shown to other users.
</pre> QFQ - Bug #4138 (Some day maybe): _style fehlthttps://project.math.uzh.ch/issues/41382017-07-31T08:50:53ZBenjamin Baerbenjamin.baer@math.uzh.ch
<p>Wir haben auf der Math Seite noch eintraege mit _style (UL|Text) die es noch nicht gibt im QFQ.</p>
<p>Beispiel waere Vita:<br /><a class="external" href="https://webwork16.math.uzh.ch/math/work/index.php?professur&key1=8882">https://webwork16.math.uzh.ch/math/work/index.php?professur&key1=8882</a></p>
<p>Der ganze Block of text ist eine Reihe in der Auswertung, urspruenglich: "UL| ganzer Text" und ich nehme an das UL hat dann die einzelnen \n in listen items eingeteilt.</p> QFQ - Bug #4122 (Some day maybe): _file: Render Mode hat keinen Effekthttps://project.math.uzh.ch/issues/41222017-07-24T08:50:09ZBenjamin Baerbenjamin.baer@math.uzh.ch
<p>Siehe: <a class="external" href="https://webwork16.math.uzh.ch/math/work/index.php?preprint&key1=2010">https://webwork16.math.uzh.ch/math/work/index.php?preprint&key1=2010</a></p>
<p>Download Button wird auch mit leerem File gerendert.</p> QFQ - Feature #3495 (Some day maybe): Predifined Parameter werden nicht in '+' (add new record) S...https://project.math.uzh.ch/issues/34952017-04-03T21:24:21ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Problem: Auf der Lehrkredit Seite 'Setup' koennen Ggroup Records angelegt werden. In dem '+' auf der Seite ist ein grId=22 als Predefined Parameter definiert, der jeweils im Record zur Klassifizierung mit gespeichert werden muss. Bis dahin ok. Wird nun bestehender Record via Edit aufgerufen und auf dem bestehenden Record das '+' gedrueckt, bekommt der neue Record KEIN grId=22. D.h. die vordefinierten Werte fehlen.</p>
<p>Beispiel</p> QFQ - Feature #1623 (Some day maybe): RealURLhttps://project.math.uzh.ch/issues/16232016-02-05T12:44:23ZCarsten Rosecarsten.rose@math.uzh.ch
URL Path:
<ul>
<li>Language</li>
<li>Type: standard, print, wide (wie standard, nur breiter), pure (kein HTML), xml</li>
<li>koennen die DBQ2 / FORM2 Parameter genauso verwendet werden wie bisher: GET & POST</li>
<li>Optional: Gibt es Aenderungen wie DBQ2 interne Links bauen muss? Bsp.: bisher "index.php?id=1234". Mit Real URL soll der Link zeigen auf "www.math.uzh.ch/vorleseung/mat123"</li>
</ul> QFQ - Feature #1253 (Some day maybe): QF: Colorpickerhttps://project.math.uzh.ch/issues/12532015-10-19T08:01:50ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Feature #1251 (Some day maybe): QF: Combohttps://project.math.uzh.ch/issues/12512015-10-19T08:01:23ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Feature #1234 (Some day maybe): QF: Record numbering: Im Grid soll in Spalte 1optional die...https://project.math.uzh.ch/issues/12342015-10-16T13:31:14ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Feature #955 (Some day maybe): QF: Notizen vor/nach dem Formhttps://project.math.uzh.ch/issues/9552015-08-28T09:20:33ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Es sollen Notizen ueber/im/unterhalb des Forms ausgegeben werden koennen.</li>
<li>Die Notizen sind statischer Text oder SQL Query</li>
<li>Notizen innerhalb eines Forms sind eine Art Formularelement ohne Eingabemeoglichkeit.</li>
</ul>