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 #17620 (New): npm run build: Warum muss bei Chart.min.js das kopieren mit einer Cus...https://project.math.uzh.ch/issues/176202024-01-16T18:52:31ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>In <a class="issue tracker-1 status-5 priority-2 priority-default closed" title="Bug: Missing Chart.min.js in dev branch (Closed)" href="https://project.math.uzh.ch/issues/17529">#17529</a> wurde gefixt das Chart.min.js nun wieder ausgeliefert wird.</li>
<li>Benj moechte sich anschauen warum bei Chart.js und tablesorter die Custom Rules noetig sind.</li>
</ul> QFQ - Feature #17266 (New): Upgrade TinyMCE V6https://project.math.uzh.ch/issues/172662023-11-10T22:00:51ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Das Paste Plugin ist nun im Core: B16064_dynamic_update_checkbox_and_missing_form_variable</li>
<li>Die Defaults (welche Elemente angezeigt weden) sind nun anders.
<ul>
<li>Doku anpassen</li>
</ul></li>
</ul> QFQ - 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 #17214 (In Progress): Fabric improvementshttps://project.math.uzh.ch/issues/172142023-10-31T14:25:19ZBenjamin Baerbenjamin.baer@math.uzh.ch
<ul>
<li>Zoom improvement</li>
<li>Deleting / Erasing</li>
<li>Better guidance for things like text tool</li>
<li>Emoji</li>
</ul> 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 - Bug #17142 (New): UZH CD: Typo3 clean search bar migrationhttps://project.math.uzh.ch/issues/171422023-10-19T12:47:54ZEnis Nuredini
<p>The search bar isn't working correctly in typo3 v11. Executing search maybe shows correct results but the path is completely wrong. index.php isn't used anymore in Typo3 v11. Switching languages and using search bar changes the language always to default.</p>
<p>A solution is found to clean this behaviour: <a class="external" href="https://project.math.uzh.ch/projects/qfq/wiki/Migration#Search-bar-configuration">https://project.math.uzh.ch/projects/qfq/wiki/Migration#Search-bar-configuration</a></p>
<p>Those changes needs to be implemented directly in the UZH extension (old CD, new CD). And documentation for new custom variables should be added.</p> QFQ - Bug #17087 (New): Fabric: Zoom / Move doesn't work https://project.math.uzh.ch/issues/170872023-10-09T13:01:40ZBenjamin Baerbenjamin.baer@math.uzh.chQFQ - 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 - 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 #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 #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 #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 #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 - 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 #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 #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 - Feature #15104 (New): MultiForm functionality in a regular formhttps://project.math.uzh.ch/issues/151042022-12-04T09:41:23ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Ziel: In einem Admin Form zu einem Antrag soll auf einem Pill eine dynamische Liste von Checkboxen implementiert werden. (Medtool > Befoerderung > Olga kann sich eine eigenen TodoListe erstellen und diese pro Antrag abarbeiten)</p>
<ul>
<li>'Dynamisch' heisst: Der User kann Workflow Items konfigurieren und jedes Item ist eine Checkbox.</li>
</ul>
<p>Idee:</p>
<ul>
<li>Neuer FE.type=Container mit Namen 'multi element'</li>
<li>In SQL1 wird die MutliForm Query definiert.</li>
<li>Multi Form Container werden nach dem regulaeren 'Form Save' abgearbeitet.</li>
<li>FE.type = action innerhalb eines 'multi element' Containers werden nach den multi-element native elementen ausgefuehrt</li>
<li>Die Form Elemente koennen vermutlich</li>
</ul> QFQ - Bug #15083 (New): Tags: Input & ExtraButtonInfo/Lock/Show password - shiftedhttps://project.math.uzh.ch/issues/150832022-11-28T09:35:55ZCarsten Rosecarsten.rose@math.uzh.ch
<p><img src="https://project.math.uzh.ch/attachments/download/6939/clipboard-202211281035-kgern.png" alt="" /></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 #14705 (New): Tablesorter Viewsaver: Icons broken in dropdownlist (only in firefox)https://project.math.uzh.ch/issues/147052022-09-09T10:58:15ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Tritt nur im Firefox auf.</li>
<li>Wir eine Optione ausgewaehlt, ist das Icon oben korrekt dargestellt.</li>
<li>In der Dropdownliste ist es kaputt.</li>
</ul>
<p><img src="https://project.math.uzh.ch/attachments/download/6532/clipboard-202209091256-ozgts.png" alt="" /></p> QFQ - Bug #13647 (New): Autofocus funktioniert nicht auf Chromehttps://project.math.uzh.ch/issues/136472022-01-11T16:14:52ZBenjamin Baerbenjamin.baer@math.uzh.ch
<p>Beispiel:</p>
<p>Forked: <a class="external" href="https://webwork16.math.uzh.ch/forkred/">https://webwork16.math.uzh.ch/forkred/</a> > Gesuch UZH Candoc / Postdoc Grant > Neues Gesuch - wenn das Form aufgerufen wird springt der vert scrollbalken gleich nach unten.</p>
<p><img src="https://project.math.uzh.ch/attachments/download/5764/forkred.png" alt="" /></p>
<p>Das tritt auf Chrome und Chromebasierten Browser auf.</p>
<p>Firefox hingegen scrollt korrekt zum gesetzten Autofokus:</p>
<p><img src="https://project.math.uzh.ch/attachments/download/5762/betterScroll.gif" alt="" /></p>
<p>autofocus="1" ist im Element gesetzt.</p> QFQ - Bug #13528 (New): qfq.io > releases: es wird kein neues Release angelegthttps://project.math.uzh.ch/issues/135282021-12-13T22:50:40ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Hallo Benj</p>
<p>koenntest du mal schauen warum kein neues Release angelegt wird.</p>
<p><img src="https://project.math.uzh.ch/attachments/download/5647/clipboard-202112132349-u0nrg.png" alt="" /></p>
<p>Zumindest fuer die Doku hat der Hook funktioniert (klar ist was ganz anderes): <a class="external" href="http://docs.qfq.io/en/master/Release.html">http://docs.qfq.io/en/master/Release.html</a></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 - Feature #12490 (New): Loading Plugins in QFQ - see what tinymce does. (lazy loading)https://project.math.uzh.ch/issues/124902021-05-04T09:34:14ZBenjamin Baerbenjamin.baer@math.uzh.ch
<ul>
<li>make tinymce plugin into a standard tinymce plugin</li>
<li>see if we can use the loading method for qfq plugins</li>
</ul> QFQ - Bug #11057 (ToDo): Checkboxes ohne span.checkmark im Report werden ausgeblendethttps://project.math.uzh.ch/issues/110572020-08-24T09:28:18ZElias Villiger
<p>Wenn in einem Report manuell eine Checkbox angelegt wird, z.B.<br /><pre><label class="checkbox-inline"><input type="checkbox">Check me</label></pre><br />dann blendet das QFQ CSS die Checkbox aus, ohne eine Ersatz-checkmark anzuzeigen. Funktioniert erst, wenn das <label> manuell mitt<br /><pre><span class="checkmark"></span></pre><br />ergänzt wird.</p>
<p>Mögliche Lösung: die entsprechenden CSS-selectors anpassen, dass sie nur innerhalb von qfq-forms gelten.</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> QFQ - Bug #9898 (Feedback): Formular trotz Timeout gespeicherthttps://project.math.uzh.ch/issues/98982020-01-17T09:02:45ZNicola Chiapolini
<p>In den letzten Monaten ist es schon zwei mal vorgekommen, dass ein Formular gespeichert wurde, obwohl das Frontend-Login scheinbar abgelaufen war. Scheinbar, weil ich das nur aus Hinweisen schliesse: zum Einen wurde der Report auf der "Forward URL" des Formulars nicht ausgeführt (der feuert ein weiteres UPDATE query und sendet ein E-Mail) und zum Anderen zeigt das sql.log einen neuen Login direkt nach dem speichern (vgl. unten)</p>
<p>Ich verstehe aber auch nicht wirklich, weshalb das Frontend-Login abläuft. Die Typo3 Config ist <br /><pre>
[FE][lifetime] = 0
[FE][sessionDataLifetime] = 86400
[FE][permalogin] = 0
</pre><br />und auch <code>session.gc_maxlifetime=86400</code></p>
<p>das annonymisierte SQL Log:<br /><pre>
[2020.01.16 11:45:59 +0100][130.60.95.112][FE:SHORT,Page:84,tt:171,level:40.10][UPDATE typo3_studentadmin.fe_users SET usergroup='4,1' WHERE username='SHORT' AND deleted='0' LIMIT 1]
[2020.01.16 11:45:59 +0100][130.60.95.112][FE:SHORT,Page:84,tt:171,level:40.10][Affected rows: 1]
[2020.01.16 11:48:06 +0100][130.60.95.112][FE:SHORT,form:phd_check-head][INSERT INTO Dirty (`sip`, `tableName`, `recordId`, `expire`, `recordHashMd5`, `feUser`, `qfqUserSessionCookie`, `dirtyMode`, `remoteAddress`, `created`) VALUES ( '5e203efef41d2','phd_graduation','400','2020-01-16 12:03:05','c4472b22659d70b6861455db23ca999c','SHORT','s6kua7c734irt5f2mhsi7m1k7t','exclusive','130.60.95.112','20200116114806' )]
[2020.01.16 11:48:06 +0100][130.60.95.112][FE:SHORT,form:phd_check-head][ID: 13539 - affected rows: 1]
[2020.01.16 12:03:07 +0100][130.60.95.112][FE:SHORT,form:phd_check-head][DELETE FROM Dirty WHERE id='13539' LIMIT 1]
[2020.01.16 12:03:07 +0100][130.60.95.112][FE:SHORT,form:phd_check-head][Affected rows: 1]
[2020.01.16 12:03:07 +0100][130.60.95.112][FE:SHORT,form:phd_check-head][INSERT INTO Dirty (`sip`, `tableName`, `recordId`, `expire`, `recordHashMd5`, `feUser`, `qfqUserSessionCookie`, `dirtyMode`, `remoteAddress`, `created`) VALUES ( '5e203efef41d2','phd_graduation','400','2020-01-16 12:18:06','c4472b22659d70b6861455db23ca999c','SHORT','s6kua7c734irt5f2mhsi7m1k7t','exclusive','130.60.95.112','20200116120307' )]
[2020.01.16 12:03:07 +0100][130.60.95.112][FE:SHORT,form:phd_check-head][ID: 13546 - affected rows: 1]
[2020.01.16 15:53:01 +0100][130.60.95.112][FE:SHORT,form:phd_check-head][DELETE FROM Dirty WHERE id='13546' LIMIT 1]
[2020.01.16 15:53:01 +0100][130.60.95.112][FE:SHORT,form:phd_check-head][Affected rows: 1]
[2020.01.16 15:53:01 +0100][130.60.95.112][FE:SHORT,form:phd_check-head][INSERT INTO Dirty (`sip`, `tableName`, `recordId`, `expire`, `recordHashMd5`, `feUser`, `qfqUserSessionCookie`, `dirtyMode`, `remoteAddress`, `created`) VALUES ( '5e203efef41d2','phd_graduation','400','2020-01-16 16:08:00','c4472b22659d70b6861455db23ca999c','SHORT','s6kua7c734irt5f2mhsi7m1k7t','exclusive','130.60.95.112','20200116155301' )]
[2020.01.16 15:53:01 +0100][130.60.95.112][FE:SHORT,form:phd_check-head][ID: 13574 - affected rows: 1]
[2020.01.16 15:55:46 +0100][130.60.95.112][FE:SHORT,Page:19,tt:48,form:phd_check-head][DELETE FROM Dirty WHERE id='13574' LIMIT 1]
[2020.01.16 15:55:46 +0100][130.60.95.112][FE:SHORT,Page:19,tt:48,form:phd_check-head][Affected rows: 1]
[2020.01.16 15:55:46 +0100][130.60.95.112][FE:SHORT,Page:19,tt:48,form:phd_check-head][INSERT INTO FormSubmitLog (formData, sipData, clientIp, feUser, userAgent, formId, recordId, pageId, sessionId, created)VALUES ('{"email":"","username":"","password":"","recordHashMd5":"c4472b22659d70b6861455db23ca999c","nodb_check-student-400":"1","nodb_check-committee-400":"1","nodb_student-info-400":"STUDENT","colloquium_start-400":"2020-03-05 15:00","colloquium_duration-400":"01:00","colloquium_place-400":"WAD P106a","disputation_start-400":"2020-03-05 16:00","disputation_duration-400":"01:00","disputation_place-400":"WAD P106a","_sipForTypo3Vars":"5e203efef412a"}', '{"__dbIndexData":"1","check_head_done":"2020-01-16 11:46:22","form":"phd_check-head","r":"400","s":"5e203efef41d2","urlparam":"__dbIndexData=1&check_head_done=2020-01-16 11:46:22&form=phd_check-head&r=400"}', '130.60.95.112', 'SHORT', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', '1002', '400', '19', 's6kua7c734irt5f2mhsi7m1k7t', NOW())]
[2020.01.16 15:55:46 +0100][130.60.95.112][FE:SHORT,Page:19,tt:48,form:phd_check-head][ID: 31466 - affected rows: 1]
[2020.01.16 15:55:46 +0100][130.60.95.112][FE:SHORT,Page:19,tt:48,form:phd_check-head][UPDATE `phd_graduation` SET `check_head_done` = '2020-01-16 11:46:22', `colloquium_start` = '2020-03-05 15:00', `colloquium_duration` = '01:00', `colloquium_place` = 'WAD P106a', `disputation_start` = '2020-03-05 16:00', `disputation_duration` = '01:00', `disputation_place` = 'WAD P106a' WHERE id = '400']
[2020.01.16 15:55:46 +0100][130.60.95.112][FE:SHORT,Page:19,tt:48,form:phd_check-head][Affected rows: 1]
[2020.01.16 15:55:50 +0100][130.60.95.112][FE:SHORT,Page:84,tt:171,level:40.10][UPDATE typo3_studentadmin.fe_users SET usergroup='4,1' WHERE username='SHORT' AND deleted='0' LIMIT 1]
[2020.01.16 15:55:50 +0100][130.60.95.112][FE:SHORT,Page:84,tt:171,level:40.10][Affected rows: 1]
</pre></p>
<p><code>UPDATE typo3_studentadmin.fe_users</code> feuert beim Login</p>
<p>Any Ideas wo das Problem herkommt und wie ich das vermeiden kann? (und betrifft das wirklich nur uns?)</p> QFQ - Bug #9535 (Feedback): Report: ... AS '_vertical' - column to wide - vertical >> rot45, rot90https://project.math.uzh.ch/issues/95352019-11-09T10:46:50ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Evtl. hatten wird das schon diskutiert - ich finde aber kein Ticket dazu.</p>
<p>Beispiel: <a class="external" href="http://webwork16.math.uzh.ch/crose/qfq/index.php?id=93">http://webwork16.math.uzh.ch/crose/qfq/index.php?id=93</a></p>
<p>In Report gibt es den special column name '_vertical'. Damit koennen z.B. Spaltenueberschriften rotiert werden. Das passiert via CSS.</p>
<p>Das Problem: Die Tabellenspalte bekommt die Breite des Textes bevor er gedreht wurde. D.h. Spalten mit breiten Titel werden trotzdem breit, obwohl genau das durch 'hochstellen' verhinder werden soll.</p>
<p>Kann man das tweaken, so das (die Spalte dynamisch die Breite des breitesten Textes (inkl. Umbruch) bekommt?</p> QFQ - Feature #7732 (Some day maybe): Javascript: Lazy Loading der add on libshttps://project.math.uzh.ch/issues/77322019-01-24T20:31:34ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Es waere gut wenn die JS Libs unten am Ende der Seite angegeben wuerden und nur 'on demand' instantiert werden wuerden.</p>
<p>Es geht min. um:</p>
<ul>
<li>TinyMCE</li>
<li>CodemMirror (kommt nocht)</li>
<li>tablesorter</li>
<li>...</li>
</ul> QFQ - Bug #6566 (Priorize): Link Function 'delete': provided parameter missing on page reloadhttps://project.math.uzh.ch/issues/65662018-08-28T08:49:50ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Wird auf einen `_paged` Link geklickt um einen Record zu loeschen, wird die Seite anschliessend neu geladen, aber ohne die bisherigen URL Parameter.</p>
<p>SIP und andere GET Variablen sollten durchgereicht werden.</p>
<p>Info an SW wenn das Feature implementiert ist.</p> QFQ - Bug #6140 (Priorize): QFQ DnD Sort: Locked fieldshttps://project.math.uzh.ch/issues/61402018-06-04T14:05:01ZBenjamin Baerbenjamin.baer@math.uzh.ch
<p>Lock fields with classes: qfq-dnd-no-drag / qfq-dnd-no-drop</p>
<p>Vermutlich war gemeint:</p>
<ul>
<li>Tabelle mit 5 Spalten</li>
<li>Die letzte Spalte mit Symbol 'Hand' - nur diese Spalte reagiert auf drag'n'drop.</li>
<li>Alle anderen Spalten kann man mit der Maus markieren und copy/paste machen.</li>
</ul> QFQ - Feature #5562 (Priorize): Drag'n'Drop fuer Uploadshttps://project.math.uzh.ch/issues/55622018-02-27T16:34:57ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>MY</li>
<li>MI-Tool</li>
<li>GRC</li>
<li>LK</li>
<li>Lean</li>
</ul>
<ul>
<li><a class="external" href="https://www.plupload.com/">https://www.plupload.com/</a> - Github Project / AGPL</li>
</ul> QFQ - Bug #4457 (Priorize): typeahead: pressing return to select an item, saves the form and clos...https://project.math.uzh.ch/issues/44572017-09-09T20:43:09ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Wird bei einem Typeahead FE durch Tastendruck das Dropdown aufgeklappt, und man navigiert durch die Liste mit Up/Down und drueckt dann bei dem gewuenschten Feld Return, so wird das Form gespeichert und abgeraeumt.</p>
<p>Erwartet haette ich das der Eintrag ausgwaehlt wird.</p> QFQ - Bug #4454 (Some day maybe): Required Elements: multiple elements in a row - whole row marke...https://project.math.uzh.ch/issues/44542017-09-09T16:37:01ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Bug #4398 (Some day maybe): Typeahead: mouse click in a prefilled input opens a single item...https://project.math.uzh.ch/issues/43982017-09-05T21:07:01ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Wird in einem typeahead input (min. bei pedantic) mit der maus reingeklickt, und war das vorher schonmal geladen worden und es existiert ein default wert, dann geht sofort ein dropdown mit einem Element auf. Das ist genau der aktuell geladene Value (nicht der Key). Klickst man auf die aufgklappte '1-Value-Liste, wird der Wert uebernommen. Das scheint bei key/value Paaren fatal zu sein, den nun ist der Value im Input und nicht der Key.</p>
<ul>
<li>Aufgefallen bei GRC mit LDAP typeahead bei Feldern die den UZH shortname speichern (=key), aber 'Vorname, Nachname (Email)' anzeigen (Value). </li>
<li>Evtl. gibt's hier etwas zum einstellen: <a class="external" href="https://github.com/twitter/typeahead.js/blob/master/doc/jquery_typeahead.md#options">https://github.com/twitter/typeahead.js/blob/master/doc/jquery_typeahead.md#options</a></li>
<li>autocomplete="off" hat nicht geholfen.</li>
</ul> QFQ - Bug #2063 (Some day maybe): Pills auf 'inaktiv' setzen falls keine Element auf dem Pill sic...https://project.math.uzh.ch/issues/20632016-05-31T14:48:34ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Wenn durch dynamicUpdate alle Elemente eines Pills ausgeblendet werden, sieht das wie ein Fehler aus.</li>
<li>Gut waere wenn das Pill irgendwie symbolisieren wuerde 'alles ok, zeige nur nichts an'. </li>
<li>Z.B. das der Pill Button grau ist.</li>
</ul>