Project @ iMath: Issueshttps://project.math.uzh.ch/https://project.math.uzh.ch/favicon.ico?16668783892024-03-03T22:31:55ZProject @ iMath
Redmine QFQ - Support #18048 (New): Upload (filepond): FE.downloadButton missing tooltiphttps://project.math.uzh.ch/issues/180482024-03-03T22:31:55ZCarsten Rosecarsten.rose@math.uzh.ch
<p>QFQ Version 24.3.0</p>
<a name="In-v1-funktioniert-die-Anzeige-des-Tooltips"></a>
<h2 >In 'v1' funktioniert die Anzeige des Tooltips<a href="#In-v1-funktioniert-die-Anzeige-des-Tooltips" class="wiki-anchor">¶</a></h2>
<pre>
downloadButton = t:Download|o:check file
</pre>
<p><img src="https://project.math.uzh.ch/attachments/download/9401/clipboard-202403032329-8x1vp.png" alt="" /></p>
<a name="In-v2-funktioniert-die-Anzeige-des-Tooltips-nicht-nicht-als-Tooltip"></a>
<h2 >In 'v2' funktioniert die Anzeige des Tooltips nicht (nicht als Tooltip)<a href="#In-v2-funktioniert-die-Anzeige-des-Tooltips-nicht-nicht-als-Tooltip" class="wiki-anchor">¶</a></h2>
<p>Es wird der ganze Text gerendert - d.h. vermutlich werden die Angaben wie tooltip, glyphicon nicht ausgewertet. Aktuell weiss ich nicht was noch alles verwendet werden kann - am besten bei V1 nachschauen.</p>
<p><img src="https://project.math.uzh.ch/attachments/download/9402/clipboard-202403032330-ki9qk.png" alt="" /></p>
<p>Laut Doku (<a class="external" href="https://docs.qfq.io/en/master/Form.html#id14">https://docs.qfq.io/en/master/Form.html#id14</a>):</p>
<p><img src="https://project.math.uzh.ch/attachments/download/9403/clipboard-202403032331-l8bqw.png" alt="" /></p> 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 #17993 (New): filepond: Color for message 'file is of invalid type'https://project.math.uzh.ch/issues/179932024-02-25T11:01:50ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Falls <strong>einfach</strong> moeglich:</p>
<ul>
<li>Bitte Farbe 'rot' ersetzen durch BS-warning.</li>
<li>Der Text fuer die Fehlermeldung wird dann unleserlich (weiss). Bitte die BS Farben nehmen (2. Screenshot).</li>
<li>Text 'file is of invalid type' hoert sich fuer mich eher technisch an, was haeltst du von 'unexpected file type'?</li>
</ul>
<p><img src="https://project.math.uzh.ch/attachments/download/9332/clipboard-202402251207-zajfs.png" alt="" /></p>
<p><img src="https://project.math.uzh.ch/attachments/download/9331/clipboard-202402251205-lrxpj.png" alt="" /></p> 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 #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 - Feature #17649 (New): Integrate Etherpad as editorhttps://project.math.uzh.ch/issues/176492024-01-18T16:07:53ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Um mit mehreren Personen an einem Dokument (z.B. qfqWiki) zu arbeiten, koennten wir als Editor Element den <a class="external" href="https://etherpad.org/">https://etherpad.org/</a> verwenden.</li>
<li>Min. via Plugin koennen sogar Bilder eingebunden werden.</li>
<li>Evtl. ist der Etherpad eine Alternative zu TinyMCE.</li>
<li>Wunsch fuer Bilder: per Mausklick kann umgeschaltet werden zwischen Thumbail und regulaere Groesse.
<ul>
<li>Nach dem Einfuegen (und fuer alle anderen) wird nur das Thumbnail angezeigt.</li>
<li>Hintergrund: waehrend eines Meetings wird ein Protokoll erstellt und dabei werden Screenshots gemacht und eingefuegt - die sind aber by Default so gross das der Rest des Textes verschwindet und man die Uebersicht verliert. Thumbnails loesen das Problem.</li>
</ul></li>
</ul>
<ul>
<li>Ggfs. Etherpad nicht nur in einem Form zeigen, sondern direkt in Report.</li>
</ul> 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 #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 #17374 (New): ReST QFQ Doc: local rendernhttps://project.math.uzh.ch/issues/173742023-11-28T16:01:55ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Aktuell haben wir keinen Preview fuer unsere Dokumentation - es muss immer auf Develop oder Master committet werden. Gute waere eine lokale Vorschau.</p>
<p>Bitte versuchen das zu implementieren</p> QFQ - Feature #17251 (New): Report Notation 2.0: Feature Requestshttps://project.math.uzh.ch/issues/172512023-11-08T22:10:00ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Es sieht so aus als wenn die Aliase in den STORE_TYPO3 (<a class="external" href="https://docs.qfq.io/en/master/Store.html#store-typo3-bodytext-t">https://docs.qfq.io/en/master/Store.html#store-typo3-bodytext-t</a>) kopiert werden.</p>
<ul>
<li>Ist sichergestellt das bestehende SYSTEM Values wie z.B. <code>feUser</code> nicht durch den Alias ueberschrieben werden koennen?</li>
</ul>
<p>Feature Request</p>
<ul>
<li><code><alias>.sql</code> sollte moeglich sein.</li>
<li>Folgender Code sollte moeglich sein - damit Legacy Code nicht bei jedem Level umgeschrieben werden muss:</li>
</ul>
<pre>
start {
sql = SELECT ...
20 {
sql = SELECT ...
}
}
</pre> QFQ - Bug #16994 (New): Stacktrace in QFQ error messagehttps://project.math.uzh.ch/issues/169942023-10-04T19:21:08ZCarsten Rosecarsten.rose@math.uzh.ch
<p><img src="https://project.math.uzh.ch/attachments/download/8519/clipboard-202310042120-brzfz.png" alt="" /></p> QFQ - Feature #16346 (New): Tablesorter: clearme missinghttps://project.math.uzh.ch/issues/163462023-06-02T16:04:21ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Es waere gut wenn auch im Tablesorter das ClearMe X angezeigt werden wuerde:</p>
<p><img src="https://project.math.uzh.ch/attachments/download/8004/clipboard-202306021803-oktid.png" alt="" /></p>
<p><img src="https://project.math.uzh.ch/attachments/download/8005/clipboard-202306021803-2thou.png" alt="" /></p>
<p><img src="https://project.math.uzh.ch/attachments/download/8006/clipboard-202306021804-neuxg.png" alt="" /></p> 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 #16037 (New): Update 'make bootstrap'https://project.math.uzh.ch/issues/160372023-04-18T09:43:35ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Wird im QFQ Projektverzeichnis `make bootstrap` ausgefuehrt gibt es diverse Hinweise/Warnungen.</li>
</ul>
<a name="Teil-1"></a>
<h1 >Teil 1<a href="#Teil-1" class="wiki-anchor">¶</a></h1>
<ul>
<li>Bitte die Warnungen anschauen und optimalerweise loesen.</li>
<li>Bei denen die wir nicht angehen koennen, bitte eine Erklaerung (am besten in Documentation-Development/SETUP.md) was das Problem ist</li>
<li>Bitte check ob Documentation-Development/SETUP.md aktuell ist</li>
</ul>
<a name="Teil-2"></a>
<h1 >Teil 2<a href="#Teil-2" class="wiki-anchor">¶</a></h1>
<ul>
<li>Bitte das <code>Makefile</code> durchgehen und alles was wir nicht brauchen raus damit.</li>
<li>Rafi hat sehr viel Develop Kram reingenommen, das wir nicht mehr verwenden: lint, phpdoc, docutils, jinja, sphinx, ...
<ul>
<li>Aam besten eine Liste machen was raus kann und kurz mit CR anschauen.</li>
<li>plantuml bitte drin lasses.</li>
</ul></li>
</ul>
<ul>
<li>Bitte alle JS Lib anschauen was raus kann - fuer jQWidgets siehe <a class="issue tracker-2 status-1 priority-2 priority-default" title="Feature: Remove JS: jQWidgets (New)" href="https://project.math.uzh.ch/issues/16036">#16036</a>.</li>
<li>Composer is operating significantly slower than normal because you do not have the PHP curl extension enabled.
<ul>
<li>Check das das min. auf alfred20, alfred22 aktiv ist, am besten auch auf den Thinlinc (/etc/php/cli/...) und den webwork20, webwork22. </li>
<li>Aenderungen bitte im Ansible Playbook nachfuehren (Ticket fuer Levin machen)</li>
</ul></li>
</ul>
<a name="Teil-3"></a>
<h1 >Teil 3<a href="#Teil-3" class="wiki-anchor">¶</a></h1>
<ul>
<li>Die verlinkten Tickets nach Moeglichkeit schliessen.</li>
</ul>
<a name="Meldungen"></a>
<h1 >Meldungen<a href="#Meldungen" class="wiki-anchor">¶</a></h1>
<pre>
$ make bootstrap
...
# update npm at persistent location and copy node_modules (to speed up process)
mkdir -p /var/tmp/qfq_crose1/npm
/bin/cp package.json /var/tmp/qfq_crose1/npm/
cd /var/tmp/qfq_crose1/npm; npm update
npm WARN deprecated popper.js@1.16.1: You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1
npm WARN deprecated phantomjs-prebuilt@2.1.16: this package is now deprecated
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.81.0: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated har-validator@4.2.1: this library is no longer supported
npm WARN deprecated hawk@3.1.3: This module moved to @hapi/hawk. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.
npm WARN deprecated cryptiles@2.0.5: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated hoek@2.16.3: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated sntp@1.0.9: This module moved to @hapi/sntp. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.
npm WARN deprecated boom@2.10.1: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated mkdirp@0.5.1: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)
npm WARN deprecated json3@3.3.2: Please use the native JSON object instead of JSON 3
...
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN notsup Unsupported engine for grunt@1.6.1: wanted: {"node":">=16"} (current: {"node":"13.12.0","npm":"6.14.4"})
npm WARN notsup Not compatible with your version of node/npm: grunt@1.6.1
npm WARN qfq@1.0.0 No description
...
found 43 vulnerabilities (5 low, 18 moderate, 15 high, 5 critical)
run `npm audit fix` to fix them, or `npm audit` for details
...
# cd extension/Resources/Private; composer update
cd extension; composer update
Composer is operating significantly slower than normal because you do not have the PHP curl extension enabled.
</pre> 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 - Bug #15795 (New): Upload: download button not shown after pressing savehttps://project.math.uzh.ch/issues/157952023-03-14T13:02:17ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Bei r=0: alles ok</li>
<li>Bei r>0: Fehler wie beschrieben.</li>
</ul>
<p><img src="https://project.math.uzh.ch/attachments/download/7498/clipboard-202303141400-waqtc.png" alt="" /></p>
<p>Before pressing save:</p>
<p><img src="https://project.math.uzh.ch/attachments/download/7499/clipboard-202303141400-zzrl9.png" alt="" /></p>
<p>After pressing save:</p>
<p><img src="https://project.math.uzh.ch/attachments/download/7500/clipboard-202303141401-v6ybl.png" alt="" /></p> QFQ - Feature #15656 (New): SearchReplace: nice to havehttps://project.math.uzh.ch/issues/156562023-02-28T20:29:00ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Anstelle von 'Form Edit' die `form.id / form.name` anzeigen.</li>
<li>Beim Edit des FormElements die formElement.id im Button anzeigen.</li>
</ul>
<p><img src="https://project.math.uzh.ch/attachments/download/7364/clipboard-202302282128-ueulq.png" alt="" /></p> QFQ - Feature #15200 (New): Remove JQWhttps://project.math.uzh.ch/issues/152002022-12-16T08:16:36ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Wir verwenden kein JQW - alle Referenzen entfernen</p>
<ul>
<li>Check: ist die Ausage 'wir verwenden kein JQW' richtig? Evtl. basiert FE.type=file (Upload) auf JQW?!</li>
<li>Im FormEditor aus der FE.Type Liste entfernen.</li>
<li>PHP Code (bauen des Elementes).</li>
<li>QFQ Client</li>
<li>Grunt anpassen</li>
<li>UZH CD Check ob dort jqw eingebunden wird</li>
<li>Lizenz Angabe entfernen.</li>
</ul> QFQ - Bug #14999 (New): FormElement 'text'/'select': horizontal alignment of symbol 'dropdown', '...https://project.math.uzh.ch/issues/149992022-11-06T16:18:24ZCarsten Rosecarsten.rose@math.uzh.ch
<p><img src="https://project.math.uzh.ch/attachments/download/6847/clipboard-202211061716-4merq.png" alt="" /></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 #14636 (New): UI Design: Clear X is over up/down (step)https://project.math.uzh.ch/issues/146362022-08-31T08:19:54ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Feature #14488 (New): FormEditor: JSON Export user friendlyhttps://project.math.uzh.ch/issues/144882022-07-07T15:41:05ZCarsten Rosecarsten.rose@math.uzh.ch
<p><img src="https://project.math.uzh.ch/attachments/download/6369/clipboard-202207071740-ryzdi.png" alt="" /></p> 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 - Feature #14376 (New): QFQ Bootstrap: if missing, create stored procedureshttps://project.math.uzh.ch/issues/143762022-06-17T13:25:10ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Bei einer Migration einer T3 Instanz von einem Host auf einem anderen via <code>mysqldump | mysql</code> werden die Stored Procedures nicht mitkopiert. Das kopieren ist schwierig, da der Definer meisten unterschiedlich ist.</p>
<p>Ein (dirty) Workaround waere: Wenn eine Exception geworfen wird das eine SP fehlt, einen check machen ob die Store Procedures vorhanden sind. Wenn nicht: anlegen. Als Fehlermeldung (wenn das anlegen geklappt hat): Bitte Seite erneut aufrufen.</p>
<p>Wenn man noch ein bisschen nachdenkt kommen wir vielleicht auch auf eine Moeglichkeit 'Missing SP' zu fixen, ohne auf die Exception zu warten.</p> QFQ - Feature #14227 (New): Selenium Konkurrenz: cypress.io, https://playwright.dev/https://project.math.uzh.ch/issues/142272022-05-23T10:00:31ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li><a class="external" href="https://go.cypress.io/get-started">https://go.cypress.io/get-started</a></li>
<li><a class="external" href="https://playwright.dev/">https://playwright.dev/</a></li>
<li>Anschauen ob es fuer uns interessant ist.</li>
<li>Ggfs. schauen wie aufwendig es waere den QFQ internen Selenium Support auf fuer Cypress anzubieten. Evtl. reicht es die Dokumentation anzupassen</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 #14028 (New): Required notification: visual nicerhttps://project.math.uzh.ch/issues/140282022-04-03T08:17:32ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Aktuell werden Required Radio Felder, wenn sie nicht ausgefuellt sind und der Fokus weggeht, flaechig gelb gefuellt - das sieht nicht gut aus.</li>
<li>Bitte fuer alle Elemente (Input, Checkbox, Radio, Dropdown, Textarea, Editor, Pill, ...) ein Beispiel machen - am besten auf einer Seite damit man alle nebeneinander sehen kann.</li>
<li>Required soll deutlich sichtbar sein, aber nicht so plakativ unangenehm.</li>
<li>Evtl. ueberlegen wir uns zwei Modi: strong und light - das koennte dann pro Tool oder Form vorgegeben werden (Antragsteller 'Strong', Admin Interface 'Light').</li>
<li>Hinweis: gerade die Radios sind kaum lesbar.</li>
</ul>
<p><img src="https://project.math.uzh.ch/attachments/download/6012/clipboard-202204031006-8ojno.png" alt="" /></p>
<p><img src="https://project.math.uzh.ch/attachments/download/6013/clipboard-202204031007-0snta.png" alt="" /></p> QFQ - Feature #13757 (New): QR / Bar-Code Pluginhttps://project.math.uzh.ch/issues/137572022-02-06T09:46:28ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Fuer eine Studenteneinlasskontrolle bei Klausuren waere es gut wenn wir einen QR/Bar-Code Scanner in QFQ haetten.</li>
<li>Scheinbar gibt es diverse Plugins, fuer JQuery z.B.: <a class="external" href="https://www.bestjquery.com/demo/barcode-scanner/">https://www.bestjquery.com/demo/barcode-scanner/</a></li>
<li>Folgende Modi koennten sinnvoll sein:
<ul>
<li>Als Formularelement.</li>
<li>In einem Report, am besten so:
<ul>
<li>das gescannt werden kann ohne einen Button zur Bestaetigung zu druecken,</li>
<li>der Wert direkt mit der Datenbank verglichen wird (check das die Person bekannt ist und noch nicht eingetreten ist) </li>
<li>wenn die Person bekannt ist, der Eintrag gemacht wird das sie eingetreten ist.</li>
</ul></li>
</ul></li>
</ul>
<p>Der Request kommt von Karin Niffeler. In der Biologie wird aktuell eine App verwendet mit der die Einlasskontrolle umgesetzt ist. Die Idee ist das bestehende RemoteExam Tool um die Funktion der Einlasskontrolle zu erweitern. Das RemoteExamtool bekommt damit ein weiteres Feature fuer die Administration von Klausuren.</p> QFQ - Feature #13609 (New): QFQ Introduction: Seite aufloesenhttps://project.math.uzh.ch/issues/136092022-01-04T11:57:28ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Unter <a class="external" href="https://project.math.uzh.ch/projects/qfq/wiki">https://project.math.uzh.ch/projects/qfq/wiki</a></p>
<ul>
<li>Habe ich eine Deine Konzept Seite verschoben unter das Tutorial</li>
<li>Eine neue Seite 'bitte aufloesen' angelegt - bitte anschauen ob da etwas in das Tutorial ubernommen werden kann und anschliessend bitte loeschen.</li>
</ul>
<p><img src="https://project.math.uzh.ch/attachments/download/5718/clipboard-202201041255-qm7vz.png" alt="" /></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 #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 #13331 (New): Multi Form: Clear Icon misplacedhttps://project.math.uzh.ch/issues/133312021-11-07T11:39:51ZCarsten Rosecarsten.rose@math.uzh.chQFQ - 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 #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 #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 #10463 (New): Report _link: expliztes setzen von HTML Tags (Bedarf fuer 'data-selen...https://project.math.uzh.ch/issues/104632020-04-28T15:10:52ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Damit Button's einfacher durch Selenium gedrueckt werden koennen , waere es gut wenn man HTML Tags explizit setzen koennte.</li>
<li>Am besten waere vermutlich 'tag:data-selenium="openUpload" id=1234567'</li>
<li>Es besteht die Gefahr das QFQ generierte Tags ueberschrieben werden - nehmen wir in Kauf.</li>
</ul> 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 - 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 #6723 (New): Report QFQ Installation and Versionhttps://project.math.uzh.ch/issues/67232018-09-16T09:25:53ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Es waere gut wenn man eine Uebersicht haette wo welche Installation mit welche QFQ version laufen.</p>
<p>In der Configuration eintragen:</p>
<pre>
serviceReportQfqVersion = https://qfq.io/index.php?id=service&version={{qfqVersion:Y}}[,<next reporting URL>]
</pre>
<ul>
<li>Die Variable {{qfqVersion}} gibt es vermutlich noch nicht.</li>
<li>Der Aufruf erfolgt via wget (nicht via file_get_content, da dort allow_url_fopen benoetigt wird)
<ul>
<li>bei der Erstinstallation </li>
<li>bei jedem QFQ Update</li>
</ul></li>
</ul>
<ul>
<li>Das sollte einfach zu implementieren sein: QFQ checkt die Versionsnummer bei jedem Start, dort koennte der Hook eingbaut werden.</li>
<li>Es koennen mit Komma getrennt mehrere Service URLs angegeben werden - so koennte MNF z.B. ein eigenes Reporting haben und I-MATH bekommt auch was davon mit.</li>
</ul> QFQ - Feature #6602 (New): Inline-Edit (Formlet): in Report auf Mausklick ein mini-form oeffnenhttps://project.math.uzh.ch/issues/66022018-09-02T21:57:01ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Anforderung: im Report soll der User an einer beliebigen Stelle ein Miniform oeffnen koennen (AJAX), ohne das er die Seite verlaesst. </li>
<li>Beispiel:
<ul>
<li>PhpMyadmin</li>
<li>Tabelle in <a class="external" href="https://editor.datatables.net/examples/inline-editing/simple">https://editor.datatables.net/examples/inline-editing/simple</a></li>
</ul></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 #4869 (New): Dynamic Update (show, hide, readonly?, required?) for Template Group E...https://project.math.uzh.ch/issues/48692017-11-04T10:36:18ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Requested in <a class="issue tracker-1 status-5 priority-3 priority-high3 closed behind-schedule" title="Bug: Dynamic updates Pill - show/hide (Closed)" href="https://project.math.uzh.ch/issues/4865">#4865</a></li>
<li>Die Umsetzung sollte nicht so schwierig sein um eine komplette TG-Group aus/einzublenden.</li>
<li>Ob 'readonly' und 'required' Sinn machen ist nicht klar.</li>
<li>Dynamic Update innerhalb einer TG pro FE ist vermutlich schwierig - wird aber benoetigt (siehe unten)</li>
</ul> 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>