- Issue created by @bnjmnm
- ๐บ๐ธUnited States tedbow Ithaca, NY, USA
This causes the problem in ๐ Exceptions in batch no longer are shown on the page: Javascript error Fixed
- ๐บ๐ธUnited States tedbow Ithaca, NY, USA
I put a fix in ๐ Exceptions in batch no longer are shown on the page: Javascript error Fixed . This doesn't solve the problem of the library requiring the status_messages render element but it does allow putting that render element on the page without it automatically rendering the service side messages.
The needs of the batch page is that messages the server knows about should not get rendered on this page but if there are ajax calls that results in errors these should be rendered on the page(at least to keep the pre-existing functionality).
Tagging this as Automatic Updates Initiative because we need have error messages on the batch page for Automatic Updates. Otherwise if we did beta testing and users couldn't easily see these error the testing would be much less useful.
So we could solve in the way I did in ๐ Exceptions in batch no longer are shown on the page: Javascript error Fixed or another way here or maybe a temp fix in the AutoUpdates module itself would be ok like we did here ๐ Ensure that errors are shown on form updates in core 10.1.x Fixed
In any case we have to solve it someway to get Automatic Updates into core so bumping this to Major
- ๐ฉ๐ชGermany Anybody Porta Westfalica
Funny, just ran into this and saw you recently commented ;D
It's not yet totally clear to me yet, what the change was, that caused this. Technically, we need
[data-drupal-messages]
or[data-drupal-messages]
to be present on the page. But if not, it should be added by JS?My concern with other solutions is, that they may also rely on custom configuration or theme implementations, which we can't really rely on?
- ๐ฌ๐งUnited Kingdom Rob230
I think I am seeing this too, in Drupal 10. When running a migration, if it tries to output a message (e.g. an error), it causes the batch page to break due to a console error: wrapper is null.
static defaultWrapper() { let wrapper = document.querySelector('[data-drupal-messages]'); if (!wrapper) { wrapper = document.querySelector('[data-drupal-messages-fallback]'); wrapper.removeAttribute('data-drupal-messages-fallback'); wrapper.setAttribute('data-drupal-messages', ''); wrapper.classList.remove('hidden'); } return wrapper.innerHTML === '' ? Drupal.Message.messageInternalWrapper(wrapper) : wrapper.firstElementChild; }
There is no such element on the page with data-drupal-messages or data-drupal-messages-fallback attributes. I would guess the error was introduced in #77245: Provide a common API for displaying JavaScript messages โ .
- First commit to issue fork.
- Merge request !8294Created a fallback element in js if it does not exist โ (Open) created by Utkarsh_33
- Status changed to Needs review
21 days ago 8:45am 5 June 2024 - Status changed to Needs work
20 days ago 11:46am 5 June 2024 - Status changed to Needs review
20 days ago 8:38am 6 June 2024 - Status changed to Needs work
19 days ago 12:15pm 6 June 2024 - Status changed to Needs review
19 days ago 4:33am 7 June 2024 - Status changed to Needs work
13 days ago 2:38pm 12 June 2024 - ๐บ๐ธUnited States smustgrave
Could the issue summary be updated some please. Mainly proposed solution. Assuming not a UI or Data model change.
Also tagging for tests as mentioned in the summary
wasn't notice because there not tests for errors showing up on the batch page
Also
core/modules/system/tests/src/FunctionalJavascript/Batch/ProcessingTest.php
test was added in https://www.drupal.org/project/drupal/issues/3406612 ๐ Exceptions in batch no longer are shown on the page: Javascript error Fixed issue with a temporary fix which is now removed and replaced with a concrete JS fix.
If Still there is a requirement for adding test I am happy to do that.- Status changed to Needs review
13 days ago 7:48am 13 June 2024 - Status changed to RTBC
12 days ago 2:13pm 13 June 2024 - ๐บ๐ธUnited States smustgrave
So if I understand correctly this is more about refactoring a temporary solution into a better one, in that case believe task is probably more right category.
Removed the tests tag per #18, if this solution isn't doing anything new then agree probably doesn't need additional coverage.
Thanks for updating the issue summary removing that tag.
Looking at the change and update seems simple enough and didn't break any existing coverage.
- Status changed to Needs work
5 days ago 9:50pm 20 June 2024 - ๐ซ๐ทFrance nod_ Lille
Couple of things to simplify then it's good to go, thanks!
- ๐ฎ๐ณIndia Gauravvv Delhi, India
Gauravvvv โ made their first commit to this issueโs fork.
- Status changed to Needs review
5 days ago 3:43am 21 June 2024 - Status changed to Needs work
5 days ago 4:07am 21 June 2024 - ๐ซ๐ทFrance nod_ Lille
you need to keep
wrapper.removeAttribute('data-drupal-messages-fallback'); wrapper.setAttribute('data-drupal-messages', '');
outside the
if (!wrapper)