Project @ iMath: Issueshttps://project.math.uzh.ch/https://project.math.uzh.ch/favicon.ico?16668783892023-11-16T12:43:41ZProject @ iMath
Redmine QFQ - Bug #17293 (Closed): Undocumented Feature: emptyMeansNull works not just for text https://project.math.uzh.ch/issues/172932023-11-16T12:43:41ZNicola Chiapolini
<p><a class="external" href="http://docs.qfq.io/en/master/Form.html#formelement-parameter">http://docs.qfq.io/en/master/Form.html#formelement-parameter</a> mentiones <code>emptyMeansNull</code> for elements of type text.<br />However this seems to work for a checkbox with <code>emptyItemAtStart</code> just was well.<br />Since we now relay on this behavior (still in QFQ 23.3.1), I wanted to mention this here. <br />Would be great if this could be officially supported.</p> QFQ - Bug #15794 (Feedback): Tablesorter filter funktionieren nach Reload nicht mehrhttps://project.math.uzh.ch/issues/157942023-03-14T10:08:07ZNicola Chiapolini
<p>Wenn ich in meinen Filtern eine Suche eintrage funktioniert zuerst alles korrekt.</p>
<p><img src="https://project.math.uzh.ch/attachments/download/7489/screenshot1.png" alt="" /></p>
<p>Wenn ich danach aber die Seite neu Lade, verschwinden die view-saver funktionen und die Suche hat keinen Effekt mehr.<br />Das Problem scheint der unten markierte Eintrag im local storage. Wird dieser Gelöscht, funktioniert wieder alles korrekt.</p>
<p><img src="https://project.math.uzh.ch/attachments/download/7490/screenshot2.png" alt="" /></p> QFQ - Bug #15483 (Closed): security.protectedFolderCheck verursacht unnötig Error-log einträgehttps://project.math.uzh.ch/issues/154832023-02-03T09:08:46ZNicola Chiapolini
<p>Eines unserer Systeme hatte diverse unnötig Error-Log Einträge. Das System hat ein self-signed SSL-certificate und qfq.json ausserhalb des Webroot. <br />Da der Check nach dieser Datei sucht hat jeder Seitenaufruf einen neuen Block verursacht</p>
<pre>
--2023-02-03 10:02:18-- https://....uzh.ch/fileadmin/protected/qfqProject/conf/qfq.json
Resolving ....uzh.ch (....uzh.ch)... 130.60....
Connecting to ....uzh.ch (....uzh.ch)|130.60....|:443... connected.
ERROR: The certificate of '....uzh.ch' is not trusted.
ERROR: The certificate of '....uzh.ch' doesn't have a known issuer.
</pre>
<p>Ich habe den Check eben ausgeschaltet.</p> QFQ - Bug #15445 (Closed): Output Widged fehlt in der Dokumentationhttps://project.math.uzh.ch/issues/154452023-01-26T15:53:48ZNicola Chiapolini
<p>Ich habe eben ein neues System vorbereitet und dabei versucht möglichst nahe an euren Anleitungen zu bleiben.</p>
<p>Der "Download CSV" Button funktioniert aber leider nicht. Grund war eine fehlende <code>widget-output.min.js</code>-Datei.</p>
<p>In der Dokumentation von QFQ wird die nirgends erwähnt (mindestens findet die Suche den Dateinamen nicht). Es steht nur <code>(be sure to include the separate JS file)</code> - aber ohne Info welches JS file...</p>
<p>Im UZH template ist sie offensichtlich auch nicht dabei und auch dort wird sie nirgendwo erähnt.</p> QFQ - Bug #14755 (Closed): path to typeahead.php should be absolute (and other scripts)https://project.math.uzh.ch/issues/147552022-09-20T14:04:21ZNicola Chiapolini
<p>In typo3 9.5 we use speaking urls now, so normal typo3 pages create longer urls. This breaks typeahead.</p>
<p>In a page on root level of the website, typeahead.php is found at:<br /><code>https://mnf-devel-01.mnf.uzh.ch/typo3conf/ext/qfq/Classes/Api/typeahead.php</code></p>
<p>While in our "Admin Area"-Subtree, the call is to <br /><code>https://mnf-devel-01.mnf.uzh.ch/admin-area/typo3conf/ext/qfq/Classes/Api/typeahead.php</code> which is an invalid path of course.</p> QFQ - Bug #14754 (Closed): table-sorter, view-safer broken in twighttps://project.math.uzh.ch/issues/147542022-09-20T13:27:56ZNicola Chiapolini
<p>Der Code für den Tablesorter header wird gemäss dokumentation mit dem command <code>{{ '<uniqueName>' AS _tablesorter-view-saver }}</code> erzeugt.</p>
<p>Das funktioniert gut wenn das command im <code>head</code> steht:<br /><pre>
10.sql = SELECT ....
10.head = <table {{ '{{pageAlias:T}}-allperson' AS _tablesorter-view-saver }} class="tablesorter tablesorter-filter tablesorter-column-selector" id="{{pageAlias:T}}-demo">
</pre></p>
<p>Für twig ist das aber nicht möglich, da <code>{{ }}</code>-ausdrücke in twig nicht von QFQ sondern von twig ausgewertet werden. Entsprechend muss der output des commands zuerst in eine Variable gespeichert werden. In meinen ersten Tests hat das nicht funktioniert, jetzt habe ich das aber eben zum Laufen gekriegt. Folgendes Setup funktioniert:</p>
<pre>
15.sql = SELECT "{{ 'testName' AS _tablesorter-view-saver }}" AS tsheader
15.content = hide
21.sql = SELECT ...
21.twig = <table {{ store.record.tsheader|raw }} class="tablesorter tablesorter-filter tablesorter-column-selector" id="somename">
</pre>
<p>Wichtig ist in <code>15.sql</code> die Reihenfolge der Anführungszeichen (doppelte aussen, einfache innen). Sonst schlägt das SQL-Query fehl. Ich denke, es wäre hilfreich, wenn dieses Setup auch in der QFQ-Doku erläutert würde.</p> QFQ - Bug #14531 (New): slaveId, sqlInsert and sqlUpdate should be renamedhttps://project.math.uzh.ch/issues/145312022-07-28T16:06:41ZNicola Chiapolini
<p><code>slaveId</code> , <code>sqlInsert</code> and <code>sqlUpdate</code> are a lot more generic then their name suggests. They should probably be called <code>condition</code>, <code>sqlIf</code>, <code>sqlElse</code></p> QFQ - Bug #14530 (New): Variables: Action 'X' does not output Type messagehttps://project.math.uzh.ch/issues/145302022-07-26T18:41:06ZNicola Chiapolini
<p>Subject says it all - makes debugging really annoying...</p>
<p><code>4.sql = SELECT "{{la_supervisr:R::X::hallo}}"</code></p>
<p>gives<br /><img src="https://project.math.uzh.ch/attachments/download/6414/clipboard-202207262040-ssmzv.png" alt="" /></p> QFQ - Bug #14305 (Closed): Inline Report editing does not create history entrieshttps://project.math.uzh.ch/issues/143052022-06-10T09:55:05ZNicola Chiapolini
<p>Inline Report edition does not create entries in the history of the typo3 CE, making the modification history useless</p> QFQ - Bug #14304 (Rejected): table sorter view safer does not workhttps://project.math.uzh.ch/issues/143042022-06-10T09:49:46ZNicola Chiapolini
<p>The following code</p>
<p>@<br />1.sql = SELECT '<th>Name</th><th>Type</th><th>Facutly</th><th>Uni</th>'<br />1.head = <table {{ 'orgs' AS _tablesorter-view-saver }} class="tablesorter tablesorter-filter tablesorter-column-selector" id="orgs"><br />1.rbeg = <thead class="qfq-sticky"><tr><br />1.rend = </tr></thead><tbody><br />1.tail = </tbody></table></p>
<p>1.10.sql = SELECT name_de, type, faculty, university FROM org_units<br />1.10.rbeg = <tr><br />1.10.fbeg = <td><br />1.10.fend = </td><br />1.10.rend = </tr><br />@</p>
<p>correctly shows the filter, column-selector and view-saver buttons (at least I think it does):<br /><img src="https://project.math.uzh.ch/attachments/download/6249/clipboard-202206101148-hwdvp.png" alt="" /></p>
<p>however I can not save the view. (I assume the unlabled button is the save button and I am just missing the font.)</p> QFQ - Bug #14091 (New): inconsistent template path for twighttps://project.math.uzh.ch/issues/140912022-04-19T16:36:32ZNicola Chiapolini
<p>When using <code>10.twig = file:...</code> Twig looks for the template relative to the <site path> (i.e. the webroot)<br />instead of the project path (as given in <code>qfq.project.path.php</code>) where reports are located. <br />Twig prevents loading templates outside the configured pathes, so one can not just use <code>..</code> to get there, if it is outside the webroot.</p>
<p>(In addition, it would be nice, if _script was relative to the project path as well)</p> QFQ - Feature #14090 (New): Nützliche _script funktionenhttps://project.math.uzh.ch/issues/140902022-04-19T13:00:02ZNicola Chiapolini
<p>Ich habe eben wieder mit _script gespielt.</p>
<p>Funktionen die ich nützlich fände und die ich nicht gefunden habe:</p>
<ul>
<li>Ich möchte in meiner php-Funktion nicht nur auf einen Record sonder auf das ganze Resultat eines Queries zugreifen. <br />(Lässt sich erreichen, indem ich meine Funktion in einem Subquery aufrufe. Dann muss ich aber mein Zwischenergebnis jeweils über den Var-Store weiterreichen.)</li>
</ul>
<ul>
<li>Ich möchte gerne dem Var-Store nicht bloss einen einzelnen Wert sondern ganze Arrays hinzufügen und diese dann in einem späteren _script Aufruf oder in twig nutzen.<br />(für den _script-Aufruf funktioniert das mit (de)serialize, aber für Twig habe ich keine Lösung gefunden)</li>
</ul>
<p>Gibt es andere Workarounds für meine Wünsche bzw. habt ihr entsprechende erweiterungen geplant?</p> QFQ - Bug #13706 (New): Wrong CheckType in FieldElement LastStatus of Form Cronhttps://project.math.uzh.ch/issues/137062022-01-21T17:20:57ZNicola Chiapolini
<p>The Check Type of LastStatus is configured as <code>alnumx</code> - but the displayed table column contains sanitized HTML, so lots of <code>&</code>.<br />(Trying to switch the value to fails with a warning "Encode 'specialchar' is not completely compatible with Check Type 'allbut': certain user input will be converted to its HTML representation (e.g. "), which makes use of a non-supported character (&)" which wrong, as according to docs, & is valid for allbut. However this message is missing for alnumx, where it would be correct...</p>
<p>Changing Check Type to <code>all</code> allows me to see the source retrieved by the lastrun.</p> QFQ - Bug #13659 (New): wrong sanitize class applied to R-storehttps://project.math.uzh.ch/issues/136592022-01-14T16:32:23ZNicola Chiapolini
<pre><code class="sql syntaxhl"><span class="mi">11</span><span class="p">.</span><span class="k">sql</span> <span class="o">=</span> <span class="k">SELECT</span> <span class="nv">"hallo"</span> <span class="k">AS</span> <span class="k">type</span>
<span class="mi">11</span><span class="p">.</span><span class="n">content</span> <span class="o">=</span> <span class="n">hide</span>
<span class="mi">20</span><span class="p">.</span><span class="k">sql</span> <span class="o">=</span> <span class="k">SELECT</span> <span class="s1">'{{type:R0}}'</span>
</code></pre>
<p>output:<br /><code>!!digit!!</code></p>
<p>(any other name then <code>type</code> works :-)</p> QFQ - Feature #13657 (Closed): Twig-Beispielehttps://project.math.uzh.ch/issues/136572022-01-14T12:00:29ZNicola Chiapolini
<ul>
<li>Nicola hat in seiner Mail vom 13.1.22 nochmal auf sein Twig Template vom 30.9.2019 hingewiesen.</li>
<li>Besprechung im Team ob wir den Report fuer FormEditor auf TWIG umstellen sollen.
<ul>
<li>CR: Nein, das ist der einzige QFQ Report Code den wir mitliefern und dient gleich als Anschauungsbeispiel. Wenn der zu kompliziert ist (TWIG lesen braucht Einarbeitung) ist das abschreckend.</li>
</ul></li>
</ul>
<p>-------------<br />Hoi Carsten</p>
<p>Ich habe heute Nachmittag zwei eurer Code-Beispiele mit Twig neu <br />implementiert. Du findest beide im Anhang.</p>
<p>(Beim FormEditor habe ich die Tabelle zudem noch etwas angepasst, da ich von <br />euren Spalten nicht überzeugt war. :-)</p>
<p>härzlichi Grüäss<br />Nicola</p> QFQ - Bug #12974 (New): Sanitize Queries in Action-Elementshttps://project.math.uzh.ch/issues/129742021-08-31T18:29:16ZNicola Chiapolini
<p>I just waisted an hour because qfq does not complain at all if the value after <code>sqlXXX = </code> is invalid. This should not happen.</p>
<p>QFQ should never silently ignore bad input unless it has been explicitly told to.</p> QFQ - Bug #10661 (In Progress): Typo3 Warnungenhttps://project.math.uzh.ch/issues/106612020-05-27T17:12:58ZNicola Chiapolini
<p>Hoi Carsten</p>
<p>Ich habe heute mal wieder Extensions aktualisiert (deshalb auch den Bug mit <br />processReadOnly). Da ig_ldap Probleme gemacht hatte, habe ich dann auch im <br />Install Tool alle Warnungen angeschaut und bin auf die unten gestossen.</p>
<p>Muss ich da irgend etwas unternehmen?</p>
<p>härzlichi Grüäss<br />Nicola</p>
<p>TCA Migrations<br />--------------<br />Checks whether the current TCA needs migrations and displays applied <br />migrations.</p>
<p>TCA migrations need to be applied<br />Check the following list and apply needed changes.</p>
<p>The 4th parameter 'specConf' of the field 'showitem' with fieldName = <br />'bodytext' has been migrated, from TCA table "tt_content['types']['qfq_qfq']<br />['showitem']"to "tt_content['types']['qfq_qfq']['columnsOverrides']<br />['bodytext']['defaultExtras']".</p>
<p>The defaultExtras setting 'nowrap' in TCA table tt_content['types']['qfq_qfq']<br />['columnsOverrides']['bodytext'] has been migrated to TCA table <br />tt_content['types']['qfq_qfq']['columnsOverrides']['bodytext']['config']<br />['wrap'] = 'off'</p>
<p>TCA in ext_tables.php check<br />----------------------------<br />Check if an extension changes $GLOBALS['TCA'] in ext_tables.php.</p>
<p>Extensions change TCA in ext_tables.php<br />Check for ExtensionManagementUtility and $GLOBALS["TCA"].</p>
<p>- qfq<br />- uzh_cd_template</p> QFQ - Bug #10658 (New): processReadOnly brokenhttps://project.math.uzh.ch/issues/106582020-05-27T15:39:36ZNicola Chiapolini
<p>In QFQ 20.4.0, processReadOnly seems not to work.</p> QFQ - Feature #9394 (New): REST: allow for non numerical ids in get requestshttps://project.math.uzh.ch/issues/93942019-10-18T12:48:40ZNicola Chiapolini
<p>we want to use a REST API to transfer student data. So the best common identifier would be the shortname, but QFQ does not allow for a text in the id...</p>
<p>(We can probably work around this by using the student id and removing the "-" signes, but this is not really elegant)</p> QFQ - Bug #9274 (Closed): PHP Warnung mit PHP 7.3https://project.math.uzh.ch/issues/92742019-10-01T14:44:42ZNicola Chiapolini
<p>Nach meinem Debian-Upgrade eben triggert autocron jede minute die folgende Warnung:</p>
<p><code>PHP Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /var/www/htdocs/typo3conf/ext/qfq/Classes/Core/Store/Store.php on line 801</code></p>
<p>die entsprechende Zeile zu "break" ändern, löst das Problem.</p> QFQ - Feature #9221 (Closed): typeAhead: Zeichenlimite ausschaltenhttps://project.math.uzh.ch/issues/92212019-09-24T12:38:46ZNicola Chiapolini
<p>Wir haben ein Formular, das via LDAP suche einen Shortname suchen und diesen dann in eine Tabelle speichern sollte.<br />Leider brauchen wir 2 Felder dafür, denn da die spalte "shortname" in der DB nur 8 Zeichen breit ist, können wir sonst im Suchfeld ebenfalls nur 8 Zeichen eintippen - und das reicht bei vielen Namen nicht aus.</p>
<p>Entweder sollte TypeAhead die limite automatisch deaktivieren, oder das sollte in der Feld-Konfiguration manuell möglich sein.</p> QFQ - Bug #9213 (Closed): Problems with Update to 19.9.1https://project.math.uzh.ch/issues/92132019-09-23T09:03:16ZNicola Chiapolini
<ul>
<li>The release-notes should explain, that 19.9.1 needs `SELECT` on `tt_content` (my db user was missing these rights, causing the updater to fail on page-load)
<ul>
<li>The "Special Column"-check misidentified columns starting with `file` as special:</li>
</ul></li>
</ul>
<pre>
SELECT
"{{text_label:R0}}" AS text_label, "{{weight_label:R0}}" AS weight_label, "{{file_label:R0}}" AS >>>_file_label,
text, weight, file_location, SUBSTRING_INDEX( file_location, '/', -1) AS >>>_file_name
FROM phd_milestone_subrecords WHERE milestone_id="{{r:S0}}"
</pre> QFQ - Bug #9126 (Some day maybe): hidden Form elements are present in page sourcehttps://project.math.uzh.ch/issues/91262019-09-14T07:51:58ZNicola Chiapolini
<p>Hidden Content elements are still present in the page source. This might be a security problem, if the hidden element contains a link (button) with a SIP. The link is not displayed in the in the form, but a user could find the working link in the source,</p> QFQ - Bug #9121 (New): sip links have r and __dbIndexData sethttps://project.math.uzh.ch/issues/91212019-09-13T13:52:57ZNicola Chiapolini
<p>If a link is using SIP, the <code>r=0</code> and <code>__dbIndexData=1</code> are defined even if not specified.</p>
<p>Possible Problems:</p>
<ul>
<li>lazy coders like me do not change the lookup-order, so the r from SIP might hide r from the expected stores (especially when using r inside reused content elements).</li>
<li>if no data is passed on, removing the sip rendering is ok, but one needs to remember to add it back if one adds data later (I use sip for all links)</li>
</ul> QFQ - Bug #9020 (Some day maybe): radio mit buttonClass und dynamicUpdate lassen sich nicht kombi...https://project.math.uzh.ch/issues/90202019-09-04T12:55:38ZNicola Chiapolini
<p>Wenn ich meinem Radio-Element eine buttonClass gebe um die Bootstrap-Buttons zu erhalten, funktioniert dynamic update nicht mehr.</p> QFQ - Feature #9019 (Closed): Unveränderte Formulare speichern https://project.math.uzh.ch/issues/90192019-09-04T12:54:07ZNicola Chiapolini
<p>Ich habe ein Formular, das in einem Grossteil der Fälle unverändert gespeichert werden kann. Leider wird der Save-Button aber erst aktiviert, wenn dich etwas verändert habe. Ein entsprechender Form-Parameter wäre da praktisch.</p> QFQ - Support #8486 (Closed): html2pdf optionalhttps://project.math.uzh.ch/issues/84862019-06-05T15:17:58ZNicola Chiapolini
<ul>
<li>Ticket erfasst durch ME, nach muendlicher Mitteilung von Nicola.</li>
<li>Html2Pdf muss installiert sein damit qfq laeuft, auch wenn es nicht benutzt wird. (nach Nicola)</li>
</ul>
<p>Todo: html2pdf in Download.php nur dann laden wenn tatsaechlich auch ein pdf download link benutzt wird</p> QFQ - Feature #8217 (New): if-elseif-else constructhttps://project.math.uzh.ch/issues/82172019-04-16T13:59:06ZNicola Chiapolini
<p>Prio2 für Nicola</p>
<p>Da if-elseif-else situationen ziemlich häuffig vorkommen, wäre es schön, wenn QFQ das direkt anbieten würde und wir nicht jeweils ein Pseudo-Query schreiben müssten.<br />(Intern könnte das aber natürlich problemlos über ein Pseudo-Query gelöst werden).</p>
<p>Mein Vorschlag für die Syntax wäre:</p>
<pre><code><code>10.if = "{{feUser:TE:alnumx:s}}"="nchiapol" <br />10 {<br />1.sql = SELECT shortname, mail FROM persons_ldap<br />[...]<br />}<br />11.elseif = "{{feUser:TE:alnumx:s}}"="crose" <br />[...]<br />12.else<br />[...]</code></code></pre>
<p>sollte identisch sein mit</p>
<pre><code><code>10.sql = SELECT 1 AS _ FROM (SELECT "") AS fake WHERE ("{{feUser:TE:alnumx:s}}"="nchiapol") LIMIT 1<br />10.1.sql = SELECT shortname FROM persons_ldap<br />[...]<br />11.sql = SELECT 1 AS _ FROM (SELECT "") AS fake WHERE NOT ("{{feUser:TE:alnumx:s}}"="nchiapol") AND ("{{feUser:TE:alnumx:s}}"="crose") LIMIT 1<br />[...]<br />12.sql = SELECT 1 AS _ FROM (SELECT "") AS fake WHERE NOT ("{{feUser:TE:alnumx:s}}"="nchiapol") OR ("{{feUser:TE:alnumx:s}}"="crose") LIMIT 1<br />[...]</code></code></pre>
<p>Falls für if-elseif-else statt 10-11-12 drei mal 10 verwendet werden kann, wäre das natürlich noch eleganter. Aber ich glaube schon diese Lösung wäre ein grosser Fortschritt.</p>
<p>Vorteile: * viel intuitivere Syntax * leichter lesbar * falls später Probleme entdeckt werden, können diese Zentral behoben werden.</p>
<p>Use Cases von Nicola: <a class="attachment" href="https://project.math.uzh.ch/attachments/3804">use-cases_conditions-functions.txt</a></p> QFQ - Bug #7838 (Closed): sqlValidate does not work with inner queryhttps://project.math.uzh.ch/issues/78382019-02-07T13:12:43ZNicola Chiapolini
<p>QFQ-Version: 19.01.1</p>
<p>I do have a beforeSave element with the following validation setup:<br /><code><br />sqlValidate={{!SELECT id FROM `phd_milestone_subrecords` WHERE milestone_id='{{id:R0}}' LIMIT {{SELECT subrecords FROM _milestone_types WHERE id='{{type:R0}}' }} }}<br />expectRecords = {{SELECT subrecords FROM _milestone_types WHERE id='{{type:R0}}' }}<br />messageFail = Wrong number of entries.<br /></code></p>
<p>This does not raise the error even if the needed number of subrecords are missing. When replacing the inner query with 1 everything works. <br />Other places where I use inner queries seem to work correctly.</p>
<p>The problem can be avoided with:<br /><code><br />sqlValidate={{!SELECT id FROM `phd_milestone_subrecords` WHERE milestone_id='{{id:R0}}' }}<br />expectRecords = {{SELECT GROUP_CONCAT(seq) FROM (SELECT seq FROM seq_0_to_30) AS positions WHERE seq >= (SELECT subrecords FROM _milestone_types WHERE id='{{type:R0}}') }} <br />messageFail = Wrong number of entries.<br /></code></p>
<p>I have not investigated this much further, but am happy to create a Minimal Not-Working Example if needed :-)</p> QFQ - Support #7724 (Closed): qfq Elemente die via Referenz eingebunden werden, werden von Typo3 ...https://project.math.uzh.ch/issues/77242019-01-23T15:45:27ZNicola Chiapolini
<p>Wir haben ein mit QFQ manuell zusammengestelltes Menu. Das Content Element liegt in einem Storage Folder und wird dann mit einem "Insert Records" Content Element auf den relevanten Seiten eingebunden.<br />Änderungen am Menu werden erst nach dem löschen des FE-Caches auf den relevanten Seiten übernommen. Ich schliesse deshalb, dass das aus dem Cache ausgeliefert wird - und das kann wohl noch diverse weitere Probleme verursachen, insbesondere im Hinblick auf die SIP.</p>
<p>Habt ihr einen Vorschlag, wie das am Besten gelöst wird? Abgesehen davon einfach das Caching gleich ganz auszuschalten.</p> QFQ - Support #7677 (Closed): v19.01.1 -- Install via Extension manager broken - leading '0' in m...https://project.math.uzh.ch/issues/76772019-01-18T15:13:46ZNicola Chiapolini
<p><code><br />The T3X file "https://typo3.org/fileadmin/ter/q/f/qfq_19.01.1.t3x" could not be fetched. Possible reasons: network problems, allow_url_fopen is off, cURL is not enabled in Install Tool.<br /></code></p>
<p>Link on <a class="external" href="https://extensions.typo3.org/extension/qfq/">https://extensions.typo3.org/extension/qfq/</a> returns a file <code>qfq_19.1.1.t3x</code> (without 0 in month)</p> QFQ - Bug #7652 (Closed): messageFail not displayed if user is not logged in in BEhttps://project.math.uzh.ch/issues/76522019-01-15T11:51:24ZNicola Chiapolini
<p>Our form is validated with a beforeSave-Element. And the validation triggers correctly on errors. However, messageFail is only shown if a BE login exists. (See attached screenshots)</p>
<p>QFQ-Version: 18.10.3</p> QFQ - Bug #7305 (Closed): Typo3 BE Editor screws up with indentationhttps://project.math.uzh.ch/issues/73052018-11-20T13:13:10ZNicola Chiapolini
<p>When I edit a report in the backend newlines usually start somewhere <br />in the middle of the editor window (i.e. the automatic indentation adds<br />a lot of unneeded spaces). It's rather annoying :-)</p>
<p>The number of spaces is not constant and I could not yet figure out<br />what the number of spaces depends on.</p> QFQ - Feature #7138 (Closed): PDF / single source: deliver without convertinghttps://project.math.uzh.ch/issues/71382018-10-31T09:32:27ZNicola Chiapolini
<pre>From: Nicola Chiapolini <nicola.chiapolini@mnf.uzh.ch>
Subject: Re: Neue Woche, neue Anliegen
To: Carsten Rose <carsten.rose@math.uzh.ch>
Date: Wed, 31 Oct 2018 09:47:01 +0100
Hoi Carsten
> Meinst du, wenn als Source nur ein PDF File angegeben ist, das dann auch
> pdftk angeworfen wird?
Genau. (im Diff unten siehst du den Effekt)
> Da war etwas, ich kann mich aber nciht mehr an Details erinnern. Welche
> QFQ Version hattest Du bisher genutzt?
18.6.1
härzlichi Grüäss
Nicola
$ diffoscope ftelon_thesis.pdf output.pdf
--- server.pdf
+++ download.pdf
│ --- server.pdf
├── +++ download.pdf
│┄ Document info
│ @@ -1,6 +1,4 @@
│ -CreationDate: "D:20181016143024+02'00'"
│ -Creator: 'Word'
│ -Keywords: ''
│ -ModDate: "D:20181016143024+02'00'"
│ -Producer: 'GPL Ghostscript 9.25'
│ -Title: 'Microsoft Word - 181002_Thesis_FT_Final copy.docx'
│ +CreationDate: "D:20181030144606+01'00'"
│ +Creator: 'pdftk 2.02 - www.pdftk.com'
│ +ModDate: "D:20181030144606+01'00'"
│ +Producer: 'itext-paulo-155 (itextpdf.sf.net-lowagie.com)'
</pre> QFQ - Bug #7014 (New): Sending invalid emails succeeds when debug.redirectAllMailTo is sethttps://project.math.uzh.ch/issues/70142018-10-16T14:34:13ZNicola Chiapolini
<p>When <code>debug.redirectAllMailTo</code> is set, mails work without error even if they are sent to invalid mail addresses. <br />This makes spotting problems in development harder. It's probably hard to avoid this, but it might be useful to highlight this downside in the documentation.</p>
<p>(<a class="issue tracker-1 status-5 priority-2 priority-default closed" title="Bug: Messed up query numbering (Closed)" href="https://project.math.uzh.ch/issues/7013">#7013</a> prevented the sending of emails in our latest feature in production. Since the feature sends several identical emails we never noticed the mails with invalid to adresses in development - and it took a while to realize the bug really was present there as well.)</p> QFQ - Bug #7013 (Closed): Messed up query numberinghttps://project.math.uzh.ch/issues/70132018-10-16T14:20:55ZNicola Chiapolini
<p>(Running version: qfq 18.6.1)</p>
<p><code><br />1.sql = SELECT name AS _first FROM Form LIMIT 1<br />10.sql = SELECT name AS _second FROM Form LIMIT 1<br />10.1.sql = SELECT "hallo {{second:R::s}}" <br />10.1.head = <ul><br />10.1.tail = </ul><br />10.1.rbeg = <li><br />10.1.rend = </li><br /></code></p>
Will display a list with two entries, where only in the second the variable is replaced correctly:
<ul>
<li>hallo {{second:R::s}}</li>
<li>hallo absolventenLogin</li>
</ul>
<p>Using <code>5.sql = </code> in the first line fixes the problem, so it seems the subquery call somehow messes up the numbered queries...</p> QFQ - Feature #7012 (Closed): Memory Limit for File download (using wrong function)https://project.math.uzh.ch/issues/70122018-10-16T13:48:57ZNicola Chiapolini
<p>(Running version: qfq 18.6.1)</p>
<p>Downloading large (250 Mb) files triggers an PHP Error:<br /><code>PHP Fatal error: Allowed memory size of 134217728 bytes exhausted</code></p>
<p>To fix this one should use <code>readfile()</code> (see <a class="external" href="http://php.net/manual/en/function.readfile.php">http://php.net/manual/en/function.readfile.php</a>)</p>
<p>Patch for <code>typo3conf/ext/qfq/qfq/qfq/report/Download.php</code> attached.</p> QFQ - Bug #6467 (Closed): Sanitizing a hidden field makes the form unsubmittablehttps://project.math.uzh.ch/issues/64672018-08-02T08:46:08ZNicola Chiapolini
<p>Sanitizing a field hidden by dynamic updates as email makes the form unsubmitable. (The email field seems to be checked even when hidden.)</p>
<p>Code for the example form attached.</p> QFQ - Bug #6465 (Closed): newline in action-Query fails silentlyhttps://project.math.uzh.ch/issues/64652018-07-30T10:52:55ZNicola Chiapolini
<p>The following action elements are never executed but there is no error raised either. Everything works fine if the newline is removed.</p>
<pre>
slaveId = 0
sqlInsert = {{ INSERT INTO test_table (`field1_int`, `field2_varchar`, `field3_datetime`, `field4_null`) VALUES
(1, 'inserted by test_error-newline', NOW(), -1) }}
</pre>
<pre>
slaveId = 5
sqlUpdate = {{ UPDATE test_table SET `field2_varchar`='changed by
test_error-newline', `field3_datetime`=NOW() WHERE id=1 }}
</pre> QFQ - Bug #6116 (Priorize): value of checkbox not saved https://project.math.uzh.ch/issues/61162018-05-29T09:43:08ZNicola Chiapolini
<p>In one of our forms, we have the following checkbox:<br /><pre><code class="sql syntaxhl"><span class="k">INSERT</span> <span class="k">INTO</span> <span class="nv">`FormElement`</span> <span class="p">(</span><span class="nv">`id`</span><span class="p">,</span> <span class="nv">`formId`</span><span class="p">,</span> <span class="nv">`feIdContainer`</span><span class="p">,</span> <span class="nv">`dynamicUpdate`</span><span class="p">,</span> <span class="nv">`enabled`</span><span class="p">,</span> <span class="nv">`name`</span><span class="p">,</span> <span class="nv">`label`</span><span class="p">,</span> <span class="nv">`mode`</span><span class="p">,</span> <span class="nv">`modeSql`</span><span class="p">,</span> <span class="nv">`class`</span><span class="p">,</span> <span class="nv">`type`</span><span class="p">,</span> <span class="nv">`subrecordOption`</span><span class="p">,</span> <span class="nv">`encode`</span><span class="p">,</span> <span class="nv">`checkType`</span><span class="p">,</span> <span class="nv">`checkPattern`</span><span class="p">,</span> <span class="nv">`onChange`</span><span class="p">,</span> <span class="nv">`ord`</span><span class="p">,</span> <span class="nv">`tabindex`</span><span class="p">,</span> <span class="nv">`size`</span><span class="p">,</span> <span class="nv">`maxLength`</span><span class="p">,</span> <span class="nv">`bsLabelColumns`</span><span class="p">,</span> <span class="nv">`bsInputColumns`</span><span class="p">,</span> <span class="nv">`bsNoteColumns`</span><span class="p">,</span> <span class="nv">`rowLabelInputNote`</span><span class="p">,</span> <span class="nv">`note`</span><span class="p">,</span> <span class="nv">`adminNote`</span><span class="p">,</span> <span class="nv">`tooltip`</span><span class="p">,</span> <span class="nv">`placeholder`</span><span class="p">,</span> <span class="nv">`value`</span><span class="p">,</span> <span class="nv">`sql1`</span><span class="p">,</span> <span class="nv">`parameter`</span><span class="p">,</span> <span class="nv">`parameterLanguageA`</span><span class="p">,</span> <span class="nv">`parameterLanguageB`</span><span class="p">,</span> <span class="nv">`parameterLanguageC`</span><span class="p">,</span> <span class="nv">`parameterLanguageD`</span><span class="p">,</span> <span class="nv">`clientJs`</span><span class="p">,</span> <span class="nv">`feGroup`</span><span class="p">,</span> <span class="nv">`deleted`</span><span class="p">,</span> <span class="nv">`modified`</span><span class="p">,</span> <span class="nv">`created`</span><span class="p">)</span> <span class="k">VALUES</span>
<span class="p">(</span><span class="mi">164</span><span class="p">,</span> <span class="mi">1000</span><span class="p">,</span> <span class="mi">380</span><span class="p">,</span> <span class="s1">'no'</span><span class="p">,</span> <span class="s1">'yes'</span><span class="p">,</span> <span class="s1">'reg_done'</span><span class="p">,</span> <span class="s1">'Final'</span><span class="p">,</span> <span class="s1">'hidden'</span><span class="p">,</span> <span class="s1">'{{SELECT IF( title_hash != </span><span class="se">\'\'</span><span class="s1"> AND (SELECT SUM(head) FROM `phd_committee_members` WHERE phd_student=(SELECT id FROM phd_graduation WHERE shortname=</span><span class="se">\'</span><span class="s1">{{shortname}}</span><span class="se">\'</span><span class="s1"> )) = 1,</span><span class="se">\'</span><span class="s1">show</span><span class="se">\'</span><span class="s1">, </span><span class="se">\'</span><span class="s1">hidden</span><span class="se">\'</span><span class="s1">) FROM phd_graduation WHERE shortname=</span><span class="se">\'</span><span class="s1">{{shortname}}</span><span class="se">\'</span><span class="s1"> }}'</span><span class="p">,</span> <span class="s1">'native'</span><span class="p">,</span> <span class="s1">'checkbox'</span><span class="p">,</span> <span class="s1">''</span><span class="p">,</span> <span class="s1">'specialchar'</span><span class="p">,</span> <span class="s1">'alnumx'</span><span class="p">,</span> <span class="s1">''</span><span class="p">,</span> <span class="s1">''</span><span class="p">,</span> <span class="mi">200</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="s1">''</span><span class="p">,</span> <span class="s1">''</span><span class="p">,</span> <span class="s1">''</span><span class="p">,</span> <span class="s1">''</span><span class="p">,</span> <span class="s1">''</span><span class="p">,</span> <span class="s1">'row,label,/label,input,/input,note,/note,/row'</span><span class="p">,</span> <span class="s1">''</span><span class="p">,</span> <span class="s1">''</span><span class="p">,</span> <span class="s1">''</span><span class="p">,</span> <span class="s1">''</span><span class="p">,</span> <span class="s1">''</span><span class="p">,</span> <span class="s1">'{{!SELECT IF(reg_done, reg_done, NOW()) FROM phd_graduation WHERE id=</span><span class="se">\'</span><span class="s1">{{id:RE}}</span><span class="se">\'</span><span class="s1"> }}'</span><span class="p">,</span> <span class="s1">'checkBoxMode = single</span><span class="se">\r\n</span><span class="s1">label2 = Submit this form and start the process.'</span><span class="p">,</span> <span class="s1">''</span><span class="p">,</span> <span class="s1">''</span><span class="p">,</span> <span class="s1">''</span><span class="p">,</span> <span class="s1">''</span><span class="p">,</span> <span class="s1">''</span><span class="p">,</span> <span class="s1">''</span><span class="p">,</span> <span class="s1">'no'</span><span class="p">,</span> <span class="s1">'2018-05-29 09:34:25'</span><span class="p">,</span> <span class="s1">'2018-03-09 10:06:26'</span><span class="p">);</span>
</code></pre></p>
<p>This checkbox gets correctly displayed with all the values of <code>mode sql</code> below, but only saved to the DB for some of them:</p>
<p><strong>good</strong><br /><pre><code>
{{SELECT IF( title_hash != '' ,'show', 'hidden') FROM phd_graduation WHERE shortname='{{shortname}}' }}
{{SELECT IF( title_hash != '' AND (SELECT SUM(head) FROM `phd_committee_members` WHERE phd_student=(SELECT id FROM phd_graduation WHERE shortname='{{shortname}}' )) = 1,'show', 'hidden') FROM phd_graduation WHERE shortname='{{shortname}}' }}
</code></pre></p>
<p><strong>bad</strong><br /><pre><code>
{{SELECT IF( title_hash != '' ,'show', 'hidden') FROM phd_graduation WHERE id='{{id}}' }}
{{SELECT IF( title_hash != '' ,'show', 'hidden') FROM phd_graduation WHERE shortname='{{shortname:R0}}' }}
{{SELECT IF( title_hash != '' ,'show', 'hidden') FROM phd_graduation WHERE shortname='{{shortname:FR0}}' }}
{{SELECT IF( title_hash != '' AND (SELECT SUM(head) FROM `phd_committee_members` WHERE phd_student='{{id:R0}}') = 1,'show', 'hidden') FROM phd_graduation WHERE id='{{id:R0}}' }}
</code></pre></p>
<p><code>shortname</code> is a nativ / extra field in the form, <code>id</code> is not part of the form.</p>
<p>In any case, a displayed field should also be saved ;-)</p> QFQ - Bug #5869 (Closed): Table names not properly escaped when building form save queries https://project.math.uzh.ch/issues/58692018-04-25T08:50:35ZNicola Chiapolini
<p>I had a table containing '-' characters in its name. QFQ forms on this table fail to save as the table name is not escaped:</p>
<p><code>INSERT INTO phd_committee-members ( `phd_student`, `fullname` ) VALUES ( ?, ? )</code></p> QFQ - Feature #5805 (New): TypeAHead SQL value instead of key storedhttps://project.math.uzh.ch/issues/58052018-04-10T13:16:59ZNicola Chiapolini
<p>Ich habe ein Textfeld mit folgenden Parametern:</p>
<p><code><br />typeAheadSql = SELECT shortname AS 'id', CONCAT(firstname, ' ', lastname, ', ', shortname) AS 'value' FROM _right_to_confer_phd WHERE lastname LIKE ? OR firstname LIKE ? or shortname LIKE ? ORDER BY lastname<br />typeAheadSqlPrefetch = SELECT CONCAT(firstname, ' ', lastname, ', ', shortname) AS value FROM _right_to_confer_phd WHERE shortname=?<br />typeAheadMinLength = 1<br />typeAheadLimit = 20<br />typeAheadPedantic = 0<br /></code></p>
<p>Die Suche funktioniert, aber beim Speichern wird der Value (firstname lastname, shortname) statt der id (shortname) gespeichert.<br />Problem scheint, dass JS im hidden Feld den Value statt der id einfügt...</p> QFQ - Bug #5792 (Closed): TypeAHead für FormElement.name funktioniert nichthttps://project.math.uzh.ch/issues/57922018-04-09T14:18:39ZNicola Chiapolini
<p>Der Parameter für TypeAHead in <code>FormElement.name</code> ist in <code>formEditor.sql</code> wie folgt definiert:</p>
<p><code>typeAheadSql = [{{DB_INDEX_DATA:Y}}]SELECT COLUMN_NAME FROM information_schema.columns WHERE table_schema = "{{DB_1_NAME:Y}}" AND table_name = "{{SELECT f.tableName FROM Form AS f WHERE f.id={{formId:S0}}}}" AND COLUMN_NAME LIKE ? ORDER BY COLUMN_NAME</code></p>
<p><code>[{{DB_INDEX_DATA:Y}}]</code> musste ich bei uns entfernen, damit TypeAhead funktioniert.</p> QFQ - Bug #5445 (Closed): Lizenzproblemhttps://project.math.uzh.ch/issues/54452018-02-15T09:21:33ZNicola Chiapolini
<p>Ich habe eben begonnen den Report-Source anzuschauen und bin dabei auf ein Lizenzproblem gestossen:</p>
<p>qfq/qfq $ grep Glowbase * <del>r -A1 <br />report/Link.php: * (c) 2010 Glowbase GmbH <<a class="email" href="mailto:support@glowbase.com">support@glowbase.com</a>><br />report/Link.php</del> * All rights reserved<br />--<br />report/Variables.php: * (c) 2010 Glowbase GmbH <<a class="email" href="mailto:support@glowbase.com">support@glowbase.com</a>><br />report/Variables.php- * All rights reserved<br />--<br />report/Report.php: * (c) 2010 Glowbase GmbH <<a class="email" href="mailto:support@glowbase.com">support@glowbase.com</a>><br />report/Report.php- * All rights reserved<br />--<br />report/Error.php: * (c) 2010 Glowbase GmbH <<a class="email" href="mailto:support@glowbase.com">support@glowbase.com</a>><br />report/Error.php- * All rights reserved</p>
<p>Das verträgt sich schlecht mit GPLv3... Das sollte möglichst rasch geklärt werden. Falls Glowbase die Rechte an diesem Code wirklich zusteht, müssten die Dateien wohl durch eigene Implementationen der gleichen Funktionalität ersetzt werden.</p>
<p>Und dann wäre es sicher keine dumme Idee, in allen anderen Dateien einen Lizenz-Header zu ergänzen...</p> QFQ - Bug #5317 (Rejected): sendEmail script installed without execute permissionshttps://project.math.uzh.ch/issues/53172018-01-30T10:53:15ZNicola Chiapolini
<p>The sendEmail script <br /> /var/www/htdocs/typo3conf/ext/qfq/qfq/external/sendEmail<br />was installed without execute permissions in the latest update.<br />(or at least it was missing these permissions just now while sending mails worked earlier...)</p> QFQ - Bug #5316 (Closed): Help on how to send an E-Mail is wronghttps://project.math.uzh.ch/issues/53162018-01-30T10:40:26ZNicola Chiapolini
<p>In all Code Listings under<br /><code>https://docs.typo3.org/typo3cms/drafts/github/T3DocumentationStarter/Public-Info-053/Manual.html#column-sendmail</code><br />the from-field is wrong. According to the table, the from-address is given with <code>f</code> not <code>F</code>.</p>
<p>PS: I would prefere speaking but case-insensitive field-names (<code>to:</code>, <code>from:</code>, <code>file:</code> instead of <code>t:</code>, <code>f:</code>, <code>F:</code>). More to type, but a lot easier to read.</p> QFQ - Bug #5311 (Closed): Konflikt zwischen zwei SQL aus zwei Form-Elementenhttps://project.math.uzh.ch/issues/53112018-01-29T10:26:53ZNicola Chiapolini
<p>Ich habe ein Formular mit diversen FE. Die Relevanten beiden sind wohl:</p>
<p>1) Bild:<br />name: title_img<br />class: native<br />Type: note<br />order: 35<br />Value:<br /><pre>
#!report
10.sql = SELECT CONCAT("php -f /var/www/htdocs/tmp/gen_pdf.php '", title_of_thesis, "' '", shortname, "'") AS _exec FROM phd_graduation WHERE shortname='{{shortname}}'
</pre></p>
<p>2) Extra-Feld:<br />name: title_hash_extra<br />class: native<br />type: extra<br />order: 100<br />value: <br /><pre>{{ SELECT MD5({{title_of_thesis:F}}) }}</pre></p>
<p>(Das Forumlar funktioniert nicht, ich kann mein Ziel aber mit einem Action-Element erreichen).</p>
<p>Der Bug ist hier ist aber was anderes. Irgendwo mischt qfq die beiden Queries (vgl. "SQL before execution" und "SQL final" im Screenshot)</p> QFQ - Support #5275 (Closed): typeahead.bundle.min.js fehlt in dokuhttps://project.math.uzh.ch/issues/52752018-01-22T16:24:58ZNicola Chiapolini
<p>Damit Typeahead funktioniert muss in page.includeJS die typeahead.bundle.min.js datei eingebunden werden</p>
<p>typeahead = typo3conf/ext/qfq/Resources/Public/JavaScript/typeahead.bundle.min.js</p>
<p>Das wird in der Doku nirgends erwähnt (auch nicht beim Setup Beispiel unter Installation).</p> QFQ - Bug #5048 (Closed): Upload-Pfad wird nicht gespeicherthttps://project.math.uzh.ch/issues/50482017-12-01T10:17:25ZNicola Chiapolini
<p>Bei einem simple-mode Upload wird der Pfad nicht gespeichert, wenn die Zielspalte vorher NULL ist. Die Datei wird dann zwar korrekt hochgeladen und das Formular sieht richtig aus. Beim nächsten Laden, ist das Feld dann aber wieder leer.</p>
<p>problematische Spaltendefinition: ... <abbr title="128">VARCHAR</abbr> NULL DEFAULT NULL<br />funktionierende Spaltendefinition: ... <abbr title="128">VARCHAR</abbr> NOT NULL;</p> QFQ - Bug #5033 (Closed): QFQ.io: Tote Navigationhttps://project.math.uzh.ch/issues/50332017-11-30T13:19:03ZNicola Chiapolini
<p>Die Links "Reports" und "Forms" in der Top-Navigation von QFQ.io haben keinen Effekt.</p>