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 #14753 (New): Folgeproblem zu #14304: keine Befriedigend Lösung für JS-Fileshttps://project.math.uzh.ch/issues/147532022-09-20T13:10:52ZNicola Chiapolini
<p>Wenn ich wie in <a class="issue tracker-1 status-6 priority-2 priority-default closed" title="Bug: table sorter view safer does not work (Rejected)" href="https://project.math.uzh.ch/issues/14304">#14304</a> identifiziert <code>bootstrap.min.js</code> aus meiner liste entferne, funktioniert anschliessend zwar der tabelsorter-viewsafer, dafür ist der Button des tablesorter-columnselector tot... (und auch alle weiteren meiner "popover" tools funktionieren dann nicht mehr).</p> QFQ - Bug #14618 (Closed): checkForEncryptedValue() must be of the type stringhttps://project.math.uzh.ch/issues/146182022-08-28T10:10:43ZNicola Chiapolini
<p>Meine Test hatten noch ein Problem gefunden mit einem Formular das nur ein Datumsfeld enthält. Dieses ist in der DB NULL by default. Beim öffnen mit dem NULL wert erhalte ich den Fehler:<br /> Argument 1 passed to IMATHUZH\Qfq\Core\Helper\EncryptDecrypt::checkForEncryptedValue() must be of the type string, null given, called in /var/www/htdocs/typo3conf/ext/qfq/Classes/Core/AbstractBuildForm.php on line 864</p>
<pre>
Date Column to modify contains `NULL`
-------------------------------------
2022.08.25 17:05:15 +0200, Reference: 63078fab1e940
Generic Error: Argument 1 passed to IMATHUZH\Qfq\Core\Helper\EncryptDecrypt::checkForEncryptedValue() must be of the type string, null given, called in /var/www/htdocs/typo3conf/ext/qfq/Classes/Core/AbstractBuildForm.php on line 864
Debug
-----
Edit: Form: [...] FormElement: [...]
FE column: Set language
toUser: Generic Error: Argument 1 passed to IMATHUZH\Qfq\Core\Helper\EncryptDecrypt::checkForEncryptedValue() must be of the type string, null given, called in /var/www/htdocs/typo3conf/ext/qfq/Classes/Core/AbstractBuildForm.php on line 864
support:
#0 /var/www/htdocs/typo3conf/ext/qfq/Classes/Core/AbstractBuildForm.php(864): IMATHUZH\Qfq\Core\Helper\EncryptDecrypt::checkForEncryptedValue()
#1 /var/www/htdocs/typo3conf/ext/qfq/Classes/Core/AbstractBuildForm.php(398): IMATHUZH\Qfq\Core\AbstractBuildForm->elements()
#2 /var/www/htdocs/typo3conf/ext/qfq/Classes/Core/BuildFormBootstrap.php(963): IMATHUZH\Qfq\Core\AbstractBuildForm->process()
#3 /var/www/htdocs/typo3conf/ext/qfq/Classes/Core/QuickFormQuery.php(554): IMATHUZH\Qfq\Core\BuildFormBootstrap->process()
#4 /var/www/htdocs/typo3conf/ext/qfq/Classes/Core/QuickFormQuery.php(285): IMATHUZH\Qfq\Core\QuickFormQuery->doForm()
#5 /var/www/htdocs/typo3conf/ext/qfq/Classes/Controller/QfqController.php(45): IMATHUZH\Qfq\Core\QuickFormQuery->process()
#6 /var/www/typo3_src-9.5.31/typo3/sysext/extbase/Classes/Mvc/Controller/ActionController.php(318): IMATHUZH\Qfq\Controller\QfqController->showAction()
#7 /var/www/typo3_src-9.5.31/typo3/sysext/extbase/Classes/Mvc/Controller/ActionController.php(167): TYPO3\CMS\Extbase\Mvc\Controller\ActionController->callActionMethod()
#8 /var/www/typo3_src-9.5.31/typo3/sysext/extbase/Classes/Mvc/Dispatcher.php(73): TYPO3\CMS\Extbase\Mvc\Controller\ActionController->processRequest()
#9 /var/www/typo3_src-9.5.31/typo3/sysext/extbase/Classes/Mvc/Web/FrontendRequestHandler.php(92): TYPO3\CMS\Extbase\Mvc\Dispatcher->dispatch()
#10 /var/www/typo3_src-9.5.31/typo3/sysext/extbase/Classes/Core/Bootstrap.php(172): TYPO3\CMS\Extbase\Mvc\Web\FrontendRequestHandler->handleRequest()
#11 /var/www/typo3_src-9.5.31/typo3/sysext/extbase/Classes/Core/Bootstrap.php(159): TYPO3\CMS\Extbase\Core\Bootstrap->handleRequest()
#12 [internal function]: TYPO3\CMS\Extbase\Core\Bootstrap->run()
#13 /var/www/typo3_src-9.5.31/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php(6015): call_user_func_array()
#14 /var/www/typo3_src-9.5.31/typo3/sysext/frontend/Classes/ContentObject/UserContentObject.php(41): TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer->callUserFunction()
#15 /var/www/typo3_src-9.5.31/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php(821): TYPO3\CMS\Frontend\ContentObject\UserContentObject->render()
#16 /var/www/typo3_src-9.5.31/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php(737): TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer->render()
#17 /var/www/typo3_src-9.5.31/typo3/sysext/frontend/Classes/Controller/TypoScriptFrontendController.php(3854): TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer->cObjGetSingle()
#18 /var/www/typo3_src-9.5.31/typo3/sysext/frontend/Classes/Controller/TypoScriptFrontendController.php(3815): TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->INTincScript_process()
#19 /var/www/typo3_src-9.5.31/typo3/sysext/frontend/Classes/Controller/TypoScriptFrontendController.php(3782): TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->recursivelyReplaceIntPlaceholdersInContent()
#20 /var/www/typo3_src-9.5.31/typo3/sysext/frontend/Classes/Http/RequestHandler.php(187): TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->INTincScript()
#21 /var/www/typo3_src-9.5.31/typo3/sysext/frontend/Classes/Middleware/OutputCompression.php(46): TYPO3\CMS\Frontend\Http\RequestHandler->handle()
#22 /var/www/typo3_src-9.5.31/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php(138): TYPO3\CMS\Frontend\Middleware\OutputCompression->process()
#23 /var/www/typo3_src-9.5.31/typo3/sysext/adminpanel/Classes/Middleware/AdminPanelDataPersister.php(44): class@anonymous->handle()
#24 /var/www/typo3_src-9.5.31/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php(138): TYPO3\CMS\Adminpanel\Middleware\AdminPanelDataPersister->process()
#25 /var/www/typo3_src-9.5.31/typo3/sysext/adminpanel/Classes/Middleware/AdminPanelRenderer.php(46): class@anonymous->handle()
#26 /var/www/typo3_src-9.5.31/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php(138): TYPO3\CMS\Adminpanel\Middleware\AdminPanelRenderer->process()
#27 /var/www/typo3_src-9.5.31/typo3/sysext/frontend/Classes/Middleware/ContentLengthResponseHeader.php(45): class@anonymous->handle()
#28 /var/www/typo3_src-9.5.31/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php(138): TYPO3\CMS\Frontend\Middleware\ContentLengthResponseHeader->process()
#29 /var/www/typo3_src-9.5.31/typo3/sysext/frontend/Classes/Middleware/ShortcutAndMountPointRedirect.php(65): class@anonymous->handle()
#30 /var/www/typo3_src-9.5.31/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php(138): TYPO3\CMS\Frontend\Middleware\ShortcutAndMountPointRedirect->process()
#31 /var/www/typo3_src-9.5.31/typo3/sysext/frontend/Classes/Middleware/PrepareTypoScriptFrontendRendering.php(118): class@anonymous->handle()
#32 /var/www/typo3_src-9.5.31/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php(138): TYPO3\CMS\Frontend\Middleware\PrepareTypoScriptFrontendRendering->process()
#33 /var/www/typo3_src-9.5.31/typo3/sysext/frontend/Classes/Middleware/PageArgumentValidator.php(99): class@anonymous->handle()
#34 /var/www/typo3_src-9.5.31/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php(138): TYPO3\CMS\Frontend\Middleware\PageArgumentValidator->process()
#35 /var/www/typo3_src-9.5.31/typo3/sysext/frontend/Classes/Middleware/MaintenanceMode.php(53): class@anonymous->handle()
#36 /var/www/typo3_src-9.5.31/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php(138): TYPO3\CMS\Frontend\Middleware\MaintenanceMode->process()
#37 /var/www/typo3_src-9.5.31/typo3/sysext/frontend/Classes/Middleware/PageResolver.php(171): class@anonymous->handle()
#38 /var/www/typo3_src-9.5.31/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php(138): TYPO3\CMS\Frontend\Middleware\PageResolver->process()
#39 /var/www/typo3_src-9.5.31/typo3/sysext/frontend/Classes/Middleware/StaticRouteResolver.php(62): class@anonymous->handle()
#40 /var/www/typo3_src-9.5.31/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php(138): TYPO3\CMS\Frontend\Middleware\StaticRouteResolver->process()
#41 /var/www/typo3_src-9.5.31/typo3/sysext/frontend/Classes/Middleware/SiteBaseRedirectResolver.php(86): class@anonymous->handle()
#42 /var/www/typo3_src-9.5.31/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php(138): TYPO3\CMS\Frontend\Middleware\SiteBaseRedirectResolver->process()
#43 /var/www/typo3_src-9.5.31/typo3/sysext/frontend/Classes/Middleware/PreviewSimulator.php(62): class@anonymous->handle()
#44 /var/www/typo3_src-9.5.31/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php(138): TYPO3\CMS\Frontend\Middleware\PreviewSimulator->process()
#45 /var/www/typo3_src-9.5.31/typo3/sysext/adminpanel/Classes/Middleware/AdminPanelInitiator.php(58): class@anonymous->handle()
#46 /var/www/typo3_src-9.5.31/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php(138): TYPO3\CMS\Adminpanel\Middleware\AdminPanelInitiator->process()
#47 /var/www/typo3_src-9.5.31/typo3/sysext/frontend/Classes/Middleware/SiteResolver.php(68): class@anonymous->handle()
#48 /var/www/typo3_src-9.5.31/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php(138): TYPO3\CMS\Frontend\Middleware\SiteResolver->process()
#49 /var/www/typo3_src-9.5.31/typo3/sysext/adminpanel/Classes/Middleware/SqlLogging.php(49): class@anonymous->handle()
#50 /var/www/typo3_src-9.5.31/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php(138): TYPO3\CMS\Adminpanel\Middleware\SqlLogging->process()
#51 /var/www/typo3_src-9.5.31/typo3/sysext/frontend/Classes/Middleware/BackendUserAuthenticator.php(95): class@anonymous->handle()
#52 /var/www/typo3_src-9.5.31/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php(138): TYPO3\CMS\Frontend\Middleware\BackendUserAuthenticator->process()
#53 /var/www/typo3_src-9.5.31/typo3/sysext/frontend/Classes/Middleware/FrontendUserAuthenticator.php(79): class@anonymous->handle()
#54 /var/www/typo3_src-9.5.31/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php(138): TYPO3\CMS\Frontend\Middleware\FrontendUserAuthenticator->process()
#55 /var/www/typo3_src-9.5.31/typo3/sysext/frontend/Classes/Middleware/TypoScriptFrontendInitialization.php(90): class@anonymous->handle()
#56 /var/www/typo3_src-9.5.31/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php(138): TYPO3\CMS\Frontend\Middleware\TypoScriptFrontendInitialization->process()
#57 /var/www/typo3_src-9.5.31/typo3/sysext/frontend/Classes/Middleware/EidHandler.php(50): class@anonymous->handle()
#58 /var/www/typo3_src-9.5.31/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php(138): TYPO3\CMS\Frontend\Middleware\EidHandler->process()
#59 /var/www/typo3_src-9.5.31/typo3/sysext/frontend/Classes/Middleware/PreprocessRequestHook.php(57): class@anonymous->handle()
#60 /var/www/typo3_src-9.5.31/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php(138): TYPO3\CMS\Frontend\Middleware\PreprocessRequestHook->process()
#61 /var/www/typo3_src-9.5.31/typo3/sysext/core/Classes/Middleware/NormalizedParamsAttribute.php(58): class@anonymous->handle()
#62 /var/www/typo3_src-9.5.31/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php(138): TYPO3\CMS\Core\Middleware\NormalizedParamsAttribute->process()
#63 /var/www/typo3_src-9.5.31/typo3/sysext/frontend/Classes/Middleware/TimeTrackerInitialization.php(49): class@anonymous->handle()
#64 /var/www/typo3_src-9.5.31/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php(138): TYPO3\CMS\Frontend\Middleware\TimeTrackerInitialization->process()
#65 /var/www/typo3_src-9.5.31/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php(67): class@anonymous->handle()
#66 /var/www/typo3_src-9.5.31/typo3/sysext/core/Classes/Http/AbstractApplication.php(108): TYPO3\CMS\Core\Http\MiddlewareDispatcher->handle()
#67 /var/www/typo3_src-9.5.31/typo3/sysext/frontend/Classes/Http/Application.php(69): TYPO3\CMS\Core\Http\AbstractApplication->handle()
#68 /var/www/typo3_src-9.5.31/typo3/sysext/core/Classes/Http/AbstractApplication.php(120): TYPO3\CMS\Frontend\Http\Application->handle()
#69 /var/www/typo3_src-9.5.31/index.php(24): TYPO3\CMS\Core\Http\AbstractApplication->run()
#70 /var/www/typo3_src-9.5.31/index.php(25): {closure}()
#71 {main}
Report level key: 10
messageDebug:
Type: User Report Exception
SQL before evaluation: 1
SQL final:
SQL Params:
Report column index: 1
Report column name: title
Report column value: Edit date of last assessment
current sip:
array (
'__dbIndexData' => '1',
'form' => 'bachelor_last-assessment',
'r' => '318',
's' => '63078f07f3ab6',
'urlparam' => '__dbIndexData=1&form=bachelor_last-assessment&r=318',
)
Page Id: 53
Content Id 135
FE User testsa
</pre> 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 #14303 (Closed): datetime broken with pickerhttps://project.math.uzh.ch/issues/143032022-06-10T08:52:55ZNicola Chiapolini
<p>We do have a lot of SQL date and datetime fields in our database, the corresponding forms use date and datetime form-elements.<br />Extension config: config.dateFormat = yyyy-mm-dd, so all input is YYYY-MM-DD and YYYY-MM-DD HH:mm respectively</p>
<p>When adding the relevant CSS and JS files, these fields are all broken.</p>
Without manual intervention:
<ul>
<li>the fields only show datepicker even for datetime fields</li>
<li>existing dates and newly selected dates end up like <code>2022-37-Fr</code> (when selecting 2022-06-10 or if the record in the DB contains that date)</li>
</ul>
Adding <code><br />dateFormat = YYYY-MM-DD HH:mm<br />datetimeSideBySide = true<br /></code> to <code>FormElement.parameter</code> of a datetime field:
<ul>
<li>date and time picker are shown correctly</li>
<li>datetime picked is displayed correctly</li>
<li>datetime is stored correctly</li>
<li>stored values from the record are not shown anymore, instead the filed is displayed as if empty</li>
</ul>
Wishes:
<ul>
<li>stored values should be loaded correctly</li>
<li>the default dateFormat should respect the global config (an not require a manual intervention on every single date or datetime field.)</li>
<li>datetimeSideBySide should be true for datetime fields</li>
</ul>
<p>Further minor wish: When the first field in a form is a date or datetime field, the picker is only opened after it looses and regains focus. It would be nice if the picker was opened on load directly. (but this is probably a Browser-Javascript problem.)</p> QFQ - Bug #14302 (Closed): Form-Field Dokumentation: datetime / extra brokenhttps://project.math.uzh.ch/issues/143022022-06-10T08:27:34ZNicola Chiapolini
<p><a class="external" href="http://docs.qfq.io/en/master/Form.html#type-datetime">http://docs.qfq.io/en/master/Form.html#type-datetime</a></p>
<p><img src="https://project.math.uzh.ch/attachments/download/6248/clipboard-202206101027-qqung.png" alt="" /></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 - 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 - Support #13107 (Closed): Fehler bei _script - Call to undefined function IMATHUZH\Qfq\Core\...https://project.math.uzh.ch/issues/131072021-10-02T07:57:58ZNicola Chiapolini
<p>Hoi Carsten</p>
<p>Ich wollte eben die _script-Column ausprobieren. Wenn ich euer Beispiel aus <br />der Doku umsetze bekomme ich aber den Fehler unten.</p>
<p>Any ideas?</p>
<p>härzlichi Grüäss<br />Nicola</p>
<p>UniqId:: 6156a20259e76<br />------------------------------------------------<br />toUser:: Function execution failed.<br />support:: Error message:<br />Call to undefined function IMATHUZH\Qfq\Core\Report\curl_init()</p>
<p>Function: my_function</p>
<p>Parameters:<br />Array<br />(<br />[a1] => Hello<br />[a2] => World<br />[F] => studentadmin/qfqscripts/example.php<br />[call] => my_function<br />[arg] => a1=Hello&a2=World<br />)</p>
<p>Timestamp:: 2021.10.01 07:52:02 +0200<br />Code:: 1<br />Message:: Function execution failed.<br />Report level key:: 10<br />Type:: User Report Exception<br />Report column index:: 1<br />Report column name:: _script<br />Report column value:: F:studentadmin/qfqscripts/example.php|call:my_function|<br />arg:a1=Hello&a2=World<br />current sip:: array ()<br />Page Id:: 9<br />Content Id:: 714<br />FE User:: nichia<br />File:: /var/www/htdocs/typo3conf/ext/qfq/Classes/Core/Exception/Thrower.php<br />Line:: 30<br />CWD:: /var/www/htdocs<br />IP Address:: 89.206.112.10<br />Stacktrace:: <br />#0 /var/www/htdocs/typo3conf/ext/qfq/Classes/Core/Report/ColumnScript.php(82): <br />IMATHUZH\Qfq\Core\Exception\Thrower::userReportException()<br />#1 /var/www/htdocs/typo3conf/ext/qfq/Classes/Core/Report/Report.php(1057): <br />IMATHUZH\Qfq\Core\Report\ColumnScript::render()<br />#2 /var/www/htdocs/typo3conf/ext/qfq/Classes/Core/Report/Report.php(980): <br />IMATHUZH\Qfq\Core\Report\Report->renderColumn()<br />#3 /var/www/htdocs/typo3conf/ext/qfq/Classes/Core/Report/Report.php(683): <br />IMATHUZH\Qfq\Core\Report\Report->collectRow()<br />#4 /var/www/htdocs/typo3conf/ext/qfq/Classes/Core/Report/Report.php(249): <br />IMATHUZH\Qfq\Core\Report\Report->triggerReport()<br />#5 /var/www/htdocs/typo3conf/ext/qfq/Classes/Core/QuickFormQuery.php(1732): <br />IMATHUZH\Qfq\Core\Report\Report->process()<br />#6 /var/www/htdocs/typo3conf/ext/qfq/Classes/Core/QuickFormQuery.php(285): <br />IMATHUZH\Qfq\Core\QuickFormQuery->doReport()<br />#7 /var/www/htdocs/typo3conf/ext/qfq/Classes/Controller/QfqController.php(46): <br />IMATHUZH\Qfq\Core\QuickFormQuery->process()
==================================================</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 - Support #11769 (Closed): fehlende Tabelle in der Dokumentationhttps://project.math.uzh.ch/issues/117692020-12-17T16:00:34ZNicola Chiapolini
<p>unter<br /> <a class="external" href="http://docs.qfq.io/en/master/Variable.html#sanitize-class">http://docs.qfq.io/en/master/Variable.html#sanitize-class</a><br />fehlt die Tabelle mit den Klassen</p>
<pre>
For QFQ variables and FormElements:
Only in FormElement:
+------+------+--------------+
| auto | Form | Only sup ... |
</pre> QFQ - Bug #11195 (New): Dynamic Update: Note not updated if new text is empty (v20.4)https://project.math.uzh.ch/issues/111952020-09-25T09:14:05ZNicola Chiapolini
<p>We had a dynamic updated note-Element with value</p>
<p><code>#!report<br />10.sql = SELECT notes FROM rooms WHERE building = '{{building:FSRD:alnumx}}' AND room = '{{room:FSRD:alnumx}}'<br />10.twig = {{ result.0.notes }}<br /></code></p>
<p>The note-Element is not updated, if the notes is empty or the query does not return a row.<br />The following code works:</p>
<p><code>#!report<br />10.sql = SELECT notes, RAND() AS dummy FROM rooms WHERE building = '{{building:FSRD:alnumx}}' AND room = '{{room:FSRD:alnumx}}'<br />10.twig = <span>{{ result.0.notes }}</span><br /></code></p>
<p>(Since we only update via T3 Extension store, we are still running 20.4 so this might be fixed by now.)</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 - Bug #9898 (Feedback): Formular trotz Timeout gespeicherthttps://project.math.uzh.ch/issues/98982020-01-17T09:02:45ZNicola Chiapolini
<p>In den letzten Monaten ist es schon zwei mal vorgekommen, dass ein Formular gespeichert wurde, obwohl das Frontend-Login scheinbar abgelaufen war. Scheinbar, weil ich das nur aus Hinweisen schliesse: zum Einen wurde der Report auf der "Forward URL" des Formulars nicht ausgeführt (der feuert ein weiteres UPDATE query und sendet ein E-Mail) und zum Anderen zeigt das sql.log einen neuen Login direkt nach dem speichern (vgl. unten)</p>
<p>Ich verstehe aber auch nicht wirklich, weshalb das Frontend-Login abläuft. Die Typo3 Config ist <br /><pre>
[FE][lifetime] = 0
[FE][sessionDataLifetime] = 86400
[FE][permalogin] = 0
</pre><br />und auch <code>session.gc_maxlifetime=86400</code></p>
<p>das annonymisierte SQL Log:<br /><pre>
[2020.01.16 11:45:59 +0100][130.60.95.112][FE:SHORT,Page:84,tt:171,level:40.10][UPDATE typo3_studentadmin.fe_users SET usergroup='4,1' WHERE username='SHORT' AND deleted='0' LIMIT 1]
[2020.01.16 11:45:59 +0100][130.60.95.112][FE:SHORT,Page:84,tt:171,level:40.10][Affected rows: 1]
[2020.01.16 11:48:06 +0100][130.60.95.112][FE:SHORT,form:phd_check-head][INSERT INTO Dirty (`sip`, `tableName`, `recordId`, `expire`, `recordHashMd5`, `feUser`, `qfqUserSessionCookie`, `dirtyMode`, `remoteAddress`, `created`) VALUES ( '5e203efef41d2','phd_graduation','400','2020-01-16 12:03:05','c4472b22659d70b6861455db23ca999c','SHORT','s6kua7c734irt5f2mhsi7m1k7t','exclusive','130.60.95.112','20200116114806' )]
[2020.01.16 11:48:06 +0100][130.60.95.112][FE:SHORT,form:phd_check-head][ID: 13539 - affected rows: 1]
[2020.01.16 12:03:07 +0100][130.60.95.112][FE:SHORT,form:phd_check-head][DELETE FROM Dirty WHERE id='13539' LIMIT 1]
[2020.01.16 12:03:07 +0100][130.60.95.112][FE:SHORT,form:phd_check-head][Affected rows: 1]
[2020.01.16 12:03:07 +0100][130.60.95.112][FE:SHORT,form:phd_check-head][INSERT INTO Dirty (`sip`, `tableName`, `recordId`, `expire`, `recordHashMd5`, `feUser`, `qfqUserSessionCookie`, `dirtyMode`, `remoteAddress`, `created`) VALUES ( '5e203efef41d2','phd_graduation','400','2020-01-16 12:18:06','c4472b22659d70b6861455db23ca999c','SHORT','s6kua7c734irt5f2mhsi7m1k7t','exclusive','130.60.95.112','20200116120307' )]
[2020.01.16 12:03:07 +0100][130.60.95.112][FE:SHORT,form:phd_check-head][ID: 13546 - affected rows: 1]
[2020.01.16 15:53:01 +0100][130.60.95.112][FE:SHORT,form:phd_check-head][DELETE FROM Dirty WHERE id='13546' LIMIT 1]
[2020.01.16 15:53:01 +0100][130.60.95.112][FE:SHORT,form:phd_check-head][Affected rows: 1]
[2020.01.16 15:53:01 +0100][130.60.95.112][FE:SHORT,form:phd_check-head][INSERT INTO Dirty (`sip`, `tableName`, `recordId`, `expire`, `recordHashMd5`, `feUser`, `qfqUserSessionCookie`, `dirtyMode`, `remoteAddress`, `created`) VALUES ( '5e203efef41d2','phd_graduation','400','2020-01-16 16:08:00','c4472b22659d70b6861455db23ca999c','SHORT','s6kua7c734irt5f2mhsi7m1k7t','exclusive','130.60.95.112','20200116155301' )]
[2020.01.16 15:53:01 +0100][130.60.95.112][FE:SHORT,form:phd_check-head][ID: 13574 - affected rows: 1]
[2020.01.16 15:55:46 +0100][130.60.95.112][FE:SHORT,Page:19,tt:48,form:phd_check-head][DELETE FROM Dirty WHERE id='13574' LIMIT 1]
[2020.01.16 15:55:46 +0100][130.60.95.112][FE:SHORT,Page:19,tt:48,form:phd_check-head][Affected rows: 1]
[2020.01.16 15:55:46 +0100][130.60.95.112][FE:SHORT,Page:19,tt:48,form:phd_check-head][INSERT INTO FormSubmitLog (formData, sipData, clientIp, feUser, userAgent, formId, recordId, pageId, sessionId, created)VALUES ('{"email":"","username":"","password":"","recordHashMd5":"c4472b22659d70b6861455db23ca999c","nodb_check-student-400":"1","nodb_check-committee-400":"1","nodb_student-info-400":"STUDENT","colloquium_start-400":"2020-03-05 15:00","colloquium_duration-400":"01:00","colloquium_place-400":"WAD P106a","disputation_start-400":"2020-03-05 16:00","disputation_duration-400":"01:00","disputation_place-400":"WAD P106a","_sipForTypo3Vars":"5e203efef412a"}', '{"__dbIndexData":"1","check_head_done":"2020-01-16 11:46:22","form":"phd_check-head","r":"400","s":"5e203efef41d2","urlparam":"__dbIndexData=1&check_head_done=2020-01-16 11:46:22&form=phd_check-head&r=400"}', '130.60.95.112', 'SHORT', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', '1002', '400', '19', 's6kua7c734irt5f2mhsi7m1k7t', NOW())]
[2020.01.16 15:55:46 +0100][130.60.95.112][FE:SHORT,Page:19,tt:48,form:phd_check-head][ID: 31466 - affected rows: 1]
[2020.01.16 15:55:46 +0100][130.60.95.112][FE:SHORT,Page:19,tt:48,form:phd_check-head][UPDATE `phd_graduation` SET `check_head_done` = '2020-01-16 11:46:22', `colloquium_start` = '2020-03-05 15:00', `colloquium_duration` = '01:00', `colloquium_place` = 'WAD P106a', `disputation_start` = '2020-03-05 16:00', `disputation_duration` = '01:00', `disputation_place` = 'WAD P106a' WHERE id = '400']
[2020.01.16 15:55:46 +0100][130.60.95.112][FE:SHORT,Page:19,tt:48,form:phd_check-head][Affected rows: 1]
[2020.01.16 15:55:50 +0100][130.60.95.112][FE:SHORT,Page:84,tt:171,level:40.10][UPDATE typo3_studentadmin.fe_users SET usergroup='4,1' WHERE username='SHORT' AND deleted='0' LIMIT 1]
[2020.01.16 15:55:50 +0100][130.60.95.112][FE:SHORT,Page:84,tt:171,level:40.10][Affected rows: 1]
</pre></p>
<p><code>UPDATE typo3_studentadmin.fe_users</code> feuert beim Login</p>
<p>Any Ideas wo das Problem herkommt und wie ich das vermeiden kann? (und betrifft das wirklich nur uns?)</p> QFQ - Bug #9355 (Closed): Column Header in MailLog zu schmalhttps://project.math.uzh.ch/issues/93552019-10-14T10:23:17ZNicola Chiapolini
<p>Bei einem Mail mit zwei Anhängen sind wir eben an die Zeichengrenze der "Header" Column gestossen (vgl. Unten). Wir haben die Spaltenbreite nun einfach auf 900 erhöht. Damit klappt das Mail. Allerdings wäre es schön, wenn der Logging-Code dieses Problem abfangen und korrekt lösen könnte.</p>
<pre>
==================================================
UniqId:: 5da449a5027f8
------------------------------------------------
toUser:: SQL error
os:: [ mysqli: 1406 ] Data too long for column 'header' at row 1
Timestamp:: 2019.10.14 12:10:45 +0200
Code:: 2001
Message:: SQL error
Report level key:: 10.12
Type:: Db Exception
SQL final:: INSERT INTO MailLog (`receiver`, `cc`, `bcc`, `sender`, `subject`, `body`, `header`, `attach`, `grId`, `xId`, `xId2`, `xId3`, `src`, `modified`, `created`) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW(), NOW() )
SQL Params:: array (
0 => 'it-dekanat@mnf.uzh.ch',
1 => '',
2 => '',
3 => 'it-dekanat@mnf.uzh.ch',
4 => 'Graduation Master',
5 => 'All QFQ outgoing mails are caught and redirected to you.
Original receiver(s) are ...
TO: baum@example.org
CC:
BCC:
SENDER: nicola.chiapolini@mnf.uzh.ch
WEBSITE: https://mnf-32.uzh.ch
==========================================
Dear Peter Baum
We have received all required documents from you. Your degree will be validated on 2019-12-13. You will receive a confirmation of your degree by mail within the next few days.
Please reserve Friday, 2020-10-05 from 5.00 pm for the graduation ceremony. We look forward to welcoming you and your companions to this event. Two weeks before the ceremony you will receive an invitation email from us.
If the final documents are ready for dispatch before the ceremony, we will send them to you by registered mail so that you can apply with the complete documents or present them to your employer as soon as possible.
Please do not hesitate to contact us if you have any questions (044 635 40 07) or come and see us during our opening hours (Tuesdays + Thursdays, 09.45 - 12.30 + 13.45 - 16.15 and Wednesdays, 09.45 - 12.00; closed in the afternoons during the lecture-free period).
best wishes
Office of Students Affairs ',
6 => 'OoO:on
Attachment: 0=0=F:studentadmin/msc/confirmations/msc_uww_confirmation_bama_en_7a2c1ff9e6fce809ab437967c23d9188.pdf&1=d:msc_uww_confirmation_en.pdf&1=0=F:studentadmin/msc/confirmations/msc_uww_confirmation_bama_de_7a2c1ff9e6fce809ab437967c23d9188.pdf&1=d:msc_uww_confirmation_de.pdf',
7 => '-a /tmp/qfq.temp.T3WJjN/msc_uww_confirmation_en.pdf -a /tmp/qfq.temp.TFzybf/msc_uww_confirmation_de.pdf',
8 => 0,
9 => 0,
10 => 0,
11 => 0,
12 => 'Report: T3 pageId=125, T3 ttcontentId=279, Level=10.12',
)
current sip:: array (
'r' => '0',
'student' => 'msc_uww',
's' => '5da423e88ddbf',
'urlparam' => 'r=0&student=msc_uww',
)
Page Id:: 125
Content Id:: 279
FE User:: hewebe
File:: /var/www/htdocs/typo3conf/ext/qfq/Classes/Core/Database/Database.php
Line:: 397
IP Address:: 130.60.23.163
Stacktrace::
#0 /var/www/htdocs/typo3conf/ext/qfq/Classes/Core/Database/Database.php(208): IMATHUZH\Qfq\Core\Database\Database->prepareExecute('INSERT INTO Mai...', Array, '', Array, '')
#1 /var/www/htdocs/typo3conf/ext/qfq/Classes/Core/Report/SendMail.php(315): IMATHUZH\Qfq\Core\Database\Database->sql('INSERT INTO Mai...', 'regular', Array)
#2 /var/www/htdocs/typo3conf/ext/qfq/Classes/Core/Report/SendMail.php(100): IMATHUZH\Qfq\Core\Report\SendMail->mailLog(Array, '-a /tmp/qfq.tem...')
#3 /var/www/htdocs/typo3conf/ext/qfq/Classes/Core/Report/Report.php(1083): IMATHUZH\Qfq\Core\Report\SendMail->process(Array)
#4 /var/www/htdocs/typo3conf/ext/qfq/Classes/Core/Report/Report.php(799): IMATHUZH\Qfq\Core\Report\Report->renderColumn(0, 'sendmail', 'to:baum@example...', '10.12', 1, true)
#5 /var/www/htdocs/typo3conf/ext/qfq/Classes/Core/Report/Report.php(566): IMATHUZH\Qfq\Core\Report\Report->collectRow(Array, Array, '10.12', 1, Array)
#6 /var/www/htdocs/typo3conf/ext/qfq/Classes/Core/Report/Report.php(572): IMATHUZH\Qfq\Core\Report\Report->triggerReport(2, Array, 2)
#7 /var/www/htdocs/typo3conf/ext/qfq/Classes/Core/Report/Report.php(243): IMATHUZH\Qfq\Core\Report\Report->triggerReport()
#8 /var/www/htdocs/typo3conf/ext/qfq/Classes/Core/QuickFormQuery.php(1624): IMATHUZH\Qfq\Core\Report\Report->process('5.sql = SELEC...')
#9 /var/www/htdocs/typo3conf/ext/qfq/Classes/Core/QuickFormQuery.php(248): IMATHUZH\Qfq\Core\QuickFormQuery->doReport()
#10 /var/www/htdocs/typo3conf/ext/qfq/Classes/Controller/QfqController.php(43): IMATHUZH\Qfq\Core\QuickFormQuery->process()
==================================================
</pre> QFQ - Bug #9300 (Closed): creating rest forms brokenhttps://project.math.uzh.ch/issues/93002019-10-04T19:18:23ZNicola Chiapolini
<p>in 19.9.1 creating rest forms is broken. The "Permit REST" can not be stored as the column in the database is called `restMethod` while the field in the form has name= 'prestMethod' including a p. Correcting the field name fixes the</p> QFQ - Bug #9281 (Feedback): Allow STRICT_TRANS_TABLEShttps://project.math.uzh.ch/issues/92812019-10-02T09:08:00ZNicola Chiapolini
<p>MariaDB > 10.2.4 (Debian Buster comes with 10.3) has STRICT_TRANS_TABLES set by default. (see <a class="external" href="https://mariadb.com/kb/en/library/documentation/mariadb-administration/variables-and-modes/sql-mode/">https://mariadb.com/kb/en/library/documentation/mariadb-administration/variables-and-modes/sql-mode/</a>)<br />This breaks QFQ as no defaults are set for text columns in Form or FormElement.</p>
<p>Setting a default for these tables does work but has the ugly side-effect that on load the QFQ-Form Editor shows two single quotes as default value for all text fields...<br />A better solution is to allow all non-mandatory fields without default values to be NULL.</p>
<pre>
ALTER TABLE `Form`
CHANGE `noteInternal` `noteInternal` text COLLATE 'utf8_general_ci' NULL AFTER `title`,
CHANGE `multiSql` `multiSql` text COLLATE 'utf8_general_ci' NULL AFTER `multiMode`,
CHANGE `parameter` `parameter` text COLLATE 'utf8_general_ci' NULL AFTER `bsNoteColumns`,
CHANGE `parameterLanguageA` `parameterLanguageA` text COLLATE 'utf8_general_ci' NULL AFTER `parameter`,
CHANGE `parameterLanguageB` `parameterLanguageB` text COLLATE 'utf8_general_ci' NULL AFTER `parameterLanguageA`,
CHANGE `parameterLanguageC` `parameterLanguageC` text COLLATE 'utf8_general_ci' NULL AFTER `parameterLanguageB`,
CHANGE `parameterLanguageD` `parameterLanguageD` text COLLATE 'utf8_general_ci' NULL AFTER `parameterLanguageC`;
ALTER TABLE `FormElement`
CHANGE `modeSql` `modeSql` text COLLATE 'utf8_general_ci' NULL AFTER `mode`,
CHANGE `note` `note` text COLLATE 'utf8_general_ci' NULL AFTER `rowLabelInputNote`,
CHANGE `adminNote` `adminNote` text COLLATE 'utf8_general_ci' NULL AFTER `note`,
CHANGE `value` `value` text COLLATE 'utf8_general_ci' NULL AFTER `placeholder`,
CHANGE `sql1` `sql1` text COLLATE 'utf8_general_ci' NULL AFTER `value`,
CHANGE `parameter` `parameter` text COLLATE 'utf8_general_ci' NULL AFTER `sql1`,
CHANGE `parameterLanguageA` `parameterLanguageA` text COLLATE 'utf8_general_ci' NULL AFTER `parameter`,
CHANGE `parameterLanguageB` `parameterLanguageB` text COLLATE 'utf8_general_ci' NULL AFTER `parameterLanguageA`,
CHANGE `parameterLanguageC` `parameterLanguageC` text COLLATE 'utf8_general_ci' NULL AFTER `parameterLanguageB`,
CHANGE `parameterLanguageD` `parameterLanguageD` text COLLATE 'utf8_general_ci' NULL AFTER `parameterLanguageC`,
CHANGE `clientJs` `clientJs` text COLLATE 'utf8_general_ci' NULL AFTER `parameterLanguageD`;
</code></pre>
<p>an alternative workaround is to deactivate STRICT_TRANS_TABLES by setting<br /><code>[init] => SET names utf8; SET sql_mode = "ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";</code> <br />in the extension config of qfq (this might also be needed for existing installations as upgrading large databases where no care was used on allowing NULL or setting defaults is a pain)</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 - 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 - Bug #9013 (New): Error in Twig template not handledhttps://project.math.uzh.ch/issues/90132019-09-04T08:28:17ZNicola Chiapolini
<p>Bei einem Fehler im Twig-Template wird die "Oops, an errro occured..." Meldung angezeigt und der Debug-Output ist nirgends sichtbar. (analog zu <a class="issue tracker-1 status-5 priority-2 priority-default closed" title="Bug: Oops, an error occurred! Code: 20181523130602aa65c6ca - Fehler in config.qfq.ini (Closed)" href="https://project.math.uzh.ch/issues/6216">#6216</a>)</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 - Bug #8316 (Closed): Documentation/Behaviour for Nested Queries and Record-Store confusinghttps://project.math.uzh.ch/issues/83162019-05-12T19:30:59ZNicola Chiapolini
<p>We got hit by a bug in our setup today, caused by the fact that an Store-Variable will remember the previous subquery.</p>
<p>e.g.</p>
<p>Given</p>
<pre>
Tabel: persons
pid | name
----+----------
1 | Carsten
2 | Nicola
Table: addresses
pid | address
----+---------
1 | foo
</pre>
<p>Then<br /><code>10.sql = SELECT pid AS _pid FROM persons<br />10.2.sql = SELECT address AS _adr FROM addresses WHERE pid={{pid:R}} <br />10.3.sql = SELECT {{pid:R}}, {{adr:RE}}<br /></code></p>
<p>prints<br /><code>1 foo<br />2 foo<br /></code></p>
<p>even though there is no address defined for 2, as {{adr}} still contains the result from the last iteration (pid = 1). This behavior is mentioned with <em>The STORE_RECORD will always be merged with previous content.</em> But it is nevertheless unexpected for a loop - and the example in the documentation is not very helpful either (I still don't understand what the explanation wants to tell me)</p>
<p>So the correct setup is<br /><code>10.sql = SELECT pid AS _pid FROM persons<br />10.1.sql = SELECT '' AS adr<br />10.2.sql = SELECT address AS _adr FROM addresses WHERE pid={{pid:R}} <br />10.3.sql = SELECT {{pid:R}}, {{adr:RE}}<br /></code></p> QFQ - Bug #8113 (Closed): Fehler in Dokumentation für Default valuehttps://project.math.uzh.ch/issues/81132019-03-22T06:57:21ZNicola Chiapolini
<p>Aktuell: <br /><code>{{SELECT IF('{{column:RE}}'='','custom default',{{column:R}}) }}</code></p>
<p>Korrekt:<br /><code>{{SELECT IF('{{column:RE}}'='','custom default','{{column:R}}') }}</code></p>
<p>('' um den "else"-Wert)</p>
<p>PS: Könnte Default nicht als separates Feld angeboten werden? Das würde ziemlich viele Wiederholungen vermeiden.</p> QFQ - Support #8108 (Closed): Add an empty element to a Select-Listhttps://project.math.uzh.ch/issues/81082019-03-21T11:28:20ZNicola Chiapolini
<p>I do have a select-element with items <br /> <code>itemList=Prof. Dr.,PD Dr.,Dr.</code></p>
<p>Now we need to add an option for people without a title where the data base should store an empty string. <br />I could not figure out how to specify this. Explicitly giving keys, does not help as empty keys are not allowed either.</p> QFQ - Support #7852 (Closed): Bad User-Feedback when Store: USER - U times outhttps://project.math.uzh.ch/issues/78522019-02-11T11:06:51ZNicola Chiapolini
<p>On Login, we fill several constants into U. When a browser session is inactive for a few minutes, <br />the store gets lost, and the queries using the constants fail.</p>
<p>However the user only gets a generic SQL Error message. This generates several support requests <br />that can be solved by logging out and back in.</p>
<p>Could users automatically be informed about the timeout?</p>
Ideas for solutions
<ul>
<li>We could add an element to each page that checks for some constant and redirects otherwise (ugly and probably often forgotten)</li>
<li>Put something in QFQ that checks if the session store expires</li>
<li>Auto-Logout users from Typo3 after the correct amount of time</li>
</ul> 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 - Bug #7743 (Closed): FormElement.min = 0 has no effecthttps://project.math.uzh.ch/issues/77432019-01-25T14:37:16ZNicola Chiapolini
<p>I do have an input field for ECTS points, so I would like to enforce the value in [0, 1, 2, ...)<br />However even after setting FormElement.min = 0, the "cycle buttons" still go to negative numbers and these are not marked as "error" (A not very useful message BTW) when entered directly. It seems min is considered to be unset when the value is 0.</p>
<p>Choosing digit as Sanitize class enforces positive integers, however it would be nice if the interface suggested correct values only (And the error message there is probably too cryptic for normal users too, I would not show the pattern unless there is a user logged in in the backend.)</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 - Bug #7714 (Closed): autocron fails to open logfileshttps://project.math.uzh.ch/issues/77142019-01-22T12:43:55ZNicola Chiapolini
<p><code>PHP Warning: fopen(fileadmin/protected/log/sql.log): failed to open stream: No such file or directory in /var/www/htdocs/typo3conf/ext/qfq/Source/core/helper/Logger.php on line 44<br /></code></p>
<p>Ich vermute das Problem ist, dass autocron.php nicht in <code>API_DIR_EXT = 'Source/api'</code> liegt...</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 #7461 (Closed): Bug in Dokuhttps://project.math.uzh.ch/issues/74612018-12-11T17:25:04ZNicola Chiapolini
<p><a class="external" href="https://docs.typo3.org/typo3cms/drafts/github/T3DocumentationStarter/Public-Info-053/Manual.html#a-simple-example">https://docs.typo3.org/typo3cms/drafts/github/T3DocumentationStarter/Public-Info-053/Manual.html#a-simple-example</a><br />dritter codeblock, zweite Zeile, sollte:<br /><code>10.rsep = <br></code><br />sein</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 - 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 - Support #5419 (Closed): Fluid UZH-Stylehttps://project.math.uzh.ch/issues/54192018-02-10T08:14:49ZNicola Chiapolini
<p>Hoi Carsen</p>
<p>[Der erste Versuch mit Anhang hat an eurem Mailserver gebounced:<br />BANNED:554 5.7.0 .asc,Resources/Public/js/jquery.min.js<br />deshalb nun via Weblink]</p>
<p>Ich habe mich gestern und heute mit Fluid beschäftigt und dabei auch begonnen <br />euer Template für Fluid anzupassen. Das Basistemplate funktioniert nun auf <br />meinem System weitgehend (die Suche fehlt noch).</p>
<p>Du findest das resultierende Zip unter:<br /><a class="external" href="http://www.physik.uzh.ch/~nchiapol/uzh_cd_template.zip">http://www.physik.uzh.ch/~nchiapol/uzh_cd_template.zip</a><br />Wenn du mir die nötigen Rechte gibst pushe ich meinen `fluid`-Branch gerne in <br />euer Repo.</p>
<p>Nächste Wochen werde ich mich dann wohl wieder primär mit funktionellen <br />Aspekten beschäftigen. Aber bei Gelegenheit werde ich wohl den ganzen <br />Template-Code noch genauer anschauen und auf unnötigem Code überprüfen.</p>
<p>härzlichi Grüäss<br />Nicola</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>