Bug #88310
closedAfter update 8.7.24 -> 8.7.25: Endless spinner when (un-)hiding records in list view. (Side-Effect with recent commit?)
0%
Description
After Update 8.7.24->8.7.25 I get an "endless" spinner-icon when (un-)hiding records in backend (AJAX call has status code 200, but JSON has hasErrors: true)
General info
I have a TYPO3-project running 8.7.24: only a few extensions like RealUrl, FAL secure download, News and two own Extbase-extensions (over the years, I migrated from 4.5.x to 8.7.24 with no problems).
The problem
After I updated from 8.7.24 to 8.7.25 I have this issue/problem (I can reproduce it every time with 8.7.25, however the problem does not occur with 8.7.24):
- Go to list view
- Click a page/folder in page tree which contains any records
- Click on the "hide/unhide" - button of a record
Result: the spinner icon spins forever. The hide/unhide operation is successful, I see that, when I reload the backend page. But if I don't reload, the spinner on the button spins forever.
There was a request going out when I clicked the (Un-)Hide-button (in this example no 1, I was hiding a page):
http://www.MYDOMAIN.tld/typo3/index.php?ajaxID=%2Fajax%2Frecord%2Fprocess&ajaxToken=TOKENHERE&data[pages]2[hidden]=1
Or in an other example no 2, where I hid a sys-Domain record:
http://www.MYDOMAIN.tld/typo3/index.php?ajaxID=/ajax/record/process&ajaxToken=TOKENHERE&data[sys_domain]4[hidden]=1
Or, when I hide a record of my own extension (example no 3):
http://www.MYDOMAIN.tld/typo3/index.php?ajaxID=%2Fajax%2Frecord%2Fprocess&ajaxToken=TOKENHERE&data[tx_myextension_domain_model_address]358[hidden]=1
Every single time, the request show up with a status code 200, but the JSON response contains a property "hasErrors" with the value: true.
The full JSON response is every time the same:
{"redirect":"","messages":[],"hasErrors":true}
However, with TYPO3 8.7.24 the hasErrors-Property is false, and the spinner icon is just visible a fraction of a second (like it should be).
My findings so far
It seems to me, that the problem has something to do with this commit in release 8.7.25:
[BUGFIX] Show error messages for AJAX editing actions in page/list module:
https://github.com/TYPO3/TYPO3.CMS/commit/1f5ce464c6215f755d5d798b0021d1ebf36526e7
from Oliver Hader and Benni Mack.
When I debugged what is going on in Backend\Controller\SimpleDataHandlerController.php->processAjaxRequest(), I learned, that $this->prErr in my case is always NULL in 8.7.24 and 8.7.25. (I don't know if NULL is the expected/default value or some "negative side effect" in my case...)
The commit mentioned above extends the condition check by "|| $this->prErr === null" and therefore my $content['hasErrors'] is set to true by the whole code block:
if ($this->prErr || $this->prErr === null) {
$content['hasErrors'] = true;
$this->tce->printLogErrorMessages();
}
Before, in TYPO3 8.7.24, there was just "if ($this->prErr) {" and the NULL-case wasn't explicitly checked(?). So before, in 8.7.24 $content['hasErrors'] was false, and everything worked nicely.
I'm no expert with this stuff and I have very little experience with the TYPO3-core and what is going on there. Might be, that I overlooked something here. If this is not a general bug but an individual issue of my TYPO3 installation (which would be as bad), I'm sorry that I spammed the bugtracker. Just wanted to report my findings after some hours spent on this thing.
Any clarification (or help) is greatly appreciated.
Additional info
I can reproduce the problem on my dev machines, too. Problem occures on Ubuntu 18.04 (PHP 7.2.17) and on MacOS Mojave (PHP 7.3.0)
I tested it with Firefox and Chrome on Mac Mojave and Ubuntu 18.04.
I completely removed the contents of typo3temp and let the install tool recreate the missing folder structure there and checked that anything was "green" in the install tool (important actions section etc.)
Then I deactivated all my extensions (realurl, FAL secure download, news and also my 2 own extbase extensions): the problem still occured on 8.7.25.
When I additionally turned on "Debug Mode" in the install tool (Configuration presets), I couldn't find anything (helpful) in the logs. It just says: Record XY was updated. (Online). Changes in fields: hidden and everything is fine.
Regards (and thanks guys for your work on TYPO3)
Michael
Updated by Andreas Kienast over 5 years ago
- Status changed from New to Closed
Hi, thank you for report.
This issue is already known and has a bugfix pending. Please see #88309 and its linked patch on Gerrit.
I will close this ticket as a duplicate.
Updated by Andreas Kienast over 5 years ago
- Related to Bug #88309: Hiding pages in record list always fails added