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 #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 #15812 (New): Upload: download button appears after uploading filehttps://project.math.uzh.ch/issues/158122023-03-16T12:01:35ZJan Haller
<p>Weiterentwicklung von <a class="issue tracker-1 status-1 priority-2 priority-default" title="Bug: Upload: download button not shown after pressing save (New)" href="https://project.math.uzh.ch/issues/15795">#15795</a>:<br />Nach dem Upload (Datei auswaehlen, noch kein Save gedrueckt) soll ein Downloadbutton erscheinen, um die Datei direkt wieder herunzerzuladen.</p>
<p><img src="https://project.math.uzh.ch/attachments/download/7532/clipboard-202303161301-3ezmi.png" alt="" /></p> QFQ - Bug #15050 (New): Farbe Textfeld grau bei Wechsel von readonly auf show https://project.math.uzh.ch/issues/150502022-11-18T15:05:39ZJan Haller
<p>Textfeld mit TypeAhead bleibt grau, wenn mit Dynamic Update von readonly auf show gewechselt wird. Ursache <input background-color:"transparent"> (siehe Screenshot).</p> QFQ - Bug #15047 (New): {{allRequiredGiven:V}} = 0, wenn Note Formelement auf required isthttps://project.math.uzh.ch/issues/150472022-11-18T10:11:34ZPascal Rössler
<p>Wenn ein Note Formelement auf mode=required hat, ist {{allRequiredGiven:V}} immer = 0. Da man ein Formelement vom Typ Note gar nicht ausfüllen kann.</p> QFQ - 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 - Bug #11195 (New): Dynamic Update: Note not updated if new text is empty (v20.4)https://project.math.uzh.ch/issues/111952020-09-25T09:14:05ZNicola Chiapolini
<p>We had a dynamic updated note-Element with value</p>
<p><code>#!report<br />10.sql = SELECT notes FROM rooms WHERE building = '{{building:FSRD:alnumx}}' AND room = '{{room:FSRD:alnumx}}'<br />10.twig = {{ result.0.notes }}<br /></code></p>
<p>The note-Element is not updated, if the notes is empty or the query does not return a row.<br />The following code works:</p>
<p><code>#!report<br />10.sql = SELECT notes, RAND() AS dummy FROM rooms WHERE building = '{{building:FSRD:alnumx}}' AND room = '{{room:FSRD:alnumx}}'<br />10.twig = <span>{{ result.0.notes }}</span><br /></code></p>
<p>(Since we only update via T3 Extension store, we are still running 20.4 so this might be fixed by now.)</p> QFQ - Feature #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 #7456 (Some day maybe): Todos in Code: solve or make tickethttps://project.math.uzh.ch/issues/74562018-12-11T09:23:08ZMarc EggerQFQ - 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 #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 #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 - 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 #3567 (Some day maybe): 'Save', 'Close', 'New' als FormElementhttps://project.math.uzh.ch/issues/35672017-04-13T10:47:15ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Feature #3537 (Some day maybe): SHOW COLUMNS FROM tableName - Extend '{{!...' definitionhttps://project.math.uzh.ch/issues/35372017-04-09T08:09:34ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Ziel war urspruenglich ein TypeAhead fuer Spaltennamen im Form 'FormElement' zu implementieren.<br />Bei der folgenden Beschreibung ist nicht klar ob sich der Aufwand lohnt das zu implementieren:</p>
<pre>
{{!'%s',1,'id'|'%s %s %s',1,2,3,'value'|SHOW COLUMNS FROM {{SELECT f.tableName FROM Form AS f WHERE f.id={{formId:S0}} LIMIT 1}} }}
</pre><br />Erklaerung:
* Kommt nach dem '{{!' kein SQL Schluesselwort, wird der String nach '|' explodiert.
* Ab dem ersten Einzelelement welches mit einem SQL Schluesselwort beginnt, werden alle folgende Einzelelemente wieder zu einem Element zusammengesetzt.
* Die vorderen Einzelelemente sind printf() Anweisungen, mit der Ergaenzung das falls der letzte Parameter (z.B. 'id') in Ticks steht, dies der neue Spaltenname ist.
* Die Nummern nach dem Formatstring sind die Spaltenindizes des Resultsets. QFQ - Feature #3273 (Some day maybe): Dirty Flag in Formhttps://project.math.uzh.ch/issues/32732017-03-04T13:30:44ZElias Villiger
<p>Gewünscht ist die Möglichkeit, innerhalb eines FormElements abzufragen, ob der aktuelle Record Änderungen enthält, die noch nicht gespeichert wurden. Das entsprechende dirty flag muss natürlich dynamic update tauglich sein.</p>
<p>Gebraucht für HMS:</p>
<blockquote>
<p>Der "Submit" button einer application sollte nur dann aktiv sein, wenn der Record gespeichert wurde. Andernfalls wird eine Notiz angezeigt, dass der Record zuerst gespeichert werden muss.</p>
</blockquote> 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 #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>