Project @ iMath: Issueshttps://project.math.uzh.ch/https://project.math.uzh.ch/favicon.ico?16668783892024-03-17T15:40:12ZProject @ iMath
Redmine QFQ - Bug #18163 (New): Form: reload current record after use of sqlBefore/sqlAfter and before Fo...https://project.math.uzh.ch/issues/181632024-03-17T15:40:12ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Scheinbar wird der primary Record nicht neu geladen, falls dieser mit sqlBefore/sqlAfter in einem Native FE nochmal angepasst wurde. Erst nach Page Reload wird der aktuelle Wert gezeigt.</p>
<p>Wird die gleiche Query in einem Action FE gefeuert stimmen die angezeigten Werte direkt nach dem Save, der akuelle Record wird nochmal neu geladen bevor er angezeigt wird.</p>
<p>Aufgefallen ist bei der Erfassung einer getrennten Zeitangabe im Form `myVorlesungPruefungNotiz`.</p>
<p><img src="https://project.math.uzh.ch/attachments/download/9519/clipboard-202403171638-kglq1.png" alt="" /></p>
<p><img src="https://project.math.uzh.ch/attachments/download/9520/clipboard-202403171639-tlp2t.png" alt="" /></p> QFQ - Feature #18162 (New): Form / Select List: save outdated key/value even it no longer exist i...https://project.math.uzh.ch/issues/181622024-03-17T14:56:05ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Szenario:</p>
<ul>
<li>Fuer eine Masterarbeit wird ein Betreuer eingetragen. </li>
<li>Die Liste der potentiellen Betreuer veraendert sich. Z.B. koennte eine Person von frueher heute nicht mehr den Status 'Betreuer' haben.</li>
<li>Wird eine solche MA aufgerufen wird nicht mehr der urspruengliche Betreuer angezeigt und beim erneuten Speichern gibt es ein Problem.</li>
</ul>
<p>Vorschlag:</p>
<ul>
<li><code>FE.parameter.sqlGetItemSaved = {{SELECT p.id, p.name FROM Person AS p WHERE p.id={{pId:R}}</code></li>
<li>Wird die ItemList gebaut, wird überprüft ob die gespeicherte Id (oder Value falls es keine ID gibt) noch existiert.</li>
<li>Ja: all done, no further action</li>
<li>Nein:
<ul>
<li>Evaluate <code>FE.parameter.sqlGetItemSaved</code></li>
<li>Fuege Key/Value an der richtigen Stelle (Sortierung) ein.</li>
<li>Falls moeglich stelle den Eintrag 'kursiv' dar ('muted' waere schlecht, denn das suggeriert das der Eintrag nicht ausgewaehlt werden koennte).</li>
</ul></li>
</ul>
<ul>
<li>Die Situation koennte auftreten bei: SELECT, CHEKBOX, RADIO</li>
</ul> QFQ - Feature #18161 (New): QFQ Variable: New escape/action class 'strip_tags'https://project.math.uzh.ch/issues/181612024-03-17T11:21:55ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Mitunter werden Variablen ausgegeben und koennen potentiell HTML Tags enthalten die an der Stelle unerwuenscht sind.</p>
<p>Vorschlag 'r' fuer 'remove tags' (c=clean & s=striptags, p=purge sidn schon benutzt) - <a class="external" href="https://docs.qfq.io/en/master/Variable.html#variable-escape">https://docs.qfq.io/en/master/Variable.html#variable-escape</a></p>
<pre>
{{label:R::r}}
</pre>
<p>Koennte verwendet werden in <a class="issue tracker-2 status-1 priority-2 priority-default" title="Feature: Title of 'FormElement'-form: shortened, link to form (New)" href="https://project.math.uzh.ch/issues/18160">#18160</a> damit keine HTML Tags im Titel ausgegeben werden.</p> QFQ - Feature #18160 (New): Title of 'FormElement'-form: shortened, link to formhttps://project.math.uzh.ch/issues/181602024-03-17T11:04:14ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>a) Mir passiert es haeufig das ich ein FormElement bearbeite und dann gerne das ganze Form bearbeiten moechte.</li>
<li>b) Der Titel des FormElement-Forms enthaelt Elemente die wenig Informationsinhalt haben</li>
</ul>
<a name="Aktuell"></a>
<h2 >Aktuell:<a href="#Aktuell" class="wiki-anchor">¶</a></h2>
<p><img src="https://project.math.uzh.ch/attachments/download/9516/clipboard-202403171125-ffl17.png" alt="" /></p>
<a name="Vorschlag"></a>
<h2 >Vorschlag:<a href="#Vorschlag" class="wiki-anchor">¶</a></h2>
<p><img src="https://project.math.uzh.ch/attachments/download/9517/clipboard-202403171202-1quit.png" alt="" /></p>
<p><img src="https://project.math.uzh.ch/attachments/download/9518/clipboard-202403171203-bzxni.png" alt="" /></p>
<a name="Neue-Definition"></a>
<h2 >Neue Definition<a href="#Neue-Definition" class="wiki-anchor">¶</a></h2>
<pre>
{{ "{{SELECT 'p:form?form=form&r=', f.id, '|E|b:btn-small btn-default|s|o:Form: ', f.id, ' / ', f.name, CHAR(10), 'DB: {{dbNameQfq:Y}}' FROM Form AS f WHERE f.id = {{formId:SR0}} }}" AS _link}} <span style="font-weight: 100;">FE:</span> {{name:R:::New}} / {{label:RE}}
</pre> QFQ - Feature #18085 (New): FE Input Email Adressbook: a) Typeahead, b) check valid and markhttps://project.math.uzh.ch/issues/180852024-03-06T09:07:34ZCarsten Rosecarsten.rose@math.uzh.ch
<a name="Request"></a>
<h2 >Request<a href="#Request" class="wiki-anchor">¶</a></h2>
<ul>
<li>Im IK Tool werden beim Antrag Email-Adressen von weiteren verantwortlichen Personen erfasst.</li>
<li>Es kommt regelmaessig vor das die Adressen einen Typo enthalten.</li>
<li>Ziel
<ul>
<li>Bei der Eingabe TypeAhead vom UZH Adressebook anbieten.</li>
<li>Bei 'Focus Lost' Emailadressen pruefen und markieren ok/fail.</li>
</ul></li>
</ul>
<a name="Vorschlag"></a>
<h2 >Vorschlag<a href="#Vorschlag" class="wiki-anchor">¶</a></h2>
<ul>
<li>Wird erkannt dass die Email Adresse eine <code>uzh.ch</code> Adresse ist, kann ein LDAP Lookup gemacht werden um zu ueberpruefen ob die Adresse im UZH AD vorhanden ist.</li>
<li>Ist die Adresse bekannt, wird sie gruen, sonst gelb (Tooltip: Address not found in UZH adress book).</li>
<li>Non uzh.ch Adressen werden so nicht geprueft.</li>
<li>Option 'internal check': es koennen Tabellen, Spalten spezifiziert werden (Tool intern),ob die Adresse bereits benutzt wurde. Falls gefunden wird sie ebenfalls gruen.</li>
<li>Der Check gegen das Adressbuch muss erst gemacht werden bei Focus Lost.</li>
<li>Der Check sollte vom Server gestartet werden: Zugriff auf den AD ist beschraenkt (Firewall, Credentials)</li>
<li>Wir brauchen einen neuen API Call der SIP protected ist.</li>
<li>Beim Laden des Forms ist der Check vermutlich nicht so wichtig, kann erstmal weggelassen werden.</li>
<li>Die Credentials sollten in der zentrallen QFQ config Datei sein (wie UZH webpass)</li>
<li>Die LDAP Abfrage sollte zentral in der QFQ Extension Config konfigurierbar sein, pro FE kann das Setting uberschrieben werden.</li>
<li>Option: mehrere Emailadressen in einem FE-Input Elemente erfassen (space, komma separiert) und individuell pruefen & markieren.</li>
</ul>
<p>EmailAdressbookVerify=<br />EmailAdressbookTypeahead=</p>
<a name="Check"></a>
<h2 >Check<a href="#Check" class="wiki-anchor">¶</a></h2>
<p>Beispiel via Commandline:</p>
<pre>
$ ldapsearch -LLL -x -H "ldap://iduzhz2dc01.d.uzh.ch ldap://iduzhz2dc02.d.uzh.ch" -b "DC=d,DC=uzh,DC=ch" -D "srv-math-sync@d.uzh.ch" -W "proxyAddresses=smtp:carsten.rose@math.uzh.ch" proxyAddresses
Enter LDAP Password:
dn: CN=Rose Carsten (crose),OU=Users,OU=Users UZH,DC=d,DC=uzh,DC=ch
proxyAddresses: smtp:crose@access.uzh.ch
proxyAddresses: X500:/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOH
F23SPDLT)/cn=Recipients/cn=d99ada2cb78c406ea039453c26f86dab-Rose Carste
proxyAddresses: smtp:caro@math.uzh.ch
proxyAddresses: smtp:m200143@access.uzh.ch
proxyAddresses: smtp:carsten.rose@uzh.ch
proxyAddresses: smtp:crose@uzh.mail.onmicrosoft.com
proxyAddresses: SMTP:carsten.rose@math.uzh.ch
# refldap://DomainDnsZones.d.uzh.ch/DC=DomainDnsZones,DC=d,DC=uzh,DC=ch
# refldap://ForestDnsZones.d.uzh.ch/DC=ForestDnsZones,DC=d,DC=uzh,DC=ch
# refldap://d.uzh.ch/CN=Configuration,DC=d,DC=uzh,DC=ch
</pre>
<ul>
<li>Bei der Abfrage koennen mehrere LDAP Server angegeben werden.</li>
<li>Liefert die Abfrage min. einen Treffer zurueck, ist die Adresse ok.</li>
<li>Die obige Abfrage geht auf 'proxyAddresses', da dort scheinbar auch die weiteren Adressen angegeben sind.
<ul>
<li>Bei 'proxyAddresses' muss ein 'smtp:' vorangestellt werden fuer einen 100% match</li>
</ul></li>
</ul> QFQ - 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 - Bug #18045 (Closed): Download Jupyter Files (.ipynb): should offer 'save as', but shows inlinehttps://project.math.uzh.ch/issues/180452024-03-02T22:26:34ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Fehler von #18038</li>
</ul>
<ul>
<li>Wird ein Jupyter Notebook File zum Download angeboten - erscheint das File 'inline' (weil 'application/json' erkannt wird und der Browser dann das als Text erkennt und inline darstellt).</li>
<li>Das ist ganz schlecht wenn Studenten die ipynb Files als Uebungsfiles herunterladen sollen.</li>
<li>Hier ist ein <a href="https://robots.net/how-to-guide/how-to-download-ipynb-file-from-github/" class="external">Artikel</a> von 09/2023 wie man ipynb Files von Github herunter laedt - man muss 'raw' zum anzeigen waehlen und dann im Browser 'save as' machen ... das ist doch Pain!</li>
</ul> QFQ - Bug #18044 (Closed): Fabric not shownhttps://project.math.uzh.ch/issues/180442024-03-02T18:37:44ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Feature #18043 (Closed): QFQ Version: 24.3.0.rc1https://project.math.uzh.ch/issues/180432024-03-02T17:04:24ZCarsten Rosecarsten.rose@math.uzh.ch
<p>0) Fuer jede neue Version ein Ticket erstellen. Template: #6994</p>
<p>1) <b>Laufen</b> die Unit Tests durch?</p>
<p>2) Die aktuellen Commits anschauen und wichtige Topics uebernehmen (git log > ~/qfq.log, alles bis zum letzten TAG anschauen):</p>
<ol>
<li>complicated: git log | grep -v -e '^commit ' -e '^Author: ' -e '^Date: ' -e '^Merge: ' > /tmp/out; pluma /tmp/out</li>
</ol>
<ol>
<li>Zeigt <b>alle Commits</b> an, die seit dem aendern von NewVersion gemacht wurden! Das sollten alle Commits seit der letzten Version sein.</li>
<ul>
<li>git log --pretty=%s --after="`stat -c %y doc/NewVersion.md`"</li>
</ul></li>
</ol>
<ul>
<li><b>Anpassen</b>: qfq/extension/Documentation/Release.rst</li>
</ul>
<ul>
<li>Release.rst <b>verteilen</b>: make copyReleaseNotes</li>
</ul>
<ul>
<li>Manuell:
<ul>
<li>Den Inhalt von Release.rst kopieren nach qfq/extension/RELEASE.txt.</li>
<li>Den Inhalt von Release.rst kopieren nach CHANGELOG.md.</li>
</ul></li>
</ul>
<ul>
<li>Alle offenen Tickets im aktuellen Milestones verschieben auf den naechsten Milestone</li>
<li>Aktuellen Milestone schliessen</li>
</ul>
<p>3) In folgenden Files anpassen:</p>
<pre><code><b>Auto</b>: ./setVersion.sh &lt;MAJOR&gt;.&lt;MINOR&gt;.&lt;MICRO&gt;</code></pre>
<pre><code>Manuell:
* extension/Documentation/_make/conf.py: release, version
* extension/Documentation/Settings.cfg: version
* extension/ext_emconf.php: version</code></pre>
<p>4) Im Projektverzeichnis: <b>Doc</b></p>
<pre><code>make t3sphinx (dadurch fallen Fehler in der RESTdoc Syntax auf)</code></pre>
<p>5) <b>Update Version & Commit</b></p>
<ul>
<li>Update the version number in this document (topic 6)</li>
<li>Commit & Push new version changes to master branch:
<p>New version 18.10.3</p></li>
</ul>
<p>6) <b>New Tag</b>: </p>
<pre><code>git tag v18.10.3<br /> git push -u origin v18.10.3</code></pre>
<p>7) Tickets: schliessen und der QFQ Version zuweisen.</p>
<p>8) PhpStorm: <b>Sync</b> all files to VM qfq.</p> QFQ - Feature #18042 (New): Download dynamic ZIP: missing meaningful default save as filenamehttps://project.math.uzh.ch/issues/180422024-03-02T15:41:52ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Mit `<abbr title="'d|F:', p.pathFileName, '|s:1|M:zip'">CONCAT</abbr> AS _link` wurde ein ZIP zum Download angeboten und hatte als Dateinamen 'qfq.temp.RcGnwV'</p>
<p>Bug: es sollte mindestens '.zip' am Ende stehen. Am besten 'data.zip' oder 'data_<timestamp>.zip'</p> QFQ - Feature #18040 (New): Checkbox Custom-Listehttps://project.math.uzh.ch/issues/180402024-03-02T12:00:47ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Ziel: Checkbox Listen zum abarbeiten - eigenstaendig erweiterbar</p>
<p>Beispiel aus Redmine:</p>
<p><img src="https://project.math.uzh.ch/attachments/download/9382/clipboard-202403021239-n2k4h.png" alt="" /></p>
<p>Wichtig: die Reihenfolge kann via Drag'n'Drop geaendert werden. Check welchen Code wir schon haben (Subrecord, Benj).</p>
<p><code>FormElement.parameter.itemList</code> ist bereits genau die Checkbox-Liste</p>
<ul>
<li>static</li>
<li>Values werden Komma-separiert im String abgelegt. Bei Komma im Value haben wir vermutlich ein Problem.</li>
</ul>
<a name="Moegliche-Umsetzung"></a>
<h2 >Moegliche Umsetzung<a href="#Moegliche-Umsetzung" class="wiki-anchor">¶</a></h2>
<ul>
<li><code>FormElement.parameter.checkBoxType = static|custom</code>
<ul>
<li><code>static</code> ist das bisherige und der default.</li>
<li><code>custom</code> ist dieses Ticket.</li>
</ul></li>
</ul>
<a name="Itemliste-und-Status-pro-Item"></a>
<h3 >Itemliste und Status pro Item<a href="#Itemliste-und-Status-pro-Item" class="wiki-anchor">¶</a></h3>
<ul>
<li>Soll der User die Moeglichkeit haben selber Items zu erfassen muessen diese irgendwo gespeichert werden.</li>
<li>Der Status eines jeden Items muss gespeichert werden.</li>
<li>Sections waeren nett.</li>
<li>Drag'n'Drop muss nicht in 1.0 sein, ist aber definitiv gefordert.</li>
</ul>
<p>Vorschlag: Labels und Values (inkl. 'sections') in einem JSON struct</p>
<ul>
<li>Das JSON wird genau in der Spalte des FE gespeichert (muss also ein String sein).</li>
<li>Wird das JSON zu gross zum speichern (Bsp varchar 128), gibt es bereits im Client eine Fehlermeldung damit der User nicht viele Items anlegt und dann enttaeuscht ist das sie nicht gespeichert werden koennen.</li>
<li>Ein 'Template' kann also einfach angeboten werden, in dem das JSON in FE.value steht.</li>
<li>Nach Moeglichkeit sollte das JSON so gesepichert werden das wir es mit den MariaDB JSON Funktionen verwenden koennen.</li>
</ul> QFQ - Feature #18037 (New): Auto BPMN Update: QFQ/rclonehttps://project.math.uzh.ch/issues/180372024-03-02T09:37:05ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Ziel: BPMN Workflows verbinden mit Ticketsystem, ist ein Ticket / Milestones abgearbeitet wird das im BPMN visuell markiert.</p>
<p>Moegliches Konzept:</p>
<ul>
<li>BPMN ist im Switchdrive</li>
<li>QFQ bekommt via 'rclone' Nextclod, OwnCloud, Dropbox, OneDrive, GDrive Support und kann so auf Dateien zugreifen.</li>
<li>In QFQ ist die PathFilename-Referenz auf das BPMN hinterlegt</li>
<li>Es gibt eine API (Redmine, QFQ Notez) um den Status von Tickets abzufragen.</li>
<li>QFQ ruft (on request, periodically) ein Skript auf welches:
<ul>
<li>Fuer jedes im BPMN referenzierte Ticket den Status via API abruft.</li>
<li>Den Status visuell im BPMN eintraegt (z.B. Hintergrundfarbe des Elements setzen)</li>
<li>Dadurch dass das File via rclone im Sync gehalten wird, haben sofort alle User das aktuelle File.</li>
</ul></li>
</ul> QFQ - Feature #18013 (New): Tablesorter: column view selectorhttps://project.math.uzh.ch/issues/180132024-02-27T15:36:32ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Der tablesorter merkt sich die Suchbegriffe und ausgewaehlten Spalten</li>
<li>Wird in einer Spalte A ein Suchbegriff eingegeben und diese Spalte ausgeblendet, wird anschliessend immer noch das gefilterte Ergebnis angezeigt.</li>
</ul>
<p>Das ist verwirrend!!!</p>
<p><img src="https://project.math.uzh.ch/attachments/download/9352/clipboard-202402271633-qfxra.png" alt="" /></p> QFQ - Bug #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 #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 - Bug #17992 (New): filepond: Filter on file extension is case dependent https://project.math.uzh.ch/issues/179922024-02-25T10:45:48ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>In <code>Form.parameter.accept = image/*,application/pdf,text/plain,.R,.r,.m,.rmd,.rnw,.zip</code> gesetzt.</li>
<li>Eine Datei ausgewaehlt <code>test01.R</code> (das '.R' ist gross geschrieben)</li>
</ul>
<p><img src="https://project.math.uzh.ch/attachments/download/9328/clipboard-202402251137-qeppx.png" alt="" /></p>
<ul>
<li>Macht filepond wirklich eine Konvertierung auf mimetype? In dem Fall haette `text/plain` greifen muessen!</li>
</ul>
<p><img src="https://project.math.uzh.ch/attachments/download/9329/clipboard-202402251143-gqmnf.png" alt="" /></p>
<p>Im <code>accept</code> zusaetzlich `.R` anzugeben loesst das Problem nicht (es ist kein Mimetype in QFQ hinterlegt).</p>
<p>Achtung: fuer die rmd, rnw, r - Files gibt es alle moeglichen Schreibweisen, die User sind sehr kreativ.</p> QFQ - Bug #17991 (New): filepond: broken filter in file dialog boxhttps://project.math.uzh.ch/issues/179912024-02-25T10:30:21ZCarsten Rosecarsten.rose@math.uzh.ch
<p><img src="https://project.math.uzh.ch/attachments/download/9323/clipboard-202402251120-9qtxg.png" alt="" /><br /><pre>
accept = image/*,application/pdf,text/plain,.r,.m,.nb,.rmd,.rnw,.zip,.dat
</pre></p>
<p>Brave: Die Files werden nicht angezeigt:</p>
<p><img src="https://project.math.uzh.ch/attachments/download/9324/clipboard-202402251121-gc9vx.png" alt="" /></p>
<p>Wird der Filter auf 'All Files' gesetzt koennen die Files ausgewaehlt werden:</p>
<p><img src="https://project.math.uzh.ch/attachments/download/9325/clipboard-202402251123-9xavd.png" alt="" /></p>
<p>Firefox das gleiche:</p>
<p><img src="https://project.math.uzh.ch/attachments/download/9326/clipboard-202402251125-2i1lx.png" alt="" /></p>
<p>Mit <code>uploadType=v1</code> werden die Files korrekt angezeigt (Brave & FF)</p>
<p><img src="https://project.math.uzh.ch/attachments/download/9327/clipboard-202402251128-aluit.png" alt="" /></p> QFQ - Feature #17989 (Closed): BE/FE OIDC as QFQ STORE_TYPO3 variableshttps://project.math.uzh.ch/issues/179892024-02-23T16:05:23ZCarsten Rosecarsten.rose@math.uzh.ch
<pre>
$GLOBALS["TSFE"]->fe_user->user["oidc"]
$GLOBALS["BE_USER"]->user["oidc"]
and has the following fields:
uid - the uid of the oidc user record, stored in tx_oidcclient_feuser or tx_oidcclient_beuser
provider - name of the provider configured in backend
provider_id - the uid of the provider
resource_id - the OIDC identifier for the resource (usually the sub claim)
resource - ...
EDU-ID / UZH
sub
email - current email address registered with Switch-Edu
name, given_name, family_name
EDU-ID:
email_verified - boolean true|false
----
oidc_fe_sub, fe_oidc_email, oidc_fe_email_verified
oidc_fe_sub
</pre> QFQ - Feature #17984 (New): SQL Firewallhttps://project.math.uzh.ch/issues/179842024-02-23T12:55:31ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Artikel lesen: <a class="external" href="https://www.heise.de/tests/Datenbanken-schuetzen-Drei-freie-SQL-Firewalls-im-Test-9625335.html?wt_mc=intern.red.plus.newsticker.7-tage-news.teaser.teaser">https://www.heise.de/tests/Datenbanken-schuetzen-Drei-freie-SQL-Firewalls-im-Test-9625335.html?wt_mc=intern.red.plus.newsticker.7-tage-news.teaser.teaser</a></li>
<li>Falls Kosten/Nutzen Verhaeltnis gut:
<ul>
<li>In QFQ Doku beschreiben wie man das einsetzen koennte.</li>
<li>Ggfs. Anpassungen in QFQ fuer die Nutzung</li>
</ul></li>
</ul> QFQ - Feature #17958 (New): Screenshare via QFQ / jitsi or ms-teamshttps://project.math.uzh.ch/issues/179582024-02-20T15:00:41ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Auf der post.ch Seite wird ein Screenshare fuer Support angeboten:</p>
<p><img src="https://project.math.uzh.ch/attachments/download/9290/clipboard-202402201547-6x5e3.png" alt="" /></p>
<p>Idee:</p>
<ul>
<li>Wir bieten das gleiche an via jitsi.</li>
<li>Koennte interessant sein fuer alle Tools, wenn die User Probleme mit einem Antrag haben.</li>
<li>Es geht nicht darum um 24/7 erreichbar zu sein, sondern dem User eine Moeglichkeit zu geben zu einem vereinbarten Zeitpunkt eine Verbindung herzustellen, ohne das eine Jitsi URL abgesprochen werden muss.</li>
<li>Ggfs. ist es auch via Teams moeglich.</li>
</ul> QFQ - Support #17880 (New): QFQ Exception: a) stacktrace not in support, b) Underline SQL error https://project.math.uzh.ch/issues/178802024-02-12T19:56:47ZCarsten Rosecarsten.rose@math.uzh.ch
<p><img src="https://project.math.uzh.ch/attachments/download/9220/clipboard-202402122055-9vcu4.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 #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 #17812 (New): Switch User: Neu/Alternativ auch mit FE Group Anpassunghttps://project.math.uzh.ch/issues/178122024-02-03T16:17:40ZCarsten Rosecarsten.rose@math.uzh.chQFQ - 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 #17785 (New): undefined: Download::$storeSystemhttps://project.math.uzh.ch/issues/177852024-02-01T17:06:09ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Bug #17725 (New): Form > forwardPage - value from a FE, FE column not in primary table, the...https://project.math.uzh.ch/issues/177252024-01-28T18:21:23ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Fuer einen Wizard haette CR gerne ein paar Checkboxen in einem Form uebergeben an einen Page/Action Report.</p>
<p>Das scheint aber nicht wie erwartet zu funktionieren<br /><pre>
{{pageSlug:T}}?action=duplicate&v_id_new={{id:R}}&m_id={{m_id:S0}}&v_id_src={{v_id_src:S0}}
</pre></p> QFQ - Bug #17693 (New): Multi DB Setup (MY): Form > Exception > Edit Form Element: record lock mi...https://project.math.uzh.ch/issues/176932024-01-24T12:48:53ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Wird in einer Form bei einer Fehlermeldung auf 'Edit FormElement' geklickt, kann das aufgerufene Form anschliessend nicht gespeichert werden:</p>
<p><img src="https://project.math.uzh.ch/attachments/download/9071/clipboard-202401241348-ihhpz.png" alt="" /></p> QFQ - Feature #17670 (New): WeasyPrint (instead of wkhtml) for PDF with header/footer/toc/...https://project.math.uzh.ch/issues/176702024-01-21T11:03:47ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Unter <a class="external" href="https://wkhtmltopdf.org/status.html">https://wkhtmltopdf.org/status.html</a> weist wkhtml eindringlich daraufhin das wenn wkhtml fuer nicht vertrauenswuerde HTML content verwendet wird, der Server uebernommen werden kann.</p>
<p>Das ist bei uns zwar nicht der Fall, aber weasyprint sollte einen Blick wert sein.</p>
<p>Das Hauptproblem bei wkthml ist, das sobald eine Datei (js, css, png, jpg,...) nicht geladen werden kann, es sofort einen Abbruch gibt, aber keinen Hinweis auf die Ursache.</p>
<ul>
<li><a class="external" href="https://weasyprint.org/">https://weasyprint.org/</a></li>
<li><a class="external" href="https://github.com/Kozea/WeasyPrint/">https://github.com/Kozea/WeasyPrint/</a></li>
</ul> QFQ - Bug #17668 (New): TypAhead: checks 'value', but should check 'key'https://project.math.uzh.ch/issues/176682024-01-19T20:19:07ZCarsten Rosecarsten.rose@math.uzh.ch
<p>QFQ 23.6.2</p>
<p><img src="https://project.math.uzh.ch/attachments/download/9061/clipboard-202401192117-qlllp.png" alt="" /></p>
<p>Beim laden des Forms (wenn ein User selektiert ist mit special char im Namen wie `Faske, Ida Synnøve`) gibt es im Client gleich ein 'invalid char'. Speichern wird entsprechend auch abgelehnt.</p>
<ul>
<li>checkType=auto setzt vermutlich 'alnumx' Pattern</li>
<li>Der Pattern Check prueft vermutlich den Value, es sollte eigentlich der Key getestet werden</li>
</ul>
<ul>
<li>Funktioniert nicht, sollte es aber: Encode=specialchar, checkType=auto</li>
<li>Funktioniert, aber unnoetig kompliziert: Encode=none, checkType=allbut</li>
</ul> QFQ - Feature #17659 (New): MultiForm im Formhttps://project.math.uzh.ch/issues/176592024-01-19T14:06:24ZCarsten Rosecarsten.rose@math.uzh.ch
<p>In dem folgenden Form sollen Rollen (jeweils einzelne Records) auf eine auszuwaehlende Person gelegt werden.</p>
<p><img src="https://project.math.uzh.ch/attachments/download/9053/clipboard-202401191458-rmo2s.png" alt="" /></p>
<p>Problem: es kann immer nur eine Rolle zugeordnet werden - gut waere wenn mehrere auf einmal moeglich waeren.</p>
<p>Der Use-Case kommt oefter vor, vermutlich waere ein 80/20 Loesung sehr hilfreich - Flexibilitaet von Multiform ist vielleicht nicht wichtig, einfach das es checkbox / radio / input / select gibt.</p>
<p>Im Prinzip laeuft es auf ein MultiForm im Form hinaus: das koennte moeglich sein.</p>
<p>V2.0: Den Sonderfall, es sollen Zeilen geloescht oder neue hinzugefuegt werden, koennte mit JS geloest werden.</p>
<p>Check ob das einfach DynamikUpdate aware ist.</p> 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 #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 #17620 (New): npm run build: Warum muss bei Chart.min.js das kopieren mit einer Cus...https://project.math.uzh.ch/issues/176202024-01-16T18:52:31ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>In <a class="issue tracker-1 status-5 priority-2 priority-default closed" title="Bug: Missing Chart.min.js in dev branch (Closed)" href="https://project.math.uzh.ch/issues/17529">#17529</a> wurde gefixt das Chart.min.js nun wieder ausgeliefert wird.</li>
<li>Benj moechte sich anschauen warum bei Chart.js und tablesorter die Custom Rules noetig sind.</li>
</ul> QFQ - Feature #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 - Support #17594 (Closed): QFQ Version: 24.1.0.rc1https://project.math.uzh.ch/issues/175942024-01-15T22:41:29ZCarsten Rosecarsten.rose@math.uzh.ch
<p>0) Fuer jede neue Version ein Ticket erstellen. Template: #6994</p>
<p>1) <b>Laufen</b> die Unit Tests durch?</p>
<p>2) Die aktuellen Commits anschauen und wichtige Topics uebernehmen (git log > ~/qfq.log, alles bis zum letzten TAG anschauen):</p>
<ol>
<li>complicated: git log | grep -v -e '^commit ' -e '^Author: ' -e '^Date: ' -e '^Merge: ' > /tmp/out; pluma /tmp/out</li>
</ol>
<ol>
<li>Zeigt <b>alle Commits</b> an, die seit dem aendern von NewVersion gemacht wurden! Das sollten alle Commits seit der letzten Version sein.</li>
<ul>
<li>git log --pretty=%s --after="`stat -c %y doc/NewVersion.md`"</li>
</ul></li>
</ol>
<ul>
<li><b>Anpassen</b>: qfq/extension/Documentation/Release.rst</li>
</ul>
<ul>
<li>Release.rst <b>verteilen</b>: make copyReleaseNotes</li>
</ul>
<ul>
<li>Manuell:
<ul>
<li>Den Inhalt von Release.rst kopieren nach qfq/extension/RELEASE.txt.</li>
<li>Den Inhalt von Release.rst kopieren nach CHANGELOG.md.</li>
</ul></li>
</ul>
<ul>
<li>Alle offenen Tickets im aktuellen Milestones verschieben auf den naechsten Milestone</li>
<li>Aktuellen Milestone schliessen</li>
</ul>
<p>3) In folgenden Files anpassen:</p>
<pre><code><b>Auto</b>: ./setVersion.sh &lt;MAJOR&gt;.&lt;MINOR&gt;.&lt;MICRO&gt;</code></pre>
<pre><code>Manuell:
* extension/Documentation/_make/conf.py: release, version
* extension/Documentation/Settings.cfg: version
* extension/ext_emconf.php: version</code></pre>
<p>4) Im Projektverzeichnis: <b>Doc</b></p>
<pre><code>make t3sphinx (dadurch fallen Fehler in der RESTdoc Syntax auf)</code></pre>
<p>5) <b>Update Version & Commit</b></p>
<ul>
<li>Update the version number in this document (topic 6)</li>
<li>Commit & Push new version changes to master branch:
<p>New version 18.10.3</p></li>
</ul>
<p>6) <b>New Tag</b>: </p>
<pre><code>git tag v18.10.3<br /> git push -u origin v18.10.3</code></pre>
<p>7) Tickets: schliessen und der QFQ Version zuweisen.</p>
<p>8) PhpStorm: <b>Sync</b> all files to VM qfq.</p> QFQ - Feature #17593 (Closed): CodeMirror: a) missing documentation, b) mode, c) use constants, d...https://project.math.uzh.ch/issues/175932024-01-15T21:27:03ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Bei der Suche wie man im Codemirror die Zeilennummering an/abschalten kann, hat EV folgenden Codeschnipsel gefunden:</p>
<p><img src="https://project.math.uzh.ch/attachments/download/8990/clipboard-202401152210-de5sn.png" alt="" /></p>
<p>a) Es scheint keine Dokumentation (Form.rst) zu den Optionen/Keywords 'mode,lineNumbers,lineWrapping,tabSize' zu geben - bitte erstellen. <br />b) Welche Werte kann `mode` alle annehmen und was bedeuten sie?.</p>
<p>c) Bitte Konstanten fuer die Keywords definieren (inkl. 'readOnly')</p>
<p>d) Die Keywords sind neutral bzgl. Editor. 'lineNumber,lineWrapping,tabSize' hoeren sich aber nach einen Code Editor an. Das muesste in der Doku klar werden, das diese Optionen nur bei CodeMirror Sinn machen.</p> QFQ - Feature #17579 (New): UZH CD: Anpassungen fuer FE Edit Codemirrorhttps://project.math.uzh.ch/issues/175792024-01-13T19:01:55ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>typo3conf/ext/uzh_cd_template/Configuration/TypoScript/constants.txt</li>
</ul>
<pre>
#cd.qfq.js.file11 = typo3conf/ext/qfq/Resources/Public/JavaScript/codemirror.min.js
cd.qfq.js.file11 = typo3conf/ext/qfq/Resources/Public/JavaScript/codemirror/codemirror-qfq.min.js
#cd.qfq.js.file12 = typo3conf/ext/qfq/Resources/Public/JavaScript/code-mirror-mode/sql/sql.min.js
</pre> QFQ - Feature #17577 (New): QFQ Doc: local render / Sphinx & MkDochttps://project.math.uzh.ch/issues/175772024-01-13T13:39:29ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Es waere gut wenn man die QFQ Doc lokale rendern koennte um schneller zu sehen wie etwas aussieht.</p>
<ul>
<li>Um schnell etwas auszuprobieren sind a) Commmits auf 'Develop' und b) warten bis RTD fertig ist, einfach zu unpraktisch.</li>
<li>RTD rendert nur auf Branch Master & Develop - d.h. niemand ausser CR kann schauen wie die Doku aussieht.</li>
</ul>
<ul>
<li><a class="external" href="https://me-readthedocs.readthedocs.io/en/latest/custom_installs/local_rtd_vm.html">https://me-readthedocs.readthedocs.io/en/latest/custom_installs/local_rtd_vm.html</a></li>
<li><a class="external" href="https://me-readthedocs.readthedocs.io/en/latest/guides/tools.html">https://me-readthedocs.readthedocs.io/en/latest/guides/tools.html</a></li>
<li><a class="external" href="https://training.nih-cfde.org/en/latest/General-Tools/Web-Development/mkdocs/">https://training.nih-cfde.org/en/latest/General-Tools/Web-Development/mkdocs/</a></li>
</ul> QFQ - Feature #17576 (Closed): QFQ FrontEnd Editor: head stylinghttps://project.math.uzh.ch/issues/175762024-01-13T11:18:34ZCarsten Rosecarsten.rose@math.uzh.ch
<p><img src="https://project.math.uzh.ch/attachments/download/8985/clipboard-202401131217-j2tvw.png" alt="" /></p> QFQ - Feature #17544 (New): QFQ Installation Wizard / Defaultshttps://project.math.uzh.ch/issues/175442024-01-09T12:19:59ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Im Meeting mit Philipp, Enis, Benj und Carsten wurden besprochen das wir einen Installation Wizard benoetigen.</p>
<ul>
<li>Kontrolle das die BaseURL stimmt (falls nicht ok, bitte im Installtool setzen).</li>
<li>Frage ob Tabellen angelegt werden sollen:
<ul>
<li>Period</li>
<li>Category (ex Ggroup) - Weiterer Vorschlag: Grp (in dem Fall kann 'gr' als Prefix weiter verwendet werden). implement mit Ticket <a class="issue tracker-2 status-2 priority-3 priority-high3" title="Feature: Per Form: note, tag, reminder date, done flag (In Progress)" href="https://project.math.uzh.ch/issues/17412">#17412</a> </li>
<li>Glue (ex GroupMember) implement mit Ticket <a class="issue tracker-2 status-2 priority-3 priority-high3" title="Feature: Per Form: note, tag, reminder date, done flag (In Progress)" href="https://project.math.uzh.ch/issues/17412">#17412</a></li>
<li>Upload. implement mit Ticket #filepond</li>
<li>Translation</li>
<li>Chat implement mit Ticket #chat</li>
<li>Note</li>
<li>NoteItem ( fuer form NoteItem Ticket <a class="issue tracker-2 status-2 priority-3 priority-high3" title="Feature: Per Form: note, tag, reminder date, done flag (In Progress)" href="https://project.math.uzh.ch/issues/17412">#17412</a>)</li>
<li>Person</li>
<li>Account</li>
<li>Address</li>
<li>PersonRole</li>
<li>Role</li>
</ul></li>
</ul>
<ul>
<li>BestPractice Doku & Seite / ttcontent anlegen (Auswahl als welches Child Element)
<ul>
<li>Settings (based on Grp/Glue) via.</li>
<li>Person / Adresse / Account / Rolle</li>
<li>FormEditor</li>
<li>Beispiel Chat</li>
</ul></li>
</ul>
<p><img src="https://project.math.uzh.ch/attachments/download/8961/clipboard-202401091319-wrmqh.png" alt="" /></p>
<p>switchdrive/qfq/DB/QFQ_Best_Practice_Tables.drawio</p>
<ul>
<li>Der Wizard soll bei der ersten Installation automatisch aufgehen.</li>
<li>Der Wizard soll auch spaeter noch gestartet werden koennen.</li>
<li>Im Wizard angeben wie man ihn spaeter erneut starten kann.</li>
<li>Aufruf koennte via einem HTML/PHP Form gemacht werden, das nur startet wenn ein BE User eingeloggt ist: BE Cookie mit der T3 BE User Tabelle vergleichen).</li>
</ul> 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 #17515 (New): TYPO3_STORE: ttcontentUid - insertRecord keep original uidhttps://project.math.uzh.ch/issues/175152023-12-24T10:18:30ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Wird ein Content Record via 'Insert Records' eingebunden, zeigt `{{ttcontentUid:Y}}` erwartungsgemaess die UID des finalen tt-content Records an, und nicht die des urspruenglichen.</p>
<p>Fuer QFQ Wiki waere es gut das wenn Seiten verschoben werden (pageSlug aendert sich), der Content mit wandert.</p>
<p>Das koennte erreicht werden in dem</p>
<p>a) anstelle des `{{pageSlug:T}}` die `{{pageId:T}}` verwendet wird,<br />b) die `{{ttcontentUid:Y}}` des T3 tt-content records.</p>
<p>Variante (b) hat den Nebenenenffekt, das ein verschieben des tt-content QFQ-Wiki Records den Inhalt mit verschiebt. <br />Da die QFQ Wiki Records aber immer den gleichen tt-content QFQ Code haben, werden solche Records typischerweise mit 'Insert Record' erzeugt - genau dann funktioniiert allerdings `{{ttcontentUid:Y}}` nicht mehr.</p>
<p>Gibt es eine Moeglichkeit herauszufinden welches die urspruengliche `ttcontentUid` ist?</p> QFQ - Feature #17439 (New): Novu Open Source Notification Managementhttps://project.math.uzh.ch/issues/174392023-12-07T07:37:09ZCarsten Rosecarsten.rose@math.uzh.ch
<p><a class="external" href="https://www.heise.de/ratgeber/Novu-Open-Source-Notification-Management-fuer-Web-Apps-9543007.html?wt_mc=intern.red.plus.newsticker.7-tage-news.teaser.teaser">https://www.heise.de/ratgeber/Novu-Open-Source-Notification-Management-fuer-Web-Apps-9543007.html?wt_mc=intern.red.plus.newsticker.7-tage-news.teaser.teaser</a></p>
<p>Koennte eingesetzt werden fuer</p>
<ul>
<li>Dashboard</li>
<li>Am I-MATH gibt es viele T3 Instanzen - damit koennten Notifications unterschiedlicher Tools gebuendelt werden.</li>
<li>Notez: falls wir eine App machen </li>
<li>Wuerde sich das als Chat-Server eignen?</li>
</ul> QFQ - Feature #17412 (In Progress): Per Form: note, tag, reminder date, done flaghttps://project.math.uzh.ch/issues/174122023-12-05T22:38:13ZCarsten Rosecarsten.rose@math.uzh.ch
<p>In unseren QFQ Applikationen fuer die Benutzer aber auch fuer die Applikationsentwickler waere folgende Funktion nett:</p>
<ul>
<li>Auf einem Formular gibt es einen <strong>Button</strong> via dem man sich Notizen zum aktuellen Record (Antrag, ...) macht (entweder als Popup oder Modal).</li>
<li>Die Option kann an/abgeschaltet werden (auch dynamisch je nach eingeloggtem User)</li>
<li>Die Logik soll fix in QFQ mittels form/qfqr Files hinterlegt sein. </li>
<li>Durch toolspezifische Formulare/Reports kann es an das Tool angepasst werden.</li>
<li>Titel sollte veränderbar sein.</li>
</ul>
<p>Details:</p>
<ul>
<li>Eine Notiz kann private, <group> oder public sein.
<ul>
<li>Welche <group's> es gibt kann konfiguriert werden. Bsp: admin, developer, dekanat, ...</li>
<li>Es stehen nur solche Gruppen zur Verfuegung in der man selbst Member ist.</li>
</ul></li>
</ul>
<ul>
<li>Der <strong>Button</strong> zeigt die Anzahl Notizen an. Symbol: Blatt Papier mit der Anzahl Notizen als kleine Zahl in einer Ecke. Sobald es min. eine Notiz gibt hat das Blatt eine Farbe.</li>
<li>Hover/Tooltip zeigt die letzten 5 Notizen an (Note, Tag, Author, Created, Reminder, Resubmission).</li>
<li>Die Tags sollen dazu verwendet werden die Notizen zu klassifizieren: todo / feedback / hold / not yet / ...
<ul>
<li>Pro Notizen koennen beliebig viele Tags vergeben werden.</li>
<li>Neue Tags koennen on the fly erzeugt werden.</li>
<li>Die Tags werden mit Typeahead erfasst.</li>
</ul></li>
</ul>
<ul>
<li>Auf dem allgemeinen Dashboard werden die eigenen/group/all Notizen als Summe angezeigt - ein Klick darauf fuehrt in die Listenansicht.</li>
<li>In der Listenansicht werden die eigenen/<group>/alle Notizen angezeigt werden.
<ul>
<li>Sortiert nach 'last modified', Filter auf a) 'user'/'group', b) Inhalt, c) Tags</li>
<li>In der Listenansicht kann von der Notiz direkt zum Antrag / Form / ... gesprungen werden.
<ul>
<li>Damit das funktioniert muessen im Hintergrund weitere Informationen bei der Notiz abgelegt werden (Formular, detail Parameter, ...).</li>
</ul></li>
</ul>
<ul>
<li>Es koennen Notizen angelegt werden, die keinem Form/Record zugeordnet sind. Anwendung: persoenliche Todo Liste, Bsp: 'morgen unbedingt nach Urlaub fragen'.</li>
</ul></li>
</ul>
<ul>
<li>Im Dashboard und in der Listenansicht werden Notizen mit abgelaufenem Reminder besonders hervorgehoben.</li>
<li>Ist das reminder date abgelaufen wird eine Mail versendet.</li>
<li>Pro Notiz kann das Flag 'done' gesetzt werden (dann wird kein Reminder versendet).</li>
</ul>
<p>Anmerkungen:</p>
<ul>
<li>Eine Notiz kann als 'Ticket' gesehen werden (erscheint im Dashboard, kann auf 'done' gesetzt werden, kann tags zur Klassifizierung enthalten).</li>
<li>In dem aktuellen Konzept hat die Notiz mehr einen 'History' Character als Ticket.</li>
<li>Zukunft: zu einer Notiz koennten weitere Informationen abgelegt werden (Assignee, Due Date, ...), damit waere dann ein Ticketsystem moeglich. </li>
<li>Im jetzigen Konzept werden die Notizen i.d.R. einem Table/Record zugeordnet. </li>
<li>Bei z.B. Rueckfragen oder Diskussion waere zusaetzlich eine Thread-ID interressant.</li>
<li>Mit dem Thread Konzept waere das eine interessante Moeglichkeit eine 'minimale Chat Logik' mit QFQ auszuliefern. Das koennte direkt in BEF fuer die Rueckfragen verwendet werden.</li>
</ul>