Project @ iMath: Issueshttps://project.math.uzh.ch/https://project.math.uzh.ch/favicon.ico?16668783892024-02-12T12:44:12ZProject @ iMath
Redmine 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 #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 #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 #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 #16848 (New): Docker Sendmailhttps://project.math.uzh.ch/issues/168482023-09-08T13:56:32ZEnis Nuredini
<p>Sendmail im Docker funktioniert noch nicht. MTA nicht auf dem Docker installiert.</p>
<p><a class="external" href="https://systemvcs.math.uzh.ch/it/typo3-docker">https://systemvcs.math.uzh.ch/it/typo3-docker</a></p> QFQ - Feature #16635 (New): Config: allowedFromAdresseshttps://project.math.uzh.ch/issues/166352023-07-20T15:24:05ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Die ZI bestehen darauf das wir nur Emails versenden duerfen mit einer FROM Adresse die eine Share Emailbox entspricht (keine persoenlilchen Adressen).</li>
</ul>
<p>Damit das sichergestellt ist, neue Config Option einfuehren 'allowedFromAdresses'.</p>
<p>CSV Liste mit Emailadressen.</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 #16344 (New): 'M:file' hat keinen Einfluss im sendmail (.xlsx / .docx kommt als .zip an)https://project.math.uzh.ch/issues/163442023-06-02T14:50:47ZPhilipp Gröbelbauer
<p>Auf webwork16/grc wurden Mail Templates angelegt mit mehreren Attachments.<br />Wird das Mail versendet, dann kommt ein .docx Attachment als .zip Datei an. <br />Das M:file hat dabei keinen Einfluss.<br />Das verarbeitete sendmail lautet:</p>
<pre>
'f:Marco Toscano
|t:philipp.groebelbauer@math.uzh.ch
||s:Travel Grant accepted!
|b:Dear Mr. Gröbelbauer...
|d:DecisionLetter.pdf
|p:id=letterbody&noId=9397&pdIdReceiver=1982&reId=1309&_sip=1&--margin-top=50mm&--margin-bottom=20mm&--header-html=https://webwork16.math.uzh.ch/grc/dev/?id=letterheade&--footer-right="Page: [page]/[toPage]"&--footer-font-size=8&--footer-spacing=10
|d:Expenses_Form_Travel_Grant.xlsx
|M:file
|F:fileadmin/protected/mailing/travelgrants/9394_10569_Expenses_form_Travel_Grant.xlsx
|d:Flightrecord_Travel Grant
|M:file
|F:fileadmin/protected/mailing/travelgrants/9395_10584_Flightrecord_Travel_Grant.docx
|d:Instructions_expense_form_extern
|M:file
|F:fileadmin/protected/mailing/travelgrants/9396_10589_Instructions_expense_form_extern.png
|g:615
|x:1309' AS _sendmail
</pre> 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 #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 #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 #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 #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 #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 - Bug #11752 (New): checkbox renders multiple input elements with same namehttps://project.math.uzh.ch/issues/117522020-12-17T13:58:59ZMarc Egger
<p>The checkbox form element intentionally renders an additional hidden input element with the same name.<br />This leads to issues in the frontend where input elements are selected by name. see <a class="issue tracker-1 status-5 priority-4 priority-high2 closed" title="Bug: Checkbox does not work together correctly with required fields (Closed)" href="https://project.math.uzh.ch/issues/11750">#11750</a></p>
<p>The reason for the double input element is a workaround produced by Carsten in the PHP funciton AbstractBuildForm->buildCheckbox<br />It would be best if the hidden input element had a different unique name.</p> QFQ - Feature #11535 (New): Ability to create SQL columns in frontend QFQ formshttps://project.math.uzh.ch/issues/115352020-11-17T11:11:11ZSimon Grüning
<p>It would be very great for developers working or maintaining QFQ projects in the front-end, if they could create not only form elements but also the respective table columns / data structures going along with them. Unsure where/how to integrate this button/feature/ability.</p> QFQ - Feature #10996 (New): Download video via sip: no seekhttps://project.math.uzh.ch/issues/109962020-08-12T12:18:48ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Check ob man das fixen kann.</p>
<p>Moeglicher Ansatz: <a class="external" href="https://www.codeproject.com/Questions/712224/playing-video-of-large-size-using-php">https://www.codeproject.com/Questions/712224/playing-video-of-large-size-using-php</a></p> QFQ - Feature #10979 (New): Ajax Calls an API - dataReporthttps://project.math.uzh.ch/issues/109792020-08-07T10:25:35ZPhilipp Gröbelbauer
<p>- QFQ Page Content per AJAX ausführen<br />- Über API, sodass kein Performance Verlust durch Typo3<br />- return Resultat des QFQ Page Contents</p>
<p>(HTML Snippet zum Testen hängt an diesem Ticket)</p> QFQ - 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 #9275 (New): autcron: t3 page, which takes to long to respond, is not reported properlyhttps://project.math.uzh.ch/issues/92752019-10-01T18:09:29ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Auf w16 werden ueber ein AutoCron Skript gitlab Berechtigungen erzeugt. Dieses Script benoetigt mehrere Minuten. Scheinbar hat der CLI PHP Interpreter einen Timeout, der das Skript hart abbrechen laesst.<br />Der System Cron sendet dann eine Mail:<br /><pre>
FROM: root@math.uzh.ch
TO: www-data@math.uzh.ch
SUBJECT: Cron <www-data@w16> /usr/bin/php /var/www/html/my/typo3conf/ext/qfq/Classes/External/autocron.php
DATE: 01.10.2019 - 13:03:01
PHP Warning: file_get_contents(https://w16.math.uzh.ch/my?id=updateGitlabPrivileges&token=secret....&nId=all): failed to open stream: HTTP request failed! in /var/www/html/my/typo3conf/ext/qfq/Classes/Core/Helper/DownloadPage.php on line 73
</pre></p> 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 #8962 (New): allow for form fields with identical nameshttps://project.math.uzh.ch/issues/89622019-08-29T19:41:37ZNicola Chiapolini
<p>We have a form with three Action-Elements all pointing to the same column. Each of them calculates the value based on a different dynamic-update form-field (restricted via requiredList).<br />This works perfectly, but I need to adjust the name directly in the database...</p>
<p>Could this check be removed? (At least for action elements, but I can imagine this to be useful even with native dynamic-update elements.)</p> QFQ - Bug #8431 (New): autocron.php with wrong pathhttps://project.math.uzh.ch/issues/84312019-05-30T08:29:40ZElias Villiger
<p>Elias hat qfq auf einem Mietserver laufen und kann cron Jobs nur via Webinterface konfigurieren. Die T3 Instanz ist im Verzeichnis '~/httpdocs'. Der Autocron Job wird mit '~/httpdocs/typo3conf/ext/qfq/external/autocron.php' gestartet. QFQ scheint fuer das logging den argv<sup><a href="#fn0">0</a></sup> von links an zu parsen. Das geht in diesem Fall schief. Folgende Tests waeren gut:</p>
<p>autocron.php/ save/ load: Aufruf mit</p>
<ul>
<li>absoluten Pfad</li>
<li>Pfad relativ zu 'Document Root'</li>
<li>Pfad relativ zu irgendwas</li>
</ul>
<p>Es waere gut eine zentrale Stelle zu haben:</p>
<ul>
<li>Die das CWD aut <T3 Installation Dir> setzt.</li>
<li>Den absoluten Pfad in config[] eintraegt.</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 #7342 (New): add content = hide_thishttps://project.math.uzh.ch/issues/73422018-11-23T10:19:19ZNicola Chiapolini
<p>When using a super-/subquery combination as an if-then construct, I want to hide the content of the super-query but show the result of sub-queries. At the moment this is not possible with the <code>content</code>-keyword. It would be nice to have the option to not hide the subqueries.</p>
<p>Personlly I would think it most logical to make this the default for <code>hide</code> and use e.g. <code>hide_all</code> to include subqueries. For backwards compatibility however, the new behaviour should probably get the new keyword. I suggest something like <code>hide_this</code></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 - Bug #5576 (New): Using MySQL 'DROP' requires privilege - wich is not really necessary.https://project.math.uzh.ch/issues/55762018-02-28T17:40:58ZNicola Chiapolini
<p>Auf unserer neuen Installation hat das Anlegen der System-Tabellen (wieder) nicht geklappt. Dieses Mal habe ich das Problem identifiziert.</p>
<p>Die Datei <code>qfq/sql/formEditor.sql</code> enthält ein nicht auskommentierten DROP-Befehl. Entweder muss der auskommentiert werden (patch im Anhang) oder dann muss in der Doku DROP als nötiges Recht für den QFQ-DB-User erwähnt werden.</p> QFQ - Bug #5221 (New): Download Dialog: Bleibt stehen in FF wenn Datei automatisch gespeichert wird.https://project.math.uzh.ch/issues/52212018-01-10T12:45:32ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Oeffnet sich in FF erst der Dialog zum Speichern/ Auswahl der Applikation - verschwindet der Dialog wie gewollt.</p>
<p>Gemeldet von DM im HIFO Tool mit QFQ 0.25.8, FF 57.0.4 (Linux).</p> 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>