Project @ iMath: Issueshttps://project.math.uzh.ch/https://project.math.uzh.ch/favicon.ico?16668783892024-03-05T07:31:43ZProject @ iMath
Redmine QFQ - Support #18057 (New): {{sqlLog:Y}} returns empty string when not configuredhttps://project.math.uzh.ch/issues/180572024-03-05T07:31:43ZElias Villiger
<p>When the QFQ config for <code>sqlLog</code> (or <code>qfqLog</code>, <code>mailLog</code>) is empty, the default log directory (<code>fileadmin/protected/qfqProject/log/sql.log</code>) is used.</p>
<p>When retrieving <code>{{sqlLog:Y}}</code> from the System Store, this returns an empty string (corresponding to the config value).</p>
<p>Expected behavior: When there's no specific log path configured, I would expect it to return the default/actual path to the log file.</p>
<p>Example use case: <a class="external" href="https://docs.qfq.io/en/master/Report.html#monitor">https://docs.qfq.io/en/master/Report.html#monitor</a></p> QFQ - Bug #17945 (New): Values given to the parameters: typeAheadLimit and typeAheadMinLength are...https://project.math.uzh.ch/issues/179452024-02-19T09:12:49ZShweta Dayal
<p>typeAheadLimit and typeAheadMinLength are not showing the values defined in first layer of form parameters</p>
<p>Precondition:<br />Have type head field in the form</p>
<p>Steps: <br />1. open form <br />2. edit parameter in layout pill<br />3. Assign values: <br />typeAheadLimit=3<br />typeAheadMaxLength=11<br />4. Save</p>
<p>Expected results: The assigned values should be applied i.e. data-typeahead-limit=11 and data-typeahead-minlength=3</p>
<p>Actual results: The assigned values are not applied, it still shows the default values data-typeahead-limit=20 and data-typeahead-minlength=2</p>
<p>/scratch/share/system/projekte/qfq/selenium/image/typeaHeadLimit&MaxLength.png<br /><img src="https://project.math.uzh.ch/attachments/download/9273/clipboard-202402191001-lmust.png" alt="" /><br />/scratch/share/system/projekte/qfq/selenium/image/inspect.png<br /><img src="https://project.math.uzh.ch/attachments/download/9274/clipboard-202402191004-6tq6k.png" alt="" /></p> QFQ - Feature #17821 (New): Check projects export/autocron access templatehttps://project.math.uzh.ch/issues/178212024-02-05T13:07:58ZEnis Nuredini
<p>Es muss bei allen Projekten das Typo3 Template für den Zugriff auf den Autocron überprüft werden. Für den Zugriff über Production muss noch die jeweilige IP Adresse entnommen werden:<br /><pre>
hostname -I
</pre></p>
<p>Template vom Medtool:<br /><pre>
*Constants*
----------------
# List of IP addresses to grant access: webwork22, medtool
site.allowIP.list = 127.0.0.1,::1,130.60.244.239
*Setup*
-----------
# Layout neu aufbauen
page = PAGE
page.typeNum = 0
# Show content
[ ip('{$site.allowIP.list}') || frontend.user.isLoggedIn]
# Access granted
page.10 < styles.content.get
[else]
page.10 = TEXT
page.10.value = Please log in or access this page from an authorized host. Your current IP address:&nbsp;
page.20 = TEXT
page.20.data = getenv : REMOTE_ADDR
[end]
</pre></p>
<p>Das Template muss auch bei den Options konfiguriert werden:<br /><img src="https://project.math.uzh.ch/attachments/download/9158/Clipboard%20-%20February%205,%202024%202_05%20PM.png" alt="" /></p>
<p>Ebenfalls noch hinzuzufügen bei Includes:<br /><img src="https://project.math.uzh.ch/attachments/download/9161/includes.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 - 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 - Bug #17257 (New): Migrate QFQ system tables: set default valuehttps://project.math.uzh.ch/issues/172572023-11-09T20:42:54ZCarsten Rosecarsten.rose@math.uzh.chQFQ - Bug #17142 (New): UZH CD: Typo3 clean search bar migrationhttps://project.math.uzh.ch/issues/171422023-10-19T12:47:54ZEnis Nuredini
<p>The search bar isn't working correctly in typo3 v11. Executing search maybe shows correct results but the path is completely wrong. index.php isn't used anymore in Typo3 v11. Switching languages and using search bar changes the language always to default.</p>
<p>A solution is found to clean this behaviour: <a class="external" href="https://project.math.uzh.ch/projects/qfq/wiki/Migration#Search-bar-configuration">https://project.math.uzh.ch/projects/qfq/wiki/Migration#Search-bar-configuration</a></p>
<p>Those changes needs to be implemented directly in the UZH extension (old CD, new CD). And documentation for new custom variables should be added.</p> QFQ - Feature #16635 (New): Config: allowedFromAdresseshttps://project.math.uzh.ch/issues/166352023-07-20T15:24:05ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Die ZI bestehen darauf das wir nur Emails versenden duerfen mit einer FROM Adresse die eine Share Emailbox entspricht (keine persoenlilchen Adressen).</li>
</ul>
<p>Damit das sichergestellt ist, neue Config Option einfuehren 'allowedFromAdresses'.</p>
<p>CSV Liste mit Emailadressen.</p> QFQ - Bug #16620 (New): wkhtml: PDF shows QFQ FE editing form if BE User is logged inhttps://project.math.uzh.ch/issues/166202023-07-17T08:41:32ZJan Haller
<p>Wenn aus dem Inhalt des tt-content mit dem Parameter 'type=2' ein PDF generiert wird, enthält dieses Informationen von Typo3, wenn der User im BE eingeloggt ist.</p>
<p>Code QFQ:</p>
<p><img src="https://project.math.uzh.ch/attachments/download/8174/clipboard-202307171039-wwgit.png" alt="" /></p>
<p>PDF (eingeloggt in T3 BE):</p>
<p><img src="https://project.math.uzh.ch/attachments/download/8175/clipboard-202307171040-wut50.png" alt="" /></p>
<p>PDF (ausgeloggt in T3 BE):</p>
<p><img src="https://project.math.uzh.ch/attachments/download/8176/clipboard-202307171040-gutam.png" alt="" /></p> QFQ - Bug #16580 (New): custom.css Typo3 handlinghttps://project.math.uzh.ch/issues/165802023-07-07T10:44:36ZEnis Nuredini
<p>Dies ist ein Beispiel der Einbindung vom custom.css in LSZGS. Folgender Eintrag erfolgt in Constants vom Template:</p>
<pre>
# Instance Dependent: absolute path to custom css and images
[request.getNormalizedParams().getHttpHost() == 'webwork22.math.uzh.ch']
cd.stylesheet = https://webwork22.math.uzh.ch/lszgs/fileadmin/template/cd/lszgs.custom.css
[end]
[request.getNormalizedParams().getSiteUrl() == 'https://join.lszgs.uzh.ch/']
cd.stylesheet = https://join.lszgs.uzh.ch/fileadmin/template/cd/lszgs.custom.css
[end]
[request.getNormalizedParams().getSiteUrl() == 'https://join.lszgs.uzh.ch/preview/']
cd.stylesheet = https://join.lszgs.uzh.ch/preview/fileadmin/template/cd/lszgs.custom.css
[end]
</pre>
<p><strong>Achtung</strong> : Der Pfad sollte sein `fileadmin/template` (template, nicht templates).</p>
<p>Falls weitere spezielle Elemente mit einem fileadmin beginnenden relativen Pfad gibt, dann kann in Setup die gleiche Abfrage verwendet werden.</p>
<p>Anpassungen müssen noch bei diversen Tools umgesetzt werden. Checkliste im Anschluss:</p> QFQ - Feature #15903 (New): UZH CD: T3 V12 Compatibilityhttps://project.math.uzh.ch/issues/159032023-03-30T07:00:25ZEnis Nuredini
<p>UZH CD ist aktuell nicht kompatibel mit T3 V12. Hier gibt es Handlungsbedarf.</p>
<p>Verfügbare Testseite: <a class="external" href="http://webwork22.math.uzh.ch/typo12/typo3/">http://webwork22.math.uzh.ch/typo12/typo3/</a></p>
<p>Extension ist schon mal auf der Testseite hinzugefügt, damit es in Typo3 keine Fehlermeldung (Access denied) gibt mussten in folgenden Files (ext_tables.php) Zeilen Code auskommentiert werden:<br /><pre>
if (!defined('TYPO3_MODE')) {
# die('Access denied.');
}
</pre></p>
<p>Upload über T3 Backend ist aktuell nicht mehr möglich, nur das einfügen ins Verzeichnis typo3conf/ext/</p> QFQ - Feature #15528 (Ready to sync (develop)): Form/subrecord: Design for 'no record'https://project.math.uzh.ch/issues/155282023-02-12T10:12:52ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Neue Option (SYSTEM, FORM, FORM_ELEMENT): <code>subrecordEmpty=hide|mute|show:<text></code>
<ul>
<li>hide: wenn keine Records selektiert sind und es kein 'NEW' gibt - kein subrecord Element anzeigen (auch keinen Subrecord Titel).</li>
<li>mute: wenn keine Records selektiert sind und es kein 'NEW' gibt - Titel 'muted' anzeigen.</li>
<li>show:<text> - den <text> hinter dem Titel anzeigen falls keine Records selektiert sind.
<ul>
<li>Titel 'muted' anzeigen, '<text>' normal.</li>
</ul></li>
</ul></li>
</ul>
<ul>
<li>Zur Diskussion (bin nicht sicher ob das gut ist): Anzahl der Records vor dem Batch im Titel anzeigen. Auch das konfigurierbar (SYSTEM, FORM, FORM_ELEMENT).</li>
</ul>
<p><img src="https://project.math.uzh.ch/attachments/download/7254/clipboard-202302121120-djvuw.png" alt="" /></p>
<ul>
<li>Aktuell ist das Rendering unterschiedlich, je nachdem ob 'Edit,Delete=off' oder 'Edit'=on ist. Es waere gut wenn auch bei 'Edit=on' keine Extra Zeile gerendert wird.</li>
</ul>
<p><img src="https://project.math.uzh.ch/attachments/download/7253/clipboard-202302121108-951zm.png" alt="" /></p> QFQ - Bug #15317 (New): view-saver (tablesorter) is blocking header if header column contains lin...https://project.math.uzh.ch/issues/153172023-01-05T10:13:53ZJan Haller
<p>Beinhaltet der Header einer Tabelle eine Spalte mit linebreak/<br>, überlappt der view-saver den Header.</p>
<p><img src="https://project.math.uzh.ch/attachments/download/7099/clipboard-202301051111-bqhsm.png" alt="" /></p> QFQ - Bug #15108 (New): Wert in Note nach speichern nicht aktualisierthttps://project.math.uzh.ch/issues/151082022-12-05T15:46:11ZJan Haller
<p>Testformular: Medtool>Admin>Setup>Form>note_test</p>
<p>Text in Note (Notiz) wird mit Query abgefragt. Liefert die Query kein Resultat, bleibt nach dem Speichern der vorherige Wert erhalten. Die Seite muss neu geladen werden, damit der Inhalt entfernt wird.</p> QFQ - Bug #15047 (New): {{allRequiredGiven:V}} = 0, wenn Note Formelement auf required isthttps://project.math.uzh.ch/issues/150472022-11-18T10:11:34ZPascal Rössler
<p>Wenn ein Note Formelement auf mode=required hat, ist {{allRequiredGiven:V}} immer = 0. Da man ein Formelement vom Typ Note gar nicht ausfüllen kann.</p> QFQ - Bug #15013 (New): Excel Import does not work with multiple importRegionhttps://project.math.uzh.ch/issues/150132022-11-10T15:56:12ZPhilipp Gröbelbauer
<p>Aus einem Excel sollen die Spalten A,B und D importiert werden.</p>
<p>A soll in die Spalte 'klasse', B in die Spalte 'stufe' und D in die Spalte 'grundlohn'.<br />Formelement.parameter wurde wie folgt gesetzt:</p>
<p>importToTable = lohn<br />importToColumns = klasse, stufe, grundlohn<br />importRegion = 1,A,6,B,904|1,D,6,D,904<br />importMode = append <br />importType = auto<br />accept = *<br />fileDestination = fileadmin/protected/imports/pay_regulations.xlsx<br />fileReplace = always</p>
<p>Spalten A und B funktionieren korrekt. Die Spalte D, welche in einer zweiten 'importRegion' angegeben wurde, wird jedoch nach 'klasse' importiert, anstatt nach 'grundlohn'.<br />Wenn eine 2. importRegion angegeben wird, dann sollte nicht auf die 1. angegebene DB-Spalte zurückgesprungen werden!</p> QFQ - Bug #14625 (ToDo): WebPass Import: User with ' in name - Form ist incompletehttps://project.math.uzh.ch/issues/146252022-08-29T12:01:13ZCarsten Rosecarsten.rose@math.uzh.ch
<p><img src="https://project.math.uzh.ch/attachments/download/6475/clipboard-202208291353-i1gdq.png" alt="" /></p>
<ul>
<li><a class="external" href="https://webwork16.math.uzh.ch/crose/qfq/index.php?id=typeahead">https://webwork16.math.uzh.ch/crose/qfq/index.php?id=typeahead</a> > Import Webpass user</li>
<li>Problematischer User: Simon d'Aquin, <a class="email" href="mailto:simon.daquin@pharma.uzh.ch">simon.daquin@pharma.uzh.ch</a>, sdaqui</li>
<li>Bei Klick auf Save erscheint 'Form Incomplete'. In dem Moment findet keine Kommunikation mit dem Server statt.</li>
</ul>
<p><img src="https://project.math.uzh.ch/attachments/download/6476/clipboard-202208291400-7bawn.png" alt="" /></p>
<ul>
<li>Vermutung: im Client stimmt etwas nicht. </li>
<li>Die Typeahead Antwort: `[{"key":"sdaqui","value":"Simon d'Aquin, <a class="email" href="mailto:simon.daquin@pharma.uzh.ch">simon.daquin@pharma.uzh.ch</a>, sdaqui"}]`</li>
</ul> 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 #14508 (New): _exec: output will not be passed downhttps://project.math.uzh.ch/issues/145082022-07-12T10:48:54ZBenjamin Baerbenjamin.baer@math.uzh.ch
<p>The output of _exec can't be passed down to fields below, even with AS '_exec|column'</p>
<p>{{column}} will return the command, not the output
{{&column}} will return empty, not the output</p>
<p>BTW: folgender Code verhaelt sich korrekt</p>
<pre>
10.sql = SELECT 'echo "Hello World"' AS '_exec'
20.sql = SELECT '{{10.exec}}'
</pre> 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 #13354 (New): Using Websocket in QFQhttps://project.math.uzh.ch/issues/133542021-11-10T14:47:23ZBenjamin Baerbenjamin.baer@math.uzh.ch
<ul>
<li>Usage for Chat / Forum like application</li>
<li>Editing records concurrently (like Google Docs)</li>
<li>Less page reloads / current information in reports / forms</li>
<li>Needs alternative to nchan, either php, python or javascript endpoint in qfq without need of webserver configuration (similar to APIs)</li>
</ul> QFQ - Feature #13330 (In Progress): Multi Form: Uploadhttps://project.math.uzh.ch/issues/133302021-11-07T08:32:33ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Fuer das medtool (EN) wird ein Multi Upload benoetigt.</p>
<p>Gut waere wenn man ein Multi Form nehmen koennte.</p> QFQ - Feature #12632 (New): TinyMCE: Prepare CSS classes for imageshttps://project.math.uzh.ch/issues/126322021-06-04T06:26:51ZPhilipp Gröbelbauer
<p>Ziel: es soll einfach sein (Mausklick) Images mit einer CSS Klasse spezielle Eigenschaften zuzuweisen. Z.B. einen Rahmen, damit sich das Bild vom Hintergrund abhebt oder mit einer Transparenz, um deutlich zu machen das bei einem Screenshot die Buttons keine aktiven Elemente sind sondern nur zur illustration dienen.</p>
<p>Scheinbar hat TinyMCE schon etwas vorbereitet:</p>
<ul>
<li><a class="external" href="https://stackoverflow.com/questions/16221704/tinymce-add-class-to-img-tag">https://stackoverflow.com/questions/16221704/tinymce-add-class-to-img-tag</a></li>
<li><a class="external" href="https://www.tiny.cloud/docs/plugins/opensource/image/">https://www.tiny.cloud/docs/plugins/opensource/image/</a></li>
<li><a class="external" href="https://www.tiny.cloud/docs-4x/plugins/image/#image_class_list">https://www.tiny.cloud/docs-4x/plugins/image/#image_class_list</a></li>
</ul> QFQ - Feature #11850 (New): Wizard Form: basierend auf einer Tabelle eine Form anlegen.https://project.math.uzh.ch/issues/118502021-01-14T09:13:31ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Man waehlt eine Tabelle</li>
<li>Alternative: Neues Form anlegen, Primary Tabelle waehlen, in dem Moment erscheit ein Link im Notizfeld 'Create Form', ein Klick darauf legt alle FE fuer die gewaehlte Tabelle in dem neuen Form an.</li>
</ul>
<ul>
<li>Fuer jede Spalte wird ein Formularelement angelegt.</li>
<li>Enums koennen als Radio/Checkbox angeleget werden.</li>
</ul>
<p>Hinweis:</p>
<ul>
<li>In 'genericReport' (<a class="issue tracker-2 status-1 priority-2 priority-default" title="Feature: Generic Report Page (New)" href="https://project.math.uzh.ch/issues/15524">#15524</a>) koennen Formulare 'on the fly' gerendert werden: Diese soll neu im FormEditor angeboten werden, um ein komplettes Form mit einem Mausklick (a la template) zu erzeugen.</li>
</ul> QFQ - Bug #10704 (New): wkhtml problem rendering fullCalendar.js / fabric.js >> successor: puppe...https://project.math.uzh.ch/issues/107042020-06-03T15:26:51ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li><a class="external" href="https://github.com/puppeteer/puppeteer">https://github.com/puppeteer/puppeteer</a></li>
<li>Vergleich: <a class="external" href="https://www.paperplane.app/blog/modern-html-to-pdf-conversion-2019/">https://www.paperplane.app/blog/modern-html-to-pdf-conversion-2019/</a></li>
</ul>
<p>puppeteer hat angeblich ein CLI replacement fuer wkhtml ...</p> QFQ - Feature #10115 (New): TypeAhead: static listhttps://project.math.uzh.ch/issues/101152020-02-13T09:34:27ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Neues Attribute: data-typeahead-list.</p>
<p>Inhalt JSON kodiert, genau wie die bisherige AJAX Response.</p> QFQ - Bug #9789 (New): Record Lock: release to early on 'leave page'https://project.math.uzh.ch/issues/97892019-12-17T19:58:55ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Form oeffnen</li>
<li>Record veraendern - lock wird angefordert: ok</li>
<li>Auf irgendeinen Link klicken (Form verlassen)</li>
<li>Sofort wird ein 'Release Lock' gesendet (und ausgefuehrt), obwohl der User via Dialog gefragt wird ob er die Daten verlieren moechte: BAD</li>
</ul>
<ul>
<li>Anschliessend arbeitet das Form ohne Lock weiter - das ist nicht gut!</li>
<li>Min. in der Version 19.7.0 war das Verhalten noch ok (w16.math.uzh.ch/ort)</li>
<li>Die Screenshots zeigen das Verhalten bei 19.7.0 und 19.12.0. In der 19.7.0 ist der Dialog 'leave site' offen, ohne das 'dirty release' getriggert wurde, bei 19.12.0 wurde dirty release faelschlicherweise getriggert.</li>
</ul> QFQ - Bug #9691 (In Progress): Checkbox: dynamic update > readonlyhttps://project.math.uzh.ch/issues/96912019-12-03T09:27:55ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Die Klasse 'qfq-disabled' muss auf dem Label liegen.</li>
<li>readonly sollte weiterhin auf den Options sein.</li>
</ul>
<p>Das ganze testen fuer <br /><pre>
checkbox
single
plain
button
multi
plain
button
radio
plain
button
</pre></p> QFQ - Feature #9517 (Priorize): Input multiple tags with typeaheadhttps://project.math.uzh.ch/issues/95172019-11-06T16:27:58ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Fuer Suchfilter waere es gut wenn man Tags eingeben koennten, die via Typeahead vorgeschlagen werden.</li>
<li>Die Vorschlagsliste wird gebaut mit den tags die zuvor mal eingegben wurden.</li>
</ul>
<p>Folgende Libs koennten intressant sein:</p>
<ul>
<li><a class="external" href="https://maxfavilli.com/jquery-tag-manager">https://maxfavilli.com/jquery-tag-manager</a> (Twitter Typeahead)</li>
<li><a class="external" href="https://soliantconsulting.github.io/tagmanager/">https://soliantconsulting.github.io/tagmanager/</a></li>
<li><a class="external" href="https://vuejsfeed.com/blog/add-tags-using-an-input-with-typeahead-support">https://vuejsfeed.com/blog/add-tags-using-an-input-with-typeahead-support</a></li>
</ul> QFQ - Bug #9275 (New): autcron: t3 page, which takes to long to respond, is not reported properlyhttps://project.math.uzh.ch/issues/92752019-10-01T18:09:29ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Auf w16 werden ueber ein AutoCron Skript gitlab Berechtigungen erzeugt. Dieses Script benoetigt mehrere Minuten. Scheinbar hat der CLI PHP Interpreter einen Timeout, der das Skript hart abbrechen laesst.<br />Der System Cron sendet dann eine Mail:<br /><pre>
FROM: root@math.uzh.ch
TO: www-data@math.uzh.ch
SUBJECT: Cron <www-data@w16> /usr/bin/php /var/www/html/my/typo3conf/ext/qfq/Classes/External/autocron.php
DATE: 01.10.2019 - 13:03:01
PHP Warning: file_get_contents(https://w16.math.uzh.ch/my?id=updateGitlabPrivileges&token=secret....&nId=all): failed to open stream: HTTP request failed! in /var/www/html/my/typo3conf/ext/qfq/Classes/Core/Helper/DownloadPage.php on line 73
</pre></p> QFQ - Feature #8522 (Some day maybe): build QFQ - npm warningshttps://project.math.uzh.ch/issues/85222019-06-12T09:18:03ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Wenn auf CI ein Build angestossen wird gibt es folgende Meldungen in der Console:<br /><pre>
npm install
npm WARN deprecated hawk@3.1.3: This module moved to @hapi/hawk. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.
npm WARN deprecated sntp@1.0.9: This module moved to @hapi/sntp. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.
npm WARN deprecated boom@2.10.1: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated cryptiles@2.0.5: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated hoek@2.16.3: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated json3@3.3.2: Please use the native JSON object instead of JSON 3
npm WARN prefer global coffeescript@1.10.0 should be installed with -g
npm WARN prefer global jshint@2.9.7 should be installed with -g
</pre></p> QFQ - Feature #6855 (New): With {{feUser:U}}!={{feUser:T}}: Save / Delete: only possible with {{...https://project.math.uzh.ch/issues/68552018-09-27T20:55:38ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Sollte {{feUser:U}}!='' UND {{feUser:U}}!={{feUser:T}} sein:</p>
<p>- Dann darf speichern nur moeglich sein wenn {{feUserSave:U}}='yes' gesetzt ist.<br />- Dann darf loeschen nur moeglich sein wenn {{feUserDelete:U}}='yes' gesetzt ist.</p>
<p>Hintergrund: damit kann einfach sichergestellt werden das man Dozenten, die die Identiaet eines Users uebernehmen, keine Daten veraendern koennen.</p>
<p>Das Form sollte dann einen disabled 'save', 'delete' Button haben, mit einem Hinweis warum das nicht geht.</p> QFQ - Feature #6609 (New): Formlet: JSON API erweiternhttps://project.math.uzh.ch/issues/66092018-09-04T08:28:51ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Im QFQ 'PROTOCOL.md' ist ein Standard QFQ API mit einigen wenigen Feldern definiert.</p>
<p>Gut waere wenn die folgenden supported waeren:</p>
<p>"status": "success"|"error",<br />"message": "<message>" <br />"redirect": "no" | "url" | "url-skip-history" | "auto" | "close" <br />"redirect-url": "<url>"</p>
<p>Die waeren dann also auf der gleichen (obersten) Ebene wie 'elements'.</p> 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 - Feature #5665 (Some day maybe): Versuch das '{{!' nicht mehr noetig ist.https://project.math.uzh.ch/issues/56652018-03-14T09:23:13ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Idee: aus dem Kontext heraus sollte es moeglich sein zu erkennen, ob '{{!' noetig ist. Damit sollte es moeglich sein auf das '!' zu verzichten.</p>
<p>Ggfs. wird '!' qfq <strong>intern</strong> nachwievor genutzt und durch QFQ in den SQL String eingesetzt.</p>
<p>Optional koennte '!' erlaubt bleiben.</p>
<p>Das Feature waere gut um Neueinsteiger die Arbeit zu erleichtern.</p>
<p>Liste erstellen wo ! alles verwendet wird.</p> QFQ - Feature #5342 (Some day maybe): _link - with HTML Attributeshttps://project.math.uzh.ch/issues/53422018-02-02T17:50:28ZBenjamin Baerbenjamin.baer@math.uzh.ch
<p>data Attributes need to be set sometime.</p>
<p>Carsten proposed a general attribute option:</p>
<pre>
'p:...|c:someClass|a:data-target="www.google.ch" data-payload="stuff"' AS _link
</pre> QFQ - Feature #4652 (Some day maybe): UZH CD: Weiterleitung auf benutzerdefinierte 403/404 Seitehttps://project.math.uzh.ch/issues/46522017-09-28T08:44:02ZElias Villiger
<p>Bei Access Denied (403) oder Not Found (404) wird aktuell auf die Home-Seite weitergeleitet. Noch besser wäre, wenn man eine eigene Seite erstellen könnte, auf die dann umgeleitet wird.</p> QFQ - Feature #4606 (Some day maybe): _link: qualifier to render bootstrap buttonhttps://project.math.uzh.ch/issues/46062017-09-22T07:18:51ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>Neu soll ein Bootstrap Button immer dann gerendert werden wenn ein Qualifier angegeben ist.</li>
<li>b | b:default | b:warning | b:disabled | ...</li>
</ul> QFQ - Feature #4349 (Some day maybe): _link|download: downloaded external URL to deliver/concaten...https://project.math.uzh.ch/issues/43492017-09-02T11:41:00ZCarsten Rosecarsten.rose@math.uzh.ch
<ul>
<li>It might be usefull, to download via web, specific attachements like PDF files. (lean > lean-gate) </li>
<li>A additional parameter, like 'w:', might be used to download an external reference.</li>
<li>It should be possible to check the downloaded file for a mime type and handle it in a correct way.</li>
<li>E.g. if the download is a PDF, it could be delivered directly or concatenated.</li>
</ul> QFQ - Feature #4343 (Some day maybe): _Link: Classifier to add 'attributes'https://project.math.uzh.ch/issues/43432017-08-31T21:47:11ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Additional attributes can't be specified.</p>
<p>E.g. it's not possible to add "disabled='disabled'" - needed to disable a button in Bootstrap.</p>
<p>An new attribute like A:<values> would be nice.</p> QFQ - Bug #4138 (Some day maybe): _style fehlthttps://project.math.uzh.ch/issues/41382017-07-31T08:50:53ZBenjamin Baerbenjamin.baer@math.uzh.ch
<p>Wir haben auf der Math Seite noch eintraege mit _style (UL|Text) die es noch nicht gibt im QFQ.</p>
<p>Beispiel waere Vita:<br /><a class="external" href="https://webwork16.math.uzh.ch/math/work/index.php?professur&key1=8882">https://webwork16.math.uzh.ch/math/work/index.php?professur&key1=8882</a></p>
<p>Der ganze Block of text ist eine Reihe in der Auswertung, urspruenglich: "UL| ganzer Text" und ich nehme an das UL hat dann die einzelnen \n in listen items eingeteilt.</p> QFQ - Bug #4122 (Some day maybe): _file: Render Mode hat keinen Effekthttps://project.math.uzh.ch/issues/41222017-07-24T08:50:09ZBenjamin Baerbenjamin.baer@math.uzh.ch
<p>Siehe: <a class="external" href="https://webwork16.math.uzh.ch/math/work/index.php?preprint&key1=2010">https://webwork16.math.uzh.ch/math/work/index.php?preprint&key1=2010</a></p>
<p>Download Button wird auch mit leerem File gerendert.</p> QFQ - Feature #3677 (Some day maybe): wkhtmltopdf: FE User access prohibited, if client IP change...https://project.math.uzh.ch/issues/36772017-05-04T17:57:12ZCarsten Rosecarsten.rose@math.uzh.ch
<p>To forward FE_USER privileges to wkhtmltopdf, it's necessary to switch off the IP check for FE_USER ($TYPO3_CONF_VARS[FE][lockIP]). This lowers the security level - it would be good not to do that.</p>
Extension for user specific `$TYPO3_CONF_VARS[FE][lockIP]` <a class="external" href="https://www.typo3.net/forum/thematik/zeige/thema/61123/">https://www.typo3.net/forum/thematik/zeige/thema/61123/</a>
<ul>
<li>This might help to offfer `$TYPO3_CONF_VARS[FE][lockIP]` together with an IP whitelist (=localhost).</li>
<li>The idea is to develop a separate Extension or to integrate that feature in QFQ.</li>
<li>There are already different IP based checks for debugging functions or BE Logging access.</li>
</ul>
Some notes:
<ul>
<li><a class="external" href="http://typo3blog.at/blog/artikel/typo3-ausreichend-absichern/">http://typo3blog.at/blog/artikel/typo3-ausreichend-absichern/</a></li>
<li><a class="external" href="https://docs.typo3.org/typo3cms/SecurityGuide/GuidelinesIntegrators/GlobalTypo3Options/Index.html">https://docs.typo3.org/typo3cms/SecurityGuide/GuidelinesIntegrators/GlobalTypo3Options/Index.html</a></li>
</ul> QFQ - Bug #3613 (Some day maybe): note /note unchecked -> note div (col-md) wird weiterhin gerenderthttps://project.math.uzh.ch/issues/36132017-04-21T16:41:23ZElias Villiger
<p>FormElement - Tab Layout:</p>
<p>Wenn z.B. die Checkboxes note und /note deaktiviert werden, wird der note-div weiterhin gerendert, ausser man setzt die "BS Note Columns" explizit auf 0.</p>
Erwartet wäre:
<ul>
<li>Deaktivierung von note führt dazu, dass <div class='col-md-x qfq-note'> nicht gerendert wird</li>
<li>Deaktivierung von /note führt dazu, dass der entsprechende </div> nicht gerendert wird</li>
</ul> QFQ - Feature #3402 (Some day maybe): Syntax Highlighting via CodeMirrorhttps://project.math.uzh.ch/issues/34022017-03-22T14:20:56ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Requirement: Texarea Feld mit Syntax Highlight</p>
<ul>
<li><a class="external" href="https://codemirror.net/">https://codemirror.net/</a></li>
<li>Min. SQL, optional weitere</li>
<li>Konfiguration wie bei TinyMCE via `data-...` - d.h. der Redakteur kann in QFQ Einfluss nehmen auf die diversen Optionen von CodeMirror.</li>
</ul> QFQ - Feature #3285 (Some day maybe): Zeichenlimit pro Feld: textarea / editorhttps://project.math.uzh.ch/issues/32852017-03-06T10:21:58ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Es sollte moeglich sein bei 'textarea' und 'editor' ein Zeichenlimit definieren zu koennen.</p> QFQ - Bug #3061 (Some day maybe): winstitute: mysql connection durcheinander - nmhp17 (ag7)/QFQ a...https://project.math.uzh.ch/issues/30612017-01-12T14:05:37ZCarsten Rosecarsten.rose@math.uzh.ch
<p>Auf winstitute gibt u.a. die Instanzen:</p>
<p>a) <a class="external" href="http://www.biostat.uzh.ch/">http://www.biostat.uzh.ch/</a> >> winstitute: ag_7</p>
<pre><code>T3: 'database' => 't3_ag7','username' => 't3_ag7',</code></pre>
<pre><code>QFQ Extension QFQ Extension<br /> DB User: t3_ag7 (/srv/www/ag_7/typo3conf/ext/qfq/config.ini)</code></pre>
<pre><code>form2 Extension form2 Extension<br /> DBQ2 Extension DBQ2 Extension <br /> DB User: dbquser (/srv/www/ag_7/typo3conf/dbq2.config.ini)</code></pre>
<p>b) <a class="external" href="http://www.math.uzh.ch/nmhp17">http://www.math.uzh.ch/nmhp17</a> >> winstitute: conferences_7<br /> math.inc.conf:Alias /conferences_7 /srv/www/conferences_62</p>
<pre><code>T3: database' => 't3_zss', 'username' => 't3_zss'</code></pre>
<pre><code>QFQ Extension QFQ Extension<br /> DB_USER = zgsm, DB_NAME = zgsm (/srv/www/conferences_62/typo3conf/config.qfq.ini)<br /> DBQ2 Extension DBQ2 Extension <br /> DB_USER = zgsm, DB_NAME = zgsm (/srv/www/conferences_62/typo3conf/config.qfq.ini)</code></pre>
Das Problem:
<ul>
<li>je nachdem welche Website, nach einem Apache restart als erstes auferufen wird, gilt diese fuer a) <em>und</em> b).</li>
</ul>
<p>Folgenen Code zum debuggen<br /><pre>
sql1 = SELECT USER()
rend1 = <br><br>
sql2 = SHOW tables;
rend2 = <br>
tail2 = <br>
sql2a = SHOW databases;
rend2a = <br>
tail2a = <br>
</pre></p>
<a name="Test"></a>
<h1 >Test<a href="#Test" class="wiki-anchor">¶</a></h1>
<p>Biostat Seite:</p>
<ul>
<li>Apache restart</li>
</ul>
<ul>
<li>ok (dbquser) <a class="external" href="http://www.biostat.uzh.ch/?id=350">http://www.biostat.uzh.ch/?id=350</a></li>
<li>ok (QFQ Formular) <a class="external" href="http://www.biostat.uzh.ch/anmeldung/">http://www.biostat.uzh.ch/anmeldung/</a></li>
</ul>
<ul>
<li>fail (t3_ag7) <a class="external" href="http://www.math.uzh.ch/nmhp17/index.php?id=51">http://www.math.uzh.ch/nmhp17/index.php?id=51</a></li>
</ul> QFQ - Bug #2643 (Some day maybe): Zend / PHP Webinars anschauenhttps://project.math.uzh.ch/issues/26432016-10-12T06:41:31ZCarsten Rosecarsten.rose@math.uzh.ch
<p><a class="external" href="http://www.zend.com/en/resources/webinar/building-the-perfect-php-app-for-the-enterprise">http://www.zend.com/en/resources/webinar/building-the-perfect-php-app-for-the-enterprise</a></p> QFQ - Feature #1623 (Some day maybe): RealURLhttps://project.math.uzh.ch/issues/16232016-02-05T12:44:23ZCarsten Rosecarsten.rose@math.uzh.ch
URL Path:
<ul>
<li>Language</li>
<li>Type: standard, print, wide (wie standard, nur breiter), pure (kein HTML), xml</li>
<li>koennen die DBQ2 / FORM2 Parameter genauso verwendet werden wie bisher: GET & POST</li>
<li>Optional: Gibt es Aenderungen wie DBQ2 interne Links bauen muss? Bsp.: bisher "index.php?id=1234". Mit Real URL soll der Link zeigen auf "www.math.uzh.ch/vorleseung/mat123"</li>
</ul>