Project @ iMath: Issueshttps://project.math.uzh.ch/https://project.math.uzh.ch/favicon.ico?16668783892024-03-17T14:56:05ZProject @ iMath
Redmine QFQ - Feature #18162 (New): Form / Select List: save outdated key/value even it no longer exist i...https://project.math.uzh.ch/issues/181622024-03-17T14:56:05ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Szenario:</p>
<ul>
<li>Fuer eine Masterarbeit wird ein Betreuer eingetragen. </li>
<li>Die Liste der potentiellen Betreuer veraendert sich. Z.B. koennte eine Person von frueher heute nicht mehr den Status 'Betreuer' haben.</li>
<li>Wird eine solche MA aufgerufen wird nicht mehr der urspruengliche Betreuer angezeigt und beim erneuten Speichern gibt es ein Problem.</li>
</ul>
<p>Vorschlag:</p>
<ul>
<li><code>FE.parameter.sqlGetItemSaved = {{SELECT p.id, p.name FROM Person AS p WHERE p.id={{pId:R}}</code></li>
<li>Wird die ItemList gebaut, wird überprüft ob die gespeicherte Id (oder Value falls es keine ID gibt) noch existiert.</li>
<li>Ja: all done, no further action</li>
<li>Nein:
<ul>
<li>Evaluate <code>FE.parameter.sqlGetItemSaved</code></li>
<li>Fuege Key/Value an der richtigen Stelle (Sortierung) ein.</li>
<li>Falls moeglich stelle den Eintrag 'kursiv' dar ('muted' waere schlecht, denn das suggeriert das der Eintrag nicht ausgewaehlt werden koennte).</li>
</ul></li>
</ul>
<ul>
<li>Die Situation koennte auftreten bei: SELECT, CHEKBOX, RADIO</li>
</ul> QFQ - Feature #18085 (New): FE Input Email Adressbook: a) Typeahead, b) check valid and markhttps://project.math.uzh.ch/issues/180852024-03-06T09:07:34ZCarsten Rosecarsten.rose@math.uzh.ch
<a name="Request"></a>
<h2 >Request<a href="#Request" class="wiki-anchor">¶</a></h2>
<ul>
<li>Im IK Tool werden beim Antrag Email-Adressen von weiteren verantwortlichen Personen erfasst.</li>
<li>Es kommt regelmaessig vor das die Adressen einen Typo enthalten.</li>
<li>Ziel
<ul>
<li>Bei der Eingabe TypeAhead vom UZH Adressebook anbieten.</li>
<li>Bei 'Focus Lost' Emailadressen pruefen und markieren ok/fail.</li>
</ul></li>
</ul>
<a name="Vorschlag"></a>
<h2 >Vorschlag<a href="#Vorschlag" class="wiki-anchor">¶</a></h2>
<ul>
<li>Wird erkannt dass die Email Adresse eine <code>uzh.ch</code> Adresse ist, kann ein LDAP Lookup gemacht werden um zu ueberpruefen ob die Adresse im UZH AD vorhanden ist.</li>
<li>Ist die Adresse bekannt, wird sie gruen, sonst gelb (Tooltip: Address not found in UZH adress book).</li>
<li>Non uzh.ch Adressen werden so nicht geprueft.</li>
<li>Option 'internal check': es koennen Tabellen, Spalten spezifiziert werden (Tool intern),ob die Adresse bereits benutzt wurde. Falls gefunden wird sie ebenfalls gruen.</li>
<li>Der Check gegen das Adressbuch muss erst gemacht werden bei Focus Lost.</li>
<li>Der Check sollte vom Server gestartet werden: Zugriff auf den AD ist beschraenkt (Firewall, Credentials)</li>
<li>Wir brauchen einen neuen API Call der SIP protected ist.</li>
<li>Beim Laden des Forms ist der Check vermutlich nicht so wichtig, kann erstmal weggelassen werden.</li>
<li>Die Credentials sollten in der zentrallen QFQ config Datei sein (wie UZH webpass)</li>
<li>Die LDAP Abfrage sollte zentral in der QFQ Extension Config konfigurierbar sein, pro FE kann das Setting uberschrieben werden.</li>
<li>Option: mehrere Emailadressen in einem FE-Input Elemente erfassen (space, komma separiert) und individuell pruefen & markieren.</li>
</ul>
<p>EmailAdressbookVerify=<br />EmailAdressbookTypeahead=</p>
<a name="Check"></a>
<h2 >Check<a href="#Check" class="wiki-anchor">¶</a></h2>
<p>Beispiel via Commandline:</p>
<pre>
$ ldapsearch -LLL -x -H "ldap://iduzhz2dc01.d.uzh.ch ldap://iduzhz2dc02.d.uzh.ch" -b "DC=d,DC=uzh,DC=ch" -D "srv-math-sync@d.uzh.ch" -W "proxyAddresses=smtp:carsten.rose@math.uzh.ch" proxyAddresses
Enter LDAP Password:
dn: CN=Rose Carsten (crose),OU=Users,OU=Users UZH,DC=d,DC=uzh,DC=ch
proxyAddresses: smtp:crose@access.uzh.ch
proxyAddresses: X500:/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOH
F23SPDLT)/cn=Recipients/cn=d99ada2cb78c406ea039453c26f86dab-Rose Carste
proxyAddresses: smtp:caro@math.uzh.ch
proxyAddresses: smtp:m200143@access.uzh.ch
proxyAddresses: smtp:carsten.rose@uzh.ch
proxyAddresses: smtp:crose@uzh.mail.onmicrosoft.com
proxyAddresses: SMTP:carsten.rose@math.uzh.ch
# refldap://DomainDnsZones.d.uzh.ch/DC=DomainDnsZones,DC=d,DC=uzh,DC=ch
# refldap://ForestDnsZones.d.uzh.ch/DC=ForestDnsZones,DC=d,DC=uzh,DC=ch
# refldap://d.uzh.ch/CN=Configuration,DC=d,DC=uzh,DC=ch
</pre>
<ul>
<li>Bei der Abfrage koennen mehrere LDAP Server angegeben werden.</li>
<li>Liefert die Abfrage min. einen Treffer zurueck, ist die Adresse ok.</li>
<li>Die obige Abfrage geht auf 'proxyAddresses', da dort scheinbar auch die weiteren Adressen angegeben sind.
<ul>
<li>Bei 'proxyAddresses' muss ein 'smtp:' vorangestellt werden fuer einen 100% match</li>
</ul></li>
</ul> QFQ - Bug #18044 (Closed): Fabric not shownhttps://project.math.uzh.ch/issues/180442024-03-02T18:37:44ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Feature #18042 (New): Download dynamic ZIP: missing meaningful default save as filenamehttps://project.math.uzh.ch/issues/180422024-03-02T15:41:52ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Mit `<abbr title="'d|F:', p.pathFileName, '|s:1|M:zip'">CONCAT</abbr> AS _link` wurde ein ZIP zum Download angeboten und hatte als Dateinamen 'qfq.temp.RcGnwV'</p>
<p>Bug: es sollte mindestens '.zip' am Ende stehen. Am besten 'data.zip' oder 'data_<timestamp>.zip'</p> QFQ - Feature #18040 (New): Checkbox Custom-Listehttps://project.math.uzh.ch/issues/180402024-03-02T12:00:47ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Ziel: Checkbox Listen zum abarbeiten - eigenstaendig erweiterbar</p>
<p>Beispiel aus Redmine:</p>
<p><img src="https://project.math.uzh.ch/attachments/download/9382/clipboard-202403021239-n2k4h.png" alt="" /></p>
<p>Wichtig: die Reihenfolge kann via Drag'n'Drop geaendert werden. Check welchen Code wir schon haben (Subrecord, Benj).</p>
<p><code>FormElement.parameter.itemList</code> ist bereits genau die Checkbox-Liste</p>
<ul>
<li>static</li>
<li>Values werden Komma-separiert im String abgelegt. Bei Komma im Value haben wir vermutlich ein Problem.</li>
</ul>
<a name="Moegliche-Umsetzung"></a>
<h2 >Moegliche Umsetzung<a href="#Moegliche-Umsetzung" class="wiki-anchor">¶</a></h2>
<ul>
<li><code>FormElement.parameter.checkBoxType = static|custom</code>
<ul>
<li><code>static</code> ist das bisherige und der default.</li>
<li><code>custom</code> ist dieses Ticket.</li>
</ul></li>
</ul>
<a name="Itemliste-und-Status-pro-Item"></a>
<h3 >Itemliste und Status pro Item<a href="#Itemliste-und-Status-pro-Item" class="wiki-anchor">¶</a></h3>
<ul>
<li>Soll der User die Moeglichkeit haben selber Items zu erfassen muessen diese irgendwo gespeichert werden.</li>
<li>Der Status eines jeden Items muss gespeichert werden.</li>
<li>Sections waeren nett.</li>
<li>Drag'n'Drop muss nicht in 1.0 sein, ist aber definitiv gefordert.</li>
</ul>
<p>Vorschlag: Labels und Values (inkl. 'sections') in einem JSON struct</p>
<ul>
<li>Das JSON wird genau in der Spalte des FE gespeichert (muss also ein String sein).</li>
<li>Wird das JSON zu gross zum speichern (Bsp varchar 128), gibt es bereits im Client eine Fehlermeldung damit der User nicht viele Items anlegt und dann enttaeuscht ist das sie nicht gespeichert werden koennen.</li>
<li>Ein 'Template' kann also einfach angeboten werden, in dem das JSON in FE.value steht.</li>
<li>Nach Moeglichkeit sollte das JSON so gesepichert werden das wir es mit den MariaDB JSON Funktionen verwenden koennen.</li>
</ul> QFQ - Feature #18037 (New): Auto BPMN Update: QFQ/rclonehttps://project.math.uzh.ch/issues/180372024-03-02T09:37:05ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Ziel: BPMN Workflows verbinden mit Ticketsystem, ist ein Ticket / Milestones abgearbeitet wird das im BPMN visuell markiert.</p>
<p>Moegliches Konzept:</p>
<ul>
<li>BPMN ist im Switchdrive</li>
<li>QFQ bekommt via 'rclone' Nextclod, OwnCloud, Dropbox, OneDrive, GDrive Support und kann so auf Dateien zugreifen.</li>
<li>In QFQ ist die PathFilename-Referenz auf das BPMN hinterlegt</li>
<li>Es gibt eine API (Redmine, QFQ Notez) um den Status von Tickets abzufragen.</li>
<li>QFQ ruft (on request, periodically) ein Skript auf welches:
<ul>
<li>Fuer jedes im BPMN referenzierte Ticket den Status via API abruft.</li>
<li>Den Status visuell im BPMN eintraegt (z.B. Hintergrundfarbe des Elements setzen)</li>
<li>Dadurch dass das File via rclone im Sync gehalten wird, haben sofort alle User das aktuelle File.</li>
</ul></li>
</ul> QFQ - Bug #17998 (New): Curly braces: a) save as html-entity, b) stored procedure to convert to h...https://project.math.uzh.ch/issues/179982024-02-26T12:53:24ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>In Forkred #17995 kam es bei der Anzeige eines Formulars zu einem Problem das <code>}}</code> als Variable interpretiert wurde.</li>
<li>Das ist ein schweres Problem und sollte versucht werden zentral zu vermeiden.</li>
</ul> QFQ - Feature #17858 (New): Check if QFQ is compatible with Typo3 V12https://project.math.uzh.ch/issues/178582024-02-11T18:35:34ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Wenn wir von isg_ldap_sso weg kommen (wird ersetzt durch oidc) gibt es keinen Grund mehr V12 noch nicht anzuschauen.</li>
<li>MNF ist noch auf V9 - Migration koennte ggfs. direkt auf V12 erfolgen.</li>
</ul> QFQ - Bug #17656 (New): Browser: regexp Pattern Match broken/error inhttps://project.math.uzh.ch/issues/176562024-01-19T13:30:07ZCarsten Rosecarsten.rose@math.uzh.ch
<p>QFQ 23.6.4</p>
<p>Auf der Forkred Seite im Passwort Reset Form gibt es in der Console die folgende Fehlermeldung</p>
<p><img src="https://project.math.uzh.ch/attachments/download/9048/clipboard-202401191424-dqr2g.png" alt="" /></p>
<p>Die Fehler Meldung zu der Regexp habe ich bei QFQ in JS Konsole schon häufiger gesehen - wird vermutlich allgmeines Problem sein, nicht formspezifisch.</p> QFQ - Feature #17618 (New): Doc/Report: change all examples 'remove numbers'https://project.math.uzh.ch/issues/176182024-01-16T13:41:27ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Feature #17411 (New): extraButtonCopyToClipboardhttps://project.math.uzh.ch/issues/174112023-12-05T21:21:40ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Mitunter ist es gewuenscht den Inhalt eines Input Elements in das Clipboard zu kopieren.</p>
<p>Fuer Report habe das schon <a class="external" href="https://docs.qfq.io/en/master/Report.html#copy-to-clipboard">https://docs.qfq.io/en/master/Report.html#copy-to-clipboard</a></p>
<p>Vergleichbar mit extraButtonLock,extraButtonPassword, extraButtonInfo.</p>
<p>Es waere gut wenn immer der aktuelle Inhalt des FormElements genommen wird, auch wenn der Record nicht nicht gespeichert wurde.</p>
<p>Der Button waere auch sinnvoll fuer FormElement.type=editor (TinyMCE / CodeMirror)</p>
<p>Erste Anwendung: u.a. in den Settings gibt es oft 'reference' Spalten - deren Inhalt kopiert man haeufiger in die Zwischenablage ...</p> QFQ - Feature #16988 (In Progress): Bild zuschneiden / Image Manipulationhttps://project.math.uzh.ch/issues/169882023-10-03T11:22:44ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Wir brauchen an unterschiedlichen Stellen die Moeglichkeit das ein Bild direkt im QFQ zugeschnitten werden kann.</p>
<p>Use Case:</p>
<ul>
<li>Carousel News (I-MATH/MY, JES)</li>
<li>MY Photowand</li>
<li>MY Student Exercise Upload </li>
<li>(Exam Upload)</li>
<li>MNF Heidi</li>
<li>...</li>
</ul>
<p>Details:</p>
<ul>
<li>Direkt im Upload Dialog</li>
<li>Explizit fuer bereits vorhandenes Bild</li>
<li>Option: Maske (fixem Aspekt Ratio) kann eingeblendet und verschoben / gezoomt werden.</li>
<li>Option: das Originalbild bleibt erhalten (Gleicher Pfad, Dateiname plus Extension 'original')</li>
<li>Option: Button restore Orginal.</li>
<li><a class="external" href="https://docs.qfq.io/en/master/Form.html#type-imagecut">https://docs.qfq.io/en/master/Form.html#type-imagecut</a></li>
</ul>
<p>10 Best Image Croppers In jQuery And Vanilla JavaScript (2024 Update) - <a class="external" href="https://www.jqueryscript.net/blog/best-image-croppers.html">https://www.jqueryscript.net/blog/best-image-croppers.html</a></p>
<ul>
<li><a class="external" href="https://fengyuanchen.github.io/cropperjs/">https://fengyuanchen.github.io/cropperjs/</a>, MIT, 12.5k Stars, 2023</li>
<li><a class="external" href="https://jamesooi.design/Croppr.js/">https://jamesooi.design/Croppr.js/</a>, MIT, 386 Stars, 2018, Aspect Ratio</li>
</ul> QFQ - Feature #14504 (New): Form / Input Element: restore previous contenthttps://project.math.uzh.ch/issues/145042022-07-12T09:23:40ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Es waere gut wenn fuer Textfelder die Moeglichkeit bestehen wuerde alten (nicht gespeicherten) Content wieder herzustellen.</p>
<p>Szenario: User nutzt nur einen Tab, hat in einem Formularelement etwas eingegeben und moechte nun die Seite verlassen, kann aber noch nicht speichern weil noch nicht alles eingegeben ist. QFQ warnt den User, das Informationen verloren gehen, der User muss das als das kleinere Uebel akzeptieren und verliert dann seinen Content</p>
<p>Loesung 1: server based</p>
<ul>
<li>Der Infodialog, der den User warnt, bekommt eine dritte Option 'Restore content later'.</li>
<li>Alle Dirty FormElemente (STORE_BEFORE?) werden serverseitig gespeichert: feUser, SIP (Form, Record, extra Argumente). </li>
<li>Wird das Form mit der SIP und dem User wieder geoeffnet, erkennt QFQ das es temp Values gibt, laedt den Record wie gewoehnlich, und bietet dann an das die alte Werte wieder restauriert werden.</li>
</ul>
<p>Loesung 2: Browser Local Store</p>
<ul>
<li>Jedes Formulare wird bei jedem(!) change im Local Store gespeichert.</li>
<li>Wird ein Form mit 'save', 'close', 'browser tab close' geschlossen, wird der Eintrag im Local Store geloescht.</li>
<li>Wird ein Form geoeffnet und gibt es dazu einen Eintrag im Local Store, wird angeboten diesen zu laden.</li>
<li>Damit wuerden auch Browser-Crashes wieder hergestellt.</li>
</ul> QFQ - Feature #12038 (New): a) STORE_VAR: filenameOnlyStripUniq, b) SP: QSTRIPUNIQ()https://project.math.uzh.ch/issues/120382021-02-17T22:48:09ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Regelmaessig sollen Dateien hochgeladen werden, bei denen es keinen Konflikt geben darf wenn bereits eine Datei mit dem Namen existiert.</p>
<p>Ein gute Loesung ist die ID des aktuellen Records an den Anfang der Datei zu setzen. Bsp.: aus `test.pdf` wird dann `1234.test.pdf`</p>
<p>Via SQL ist es aufwendig den String zu parsen:</p>
<ul>
<li>Cut Path, so dass nur noch der Filename uebrig ist.</li>
<li>Dann z.B. vom Anfang bis zum ersten Punkt alles abschneiden.</li>
</ul>
<p>Wunsch:</p>
<p>a) Im STORE_VAR eine neue Variable `filenameOnlyStripUniq` einfuehren die geanu das macht.<br />b) Eine neue Stored Procedure <abbr title="">QSTRIPUNIQ</abbr>() anlegen die genau das macht (kann in Report verwednet werden)</p> QFQ - Feature #11513 (Closed): add special column AS _scripthttps://project.math.uzh.ch/issues/115132020-11-12T22:13:51ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Feature #11512 (Closed): add access to Var storehttps://project.math.uzh.ch/issues/115122020-11-12T22:05:06ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Support #10599 (Closed): escapeshellarg() removes non ascii charshttps://project.math.uzh.ch/issues/105992020-05-16T14:39:26ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Wenn Apache mit LANG=C laeuft werden</p>
<ul>
<li>durch escapeshellarg() die Umlaute entfernt (eigenlich alle non Ascii chars). Beispiel: 'Universität Zürich' >> 'Universitt Zrich'</li>
<li>'wkthml' entfernt ebenfalls die Umlaute aus Parametern.</li>
</ul>
<p>Abhilfe: Apache mit dem System Local starten, welches heutzutage en_US.UTF-8 ist.</p>
<p>Ubuntu:<br /><pre>
# File: /etc/apache2/envvars
# Activate line:
. /etc/default/locale
</pre></p>
<ul>
<li>Damit entfernt escapeshellarg() keine non-Ascii Zeichen.</li>
<li>'wkhtml' startet mit LANG=en_US.UTF-8 und stripped ebenfalls keine non-Ascii chars.</li>
</ul> QFQ - Bug #9861 (Closed): Fix broken sql.log filenamehttps://project.math.uzh.ch/issues/98612020-01-09T14:15:09ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Bug #9859 (Closed): Database Update: check for 'Update specialColumnName needed' breaks cle...https://project.math.uzh.ch/issues/98592020-01-09T14:00:58ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Feature #9853 (New): Check das SQL / QFQ / Mail Logfile geschrieben wirdhttps://project.math.uzh.ch/issues/98532020-01-09T10:15:45ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Feature #7106 (Some day maybe): Beispiel Nummerierung von Rows in Reporthttps://project.math.uzh.ch/issues/71062018-10-27T09:21:06ZCarsten Rosecarsten.rose@math.uzh.ch
<p>In Report Nummerierung von Zeilen:</p>
<ul>
<li>via SQL Variable<br />∘ via Report: line.count</li>
</ul> QFQ - Feature #7105 (Some day maybe): Beispiel wie man in einer zweiten Tabelle speichert.https://project.math.uzh.ch/issues/71052018-10-27T09:18:24ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Bug #7101 (Some day maybe): 'form' in SIP and 'report' - breakshttps://project.math.uzh.ch/issues/71012018-10-27T08:47:43ZCarsten Rosecarsten.rose@math.uzh.ch
<p>falls in der SIP ein form ist und um qfq record ein form defineirt ist (wrid dynamisch berechnet) kommt qfq beim defintinve laden des form durcheinander.</p> QFQ - Feature #7100 (Some day maybe): Download: log access, max downloads, time limithttps://project.math.uzh.ch/issues/71002018-10-27T08:45:40ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Logging wer/wann von wo zugegriffen hat</li>
<li>max anzahl an downloads begrenzen</li>
<li>zeitlich begrenzen.</li>
<li>anonymer download</li>
<li>kann theoretisch via qfq/report geloest werden</li>
<li>vermutlich praktischer wenn eine logtabelle angegben werden kann</li>
<li>in SIP logtabelle angeben</li>
</ul> QFQ - Bug #7011 (Rejected): Button 'Einreichen' erscheint doppelt - Rahmen Pill falsch - GRC / Fo...https://project.math.uzh.ch/issues/70112018-10-16T06:32:47ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Button einreichen doppelt (FF) - wir (SW/CR) koennen das Problem mit den zwei Buttons nciht reproduzieren.</li>
<li>Ueber dem Button ist eine waagerechte Linie - die hat CR schoen oefter in letzter Zeit gesehen.</li>
</ul> QFQ - Feature #6992 (Some day maybe): DB exception: Syntax Highlight https://project.math.uzh.ch/issues/69922018-10-13T09:12:32ZCarsten Rosecarsten.rose@math.uzh.ch
<p>siehe punkt 2 <a class="issue tracker-2 status-5 priority-2 priority-default closed" title="Feature: DB Exception: highlight problematic text position, SQL syntax highlight (Closed)" href="https://project.math.uzh.ch/issues/5450">#5450</a></p> QFQ - Feature #6299 (Some day maybe): Attack detection: log table with invalid SIP access https://project.math.uzh.ch/issues/62992018-06-23T16:32:22ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Die Abwehrmassnahmen fuer SIP brute force sollen wie folgt verbessert werden.</p>
<ul>
<li>Es gibt eine Tabelle die alle mis-hit auf SIP oder Persistent SIP notiert:
<ul>
<li>IP</li>
<li>PHP Session</li>
<li>feUser</li>
<li>UserAgent</li>
<li>pageId</li>
<li>Zeitpunkt</li>
</ul></li>
</ul>
<ul>
<li>QFQ prueft bei jedem Start ob ein Full Stop (Attack detected) noetig ist:
<ul>
<li>Hits pro Sekunde, pro Minute, pro 5 Minuten, pro Stunde, pro Tag, pro Monat</li>
<li>Count pro IP, count pro PHP Session, count pro feUser</li>
<li>Fuer jede 'Hit/pro Zeit'-Klasse gibt es einen Schwellwert.</li>
<li>Ist der Schwellwert ueberschritten, wird die IP gesperrt, resp. die PHP Session gesperrt. </li>
<li>Eintraege aelter als einen Monat werden geloescht.</li>
</ul></li>
</ul>
<ul>
<li>Es wird nicht erwartet das viele Daten in der Tabelle stehen.</li>
</ul> QFQ - Feature #6288 (Some day maybe): Best Practice: Erklaeren wie man ein Formular ganz in 'weis...https://project.math.uzh.ch/issues/62882018-06-20T16:35:27ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Mit den Klassen classPill, classBody, classTitle kann man ein Formular ganz in weiss machen</p>
<p>Lehrkredit/Form: requestApprove</p>
<p>classBody=qfq-color-white</p> QFQ - Feature #6083 (Some day maybe): Dynamic Update: Value Check via SQLhttps://project.math.uzh.ch/issues/60832018-05-26T16:39:52ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Um z.B. die Eingabe eines Start/Ende Datums via 'dynamic update' kontrollieren zu koennen, waere es gut wenn man eine SQL query dafuer definieren koennte.</p>
<p>Bsp: projektStart und projektEnde duerfen nur maximal 24 Monate umfassen.</p>
Implementierungsidee:
<ul>
<li>Es gibt einen neuen FormElementTyp 'dynamicUpdateCheck' mit type='action'.</li>
<li>Im zu ueberpruefenden FE gibt es im Parameterfeld<br /><pre>
dynamicUpdateCheckFeId = 123 # FormElement.id eines FE mit type='dynamicUpdateCheck'
</pre></li>
<li>Die Notation ist identisch zu 'beforeSave'.</li>
</ul> QFQ - Feature #5923 (Some day maybe): fillStoreSystemBySqlLatehttps://project.math.uzh.ch/issues/59232018-05-06T18:51:19ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Neben fillStoreSystemBySql1-3 soll es neu auch fillStoreSystemBySqlLate1-3 geben (inkl. Fehlermeldung).</p>
<p>Diese werden ausgewertet nachdem alle Stores gefuellt wurden. Damit koennen dort auch feUser und STORE_CLIENT Values verwendet werden.</p> QFQ - Feature #5893 (Some day maybe): Edit on double-clickhttps://project.math.uzh.ch/issues/58932018-05-01T14:20:31ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Oft gibt es Reports, bei denen pro Row nur wenige Zellen manipuliert werden soll. Dort waere es gut (wie bei phpMyAdmin) das ein Doppelklick einen edit mode fuer die aktuelle Zelle oeffnet.</p>
<p>Bei diesen mini-edit gibt es kein Submit. Stattdessen ist ein 'lost focus' der Submit.</p>
<p>Vermutlich waere es gut, wenn via Ajax der ganze report nachgeladen werden koennte.</p>
<p>Anwendung: pro Record die Reihenfolge oder einen Status setzen.</p> QFQ - Feature #5891 (Rejected): After logout: destroy sip storehttps://project.math.uzh.ch/issues/58912018-05-01T12:59:44ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Bug #5890 (Closed): File 'config.qfq.ini' by default public - protect against accesshttps://project.math.uzh.ch/issues/58902018-05-01T12:49:43ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>config.qfq.ini kann aktuell, bei direkter Eingabe des Pfades, im Webbrowser angezeigt werden!!!</li>
<li>Optionen das zu verhindern:
<ul>
<li>File umbennennen mit 'php' am Ende.</li>
<li>In ein geschuetztes Verzeichnis verschieben</li>
</ul></li>
</ul>
<ul>
<li><a class="issue tracker-2 status-5 priority-2 priority-default closed" title="Feature: config.qfq.ini via ExtManager (Closed)" href="https://project.math.uzh.ch/issues/5175">#5175</a> config.qfq.ini via ExtManager</li>
<li><a class="issue tracker-1 status-5 priority-2 priority-default closed" title="Bug: sql.log by default public - protect against access (Closed)" href="https://project.math.uzh.ch/issues/5884">#5884</a> sql.log by default public - protect against access</li>
</ul> QFQ - Bug #5877 (Some day maybe): FE.type=note:bsColumn strange behaviourhttps://project.math.uzh.ch/issues/58772018-04-26T16:32:42ZCarsten Rosecarsten.rose@math.uzh.ch
<p>SW hat auf der GRC Seite ein spezielles Verhalten gehabt.</p>
<ul>
<li>FE Element (kein Dynamic Update) type=note</li>
<li>In der Note gab es kein Label und Input.</li>
<li>Die Note Spalte war 9 spalten breit. Label=3, Input=0</li>
<li>Nachdem 'modeSql' gesetzt wurde, so dass nur bei gewissen Grants das FE angezeigt werden soll (show/hidden), war der Button linksbuendig, obwohl er in der 4. Spalte beginnen soltle.</li>
<li>Wurde Label=2, Input=1 oder Label=0, Input=3 gesetzt, trat der Effekt nicht auf.</li>
</ul> QFQ - Feature #5850 (Some day maybe): Deployment: In QFQ Doc best practice fuer zeitgemaesses Dep...https://project.math.uzh.ch/issues/58502018-04-21T11:37:16ZCarsten Rosecarsten.rose@math.uzh.ch
<p><a class="external" href="https://docs.typo3.org/typo3cms/TellMeSomethingAbout/Topics/Deployment.html">https://docs.typo3.org/typo3cms/TellMeSomethingAbout/Topics/Deployment.html</a><br /><a class="external" href="https://docs.typo3.org/typo3cms/TellMeSomethingAbout/Topics/Docker.html">https://docs.typo3.org/typo3cms/TellMeSomethingAbout/Topics/Docker.html</a><br /><a class="external" href="https://blog.chriwo.de/tagged/PhpStorm">https://blog.chriwo.de/tagged/PhpStorm</a> (PhpStorm / composer)<br /><a class="external" href="https://github.com/martin-helmich/docker-typo3">https://github.com/martin-helmich/docker-typo3</a></p> QFQ - Feature #5783 (Some day maybe): BPMN View/Edithttps://project.math.uzh.ch/issues/57832018-04-05T14:50:40ZCarsten Rosecarsten.rose@math.uzh.ch
<p>QFQ soll BPMN Workflows anzeigen und editieren koennen:</p>
<ul>
<li>BPMN Edit:
<ul>
<li><a class="external" href="https://github.com/bpmn-io/bpmn-js">https://github.com/bpmn-io/bpmn-js</a></li>
<li><a class="external" href="https://github.com/bpmn-io/bpmn-moddle">https://github.com/bpmn-io/bpmn-moddle</a> </li>
<li><a class="external" href="https://github.com/bpmn-io/diagram-js">https://github.com/bpmn-io/diagram-js</a></li>
</ul></li>
</ul>
<ul>
<li>Beispiel fuer BPMN Anzeige via JQuery: <a class="external" href="https://www.pleus.net/blog/?p=2142">https://www.pleus.net/blog/?p=2142</a></li>
</ul> QFQ - Feature #5571 (Closed): File Upload: save filesize and mimetypehttps://project.math.uzh.ch/issues/55712018-02-28T11:26:43ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Beim Upload in STORE_VAR die Dateigroesse und den Mimetype setzen.</p> QFQ - Bug #5502 (Rejected): Download Button: Empty setting throws an error.https://project.math.uzh.ch/issues/55022018-02-22T12:12:55ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>In der Doku steht das ' fe.parameter.downloadButton', ohne Angabe von weiteren Parametern, ok ist und nur ein Glyph rendert. </li>
<li>Auf webwork16/grc/sw gab es einen Fehler (attached).</li>
</ul> QFQ - Support #4967 (Closed): config.qfq.ini: Rename 'VAR_ADD_BY_SQL' to 'FILL_STORE_SYSTEM_BY_SQ...https://project.math.uzh.ch/issues/49672017-11-19T15:19:35ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Rename 'VAR_ADD_BY_SQL' to 'FILL_STORE_SYSTEM_BY_SQL_1'</li>
<li>Implement up to 3 independent to SQLs</li>
<li>Optional error message, if not exact one record</li>
<li>Columns in the Query, starting with an leading '_', should be renamed to 'without the leading "_"'.</li>
</ul> QFQ - Feature #4719 (Some day maybe): Custom Message in Client in case of 'Browser tab close, mod...https://project.math.uzh.ch/issues/47192017-10-05T18:53:50ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Feature #4702 (Closed): FE.type=subrecord - new column attributes: maxLength (ex 'width')...https://project.math.uzh.ch/issues/47022017-10-04T19:02:11ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Es sollen die folgenden neuen Column Atrribute fuer Spalten von FE.type=subrecord implementiert werden:</p>
<ul>
<li>maxLength: Die alte Bezeichnung 'width' wird durch maxLength ersetzt.</li>
<li>width: Spalte in Pixel (keine extension) oder Prozent (extension '%')</li>
</ul> QFQ - Feature #4627 (Some day maybe): dbupdate: all tables - check 'create', 'modified' if it is ...https://project.math.uzh.ch/issues/46272017-09-24T07:52:22ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Feature #4536 (Some day maybe): FE upload: problem with delete if mutliple uploads an FE.na...https://project.math.uzh.ch/issues/45362017-09-15T13:20:33ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Bei GRC in Form='requestPM' gibt es 3 Uploadfelder (advanced: Tabelle 'Note')</li>
<li>Ist nur ein Upload Feld 'enabled' funktioniert Laden/Speichern/Loeschen gut.</li>
<li>Ist ein weiteres FE Upload Feld 'enabled', funktioniert das Loeschen eines Uploads nicht mehr: 'Trash > Speichern > Reload' zeigt den Record wieder an.</li>
<li>Werden den Upload Felder Namen gegeben, fe.name='my....' funktioniert das loeschen sauber.</li>
</ul> QFQ - Feature #4444 (Some day maybe): FE.type=upload: detect mime typehttps://project.math.uzh.ch/issues/44442017-09-09T15:04:53ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Falls kein 'file' installiert ist: Fallback auf filename extension</p>
config.qfq.ini:
<ul>
<li>mimetype=file (default)</li>
<li>mimetype= (detection off)</li>
</ul>
<ul>
<li>persoenliche notiz
<ul>
<li>-b (brief)</li>
<li>--extension</li>
<li>--mime</li>
<li>--keep-going</li>
</ul></li>
</ul> QFQ - Bug #4441 (Some day maybe): $_SERVER Vars sollten nur aus dem Store genommen werden - Code ...https://project.math.uzh.ch/issues/44412017-09-09T14:34:35ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Feature #4434 (Closed): Disable 'special column names' starting without '_'https://project.math.uzh.ch/issues/44342017-09-09T13:36:52ZCarsten Rosecarsten.rose@math.uzh.ch
<p>REPORT_MODE_SPECIAL_COLUMN_NAME_TOKEN=onlyUnderscore</p>
<ul>
<li>In new setups this is the default.</li>
<li>To no break old installations: if the directive is missing, with or without underscore is ok.</li>
<li>SW hatte das Problem das eine Spalte 'zip' hiess, und das wurde als Special Column Name erkannt.</li>
</ul> QFQ - Feature #3880 (Some day maybe): Form 'Form': anlegen einer Tabellehttps://project.math.uzh.ch/issues/38802017-06-08T20:32:09ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Das Feld zu Auswahl der Primary Tabelle soll neu ein Typeahead-Feld sein.</li>
<li>Wird ein Tabellenamen eingegeben der noch nicht existiert, ercheint rechts in der Notiz ein Link um die Tabelle anzulegen.</li>
<li>Existiert die Tabelle, kann ein Popup mit der Spaltendefinition geoeffnet werden.</li>
</ul> QFQ - Feature #3879 (Some day maybe): Form 'FormElement': Beim Feld 'name' rechts in der Notiz ei...https://project.math.uzh.ch/issues/38792017-06-08T20:30:15ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>User gibt einen Spaltennamen ein.</li>
</ul>
<ul>
<li>Falls der Spaltennamen existiert:
<ul>
<li>Anzeige der aktuellen Defintion in der Tabelle</li>
</ul></li>
</ul>
<ul>
<li>Falls der Spaltennamen noch nicht existiert:
<ul>
<li>wird im Notizbereich ein Link eingblendet der auf ein 'Column Create' Form zeigt.</li>
<li>In Form 'Column Create' kann man Typ, Laenge, ... einstellen und die Spalte anlegen.</li>
</ul></li>
</ul> QFQ - Feature #3878 (Some day maybe): Form 'FormElement': Spalte 'name' typeAhead mit Spaltenname...https://project.math.uzh.ch/issues/38782017-06-08T20:19:35ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Feature #3567 (Some day maybe): 'Save', 'Close', 'New' als FormElementhttps://project.math.uzh.ch/issues/35672017-04-13T10:47:15ZCarsten Rosecarsten.rose@math.uzh.ch