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 - Bug #18044 (Closed): Fabric not shownhttps://project.math.uzh.ch/issues/180442024-03-02T18:37:44ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Feature #18037 (New): Auto BPMN Update: QFQ/rclonehttps://project.math.uzh.ch/issues/180372024-03-02T09:37:05ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Ziel: BPMN Workflows verbinden mit Ticketsystem, ist ein Ticket / Milestones abgearbeitet wird das im BPMN visuell markiert.</p>
<p>Moegliches Konzept:</p>
<ul>
<li>BPMN ist im Switchdrive</li>
<li>QFQ bekommt via 'rclone' Nextclod, OwnCloud, Dropbox, OneDrive, GDrive Support und kann so auf Dateien zugreifen.</li>
<li>In QFQ ist die PathFilename-Referenz auf das BPMN hinterlegt</li>
<li>Es gibt eine API (Redmine, QFQ Notez) um den Status von Tickets abzufragen.</li>
<li>QFQ ruft (on request, periodically) ein Skript auf welches:
<ul>
<li>Fuer jedes im BPMN referenzierte Ticket den Status via API abruft.</li>
<li>Den Status visuell im BPMN eintraegt (z.B. Hintergrundfarbe des Elements setzen)</li>
<li>Dadurch dass das File via rclone im Sync gehalten wird, haben sofort alle User das aktuelle File.</li>
</ul></li>
</ul> QFQ - Bug #17998 (New): Curly braces: a) save as html-entity, b) stored procedure to convert to h...https://project.math.uzh.ch/issues/179982024-02-26T12:53:24ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>In Forkred #17995 kam es bei der Anzeige eines Formulars zu einem Problem das <code>}}</code> als Variable interpretiert wurde.</li>
<li>Das ist ein schweres Problem und sollte versucht werden zentral zu vermeiden.</li>
</ul> QFQ - Feature #17858 (New): Check if QFQ is compatible with Typo3 V12https://project.math.uzh.ch/issues/178582024-02-11T18:35:34ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Wenn wir von isg_ldap_sso weg kommen (wird ersetzt durch oidc) gibt es keinen Grund mehr V12 noch nicht anzuschauen.</li>
<li>MNF ist noch auf V9 - Migration koennte ggfs. direkt auf V12 erfolgen.</li>
</ul> QFQ - Bug #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 - 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 #16988 (In Progress): Bild zuschneiden / Image Manipulationhttps://project.math.uzh.ch/issues/169882023-10-03T11:22:44ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Wir brauchen an unterschiedlichen Stellen die Moeglichkeit das ein Bild direkt im QFQ zugeschnitten werden kann.</p>
<p>Use Case:</p>
<ul>
<li>Carousel News (I-MATH/MY, JES)</li>
<li>MY Photowand</li>
<li>MY Student Exercise Upload </li>
<li>(Exam Upload)</li>
<li>MNF Heidi</li>
<li>...</li>
</ul>
<p>Details:</p>
<ul>
<li>Direkt im Upload Dialog</li>
<li>Explizit fuer bereits vorhandenes Bild</li>
<li>Option: Maske (fixem Aspekt Ratio) kann eingeblendet und verschoben / gezoomt werden.</li>
<li>Option: das Originalbild bleibt erhalten (Gleicher Pfad, Dateiname plus Extension 'original')</li>
<li>Option: Button restore Orginal.</li>
<li><a class="external" href="https://docs.qfq.io/en/master/Form.html#type-imagecut">https://docs.qfq.io/en/master/Form.html#type-imagecut</a></li>
</ul>
<p>10 Best Image Croppers In jQuery And Vanilla JavaScript (2024 Update) - <a class="external" href="https://www.jqueryscript.net/blog/best-image-croppers.html">https://www.jqueryscript.net/blog/best-image-croppers.html</a></p>
<ul>
<li><a class="external" href="https://fengyuanchen.github.io/cropperjs/">https://fengyuanchen.github.io/cropperjs/</a>, MIT, 12.5k Stars, 2023</li>
<li><a class="external" href="https://jamesooi.design/Croppr.js/">https://jamesooi.design/Croppr.js/</a>, MIT, 386 Stars, 2018, Aspect Ratio</li>
</ul> QFQ - Feature #12038 (New): a) STORE_VAR: filenameOnlyStripUniq, b) SP: QSTRIPUNIQ()https://project.math.uzh.ch/issues/120382021-02-17T22:48:09ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Regelmaessig sollen Dateien hochgeladen werden, bei denen es keinen Konflikt geben darf wenn bereits eine Datei mit dem Namen existiert.</p>
<p>Ein gute Loesung ist die ID des aktuellen Records an den Anfang der Datei zu setzen. Bsp.: aus `test.pdf` wird dann `1234.test.pdf`</p>
<p>Via SQL ist es aufwendig den String zu parsen:</p>
<ul>
<li>Cut Path, so dass nur noch der Filename uebrig ist.</li>
<li>Dann z.B. vom Anfang bis zum ersten Punkt alles abschneiden.</li>
</ul>
<p>Wunsch:</p>
<p>a) Im STORE_VAR eine neue Variable `filenameOnlyStripUniq` einfuehren die geanu das macht.<br />b) Eine neue Stored Procedure <abbr title="">QSTRIPUNIQ</abbr>() anlegen die genau das macht (kann in Report verwednet werden)</p> QFQ - Bug #11666 (Closed): PHP 7.4: Trying to access array offset on value of type inthttps://project.math.uzh.ch/issues/116662020-11-30T16:08:12ZCarsten Rosecarsten.rose@math.uzh.ch
<pre>
UniqId:: 5fc50cd528aec
------------------------------------------------
toUser:: General error - please report.
support:: File: /var/www/html/exam2/typo3conf/ext/qfq/Classes/Core/Helper/Sanitize.php / Line: 293 / Trying to access array offset on value of type int
Timestamp:: 2020.11.30 16:16:37 +0100
Code:: 8
Message:: General error - please report.
Report level key:: 20
Type:: Code Exception
current sip:: array (
'__dbIndexData' => '1',
'form' => 're_exam',
'r' => '26',
's' => '5fc50cc9510f4',
'urlparam' => '__dbIndexData=1&form=re_exam&r=26',
)
Page Id:: 59
Content Id:: 254
FE User:: crose
File:: /var/www/html/exam2/typo3conf/ext/qfq/Classes/Core/Exception/ErrorHandler.php
Line:: 42
CWD:: /var/www/html/exam2
IP Address:: 192.168.133.214
Stacktrace::
#0 /var/www/html/exam2/typo3conf/ext/qfq/Classes/Core/Helper/Sanitize.php(293): IMATHUZH\Qfq\Core\Exception\ErrorHandler::exception_error_handler()
#1 /var/www/html/exam2/typo3conf/ext/qfq/Classes/Core/Store/Client.php(35): IMATHUZH\Qfq\Core\Helper\Sanitize::digitCheckAndCleanGet()
#2 /var/www/html/exam2/typo3conf/ext/qfq/Classes/Core/Form/Dirty.php(65): IMATHUZH\Qfq\Core\Store\Client::getParam()
#3 /var/www/html/exam2/typo3conf/ext/qfq/Classes/Core/QuickFormQuery.php(462): IMATHUZH\Qfq\Core\Form\Dirty->__construct()
#4 /var/www/html/exam2/typo3conf/ext/qfq/Classes/Core/QuickFormQuery.php(256): IMATHUZH\Qfq\Core\QuickFormQuery->doForm()
#5 /var/www/html/exam2/typo3conf/ext/qfq/Classes/Controller/QfqController.php(47): IMATHUZH\Qfq\Core\QuickFormQuery->process()
==================================================
</pre> QFQ - Feature #11513 (Closed): add special column AS _scripthttps://project.math.uzh.ch/issues/115132020-11-12T22:13:51ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Feature #11512 (Closed): add access to Var storehttps://project.math.uzh.ch/issues/115122020-11-12T22:05:06ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Bug #11511 (Closed): Tablesorter: fix encoding errorhttps://project.math.uzh.ch/issues/115112020-11-12T21:53:58ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Support #10599 (Closed): escapeshellarg() removes non ascii charshttps://project.math.uzh.ch/issues/105992020-05-16T14:39:26ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Wenn Apache mit LANG=C laeuft werden</p>
<ul>
<li>durch escapeshellarg() die Umlaute entfernt (eigenlich alle non Ascii chars). Beispiel: 'Universität Zürich' >> 'Universitt Zrich'</li>
<li>'wkthml' entfernt ebenfalls die Umlaute aus Parametern.</li>
</ul>
<p>Abhilfe: Apache mit dem System Local starten, welches heutzutage en_US.UTF-8 ist.</p>
<p>Ubuntu:<br /><pre>
# File: /etc/apache2/envvars
# Activate line:
. /etc/default/locale
</pre></p>
<ul>
<li>Damit entfernt escapeshellarg() keine non-Ascii Zeichen.</li>
<li>'wkhtml' startet mit LANG=en_US.UTF-8 und stripped ebenfalls keine non-Ascii chars.</li>
</ul> QFQ - Support #10358 (Closed): Make pdfunite configureablehttps://project.math.uzh.ch/issues/103582020-04-05T07:20:47ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Binaries wie pdfunite sollten konfigurierbar werden (wie wkhtmltopdf)</li>
<li>Variablen wie LD_LIBRARY_PATH muessen moeglichsein</li>
</ul>
<p>Umstellen:</p>
<ul>
<li>qpdf</li>
<li>gs</li>
<li>pdfunite</li>
</ul> QFQ - Bug #9861 (Closed): Fix broken sql.log filenamehttps://project.math.uzh.ch/issues/98612020-01-09T14:15:09ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Bug #9859 (Closed): Database Update: check for 'Update specialColumnName needed' breaks cle...https://project.math.uzh.ch/issues/98592020-01-09T14:00:58ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Bug #9855 (New): Required Checkhttps://project.math.uzh.ch/issues/98552020-01-09T10:28:50ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Bitte fuer alle Input Typen (inkl. 'File'), ueberpruefen das ein Form Save unmoeglich ist (resp. markiert wird), wenn required aktiv ist, das Feld aber leer ist.</p>
<p>Das Attribute 'acceptZeroAsRequired' auch testen.</p>
<p>Bei 'fe.mode=<via dynamic update veraendert>' bitte alle Varianten testen (n=normal, r=required, FL=Form Load, FDU=Form Dynamic Update):<br /><pre>
FL FDU
--------
n n
n r
r n
r r
</pre></p> QFQ - Feature #9853 (New): Check das SQL / QFQ / Mail Logfile geschrieben wirdhttps://project.math.uzh.ch/issues/98532020-01-09T10:15:45ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Support #8659 (Closed): QFQ Version: 19.7.0https://project.math.uzh.ch/issues/86592019-07-02T17:17: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 - Bug #8587 (Closed): Form without any column in primary table should not trigger a save (for...https://project.math.uzh.ch/issues/85872019-06-19T13:54:09ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Falls ein Form kein Elemment aus der Primary Table enthaelt, sollte es kein Save ausfuehren (typischerweise wird dann nur 'modified, created' getriggert.</p> QFQ - Bug #8465 (Closed): Var substitute: '{{name:R:::0}}' default not used if it is '0'.https://project.math.uzh.ch/issues/84652019-06-04T12:49:42ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Support #8394 (Closed): QFQ Version: 19.5.1https://project.math.uzh.ch/issues/83942019-05-22T10:52:51ZCarsten 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 - Support #7604 (Closed): QFQ Version: 19.01.1https://project.math.uzh.ch/issues/76042019-01-04T22:51:57ZCarsten 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 - Bug #7551 (Closed): General error: Database.php line 329 - sql hinthttps://project.math.uzh.ch/issues/75512018-12-29T16:41:49ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Bug #7402 (Some day maybe): thumbnail cache: outdated picture when permission denied and pe...https://project.math.uzh.ch/issues/74022018-11-30T16:11:17ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Wird ein Image ersetzt, hat neu aber den Owner 'root', ist folgendes Verhalten zu beobachten wenn QFQ das thumbnail neu rendert (versucht).</p>
<ul>
<li>QFQ erzeugt von einem Image ein thumbnail.</li>
<li>Der Webmaster kopiert eine neue Datei, mit dem gleichen Namen ueber die alte Datei.</li>
<li>Die neue Datei hat faelchslicherweise als owner=root gesetzt. Der Apache Prozess kann nicht darauf zugreifen.
<ul>
<li>Obwohl der Zugriff nicht funktioniert, gibt es keine Fehlermeldung (im Client) - gut waere ein 'broken image'.</li>
</ul></li>
</ul>
<ul>
<li>Der Browser zeigt die thumbnails nicht an (weiss).</li>
<li>Anschliessend werden die Permissions/Owner korrekt gesetzt.</li>
<li>Nach einem Reload im Browser werden die urspruenglichen Thmumbnails angezeigt (also von den alten Bildern)!</li>
</ul> QFQ - Bug #7281 (Some day maybe): Subrecords: on large screen separator line too shorthttps://project.math.uzh.ch/issues/72812018-11-18T09:09:38ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Subrecords: bei besonders breiten Seiten und keinem subrecord, wird die Linie unter dem plus Zeichen nur auf halbe Breite gerendert.</p> QFQ - Feature #7106 (Some day maybe): Beispiel Nummerierung von Rows in Reporthttps://project.math.uzh.ch/issues/71062018-10-27T09:21:06ZCarsten Rosecarsten.rose@math.uzh.ch
<p>In Report Nummerierung von Zeilen:</p>
<ul>
<li>via SQL Variable<br />∘ via Report: line.count</li>
</ul> QFQ - Feature #7105 (Some day maybe): Beispiel wie man in einer zweiten Tabelle speichert.https://project.math.uzh.ch/issues/71052018-10-27T09:18:24ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Support #7103 (Closed): Notes to Excel Exporthttps://project.math.uzh.ch/issues/71032018-10-27T09:05:06ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Hier ein paar Notizen von der Excel Export Version</p>
<p>QFQ Excel</p>
<p>Moeglichkeiten um das Excel zu erzeugen:</p>
<ul>
<li>wie beim download koennen mehrere sourcen angegeben werden.</li>
<li>pro source wird ein worksheet gemacht.</li>
<li>der source wird als csv geliefert</li>
<li>report kennt einen neuen 'special column name': ... AS _csvs (semincolon), csvc (comma)</li>
</ul>
<p>beim csv</p>
<ul>
<li>ist die erste zeile immer das spalten format - kann leer sein.</li>
<li>ist die zweite zeile immer die titel zeile - kann leer sein</li>
<li>die werte sind mit ';' getrennt. </li>
<li>';' wird mit '\' escaped</li>
<li>die values sind nicht enclosed</li>
</ul>
<pre>
<format>: date, time, number, string, currency
worksheet:0
mode:insert
mode:overwrite (default)
startAddress:A5
<Format>:<Value>
<Format>:<Value>
row
<Format>:<Value>
<Format>:<Value>
p:export&pIdOu=123 >> ?index.php&id=export&s=badcaffee1234
</pre>
<p>Format - Ein bereits vorhandenes File zum Download anlegen:</p>
<ul>
<li>'F:fileadmin/data.xlsx' AS _excel</li>
<li>'d|m:excel|s:1|F:fileadmin/data.xlsx' AS _link</li>
</ul>
<p>Ein Excel neu anlegen</p>
<ul>
<li>'d|p:exportexcel?pIdOu=456' AS _excel</li>
</ul>
<p>Ein Excel basierend auf einem template anlegen</p>
<ul>
<li>'d|F:fileadmin/template.xlsx|p:exportexcel?pIdOu=456' AS _excel</li>
</ul>
<p>Defaults fuer 'AS _excel'</p>
<ul>
<li>m:excel</li>
<li>s:1</li>
<li>d:</li>
</ul>
<p>Tipps</p>
<ul>
<li><a class="external" href="https://github.com/PHPOffice/PHPExcel/blob/1.8/Documentation/markdown/Overview/07-Accessing-Cells.md">https://github.com/PHPOffice/PHPExcel/blob/1.8/Documentation/markdown/Overview/07-Accessing-Cells.md</a></li>
<li>Ein bestehendes Excel als template nehmen.
<ul>
<li> <a class="external" href="https://phpspreadsheet.readthedocs.io/en/develop/topics/reading-and-writing-to-file/#generating-excel-files-from-templates-read-modify-write">https://phpspreadsheet.readthedocs.io/en/develop/topics/reading-and-writing-to-file/#generating-excel-files-from-templates-read-modify-write</a></li>
</ul></li>
</ul>
<p>Error Handling</p>
<ul>
<li><a class="external" href="https://phpspreadsheet.readthedocs.io/en/develop/topics/reading-files/#error-handling">https://phpspreadsheet.readthedocs.io/en/develop/topics/reading-files/#error-handling</a></li>
</ul>
<p>API Documentation</p>
<ul>
<li><a class="external" href="https://phpoffice.github.io/PhpSpreadsheet/master/">https://phpoffice.github.io/PhpSpreadsheet/master/</a></li>
</ul>
<p>Metadata</p>
<ul>
<li><a class="external" href="https://phpspreadsheet.readthedocs.io/en/develop/topics/recipes/#setting-a-spreadsheets-metadata">https://phpspreadsheet.readthedocs.io/en/develop/topics/recipes/#setting-a-spreadsheets-metadata</a></li>
</ul>
<p>Shows up as 1,587.20</p>
<ul>
<li>$spreadsheet->getActiveSheet()->getStyle('A1')->getNumberFormat()->setFormatCode('#,##0.00');</li>
</ul>
<p>Setting column width</p>
<ul>
<li><a class="external" href="https://phpspreadsheet.readthedocs.io/en/develop/topics/recipes/#setting-a-columns-width">https://phpspreadsheet.readthedocs.io/en/develop/topics/recipes/#setting-a-columns-width</a></li>
</ul>
<p>Insert Rows</p>
<ul>
<li><a class="external" href="https://phpspreadsheet.readthedocs.io/en/develop/topics/recipes/#inserting-rowscolumns">https://phpspreadsheet.readthedocs.io/en/develop/topics/recipes/#inserting-rowscolumns</a></li>
<li>$spreadsheet->getActiveSheet()->insertNewRowBefore(7, 2);</li>
</ul>
<p>Set HTTP Header</p>
<ul>
<li><a class="external" href="https://phpspreadsheet.readthedocs.io/en/develop/topics/recipes/#redirect-output-to-a-clients-web-browser">https://phpspreadsheet.readthedocs.io/en/develop/topics/recipes/#redirect-output-to-a-clients-web-browser</a><br /><pre>
--------
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="myfile.xlsx"');
header('Cache-Control: max-age=0');
$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xlsx');
$writer->save('php://output');
</pre></li>
</ul> QFQ - Bug #7101 (Some day maybe): 'form' in SIP and 'report' - breakshttps://project.math.uzh.ch/issues/71012018-10-27T08:47:43ZCarsten Rosecarsten.rose@math.uzh.ch
<p>falls in der SIP ein form ist und um qfq record ein form defineirt ist (wrid dynamisch berechnet) kommt qfq beim defintinve laden des form durcheinander.</p> QFQ - Bug #7011 (Rejected): Button 'Einreichen' erscheint doppelt - Rahmen Pill falsch - GRC / Fo...https://project.math.uzh.ch/issues/70112018-10-16T06:32:47ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Button einreichen doppelt (FF) - wir (SW/CR) koennen das Problem mit den zwei Buttons nciht reproduzieren.</li>
<li>Ueber dem Button ist eine waagerechte Linie - die hat CR schoen oefter in letzter Zeit gesehen.</li>
</ul> QFQ - Feature #6299 (Some day maybe): Attack detection: log table with invalid SIP access https://project.math.uzh.ch/issues/62992018-06-23T16:32:22ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Die Abwehrmassnahmen fuer SIP brute force sollen wie folgt verbessert werden.</p>
<ul>
<li>Es gibt eine Tabelle die alle mis-hit auf SIP oder Persistent SIP notiert:
<ul>
<li>IP</li>
<li>PHP Session</li>
<li>feUser</li>
<li>UserAgent</li>
<li>pageId</li>
<li>Zeitpunkt</li>
</ul></li>
</ul>
<ul>
<li>QFQ prueft bei jedem Start ob ein Full Stop (Attack detected) noetig ist:
<ul>
<li>Hits pro Sekunde, pro Minute, pro 5 Minuten, pro Stunde, pro Tag, pro Monat</li>
<li>Count pro IP, count pro PHP Session, count pro feUser</li>
<li>Fuer jede 'Hit/pro Zeit'-Klasse gibt es einen Schwellwert.</li>
<li>Ist der Schwellwert ueberschritten, wird die IP gesperrt, resp. die PHP Session gesperrt. </li>
<li>Eintraege aelter als einen Monat werden geloescht.</li>
</ul></li>
</ul>
<ul>
<li>Es wird nicht erwartet das viele Daten in der Tabelle stehen.</li>
</ul> QFQ - Feature #6288 (Some day maybe): Best Practice: Erklaeren wie man ein Formular ganz in 'weis...https://project.math.uzh.ch/issues/62882018-06-20T16:35:27ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Mit den Klassen classPill, classBody, classTitle kann man ein Formular ganz in weiss machen</p>
<p>Lehrkredit/Form: requestApprove</p>
<p>classBody=qfq-color-white</p> QFQ - Bug #5913 (Closed): sendmail: reports that there is no 'TO' given - but it is.https://project.math.uzh.ch/issues/59132018-05-04T15:57:23ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Bug #5896 (Closed): Missing 'specific message' in database exceptionhttps://project.math.uzh.ch/issues/58962018-05-01T17:12:56ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Feature #5891 (Rejected): After logout: destroy sip storehttps://project.math.uzh.ch/issues/58912018-05-01T12:59:44ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Bug #5890 (Closed): File 'config.qfq.ini' by default public - protect against accesshttps://project.math.uzh.ch/issues/58902018-05-01T12:49:43ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>config.qfq.ini kann aktuell, bei direkter Eingabe des Pfades, im Webbrowser angezeigt werden!!!</li>
<li>Optionen das zu verhindern:
<ul>
<li>File umbennennen mit 'php' am Ende.</li>
<li>In ein geschuetztes Verzeichnis verschieben</li>
</ul></li>
</ul>
<ul>
<li><a class="issue tracker-2 status-5 priority-2 priority-default closed" title="Feature: config.qfq.ini via ExtManager (Closed)" href="https://project.math.uzh.ch/issues/5175">#5175</a> config.qfq.ini via ExtManager</li>
<li><a class="issue tracker-1 status-5 priority-2 priority-default closed" title="Bug: sql.log by default public - protect against access (Closed)" href="https://project.math.uzh.ch/issues/5884">#5884</a> sql.log by default public - protect against access</li>
</ul> QFQ - Bug #5877 (Some day maybe): FE.type=note:bsColumn strange behaviourhttps://project.math.uzh.ch/issues/58772018-04-26T16:32:42ZCarsten Rosecarsten.rose@math.uzh.ch
<p>SW hat auf der GRC Seite ein spezielles Verhalten gehabt.</p>
<ul>
<li>FE Element (kein Dynamic Update) type=note</li>
<li>In der Note gab es kein Label und Input.</li>
<li>Die Note Spalte war 9 spalten breit. Label=3, Input=0</li>
<li>Nachdem 'modeSql' gesetzt wurde, so dass nur bei gewissen Grants das FE angezeigt werden soll (show/hidden), war der Button linksbuendig, obwohl er in der 4. Spalte beginnen soltle.</li>
<li>Wurde Label=2, Input=1 oder Label=0, Input=3 gesetzt, trat der Effekt nicht auf.</li>
</ul> QFQ - Feature #5783 (Some day maybe): BPMN View/Edithttps://project.math.uzh.ch/issues/57832018-04-05T14:50:40ZCarsten Rosecarsten.rose@math.uzh.ch
<p>QFQ soll BPMN Workflows anzeigen und editieren koennen:</p>
<ul>
<li>BPMN Edit:
<ul>
<li><a class="external" href="https://github.com/bpmn-io/bpmn-js">https://github.com/bpmn-io/bpmn-js</a></li>
<li><a class="external" href="https://github.com/bpmn-io/bpmn-moddle">https://github.com/bpmn-io/bpmn-moddle</a> </li>
<li><a class="external" href="https://github.com/bpmn-io/diagram-js">https://github.com/bpmn-io/diagram-js</a></li>
</ul></li>
</ul>
<ul>
<li>Beispiel fuer BPMN Anzeige via JQuery: <a class="external" href="https://www.pleus.net/blog/?p=2142">https://www.pleus.net/blog/?p=2142</a></li>
</ul> QFQ - Bug #5502 (Rejected): Download Button: Empty setting throws an error.https://project.math.uzh.ch/issues/55022018-02-22T12:12:55ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>In der Doku steht das ' fe.parameter.downloadButton', ohne Angabe von weiteren Parametern, ok ist und nur ein Glyph rendert. </li>
<li>Auf webwork16/grc/sw gab es einen Fehler (attached).</li>
</ul> QFQ - Support #4967 (Closed): config.qfq.ini: Rename 'VAR_ADD_BY_SQL' to 'FILL_STORE_SYSTEM_BY_SQ...https://project.math.uzh.ch/issues/49672017-11-19T15:19:35ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Rename 'VAR_ADD_BY_SQL' to 'FILL_STORE_SYSTEM_BY_SQL_1'</li>
<li>Implement up to 3 independent to SQLs</li>
<li>Optional error message, if not exact one record</li>
<li>Columns in the Query, starting with an leading '_', should be renamed to 'without the leading "_"'.</li>
</ul> QFQ - Bug #4966 (Closed): Variable {{feUser:T}} is not available in config.qfq.ini FILL_STORE_SYSTEMhttps://project.math.uzh.ch/issues/49662017-11-19T11:02:10ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Bug #4546 (Some day maybe): NH: SIP storage is destroyed https://project.math.uzh.ch/issues/45462017-09-16T09:00:14ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Nicolas hatte einige Tage lang den Effekt, das die SIPs immer mal wieder ungueltig waren. Vermutlich hat QFQ die SIP storage abgeraeumt weil ein Angriff erkannt wurde.</p> QFQ - Bug #4455 (Closed): input label: missing strong if readonlyhttps://project.math.uzh.ch/issues/44552017-09-09T16:37:57ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Bug #4441 (Some day maybe): $_SERVER Vars sollten nur aus dem Store genommen werden - Code ...https://project.math.uzh.ch/issues/44412017-09-09T14:34:35ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Support #4108 (Closed): FormEditor: Record Lockinghttps://project.math.uzh.ch/issues/41082017-07-13T12:36:36ZCarsten Rosecarsten.rose@math.uzh.ch
Form: Lock timeout (seconds)
<ul>
<li>By default ist 0 eingetragen - das kann man nicht unterscheiden von 'nicht definiert'.</li>
<li>Optionen
<ul>
<li>a) wir nutzen 'null' oder</li>
<li>b) wir belegen 'Form.recordLockTimeoutSeconds=0' mit 'nicht 'gesetzt' und SYSTEM.recordLockTimeoutSeconds=0 heisst kein Timeout</li>
</ul></li>
</ul> QFQ - Support #3569 (Closed): Input Optional '0' unterdrueckenhttps://project.math.uzh.ch/issues/35692017-04-13T11:08:39ZCarsten Rosecarsten.rose@math.uzh.ch
<pre>
FE.type=text
Fe.checktype=digit
FE.value={{SELECT IF('{{zoraSavedSearchId:RE}}' = 0, '', '{{zoraSavedSearchId:RE}}') }}
table.columntype: int
</pre> QFQ - Feature #3567 (Some day maybe): 'Save', 'Close', 'New' als FormElementhttps://project.math.uzh.ch/issues/35672017-04-13T10:47:15ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Bug #2999 (Closed): QFQ/Client: Klickt in einem Form auf den DELETE Button und ist dieser d...https://project.math.uzh.ch/issues/29992016-12-17T19:13:19ZCarsten Rosecarsten.rose@math.uzh.ch