Project @ iMath: Issueshttps://project.math.uzh.ch/https://project.math.uzh.ch/favicon.ico?16668783892024-02-27T15:36:32ZProject @ iMath
Redmine QFQ - Feature #18013 (New): Tablesorter: column view selectorhttps://project.math.uzh.ch/issues/180132024-02-27T15:36:32ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Der tablesorter merkt sich die Suchbegriffe und ausgewaehlten Spalten</li>
<li>Wird in einer Spalte A ein Suchbegriff eingegeben und diese Spalte ausgeblendet, wird anschliessend immer noch das gefilterte Ergebnis angezeigt.</li>
</ul>
<p>Das ist verwirrend!!!</p>
<p><img src="https://project.math.uzh.ch/attachments/download/9352/clipboard-202402271633-qfxra.png" alt="" /></p> QFQ - Bug #17945 (New): Values given to the parameters: typeAheadLimit and typeAheadMinLength are...https://project.math.uzh.ch/issues/179452024-02-19T09:12:49ZShweta Dayal
<p>typeAheadLimit and typeAheadMinLength are not showing the values defined in first layer of form parameters</p>
<p>Precondition:<br />Have type head field in the form</p>
<p>Steps: <br />1. open form <br />2. edit parameter in layout pill<br />3. Assign values: <br />typeAheadLimit=3<br />typeAheadMaxLength=11<br />4. Save</p>
<p>Expected results: The assigned values should be applied i.e. data-typeahead-limit=11 and data-typeahead-minlength=3</p>
<p>Actual results: The assigned values are not applied, it still shows the default values data-typeahead-limit=20 and data-typeahead-minlength=2</p>
<p>/scratch/share/system/projekte/qfq/selenium/image/typeaHeadLimit&MaxLength.png<br /><img src="https://project.math.uzh.ch/attachments/download/9273/clipboard-202402191001-lmust.png" alt="" /><br />/scratch/share/system/projekte/qfq/selenium/image/inspect.png<br /><img src="https://project.math.uzh.ch/attachments/download/9274/clipboard-202402191004-6tq6k.png" alt="" /></p> QFQ - Feature #17250 (New): Refactor wrapping of Report SQL Contenthttps://project.math.uzh.ch/issues/172502023-11-08T21:38:47ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li><code>rwrap=<tr>|[sep]|</tr></code> - like <code>rbeg,rsep,rend</code></li>
<li><code>rwrapr=<tr>|[sep]|</tr></code> - like <code>rbeg,rsep,renr</code></li>
<li><code>fwrap=<td>|[sep]|</td></code> - like <code>fbeg,fsep,fend</code></li>
<li><code>wrap=<table>|</table></code> - like <code>head,tail</code></li>
<li><code>swrap=<table>|</table></code> - like <code>shead,stail</code></li>
</ul>
<ul>
<li>Die <code>wrap</code> fuellen head,tail,rbeg, ... - wird zusaetzlich zu <code>.wrap.</code> ein spezifisches <code>rbeg</code> gesetzt, wird der wrap Wert ueberschrieben. Bsp<br /><pre>
wrap=<table>|</table>
tail=</div></table>
</pre></li>
</ul>
<p>Ist identisch mit</p>
<pre>
head=<table>
tail=</div></table>
</pre>
<p>Neu Templates:</p>
<ul>
<li><code>template=table,jarray,jobject</code>
<ul>
<li><code>table</code>: <code>head,tail,rbeg,renr,fbeg,fend</code> werden mit <code><table>,</table>,<tr>,</tr>,<td>,</td></code> gefuellt.
<ul>
<li>Option: <code>template=table|<thead><th>col1</th><th>col2</th></tr></thead></code> fuegt einen <thead> ein.</li>
</ul></li>
</ul>
<ul>
<li>Bei diesen beiden ist nicht klar wie nested Queries eingebettet werden:
<ul>
<li><code>jarray</code>: Aus Rows und Columns wird ein Json Array erzeugt</li>
<li><code>jobject</code>: Aus Rows und Columns wird ein Json Object erzeugt</li>
</ul></li>
</ul></li>
</ul> QFQ - Feature #17237 (New): Picture: remove backgroundhttps://project.math.uzh.ch/issues/172372023-11-05T16:55:43ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Fuer das Freistellen von Bilder (Fotowand) waere ein automatischer Service wuenschenswert.</p>
<ul>
<li><a class="external" href="https://ai-diver.de/bilder-freistellen/">https://ai-diver.de/bilder-freistellen/</a> - Vergleich von diversen AI Services.</li>
<li>Es koennte eine zentrale Instanz installiert werden und die einzelnen QFQ Installationen holen dort die Bilder ab.</li>
</ul> QFQ - Feature #17230 (New): FE: TAG / itemlist Elementhttps://project.math.uzh.ch/issues/172302023-11-03T07:45:53ZCarsten Rosecarsten.rose@math.uzh.ch
<p><img src="https://project.math.uzh.ch/attachments/download/8701/clipboard-202311030845-hshro.png" alt="" /></p>
<p>Sieht gut aus, nette Darstellung</p> QFQ - Feature #17219 (ToDo): Merge Open Brancheshttps://project.math.uzh.ch/issues/172192023-10-31T16:14:03ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Feature #17216 (In Progress): Replace Typo3 by template enginehttps://project.math.uzh.ch/issues/172162023-10-31T16:01:07ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li><a class="external" href="https://lumen.laravel.com/docs/10.x">https://lumen.laravel.com/docs/10.x</a></li>
<li>phptemplate</li>
</ul> QFQ - Feature #17202 (ToDo): Steps or timeline functionhttps://project.math.uzh.ch/issues/172022023-10-31T12:20:12ZEnis Nuredini
<p>Manchmal gibt es Prozesse in Tools die mehrere Teilschritte und Seitenwechsel haben bis der ganze Prozess abgeschlossen ist. In solchen Situationen wäre eine Art Timeline hilfreich mit welcher die Teilschritte und der aktuelle Stand angezeigt wird. Im Medtool wird eine Custom Lösung verwendet für so eine Timeline (Zu finden im Admin Formular der MA).</p>
<p>Eine zweite Lösung wäre die Verwendung von Bootstrap Pagination als Pfeilbuttons.</p> QFQ - Bug #17201 (ToDo): FE Upload readonly not visiblehttps://project.math.uzh.ch/issues/172012023-10-31T12:16:43ZEnis Nuredini
<p>Das Upload - Formelement ist bei Verwendung vom Mode readonly nicht klickbar aber auch nicht sichtbar dass es im readonly mode ist. Dies sollte sichtbar sein.</p> QFQ - Feature #17146 (ToDo): Ticket Apphttps://project.math.uzh.ch/issues/171462023-10-20T14:03:31ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Ruth empfiehlt Grit dringend ein Ticketsystem um Reminder/History beim Finanztool zu haben.</li>
<li>Medtool waere sicher auch ein Kandidat die gut Tickets einsetzen koennen.</li>
<li>Frage ist nach einen Konzept wie eine 'QFQ Ticket App' aussehen koennte?</li>
<li>Das neue I-MATH Mega Tool 'Notez' (manage) hat ebenfalls Ticket Character. </li>
<li>In Notez soll auch eine Emailintegration vorhanden sein. Emailintegration wird auch von Medtool angefragt.</li>
</ul>
<p>Gedanken:</p>
<ul>
<li>Ticket App sollte direkt aus dem Tool erreichbar sein: Tickets anlegen (Content uebernehmen), per Click auf bestehende Tickets zugreifen, Verlinkung zu Ticket loeschen koennen.</li>
<li>Option 'internal': QFQ Appstore - Integration direkt in MY, Finanztool, usw...
<ul>
<li>+ Fuer uns Tool Entwickler die gewohnte Vorgehensweise</li>
<li>- Es gibt noch keinen QFQ App Store/ Konzept. D.h. wir koennen aktuell nicht via einem App Store verteilen.</li>
</ul></li>
</ul>
<ul>
<li>Option 'external': Eigenstaendige T3 Instanz, Kommunikation via REST
<ul>
<li>+ Mehrere Tools reporten in eine Ticket-App - ein User der in mehreren Tools aktiv ist hat so eine bessere Gesamtuebersicht.</li>
</ul></li>
</ul> QFQ - Feature #17145 (In Progress): Konzept QFQ App Storehttps://project.math.uzh.ch/issues/171452023-10-20T12:55:55ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Feature #17112 (New): Loading icons CSS libraryhttps://project.math.uzh.ch/issues/171122023-10-13T15:08:17ZJan Haller
<p><a class="external" href="https://github.com/tobiasahlin/SpinKit">https://github.com/tobiasahlin/SpinKit</a></p>
<p>Für Auslieferung mit QFQ?</p>
<p>Reine CSS library, MIT license, umfasst 12 verschiedene Loading Icons.</p>
<p>Beispiele:</p>
<p><img src="https://project.math.uzh.ch/attachments/download/8571/clipboard-202310131704-yonsr.png" alt="" /><br /><img src="https://project.math.uzh.ch/attachments/download/8572/clipboard-202310131705-mhgo0.png" alt="" /><br /><img src="https://project.math.uzh.ch/attachments/download/8573/clipboard-202310131705-itnh8.png" alt="" /><br /><img src="https://project.math.uzh.ch/attachments/download/8574/clipboard-202310131706-9djrx.png" alt="" /></p> QFQ - Feature #17108 (New): Sanitize class replace dangerous charactershttps://project.math.uzh.ch/issues/171082023-10-12T15:14:37ZJan Haller
<p>Die bestehenden Sanitize Klassen sollen erweitert werden, um mehr Flexibilität zu ermöglichen. So soll durch eine neue (default) Klasse ermöglicht werden, dass potenziell gefährliche Zeichen(folgen) durch HTML codierte Zeichen ersetzt werden.</p> QFQ - Feature #17078 (Priorize): QFQ Support: rclonehttps://project.math.uzh.ch/issues/170782023-10-08T08:20:46ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li><a class="external" href="https://rclone.org/">https://rclone.org/</a></li>
<li>Damit sollten wir super easy auf Nextcloud/GoogleDrive/OneDrive zugreifen koennen.</li>
<li>Konzept erstellen:
<ul>
<li>PDFs von QFQ erzeugen und ablegen.</li>
<li>Was ist sinnvoller: a) einzelne rclone Aufrufe oder b) einen rclone Daemon / mount? Gut waere beide Optioen.</li>
<li>Waere ein Abbildung der Verzeichnisstruktur in einer Tabelle sinnvoll</li>
</ul></li>
</ul> QFQ - Bug #16911 (New): TG wants to insert record but nothing was changedhttps://project.math.uzh.ch/issues/169112023-09-21T15:20:21ZPhilipp Gröbelbauer
<p>Template group is trying to do an Insert, even though none of its fields have been changed.<br />As a result, an empty string is passed to the insert statement for what should be a date value.<br />This produces the following error, which does not appear in qfq.log:</p>
<p><img src="https://project.math.uzh.ch/attachments/download/8428/clipboard-202309211608-fobf3.png" alt="" /></p>
<p>Error occurred on <a class="external" href="https://webwork22.math.uzh.ch/my/finanztool-anstellungen">https://webwork22.math.uzh.ch/my/finanztool-anstellungen</a>, when saving an employment record while leaving one of the date fields on the 'Pauschalzahlungen' tab empty.<br />(Error no longer occurrs, because of the following checks in the TG afterSave:</p>
<p><img src="https://project.math.uzh.ch/attachments/download/8429/clipboard-202309211714-eurla.png" alt="" /></p>
<p>(Remove these if you want to reproduce error)</p>
<p>There is a select FE (pauschal_cost_type_%d) in this template group. Disabling that FE fixes the error, suggesting that it is somehow responsible for initiating the faulty insert request.</p> QFQ - Feature #16849 (New): Mail: check FROM address for pattern or specific sender addresshttps://project.math.uzh.ch/issues/168492023-09-08T18:09:06ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Von den ZI wird gefordert das nur Emailadressen von Shared-Mailboxen als Absender verwendet werden duerfen.</li>
<li>Damit nicht so schnell Fehler auftreten, soll neue eine Liste von Adressen / Pattern in der QFQ config hinterlegt werden koennen, gegen die getestet werden</li>
</ul> QFQ - Bug #16734 (New): Form: Label 'for' muss auf 'id' zeigen - aktuell geht es auf 'name'.https://project.math.uzh.ch/issues/167342023-08-20T09:36:50ZCarsten Rosecarsten.rose@math.uzh.ch
<p><img src="https://project.math.uzh.ch/attachments/download/8245/clipboard-202308201136-2ihmb.png" alt="" /></p> QFQ - Bug #16620 (New): wkhtml: PDF shows QFQ FE editing form if BE User is logged inhttps://project.math.uzh.ch/issues/166202023-07-17T08:41:32ZJan Haller
<p>Wenn aus dem Inhalt des tt-content mit dem Parameter 'type=2' ein PDF generiert wird, enthält dieses Informationen von Typo3, wenn der User im BE eingeloggt ist.</p>
<p>Code QFQ:</p>
<p><img src="https://project.math.uzh.ch/attachments/download/8174/clipboard-202307171039-wwgit.png" alt="" /></p>
<p>PDF (eingeloggt in T3 BE):</p>
<p><img src="https://project.math.uzh.ch/attachments/download/8175/clipboard-202307171040-wut50.png" alt="" /></p>
<p>PDF (ausgeloggt in T3 BE):</p>
<p><img src="https://project.math.uzh.ch/attachments/download/8176/clipboard-202307171040-gutam.png" alt="" /></p> QFQ - Bug #16580 (New): custom.css Typo3 handlinghttps://project.math.uzh.ch/issues/165802023-07-07T10:44:36ZEnis Nuredini
<p>Dies ist ein Beispiel der Einbindung vom custom.css in LSZGS. Folgender Eintrag erfolgt in Constants vom Template:</p>
<pre>
# Instance Dependent: absolute path to custom css and images
[request.getNormalizedParams().getHttpHost() == 'webwork22.math.uzh.ch']
cd.stylesheet = https://webwork22.math.uzh.ch/lszgs/fileadmin/template/cd/lszgs.custom.css
[end]
[request.getNormalizedParams().getSiteUrl() == 'https://join.lszgs.uzh.ch/']
cd.stylesheet = https://join.lszgs.uzh.ch/fileadmin/template/cd/lszgs.custom.css
[end]
[request.getNormalizedParams().getSiteUrl() == 'https://join.lszgs.uzh.ch/preview/']
cd.stylesheet = https://join.lszgs.uzh.ch/preview/fileadmin/template/cd/lszgs.custom.css
[end]
</pre>
<p><strong>Achtung</strong> : Der Pfad sollte sein `fileadmin/template` (template, nicht templates).</p>
<p>Falls weitere spezielle Elemente mit einem fileadmin beginnenden relativen Pfad gibt, dann kann in Setup die gleiche Abfrage verwendet werden.</p>
<p>Anpassungen müssen noch bei diversen Tools umgesetzt werden. Checkliste im Anschluss:</p> QFQ - Bug #16572 (New): Filter bei qfq-vertical/qfq-vertical-text funktioniert nicht richtighttps://project.math.uzh.ch/issues/165722023-07-06T10:23:46ZEnis Nuredini
<p>Bei Verwendung folgender Header in einer Tabelle funktioniert die Sortierfunktion nicht richtig und es wird nur auf die eine Richtung sortiert.<br /><pre>
<th class="qfq-vertical filter-false"><span class="qfq-vertical-text">
</pre></p>
<p>Ebenfalls sollten die Sortierpfeile zu unterst sein und nicht eingemittet.</p>
<p>Beim Laden in Firefox werden die Pfeile manchmal nicht neben der Bezeichnung geladen sonder darüber. Korrigiert sich sobald die Entwickler Tools im Browser geöffnet werden.</p> QFQ - Bug #16348 (New): Typeahead + extraButtonInfo: no rendered as Button Grouphttps://project.math.uzh.ch/issues/163482023-06-02T21:19:16ZCarsten Rosecarsten.rose@math.uzh.ch
<p><img src="https://project.math.uzh.ch/attachments/download/8008/clipboard-202306022317-89gfi.png" alt="" /></p>
<p>Vermutlich passiert bei <code>extraButtonInfo</code> und vermutlich auch bei <code>extraButtonLock</code></p> QFQ - Feature #16172 (New): Tablesorter: Update {{10.10.line.count}} after every sorthttps://project.math.uzh.ch/issues/161722023-05-10T08:41:01ZBenjamin Baerbenjamin.baer@math.uzh.ch
<p>renumber rows after every sort:</p>
<p><a class="external" href="https://stackoverflow.com/questions/6549518/jquery-tablesorter-with-row-numbers">https://stackoverflow.com/questions/6549518/jquery-tablesorter-with-row-numbers</a></p>
<p>To make it apply everytime, we either need some rules (ie., row numbers always on first column + add a class to table with qfq-renumber) or mark the row in some way (for instance, having # as the title row)</p> QFQ - Bug #16114 (New): Subrecords / columns with buttons: elements on top of each otherhttps://project.math.uzh.ch/issues/161142023-04-27T07:09:23ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Ist das etwas das wir durch CSS vermeiden koennen?</li>
</ul>
<p><img src="https://project.math.uzh.ch/attachments/download/7785/clipboard-202304270908-fd741.png" alt="" /></p>
<pre>
!SELECT gm.id AS _id
, CONCAT('p:lecture&feUser=', IFNULL(acc.name,'')
, IF(ISNULL(gma.id), '|r:3', '|s|b|G:glyphicon-user|o:Switch User (visible only to site admin)')
, '|t:<span>', p.name,', ', p.vorname, '</span>'
, '|q:Really switch user to ', p.name,', ', p.vorname) AS 'Tutor|40|link'
, CONCAT( LEFT(w.day,3), ' ', r.raum, '<br>', DATE_FORMAT( zr.von, '%H:%i-'
), DATE_FORMAT( zr.bis,'%H:%i')) AS "Day/Time/Room|50|nostrip"
, grSplit.name AS 'Split group'
, IF(gm.x_id4=9980,'checked-gray.gif','') AS "SemAssi Edit Lecture|icon"
, gm.x_id5 AS 'Grading Workload'
, gm.x_id7 'SAP Ex.-Group'
FROM
</pre> QFQ - Feature #16036 (New): Remove JS: jQWidgetshttps://project.math.uzh.ch/issues/160362023-04-18T09:35:45ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Bitte die JS Lib 'jQWidgets' entfernen.</p>
<ul>
<li>JS aus dem Build nehmen (grunt/npm)</li>
<li>Im PHP Code die Typen 'dateJQW, datetimeJQW, gridJQW' entfernen.</li>
<li>Verweise in der QFQ Doku entfernen</li>
</ul> QFQ - Feature #16018 (New): Form in multi column layouthttps://project.math.uzh.ch/issues/160182023-04-15T12:53:16ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Bsp: <a class="external" href="https://www.jambit.com/arbeiten-bei-jambit/bewerbung/?id=690637">https://www.jambit.com/arbeiten-bei-jambit/bewerbung/?id=690637</a>. - Mobil ist das dann einspaltig.</li>
<li>QFQ sollte das einfach koennen.</li>
<li>File Upload ist drag'n'drop.</li>
</ul> QFQ - Feature #15969 (New): Auto Update Stored Procedurehttps://project.math.uzh.ch/issues/159692023-04-06T07:58:57ZEnis Nuredini
<p>Wird eine QFQ Instanz als ganzes kopiert und ein SQL Dump von einer DB zur anderen importiert, so fehlen die Stored Procedures. Bisher wurden diese manuell übertragen.</p>
<p>1) Neu braucht es in der QFQ Extension Config unter dem Tab Debug bei database.update eine dritte Option 'autoDb'. Es gibt schon 'auto' und 'always'. 'auto' würde alles triggern beim DB Update inkl. einem Check ob Stored Procedures existieren und diese erstellen falls nicht (sollte bestehender Code existieren). 'autoDb' führt alles aus wie bisher mit Ausnahme der Stored Procedures. Bei 'always' wird sowieso alles ausgeführt und das bei jedem Load wie gewohnt. Permissions werden vorausgesetzt damit Typo3 die Stored Procedures erstellen kann.</p>
<p>2) Was noch ein Thema war: Triggern der Create Stored Procedures falls QFQ Fehlermeldung erscheint dass eine aufzurufende SQL Function nicht gefunden wurde (Idee wurde wieder verworfen.). Danach ein Check ob das Create Stored Procedures erfolgreich ausgeführt wurde.</p> QFQ - Feature #15924 (New): FormEditor: tablesorter subrecord formelement - filter per formhttps://project.math.uzh.ch/issues/159242023-04-02T09:28:06ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Im Subrecord formelement die html-id per form konfigurieren. Der Filter sollte nicht uber verschiedene Forms der gleich sein</p> QFQ - Feature #15904 (New): QFQ: T3 V12 Compatibilityhttps://project.math.uzh.ch/issues/159042023-03-30T07:07:56ZEnis Nuredini
<p>QFQ ist nicht kompatibel mit T3 V12. Hier müssen Anpassungen vorgenommen werden.</p>
<p>Testseite verfügbar: <a class="external" href="http://webwork22.math.uzh.ch/typo12/typo3/">http://webwork22.math.uzh.ch/typo12/typo3/</a></p>
<p>Extension ist schon mal auf der Testseite hinzugefügt, damit es in Typo3 keine Fehlermeldung (Access denied) gibt mussten in folgenden Files (ext_tables.php, ext_localconf.php, tt_content-php) Zeilen Code auskommentiert werden:<br /><pre>
if (!defined('TYPO3_MODE')) {
# die('Access denied.');
}
</pre></p>
<p>Upload über T3 Backend ist aktuell nicht mehr möglich, nur das einfügen ins Verzeichnis typo3conf/ext/</p> QFQ - Feature #15903 (New): UZH CD: T3 V12 Compatibilityhttps://project.math.uzh.ch/issues/159032023-03-30T07:00:25ZEnis Nuredini
<p>UZH CD ist aktuell nicht kompatibel mit T3 V12. Hier gibt es Handlungsbedarf.</p>
<p>Verfügbare Testseite: <a class="external" href="http://webwork22.math.uzh.ch/typo12/typo3/">http://webwork22.math.uzh.ch/typo12/typo3/</a></p>
<p>Extension ist schon mal auf der Testseite hinzugefügt, damit es in Typo3 keine Fehlermeldung (Access denied) gibt mussten in folgenden Files (ext_tables.php) Zeilen Code auskommentiert werden:<br /><pre>
if (!defined('TYPO3_MODE')) {
# die('Access denied.');
}
</pre></p>
<p>Upload über T3 Backend ist aktuell nicht mehr möglich, nur das einfügen ins Verzeichnis typo3conf/ext/</p> QFQ - Bug #15866 (New): FE.type=checkbox: error message 'empty sql1, itemlist' even if FE is hidden.https://project.math.uzh.ch/issues/158662023-03-23T12:18:06ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Sollten wir Fehlermeldungen beim Bau des Elements unterdruecken, wenn ein FE Element 'hidden' ist?</p>
<p>Konkret ging es darum das sql1/itemList leer war, in dem Modus war es aber bereits ausgeblendet. Die Markierungen im 2. Screenshot war der Fix das die Exception nicht geworfen wird.</p>
<p><img src="https://project.math.uzh.ch/attachments/download/7576/clipboard-202303231314-ca6ft.png" alt="" /></p>
<p><img src="https://project.math.uzh.ch/attachments/download/7577/clipboard-202303231315-1hj9l.png" alt="" /></p> QFQ - Feature #15534 (New): FormEditor > CodeMirror > a) sql1: 'Home/End' jumps to technical line...https://project.math.uzh.ch/issues/155342023-02-12T17:05:01ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Hat man im CodeMirror eine Textzeile die im Editor umgebrochen wird und der Cursor steht auf (1), dann springt Taste 'home' auf (2). Gewuenscht waere (3). Es gibt bestimmt eine Option in CodeMirror die man setzen kann fuer das gewuenschte Verhalten - waere gut wenn das der Default waere.</p>
<p><img src="https://project.math.uzh.ch/attachments/download/7260/clipboard-202302121801-dbk1r.png" alt="" /></p>
<p>Wenn moeglich, bitte Highlight fuer matching brackets '({[<' by default aktivieren.</p> QFQ - Bug #15530 (New): MultiDB Setup: Form open > error > Form edit link brokenhttps://project.math.uzh.ch/issues/155302023-02-12T11:25:24ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>QFQ 23.2.0</li>
<li>Instanz: MY</li>
</ul>
<p>Tritt beim rendern des Forms ein Fehler auf, scheint der Form-Edit Link in einem Multi-DB Setup nicht zu funktionieren. Bei FE geht zwar das FormElement-Form mit dem korrekten FE auf, aber man kann nicht speichern.</p>
<p><img src="https://project.math.uzh.ch/attachments/download/7257/clipboard-202302121225-9in8l.png" alt="" /></p>
<pre>
Page Id 134
Content Id 321
FE User crose
FE User STORE_USER
 Show/hide more details
Details
File /var/www/html/my/typo3conf/ext/qfq/Classes/Core/Database/Database.php
Line 418
CWD /var/www/html/my
IP Address 192.168.133.182
Stacktrace #0 /var/www/html/my/typo3conf/ext/qfq/Classes/Core/Database/Database.php(230): IMATHUZH\Qfq\Core\Database\Database->prepareExecute('SELECT v.id AS ...', Array, '', Array, '', Array)
#1 /var/www/html/my/typo3conf/ext/qfq/Classes/Core/Evaluate.php(361): IMATHUZH\Qfq\Core\Database\Database->sql('SELECT v.id AS ...', 'regular')
#2 /var/www/html/my/typo3conf/ext/qfq/Classes/Core/Evaluate.php(188): IMATHUZH\Qfq\Core\Evaluate->substitute('SELECT v.id AS ...', 'query', 'regular')
#3 /var/www/html/my/typo3conf/ext/qfq/Classes/Core/Evaluate.php(123): IMATHUZH\Qfq\Core\Evaluate->parse('{{!SELECT v.id ...', 'implode_all', 0, Array)
#4 /var/www/html/my/typo3conf/ext/qfq/Classes/Core/AbstractBuildForm.php(799): IMATHUZH\Qfq\Core\Evaluate->parseArray(Array, Array, Array)
#5 /var/www/html/my/typo3conf/ext/qfq/Classes/Core/BuildFormBootstrap.php(755): IMATHUZH\Qfq\Core\AbstractBuildForm->elements('35533', 'native_subrecor...', 0, Array)
#6 /var/www/html/my/typo3conf/ext/qfq/Classes/Core/AbstractBuildForm.php(934): IMATHUZH\Qfq\Core\BuildFormBootstrap->buildPill(Array, 'Lecture / Semin...', '', Array, 'form_load')
#7 /var/www/html/my/typo3conf/ext/qfq/Classes/Core/AbstractBuildForm.php(372): IMATHUZH\Qfq\Core\AbstractBuildForm->elements('35533', 'native_subrecor...', 0, Array, 'flagDynamicUpda...', false, 'FSRVD', 'form_load')
#8 /var/www/html/my/typo3conf/ext/qfq/Classes/Core/BuildFormBootstrap.php(968): IMATHUZH\Qfq\Core\AbstractBuildForm->process('form_load', false, Array)
#9 /var/www/html/my/typo3conf/ext/qfq/Classes/Core/QuickFormQuery.php(626): IMATHUZH\Qfq\Core\BuildFormBootstrap->process('form_load')
#10 /var/www/html/my/typo3conf/ext/qfq/Classes/Core/QuickFormQuery.php(349): IMATHUZH\Qfq\Core\QuickFormQuery->doForm('form_load')
#11 /var/www/html/my/typo3conf/ext/qfq/Classes/Controller/QfqController.php(45): IMATHUZH\Qfq\Core\QuickFormQuery->process()
</pre> QFQ - Feature #15525 (New): Search/Refactor: JS implementationhttps://project.math.uzh.ch/issues/155252023-02-11T10:49:33ZEnis Nuredini
<p>- Optional das QMATCH durch eine JS Loesung ersetzen.<br />- Im FormEditor/Tinymce: Die Matches durch die JS Loesungen highlighten</p> QFQ - Feature #15524 (New): Generic Report Pagehttps://project.math.uzh.ch/issues/155242023-02-11T09:59:41ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Ziel: einfach beliebige Daten anschauen / bearbeiten / exportieren koennen.</p>
<p>Features:</p>
<ul>
<li>Repository enthaelt beliebige vorgegebene oder benutzerdefierte Reports. Das sind <strong>keine</strong> QFQ Reports mit <code>10.sql=...</code> sondern ein simples SQL Statement.</li>
<li>Optional koennen Eintraege in dem Repository durch Benutzer erstellt/angepasst werden. </li>
<li>Damit haben wir einen generischen Report Generator auf SQL Basis.</li>
<li>Jeder GenericReport hat einen Excel Exports (Button)</li>
<li>Fuer jeden Report kann QFQ 'on the fly' ein Form Detail rendern.</li>
<li>Jede Row (Record) kenn editiert oder geloescht werden.</li>
</ul>
<p>Details:</p>
<ul>
<li>In einer Tabelle 'GenericReport' werden pro Report alle Details hinterlegt.
<ul>
<li>Spalten: sql1, genericReport (uniq name for this report), description, required (comma list of required SIP arguments), sqlStoreVar (SELECT Definition), formForDelete (siehe unten), fileNameExcelExport (kann QFQ Variablen enthalten), head (Textarea Feld mit QFQ Variablen welches ueber dem Report und im Excel ueber den Daten ausgegeben wird). showNew, showEdit, showDelete (default: on).</li>
</ul></li>
</ul>
<ul>
<li>Eine T3 Page 'Generic Report' wird mit dem SIP Parameter 'genericReport=<uniq name>' und weiteren SIP Parametern aufgerufen.
<ul>
<li>Report Code: <code>genericReport = {{genericReport:SE}}</code></li>
</ul></li>
</ul>
<ul>
<li>Der Report wird mit TableSorter dargestellt, inkl. ColumnSelector.</li>
<li>Die Spaltennamen des SQL Statements:
<ul>
<li>a) referenzieren direkt eine Tabellenspalte (darueber kann der Spaltentyp ermittelt werden fuer einen Excel Export oder das generische Formular).</li>
<li>b) bei z.B. <abbr title="">CONCAT</abbr> oder '... AS something' oder bei einem SQL View Statement: im Spaltennamen die Definition. Bsp: 'Person|<abbr title="20">VARCHAR</abbr>|'.
<ul>
<li>Ein SET mit 2 Angaben (yes/no, on/off, 1/0, true/false) wird automatisch zu einer Checkbox. Der unchecked Wert ist der Default aus der Spaltendefinition.</li>
<li>Ein SET mit mehr als 2 Angaben oder ein ENUM fuehrt zu einem Multi-Select.</li>
</ul></li>
</ul></li>
</ul>
<ul>
<li>Mit den Spaltendefinitionen kann:
<ul>
<li>Der Tablesorter auch nach Datum oder numerisch sortieren.</li>
<li>Kann ein generisches Excel erzeugt werden, inkl. korrekter Zellendefinition (Tex, Int, Float, Dezimal, Datum, Zeit, Datum-Zeit)</li>
<li>Ein generisches Formular erzeugt werden (Form wird 'on demand'in die Tabelle Form/FormElement gerendert).
<ul>
<li>FormName: _<genericReport></li>
<li>Edit: Wird angezeigt wenn es min. eine Spalte 'id' gibt - es wird ein Edit-Link gerendert der das zuvor dynamisch erstellte Form verwendet (mit der ersten 'id' Spalte aus der aktuellen Row). </li>
<li>Delete: Wird angezeigt wenn es min. eine Spalte 'id' gibt und eine primary Tabelle bestimmt werden kann (erste Tabelle nach dem FROM Statement) oder ein Form in <code>formForDelete</code> gesetzt ist. </li>
<li>New: Button.</li>
</ul></li>
</ul></li>
</ul>
<ul>
<li>Fuer den Report wird vergleichbar dem Schluesselwort 'form' das neue Wort 'genericReport' einefuehrt.
<ul>
<li>BSP: genericReport = {{genericReport:SE}}</li>
<li>Excel Export
<ul>
<li>via <code>fileNameExcelExport</code> kann der Exportdateiname vorgegeben werden. Falls nicht gesetzt: Tabellenname_Datum.xlsx. </li>
<li><br> erzeugt eine neue Zeile im Excel.</li>
<li>Die Titelzeile wird gesetzt.</li>
</ul></li>
</ul></li>
</ul> QFQ - Feature #15522 (New): QFQ Update: none,always,auto - NEW: oncehttps://project.math.uzh.ch/issues/155222023-02-10T17:07:30ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Bei der Entwicklung von QFQ waere es hilfreich wenn die Option <code>database.update</code> neben 'none,always,auto' eine weitere Option <code>once</code> haette.</p>
<p>Ziel: Wenn QFQ das naechste mal hochfaehrt wird ein Update gemacht (wie bei always oder auto), und anschliessend wird der Wert von <code>once</code> zurueck gesetzt (in der Config) auf <code>auto</code>.</p>
<p>Damit entfaellt das wenn man auf 'always' gestellt hat man anschliessend wieder auf 'auto' zurueck stellen muss.</p> QFQ - Feature #15490 (New): new: extraButtonClass: a) New default: btn-info, b) configurabl per I...https://project.math.uzh.ch/issues/154902023-02-06T08:50:16ZCarsten Rosecarsten.rose@math.uzh.ch
<p>extraButtonInfo=...<br />extraButtonInfoClass=btn btn-default</p>
<p>extraButtonLockClass<br />extraButtonPasswordClass</p> QFQ - Feature #15452 (New): Form: FormElements above/below of pillshttps://project.math.uzh.ch/issues/154522023-01-28T14:07:06ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Im MedTool haetten wird gern FormElemente die oberhalb der Pills angezeigt werden: egal welcher Pill gewaehlt ist - die Pipeline mit dem aktuellen Status soll sichtbar sein.</li>
<li>Das sollte einfach zu implementieren sein und sollte dann auch fuer 'unterhalb' der Pills gemacht werden. Die FE.ord entscheidet ob oberhalb oder unterhalb.</li>
<li>Aktuell ist im `FormEditor > Subrecord FE` definiert, das wenn es Container gibt, FEs ohne Container rot dargestellt werden: dieser Check ist aufzuheben.</li>
</ul> QFQ - Bug #15451 (New): Resubmit on form opened in new tab and set to forward=close is possiblehttps://project.math.uzh.ch/issues/154512023-01-27T13:28:09ZJan Haller
<p>Form Settings: Forward = close<br />Formular wird mit r=0 in einem neuen Tab geöffnet. Nach dem Speichern kann der Tab nicht automatisch geschlossen werden. Somit ist es möglich das Formular erneut auszufüllen und nochmals zu speichern. Dieser Vorgang kann beliebig oft wiederholt werden und jedes mal wird ein neuer Record angelegt.</p>
<p>Möglicher Fix: nach dem Speichern wird das gesamte Form auf readonly/qfq-disabled gesetzt.</p> QFQ - Feature #15448 (New): Tablesorter clear filterhttps://project.math.uzh.ch/issues/154482023-01-27T11:38:50ZEnis Nuredini
<p>Wir brauchen eine Möglichkeit den Filter oder Sorter Zustand zu reinigen oder nicht speichern zu lassen. Sodass nach einem Page reload die Ansicht zurück gesetzt ist.</p>
<p>Für Tablesorter Version 2.31.1 und höher gibt es folgende Möglichkeit:<br /><table data-save-sort="false" data-save-filter="false"> ...</table></p>
<p>Für ältere Versionen vom Tablesorter wie bei der aktuellen QFQ Version funktioniert dies nicht. Dort kann jedoch wie in der QFQ Dokumentation beschrieben eine eigene tablesorter-config definiert werden, in welchem der widget "saveSort" nicht enthalten ist.</p>
Die Frage stellt sich:
<ul>
<li>Soll Tablesorter aktualisiert werden auf eine neuere Version?</li>
<li>Braucht es eine neue HTML Klasse mit welcher dann im QFQ die tablesorter-config ohne "saveSort" gesetzt wird?</li>
</ul> QFQ - Feature #15446 (New): QFQ Best Practice Form Designhttps://project.math.uzh.ch/issues/154462023-01-27T09:03:30ZEnis Nuredini
Title:
<ul>
<li>Design from title breaks if DIV tag with bootstrap class "pull-right" or "pull-left" is used and output longer than available Space is. Fix: Create a new DIV tag with style="clear:both;" to solve the issue.</li>
</ul>
Table:
<ul>
<li>Align text or button in center of table cell with given bootstrap class in TD tag: <td class="text-center"></li>
<li>If you want to prevent saving actual filter and sorter state from tablesorter then you need to configure the config without "saveSort". Easy way to do this is adding this two Attributes: <table data-save-sort="false" data-save-filter="false" class="..."> Only available for tablesorter V2.31.1 and higher. For older versions there is currently only the way from the qfq documentation.</li>
</ul> QFQ - Feature #15428 (New): Calendar: create new event with mouse clickhttps://project.math.uzh.ch/issues/154282023-01-24T13:55:00ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Aktuell koennen wir keine Termine durch einen Klick in den Kalender anlegen - gewuenscht waere:</p>
<ol>
<li>Termine anlegen, Werte sind vorbelegt mit dem wo die Maus geklickt hat. </li>
<li>Termine koennen per Maus verschoben / verkuerzt/verlaengert werden.</li>
</ol>
<p>Bei Anlegen/Veraenderung sollte ein QFQ Form aufgehen.</p>
<p>Wir verwenden <a class="external" href="https://fullcalendar.io/">https://fullcalendar.io/</a>, scheinbar noch V3 - aktuell ist V6</p>
<p>Hier ist eine Doku zu Move/Reseize: <a class="external" href="https://fullcalendar.io/docs/event-dragging-resizing">https://fullcalendar.io/docs/event-dragging-resizing</a></p>
<p>Bei uns sieht es aktuell so aus:</p>
<p><img src="https://project.math.uzh.ch/attachments/download/7194/clipboard-202301241448-0j9fk.png" alt="" /></p>
<p>Anwendung: I-MATH Raumreservation</p> QFQ - Feature #15413 (New): '... AS _monitor': line wrap, search, select text, syntax highlighthttps://project.math.uzh.ch/issues/154132023-01-22T10:02:48ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Via '... AS _monitor' (<a class="external" href="http://docs.qfq.io/en/master/Report.html#monitor">http://docs.qfq.io/en/master/Report.html#monitor</a>) koennen Logfiles in Echtzeit angezeigt werden.<br />Die aktuelle Loesung ist sehr rudimentaer.</p>
<ul>
<li>Es wird einmal pro Sekunde gepollt (neue Vesion wird vom Server geholt).</li>
<li>Dabei geht der aktuell selektierte Text verloren. Ggfs. von 'pull' auf 'push' umstellen (websocket).</li>
<li>Andere Moeglichkeit: Button Refresh / Autorefresch (1s, 10s,..)</li>
<li>Syntax Highlight waere gut (CodeMirror im Readonly mode? Oder etwas anderes)</li>
<li>Line Wrap, so dass man nicht nach rechts scrollen muss. Falls Code Mirror verwendet wird</li>
</ul>
<p>Gitlab hat eine sehr gute/funktionale Implementierung:<br /><img src="https://project.math.uzh.ch/attachments/download/7186/clipboard-202301221102-wqoqc.png" alt="" /></p> QFQ - Feature #15366 (New): Required fields: custom symbol / no symbolhttps://project.math.uzh.ch/issues/153662023-01-12T16:22:59ZCarsten Rosecarsten.rose@math.uzh.ch
<p>1) Fuer Required Felder:</p>
<p><img src="https://project.math.uzh.ch/attachments/download/7118/clipboard-202301121703-prz73.png" alt="" /></p>
<ul>
<li>Das Symbol soll konfigurierbar und auch abschaltbar sein.</li>
</ul>
<pre>
requiredSymbol = ....
</pre>
* Wird 'none' angegeben, wird kein Symbol gerendert.
* Der Parameter kann gesetzt werden pro FormElement, pro Form, in der QFQ Extension Config (Pill: Form-Config).
<p>Aktuell wird das mit einer Klasse geloest:</p>
<p><img src="https://project.math.uzh.ch/attachments/download/7119/clipboard-202301121703-ynwyv.png" alt="" /></p>
<p>2) Parameter: requiredPosition</p>
<p>Es gibt die Moeglichkeit das Required Symbol an unterschiedliche Stellen zu bringen - das sollte auch weiterhin funktionieren:</p>
<p><img src="https://project.math.uzh.ch/attachments/download/7120/clipboard-202301121704-srbh9.png" alt="" /></p>
<p>Neu: Der Parameter kann bisher nur auf Form und FormElement Ebene gesetzt werden. Bitte implementieren das er auch in der QFQ Extension Config <br /> (Pill: Form-Config) gesetzt werden kann.</p>
<p>Als Beispiel wie das gemacht wird kann F_FE_DATA_REQUIRED_ERROR / SYSTEM_FORM_DATA_REQUIRED_ERROR angeschaut werden.</p> QFQ - Feature #15321 (New): Checkbox with more than 2 states - like doodle 'yes', 'no', 'maybe', ...https://project.math.uzh.ch/issues/153212023-01-05T14:26:09ZCarsten Rosecarsten.rose@math.uzh.ch
<p>[ ] yes,no,maybe,...</p>
<p>key, value (grafik)</p> QFQ - Feature #15237 (New): Inspiration Filemaker: Search/Filter via Detailformhttps://project.math.uzh.ch/issues/152372022-12-23T09:16:54ZCarsten Rosecarsten.rose@math.uzh.ch
<p><img src="https://project.math.uzh.ch/attachments/download/7065/clipboard-202212231014-v8sne.png" alt="" /></p>
<ul>
<li>In FM kann man in einen Such/Filtermodus wechseln, bei dem ein normales Detailform als Filtermaske verwendet wird.</li>
<li>Anschliessend erscheinen oben Navigationselemente um durch die aktuell selektieren Records zu steppen.</li>
</ul> QFQ - Feature #15235 (New): Security Scanner Open Source Luecken: Integrieren in unsere Build Chain.https://project.math.uzh.ch/issues/152352022-12-22T16:05:22ZCarsten Rosecarsten.rose@math.uzh.ch
<p><a class="external" href="https://www.heise.de/news/Googles-neuer-Security-Scanner-gegen-Open-Source-Luecken-7397479.html">https://www.heise.de/news/Googles-neuer-Security-Scanner-gegen-Open-Source-Luecken-7397479.html</a></p> QFQ - Bug #14753 (New): Folgeproblem zu #14304: keine Befriedigend Lösung für JS-Fileshttps://project.math.uzh.ch/issues/147532022-09-20T13:10:52ZNicola Chiapolini
<p>Wenn ich wie in <a class="issue tracker-1 status-6 priority-2 priority-default closed" title="Bug: table sorter view safer does not work (Rejected)" href="https://project.math.uzh.ch/issues/14304">#14304</a> identifiziert <code>bootstrap.min.js</code> aus meiner liste entferne, funktioniert anschliessend zwar der tabelsorter-viewsafer, dafür ist der Button des tablesorter-columnselector tot... (und auch alle weiteren meiner "popover" tools funktionieren dann nicht mehr).</p> QFQ - Bug #12513 (New): Implement server side check of maxlengthhttps://project.math.uzh.ch/issues/125132021-05-08T15:11:36ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Bei der Implementierung von <a class="issue tracker-2 status-2 priority-2 priority-default" title="Feature: TinyMCE Paste from Word & Character Count/Limit (In Progress)" href="https://project.math.uzh.ch/issues/12439">#12439</a> ist aufgefallen das es kein MaxLength Check auf der Server Seite gibt.</p>
<p>Ziel ist das ein Fehler ausgegeben wird, wenn die maximale Laenge ueberschritten ist.<br />Grund: der User muss informiert werden das seine Angaben nicht vollstaendig gespeichert werden konnten.</p> QFQ - Bug #10766 (New): Radiobutton / parameter.buttonClass=btn-default: dynamic updatehttps://project.math.uzh.ch/issues/107662020-06-17T07:15:05ZChristoph Fuchs
<p>Drei Radiobuttons parameter.itemList = 0:User, 1:Group, 2:E-Mail(s)<br />Aufgrund des Button Values werden Text- und DropDown-Elemente ein und ausgeblenet, was auch funktioniert.</p>
<p>Wenn ich jetzt die Elemante mit parameter.buttonClass=btn-default vertikal ausrichten will,<br />funktioniert das Ein- und Ausblenden nicht mehr.</p> QFQ - Bug #10640 (New): TypeAhead Tag: FE editierbar trotz readOnlyhttps://project.math.uzh.ch/issues/106402020-05-25T08:09:04ZStefan Willi
<p>Das FormElement für das TypeAhead Tag bleibt editierbar, wenn man das Fomular im readonly Modus öffnet.</p>