Project @ iMath: Issueshttps://project.math.uzh.ch/https://project.math.uzh.ch/favicon.ico?16668783892024-03-03T22:20:55ZProject @ iMath
Redmine QFQ - Feature #18047 (New): (filepond) uploadType: a) report invalid value, b) change v1/v2 to 1/...https://project.math.uzh.ch/issues/180472024-03-03T22:20:55ZCarsten Rosecarsten.rose@math.uzh.ch
<p>FormElement.paramter.uploadType:</p>
<p>a) report invalid value</p>
<p>Wird ein ungueltiger Wert konfiguriert, sollte es eine Fehlermeldung geben - aktuell funktioniert das Upload Element dann nicht - aber es gibt keine Fehlermeldung.</p>
<p>b) change v1/v2 to 1/2</p>
<p>Ich wuerde vorschlagen wir nennen die Typen nicht v1/v2 sondern einfach 1/2. Grund: keep it simpel.</p>
<p>Sicher werden wir auch Beispiele finden an denen 'v..' angibt, aber meiner Wahrnehmung nach ist meistens kein 'v' angegeben:</p>
<p><img src="https://project.math.uzh.ch/attachments/download/9395/clipboard-202403032310-ira1s.png" alt="" /></p>
<p><img src="https://project.math.uzh.ch/attachments/download/9394/clipboard-202403032309-befkx.png" alt="" /></p>
<p>c) Im CodeMirror fehlen scheinbar ein paar Keywords fileSplit, tableNameSplit, uploadType - koenntest du die mit aufnehmen? Elias sollte eine Doku geschrieben haben wo das zu machen ist.</p>
<p><img src="https://project.math.uzh.ch/attachments/download/9400/clipboard-202403032320-priqn.png" alt="" /></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 #17868 (New): Automatisierte Security Testshttps://project.math.uzh.ch/issues/178682024-02-12T12:44:12ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Bei Heise wird ein Workshop zum Thema angeboten.</li>
<li>Die Topics (siehe PDF) koennen helfen selber in dem Bereich Checks aufzubauen.</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 - Feature #17813 (New): bsColumns - bisher: col-md-12 col-lg-10 / neu: col-md-12 col-lg-8https://project.math.uzh.ch/issues/178132024-02-03T16:40:19ZCarsten Rosecarsten.rose@math.uzh.ch
<p>bsColumns:</p>
<a name="Neu-1680px-col-md-12-col-lg-8"></a>
<h2 >Neu 1680px (col-md-12 col-lg-8)<a href="#Neu-1680px-col-md-12-col-lg-8" class="wiki-anchor">¶</a></h2>
<p><img src="https://project.math.uzh.ch/attachments/download/9140/clipboard-202402031737-pag4g.png" alt="" /></p>
<p><img src="https://project.math.uzh.ch/attachments/download/9143/clipboard-202402031811-a3aus.png" alt="" /></p>
<a name="Alt-1680px-col-md-12-col-lg-10"></a>
<h2 >Alt 1680px (col-md-12 col-lg-10)<a href="#Alt-1680px-col-md-12-col-lg-10" class="wiki-anchor">¶</a></h2>
<p><img src="https://project.math.uzh.ch/attachments/download/9141/clipboard-202402031739-hnb8a.png" alt="" /></p>
<p><img src="https://project.math.uzh.ch/attachments/download/9142/clipboard-202402031809-ae1ib.png" alt="" /></p> QFQ - Feature #17791 (New): Checkbox: copy default texthttps://project.math.uzh.ch/issues/177912024-02-02T12:16:07ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Bei einer Liste von Checkboxen soll es moeglich sein hinterlegte Texte mit einem Mausclick in die Zwischenablage zu kopieren.</p>
<ul>
<li>Die 'action' Button kommt hinter das letzte Feld in die Kommentarspalte.</li>
<li>Click kopiert die Texte in die Zwischenablage, oder es wird eine HTML ID / CLASS angegeben und dort hinkopiert (z.B. das Chat Input Fenster)</li>
</ul>
<p>Bsp:</p>
<pre>
[] rot
[] gruen
[] gelb
</pre>
<ul>
<li>rot: erdbeere, radieschen, paprika rot</li>
<li>gruen: erbse, apfel gruen, </li>
<li>gelb: zitrone</li>
</ul>
<pre>
{{!SELECT id, label, copytext FROM gruppe ....}}
'copytext' wird nicht angezeigt, sodnern ist der Text der in die Zwischenablage kopiert wird.
!clipboard-202402021310-orpas.png!</pre> 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 #17647 (New): Chat Ratchet Websocket Server: a) start on boot, b) multiple racthet ...https://project.math.uzh.ch/issues/176472024-01-18T12:28:35ZCarsten Rosecarsten.rose@math.uzh.ch
<p>a) start on boot</p>
<ul>
<li>Ratched soll beim Boot automatisch starten. </li>
<li>Es gibt kein Stop mehr</li>
</ul>
<p>b) multiple racthet instances,</p>
<ul>
<li>Pro Host koennen mehere Ratchets gestartet/beendet werden.</li>
<li>Ratchet Config Datei entsprehcend anpassen.</li>
<li>Optionale Check ob nginx/apache entsprechende Proxy Anweisungen enthalten</li>
</ul>
<p>c) update QFQ not to start/stop</p>
<ul>
<li>Aus dem Controller das 'start' und aus QFQ das 'stop' entfernen.</li>
</ul>
<p>d) Update installation doc</p>
<ul>
<li>NGINX/Apache Config Beispiel</li>
<li>Start Script fuer Ratched in QFQ mit verteilen.</li>
</ul> 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 #17616 (New): Automate QFQ Build Prozesshttps://project.math.uzh.ch/issues/176162024-01-16T11:23:53ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Aktuell ist es extrem muehsam eine neue QFQ Version zu bauen.</li>
<li>Es waere sehr erstrebenswert neuen QFQ Versionen auf Knopfdruck erzeugen zu koennen.</li>
</ul>
<p>Ideen:</p>
<ul>
<li>Mit jedem Merge eines Branches in Develop wird ein Eintrag in die Releasenotes gemacht.
<ul>
<li>Im Merge Request steht die Ticketnummer.</li>
<li>Daraus kann das Subject fuer die `Releasenotes.nextversion` genommen werden.</li>
<li>Das Ticket wird in den Milestone '_nextversion' verschoben und auf 'Ready to sync' gesetzt.</li>
</ul></li>
</ul>
<ul>
<li>Bei einem Merge von Develop nach Master Files (alle in Develop gesammelten Branches auf einmal) wird eine neue Version gebaut
<ul>
<li>Es wird eine Versionsnummer besteimmt. Z.B. 24.1.3 - die '3' ist ein Counter die bei jeder neuen Version hochgezaehlt wird. Wechselt der Monat wird sie auf 0 zurueck gesetzt. Das Jahr wird ebenfalls automatisch angepasst.</li>
<li>In Project wird ein Milestones mit der neuen Versionsnummer angelegt.</li>
<li>`Releasenotes.nextversion` wird sortiert nach Features/Bug/Note und diese werden in die finalen Release-Notes kopiert.</li>
<li>Alle aufgefuehrten Tickets werden geschlossen. Der Milestone wird geschlossen.</li>
</ul></li>
</ul>
<p>Subject ist</p> QFQ - Feature #17539 (New): Check if stored procedures exist - if not, createhttps://project.math.uzh.ch/issues/175392024-01-05T11:55:23ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>CR passiert es regelmaessig das neue T3 Instanzen erstellt werden und diese via mysqldump restauriert werden.</li>
<li>Dabei gehen die 'stored procedures' haeufig vergessen.</li>
<li>Es waere gut wenn die dann einfach angelegt werden wuerden.</li>
</ul>
<p><img src="https://project.math.uzh.ch/attachments/download/8957/clipboard-202401051252-pjznw.png" alt="" /></p> QFQ - Feature #17523 (New): QFQ-Test-Application - Setup based on CR QFQ Instanzhttps://project.math.uzh.ch/issues/175232023-12-28T15:40:15ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Wird aktuell fuer webwork20 implementiert</li>
<li>Sollte bald auf webwork22 migriert werden (neues PHP, mariabd)</li>
<li>Aus diesem Setup bekommt jeder Developer seine QFQ Instanz</li>
<li>Entwickelt ein Developer etwas neues und sollte das als Beispiel in die 'QFQ-Test-Application' aufgenommen werden, so muss der Developer das machen.</li>
<li>Die Selenium Tests basieren auf dieser QFQ-Test-Application .</li>
</ul> QFQ - Feature #16297 (New): AutoCron: no SIP https://project.math.uzh.ch/issues/162972023-05-26T08:59:22ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Im AutoCron , wenn z.B. via Report eine Mail versendet wird, funktionieren SIP Parameter nicht (es gibt keine QFQ Session die weitergereicht wird)</li>
<li>Eine Loesung waere das ein AutoCron einen API Key bekommt, mit dem er aufgerufen wird, und dieser User (=API-Key) hat dann entsprechende Berechtigungen. </li>
<li>Der API Key wird in der QFQ Config zentral hinterlegt.</li>
<li>Der API Key ist im OS Crontab eingetragen und wird beim Aufruf mit uebergeben.</li>
</ul> QFQ - Feature #15992 (New): Block IP for failed loginshttps://project.math.uzh.ch/issues/159922023-04-12T12:14:58ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Min in Typo3 V11 ist das bereits implmentiert:</p>
<p><a class="external" href="https://docs.typo3.org/c/typo3/cms-core/main/en-us/Changelog/11.3/Feature-93825-RateLimitingForFailedLogins.html">https://docs.typo3.org/c/typo3/cms-core/main/en-us/Changelog/11.3/Feature-93825-RateLimitingForFailedLogins.html</a></p>
<p>Allerdings ist nicht klar wie lange das Block anhaelt und ob sich das auf die IP bezieht oder ob sich dann niemand mehr einloggen kann.</p>
<p>Am besten genauer anschauen. Im besten Fall kann dann auf eine eigene QFQ Loesung verzichtet werden.</p>
<p>Loesung in der QFQ Doku unter Secrurity beschreiben.</p> 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 #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 #15015 (New): Doc: Export / Import Sectionhttps://project.math.uzh.ch/issues/150152022-11-10T19:27:53ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Heute habe ich die Stelle gesucht an der der Import von Excel Dateiern beschrieben ist. Das ist beim Upload FormElement.</p>
<p>Es waere gut wenn in der Doku eine Rubrik zu diversen Import/Export Moeglichkeiten (oberster Level Hauptnavigation) existieren wuerde.</p>
<p>Die Section enhaelt nur allgmeine Informationen und Referenzen zu den Details</p> QFQ - Bug #14998 (New): Default Escape-Type different between `sql`and `head|tail`https://project.math.uzh.ch/issues/149982022-11-06T14:39:18ZCarsten Rosecarsten.rose@math.uzh.ch
<pre>
10 {
sql = SELECT CHAR(10) AS _lf
}
20 {
sql = SELECT '{{lf:R}}', '[hello 1]', '{{lf:R}}'
head = '{{lf:R}}[hello 2]{{lf:R}}'
# head = '{{lf:R::-}}[ hello 2]{{lf:R::-}}'
}
# Das kommt heraus:
\n[ hello 2]\n
[hello 1]
# Folgendes sollte heraus kommen
[hello 2]
[hello 1]
# Das gewuenschte kann erreicht werden, in dem die erste head Zeile durch die zweite ersetzt wird.
</pre>
<ul>
<li>Es ist schlecht das unterschiedliche Defaults beim escapen gelten. </li>
<li>Bitte nachschauen woran das liegt und mit CR beschrechen.</li>
<li>Wenn wir das einfach umstellen wird es Probleme mit mit alten Instanzen geben.</li>
<li>Bitte check was fuer <code>rbeg,rend,fbeg,fend,rsep,fsep,althead,altsql</code> gilt.</li>
</ul> QFQ - Feature #14884 (New): Darstellung Pflichtfelder / Beschreibung was fehlt oder falsch isthttps://project.math.uzh.ch/issues/148842022-10-13T08:15:11ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Die Variante wie 'Planon' required Felder anzeigt (duenner roter Rahmen) und im Schritt 2>3 dann genauere Meldungen anzeigt find ich optisch sehr ansprechend.</p>
<p>Die Alerts oben summieren sich auf.</p>
<p><img src="https://project.math.uzh.ch/attachments/download/6707/clipboard-202210131011-fckqz.png" alt="" /></p>
<p>Sollen wir das bei QFQ mal schoener machen oder besser das auf nach BS5 Migration warten?</p> QFQ - Feature #14638 (New): Copy Form via JSON: misc topicshttps://project.math.uzh.ch/issues/146382022-08-31T08:26:55ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Im Form 'FormJson' kann man akutell das JSON nur als Datei speichern. Gewuenscht waere das man es auch in das Gnome Clipboard kopieren kann.</li>
<li>Im Form 'FormElement' sollte man das aktuell FE in die Zwischenablage kopieren koenenn. Dann wechselt man in das Zielform und fuegt das Element ein</li>
<li>Im Form 'Form' sollte man das aktuelle Form:
<ul>
<li>in die Zwischenablage kopieren koennen.</li>
<li>als JSON in die Gnome Zwischenablage kopieren koennen</li>
</ul></li>
</ul>
<ul>
<li>Beim Form JSON Import: Check das die aktuelle angegbeene Tabelle existiert, wenn nicht eine Warnung ausgeben oder den Import verweigern.</li>
</ul> QFQ - Bug #14377 (New): Documentation > General Tips: white page after migrationhttps://project.math.uzh.ch/issues/143772022-06-17T13:28:54ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Bitte die Fehlersuche beschreiben und (hoffentlich) den Fix.</p>
<ul>
<li>Apache / nginx Logfile</li>
<li>fuer FPM-PHP gibt es in der Regel ein eigenes Logfile.</li>
<li>Funktioniert das Backend</li>
<li>Funktioniert das Installtool</li>
<li>Funktioniert PHP</li>
<li>Wo loggt QFQ wenn es zu einem ganz fruehen Zeitpunkt crasht</li>
<li>Kannst Du den Debugger schon benutzen?</li>
<li>Cache loeschen</li>
<li>BaseUrl korrekt?</li>
<li>...</li>
</ul> QFQ - Bug #14077 (New): As _link: Attribute 'class' missing by r:1 and r:3 - but should sethttps://project.math.uzh.ch/issues/140772022-04-15T08:11:37ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>In #13350 beshreibt Benj das 'class' scheinbar nicht gesetzt wird bei r:1 und r:3.</li>
<li>Frage: in welchem Render Mode sollen Attribute gesetzt werden? <a class="external" href="http://docs.qfq.io/en/master/Report.html#render-mode">http://docs.qfq.io/en/master/Report.html#render-mode</a></li>
<li>Ganz sicher immer wenn 'text' ausgegeben werden soll.</li>
<li>Vorschlag: 1,2,3,4,6</li>
</ul> QFQ - Feature #13841 (New): Create PDF via iText - evaluatehttps://project.math.uzh.ch/issues/138412022-02-25T07:29:10ZCarsten Rosecarsten.rose@math.uzh.ch
<p><a class="external" href="https://www.heise.de/hintergrund/Auf-Knopfdruck-PDFs-in-Anwendungen-erstellen-mit-HTML-und-CSS-Modul-6457863.html">https://www.heise.de/hintergrund/Auf-Knopfdruck-PDFs-in-Anwendungen-erstellen-mit-HTML-und-CSS-Modul-6457863.html</a></p> QFQ - Feature #13467 (New): ChangeLog Generatorhttps://project.math.uzh.ch/issues/134672021-12-04T20:06:43ZCarsten Rosecarsten.rose@math.uzh.ch
<p>git-cliff: A highly customizable Changelog Generator that follows Conventional Commit specifications</p>
<p><a class="external" href="https://github.com/orhun/git-cliff">https://github.com/orhun/git-cliff</a></p>
<blockquote><blockquote>
<p>Anschauen ob das was ist fuer uns</p>
</blockquote></blockquote> QFQ - Bug #13460 (New): Doc: Password set/reset ... password should not processed with 'html encode'https://project.math.uzh.ch/issues/134602021-12-02T16:46:33ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Wenn ein neues Passwort gesetzt wird, darf es nicht HTML encoded werden - sonst funktioniert das '&' nicht.</p>
<p>Check ob das Beispiel im Best Practice das beruecksichtigt.</p> QFQ - Bug #13451 (New): Character Counter / Max Character: Problem in Safarihttps://project.math.uzh.ch/issues/134512021-11-30T19:43:10ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Mitunter ist der Character Counter in Textarea Feldern ungenau. Der Fehler scheint bei Safari aufzutreten. In Firefox oder Google Chrome (Linux & Mac) kann der Effekt nicht beobachtet werden.</p>
<p>Werden z.B. bei dem unten genannten Feld 2500 Zeichen (nur Ziffern) aus der Zwischenablage eingefuegt, kann man unter Safari immer noch Zeichen (>100) eingeben.</p>
<pre>
{
"dynamicUpdate": "no",
"enabled": "yes",
"name": "project_description",
"label": "Zusammenfassung<\/div><div class=\"col-md-9\"><small><i>max. 2'500 Zeichen inkl. Leerzeichen<\/i><\/small>",
"mode": "required",
"modeSql": "",
"class": "native",
"type": "text",
"subrecordOption": "",
"encode": "specialchar",
"checkType": "auto",
"checkPattern": "",
"onChange": "",
"ord": 490,
"tabindex": 0,
"size": "62,25",
"maxLength": "2500",
"labelAlign": "default",
"bsLabelColumns": "3",
"bsInputColumns": "9",
"bsNoteColumns": "0",
"rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
"note": "",
"adminNote": "",
"tooltip": "",
"placeholder": "",
"value": "",
"sql1": "",
"parameter": "characterCountWrap = <small><i><span class=”qfq-cc-style”>Zeichen: | <\/span><\/i><\/small>",
"parameterLanguageA": "label = Summary<\/div><div class=\"col-md-9\"><small><i>max. 2'500 characters, including spaces<\/i><\/small>\r\n\r\ncharacterCountWrap = <small><i><span class=”qfq-cc-style”>Count: | <\/span><\/i><\/small>",
"parameterLanguageB": "",
"parameterLanguageC": "",
"parameterLanguageD": "",
"clientJs": "",
"feGroup": "",
"deleted": "no",
"modified": "2019-11-11 23:40:45",
"created": "2018-07-26 09:33:33",
"containerName_ff": "Projektangaben"
},
</pre> QFQ - Bug #12714 (New): Conversion of GIF to PDF broken when GIF contains Alpha.https://project.math.uzh.ch/issues/127142021-06-28T09:23:17ZCarsten Rosecarsten.rose@math.uzh.ch
<pre>
$ img2pdf --pagesize A4 -o 1.pdf 18279.gif
WARNING:root:Image contains transparency which cannot be retained in PDF.
WARNING:root:img2pdf will not perform a lossy operation.
WARNING:root:You can remove the alpha channel using imagemagick:
WARNING:root: $ convert input.png -background white -alpha remove -alpha off output.png
ERROR:root:error: Refusing to work on images with alpha channel
$ convert 18279.gif -background white -alpha remove -alpha off 18279.clean.gif
$ img2pdf --pagesize A4 -o 1.pdf 18279.clean.gif
</pre>
<p>Vorschlag:</p>
<ul>
<li>Check ob img2pdf mit dem Fehler abbricht</li>
<li>Falls ja, convert wie vorgeschlagen.</li>
<li>Damit der Convert nicht bei jedem Download gemacht werden muss: Orginalfile umbenennen und das konvertierte dann unter dem original Namen abspeichen.</li>
</ul> QFQ - Feature #12476 (New): clearMe: a) should trigger 'dirty', b) sticky on textarea resizehttps://project.math.uzh.ch/issues/124762021-05-02T14:31:20ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Es waere gut wenn bei Click auf 'clearMe' das Form Dirty wird, so dass man es direkt speichern kann.</li>
<li>Wenn man bei einem Textarea Feld die Groesse veraendert bleibt das 'x' an der alten Stelle stehen. Schoen waere es wenn es am rechten Rand kleben wuerde.</li>
</ul> QFQ - Feature #12412 (New): Action/Escape qualifier 'e' (empty), '0': if given, an empty string (...https://project.math.uzh.ch/issues/124122021-04-20T11:55:30ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Damit Verhalten sich leere Strings oder '0' als wenn sie in dem Store nicht gefunden wurden.</p>
<p>Bsp.: `{{fe_users.email:T::e:<a class="email" href="mailto:support@math.uzh.ch">support@math.uzh.ch</a>}}` liefert die Emailadresse des gerade eingeloggten T3 FE Users. Falls keine Emailadrese hinterlegt ist, greift der Default</p> QFQ - Feature #12330 (New): Copy to input field / text area / TinyMCEhttps://project.math.uzh.ch/issues/123302021-04-07T07:01:35ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Aehnlich wie 'copy to clipboard' waere ein 'copy to input field' gut. Das macht nur Sinn in einem Formular.</p>
<ul>
<li>Gleiche Notation wie copy to clipboard.</li>
<li>Vermutlich wird die HTML ID des HTML Input Elements benoetigt.</li>
<li>Bei Copy: der bestehende Inhalt wird ueberschrieben.</li>
<li>Es wird das Input Element genommen, des FE auf dem der CopyToClipboard Button definiert ist. </li>
<li>Token koennte sein 'Y:'</li>
<li>Sollte funktionieren mit
<ul>
<li>Input Elemente</li>
<li>textarea</li>
<li>TinyMCE</li>
</ul></li>
</ul> QFQ - Bug #12327 (New): Copy to clipboard: a) Glyphicon can not be changed, b) Visualisierung & Texthttps://project.math.uzh.ch/issues/123272021-04-07T06:18:33ZCarsten Rosecarsten.rose@math.uzh.ch
<p>a) Scheinbar kann das Glyphicon nicht veraendert werden.</p>
<p>Moeglich sein sollte</p>
<ul>
<li>eines der fixen Icons: N/E/D/...</li>
<li>ein beliebiges via G:gpyphicon-...</li>
</ul>
<p>Der Unittest 'testGlyphiconCopyToClipboard()' testet zur Zeit nur den Standardfall.</p>
<p>b) Visualisierung ziemlich schwach</p>
<ul>
<li>Mitunter ist es wuenschenswert das es eine gut sichtbare Meldung gibt wenn 'copy to clipboard' gedrueckt wird.</li>
<li>Die aktuelle Animation ist leicht zu uebersehen.</li>
<li>Der Text sollte einen Default haben der angepasst werden kann.</li>
<li>Die jetzige Animation ist fuer kleine Aktionen gut, aber nicht fuer wichtige Aktionen.</li>
<li>Man koennte den Typ der Visiualisierung einstellbar machen entweder via I) Systemweit/Form/FormElement oder II) via Parameter bei der Definition.</li>
</ul>
<p><img src="https://project.math.uzh.ch/attachments/download/9512/clipboard-202403161035-agnef.png" alt="" /></p> QFQ - Feature #12163 (New): Checkbox: table wraphttps://project.math.uzh.ch/issues/121632021-03-16T23:33:32ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>PG haette gern fuer ein LSZGS in einem Mailing Form die Moeglichkeit Checkboxen in einer Tabelle darzustellen. Diese Darstellungsmoeglichkeit ist eine gute Erweiterung.</li>
<li>Anwendung in dem Mailingform: das Formularelement enhaelt dann alle pId der markierten Personen, an diese werden dann Emails versendet. Das versenden funktioniert aktuell noch nicht im Form (<a class="issue tracker-2 status-1 priority-2 priority-default" title="Feature: FE.type=sendmail: personalized mailing (several mails) via template (New)" href="https://project.math.uzh.ch/issues/12162">#12162</a>) - er loest es in dem nach dem submit auf eine Seite weitergeleitet wird die pId SIP verschluesselt ueber geben werden.</li>
</ul>
<p>Konzept:</p>
<ul>
<li><code>fe.parameter.checkboxTableWrap = <table class="table tablesorter"><thead><tr><th>col1</th>...</head><tbody>|</tbody></table></code></li>
<li>Wenn der Parameter leer ist (default) wird wie bis anhin gerendert, sonst als Tabelle.</li>
<li>fe.sql1 wird aehnlich wie bei subrecord behandelt. </li>
<li>Unterschied: die Column '_checkbox' wird als Checkbox dargstellt, mit der bekannten Notation 'id:value:tooltip'. </li>
<li>Ansonsten jede Queryspalte ist eine HTML Table column.</li>
<li>Bsp: fe.sql1<br /><pre>
{{! SELECT p.age, CONCAT(p.id, ':', p.name, ', ', p.firstName, ':Click me') AS _checkbox, adr.street, adr.city FROM Person AS p, Address AS adr ...}}
</pre><br /></pre></li>
</ul> QFQ - Feature #12146 (New): Autocron Job: Anzeigen wann der naechste Job ausgefuehrt wird, resp d...https://project.math.uzh.ch/issues/121462021-03-15T14:23:17ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Feature #12119 (New): AS paged: error message missing if there ist no 'r' argument.https://project.math.uzh.ch/issues/121192021-03-09T15:33:37ZCarsten Rosecarsten.rose@math.uzh.ch
<pre>
good: CONCAT('U:form=notiz_template&r=', n.id) AS _paged
bad: CONCAT('U:form=notiz_template&rXYZ=', n.id) AS _paged
</pre><br />evtl. sollte auch r=0 als fehler gemelder werden QFQ - Feature #12109 (New): Donwload Link: Plain, SIP, Persistent Link, Peristent SIP - new notationhttps://project.math.uzh.ch/issues/121092021-03-08T17:02:17ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Nach Diskussion mit BB, PG, CR soll die Download Link Notation umgebaut/erweitert werden:</p>
<ul>
<li>Der jetzige Workaround, das man bis zu 4 SQL Statements in der QFQ Extension Config angeben kann, wird vorerst beibehalten.</li>
<li>Alternative - aufwendig in der Implmentation, wird (noch) <b>nicht</b> umgesetzt: es kann eine Page angelegt werden mit QFQ Records, die enthalten u.a. das Keyword <code>script</code> mit Angabe des zu ladenden Scripts, bei klick auf dem Downloadlink ist die uid und recordid kodiert in der URL - vermutlich muss in Apache eine Rewrite Rule angegeben werden damit URLs der Form <a class="external" href="https://example.com/dl/1234">https://example.com/dl/1234</a> moeglich werden.</li>
<li>Neu gibt es folgende Download Link Varianten:
<ul>
<li>Plain (s:0 / s:plain): nur <code><a href="..">...</a></code></li>
<li>Sip: (s:1 / s:sip): der bisherige link, Parameter SIP kodiert, via <code>.../Api/download.php</code></li>
<li>persistent Link (s:2 / s:pLink): die neue Variante via <code>.../Api/download.php/1234</code></li>
<li>persistent SIP (s:3 / s:pSip): aktuell gibt es noch keine Persistent SIPs, ...</li>
</ul></li>
</ul>
<ul>
<li>Der 'd:' Parameter wird nicht mehr zweck entfremdet um die Api Reference anzugeben.</li>
<li>Neu 'api:dl.php/1234'. Neuer Parameter 'api', wie bis anhin das was 'd:' gemacht hat.</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 #11893 (New): Broken SIP: a) only report one time, b) only report in main columnhttps://project.math.uzh.ch/issues/118932021-01-25T06:42:51ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Wenn eine SIP kaputt/abgelaufen ist und man die Seite erneut aufruft, sieht man fuer jeden QFQ Record eine Fehlermeldung. Das sieht sehr unprofessionell aus.</p>
<p>Vorschlag:</p>
<ul>
<li>Es gibt eine neue Konfigurationsoption 'Report broken SIP', das broken SIPs 'always','once', 'once in main column' angezeigt werden. Default ist: 'once in main column'</li>
<li>Erkennung ob eine SIP bereits reported wurde:
<ul>
<li>Wenn es keinen Timestamp {{_broken_sip_detected:U}}' gibt oder dieser aelter als 3 Sekunden ist, </li>
<li>Die konfigurierte Spalte die des QFQ Records ist.</li>
<li>TRUE: Exception mit Fehlermeldung werden & Timstamp setzen.</li>
<li>FALSE: Exception, aber keine Fehlermeldung zum User.</li>
</ul></li>
</ul> QFQ - 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 #9781 (New): Button: CSS class to make buttons smallerhttps://project.math.uzh.ch/issues/97812019-12-16T17:59:37ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Feature #9348 (New): defaultThumbnailSize: pre render thumbnailshttps://project.math.uzh.ch/issues/93482019-10-11T13:44:02ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Config (SYSTEM, Form, FormElement): defaultThumbnailSize</li>
<li>Es koennen mehrere Grossen angegeben werden: 'W1xH1,W2xH2,...'</li>
<li>Die Thumbnails werden in den default directories abgelegt.</li>
<li>Benoetigt fuer w16/my.</li>
<li>Die Grafiken sollten asynchron gerendert werden.</li>
<li>Auch fuer Split PDF.</li>
</ul> QFQ - Bug #9177 (New): Bug? QFQ tries to save an action FE, which has real existing column namehttps://project.math.uzh.ch/issues/91772019-09-19T15:47:35ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Aufgetreten bei</p>
<ul>
<li><a class="external" href="http://webwork16.math.uzh.ch/mi">http://webwork16.math.uzh.ch/mi</a></li>
<li>Form.name: applicationReview</li>
<li>FE.id: 5443</li>
<li>FE.name: finalReviewTimestamp</li>
<li>Review.finalReviewTimestamp = datetime</li>
<li>FE.value= ''</li>
<li>Beim speichern feuert QFQ: "Update Review set finalReviewTimestamp = WHERE id = ?" - d.h. es fehlt die Angabe vor 'Where'</li>
</ul>
<p>Frage</p>
<p>1) ist es gewollt das ein Action Element auf den Spaltenname schreibt - ich denke nein: check das Action Element kein UPDATE triggern.<br />2) Warum wird ein UPDATE Statement gebaut das in der WHERE Bedingung Prepare Statement benutzt, nicht aber bei den Parametern?<br />3) Es sollte abgefangen werden wenn der Parameter leer ist - das gibt immer einen Fehler.<br />4) Kann die Fehlermeldung besser werden, so dass klar wird das nciht das sqlAfter die Ursache ist?</p> QFQ - Feature #9136 (New): Create ZIP files with dynamic PDFshttps://project.math.uzh.ch/issues/91362019-09-16T09:12:59ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>In #7259 fragt MH nach einen Buld Download fuer die Gesuche.</li>
<li>Check ob man das in QFQ 'on the Fly'-rendern lassen koennte.</li>
<li>Vermutlich wird ein Progress Bar benoetigt.
<ul>
<li>Der koennte sich dynamisch anpassen.: Z.B. 20 Quellen, die erste braucht 5 Sekunden, dann benoetigen alle etwa 100 Sekunden.</li>
<li>Das koennte aber auch via Anzahl Quellen angezeigt werden.</li>
</ul></li>
</ul>
<ul>
<li>Koennte gut zusammen mit dem allgemeinen Umbau Progressbar <a class="issue tracker-2 status-2 priority-2 priority-default overdue behind-schedule" title="Feature: Progress Bar generic / replace old hourglass download popup (In Progress)" href="https://project.math.uzh.ch/issues/9135">#9135</a> gemacht werden.</li>
</ul> QFQ - Feature #8089 (New): Copy/Paste for FormElementshttps://project.math.uzh.ch/issues/80892019-03-19T12:03:07ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Wir brauchen dringend die Moeglichkeit einzelne FormElemente kopieren zu koennen.</li>
<li>Ueber Form-Grenzen hinweg.</li>
</ul>
<p>Subrecords:</p>
<ul>
<li>Eine Generische Loesung fuer Subrecords waere gut. Pro Zeile gibt es rechts/links einen Copy Button.</li>
<li>In der Titelzeile des Subrecords gibt es einen Paste Button.</li>
</ul>
<p>Form (optional):</p>
<ul>
<li>Pro Form gibt es einen Copy Button (ersetzt Button Form 'duplizieren'). Der kopiert den aktuellen Record. Ggfs. kann ein Target gewaehlt werden oder ein neuer Formularname oder '.....-copy'</li>
</ul>
<p>Allgemein:</p>
<ul>
<li>Copy Button werden nur angezeigt wenn ein CopyForm hinterlegt ist.</li>
<li>Paste Button werden nur angezeigt wenn ein passender Record in der Zwischenablage ist.</li>
</ul> QFQ - Feature #8082 (New): Contact form without saving recordhttps://project.math.uzh.ch/issues/80822019-03-18T13:13:09ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Fuer z.B. Kontaktformulare waere es sinnvoll wenn man eine Form konfigurieren koennte das keinen Record speichert.</p>
<p>Z.B. in dem man keine Primary Table spezifiziert.</p>
<p>Das gleiche koennte man in einem Passwort Reset Form benoetigen (#7164).</p> QFQ - Feature #7102 (New): Comment sign in report: '#' and '--'https://project.math.uzh.ch/issues/71022018-10-27T08:55:24ZCarsten Rosecarsten.rose@math.uzh.ch
<p><a class="external" href="https://www.w3schools.com/Sql/sql_comments.asp">https://www.w3schools.com/Sql/sql_comments.asp</a></p>
<ul>
<li>Laut SQL Spec kann '--' am Zeilenanfang, aber auch mitten in der Zeile stehen.</li>
<li>Wenn es im SQL Statement steht, wird SQL das haendeln und alles richtig machen</li>
<li>Steht es am Zeilenanfang, sollte QFQ den Rest gar nicht parsen.</li>
<li>Atom unterstuetzt mit Ctl-/ das auskommentieren via '--' am Zeilenanfang</li>
<li>'/*' ist fuer den QFQ Parser schwer umzusetzen - es SQL daher ueberlassen. In QFQ Doku darauf eingehen.</li>
</ul> QFQ - Feature #5131 (New): Activate Spin Gear ('wait/busy' indicator) via LINK attributehttps://project.math.uzh.ch/issues/51312017-12-16T20:41:30ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Pages die z.B. Mails mit Attachments versenden benoetigen teilweise etliche Sekunden.</p>
<p>Es waere gut wenn man in der Zeit das 'spinning gear' wie beim 'download' Link anzeigen koennte.</p> QFQ - Feature #4250 (New): AutoCron in QFQ via PHPhttps://project.math.uzh.ch/issues/42502017-08-17T20:23:25ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Die AutoCron Features in PHP implementieren, ohne das eine T3 Seite benoetigt wird.</p>
Verbesserungen:
<ul>
<li>Massiv einfacheres Setup.</li>
<li>Evtl. koennte das PHP Skript durch Typo3 Cron aufgerufen werden - dann entfaellt sogar System Console Eintrag.</li>
<li>Aus dem PHP Skript koennen auch Mails versendet werden (kein dediziertes Skript noetig) - damit koennen einfach grId und xId gesetzt werden.</li>
<li>DB Credentials sind in PHP bekannt (zentrale Konfiguration).</li>
</ul>
Neu:
<ul>
<li>AutoCron Formular wird by default mit ausgeliefert.</li>
<li>In T3 Doku ist ein Beispiel QFQ Report fuer CrontEdit aufgefuehrt.</li>
<li>Es gibt Cron.grIdTyp, die im Beispiel aber nicht benutzt wird um Croneintraege zu klassifizieren.</li>
</ul>