Also move the insertion of the param to get_url_without_foo methods to avoid the param getting applied multiple times and to avoid having to parse the URL again.
Rename the filter_fragment to _w_filter_fragment to avoid clashes
- html+django snippets are not parsing correctly due to script usage, replace with simple text snippets
- Fix up incorrect link added in extending_client_side
Fixes #11420
Two issues existed;
1. Safari will not set `document.activeElement` as expected in all other browsers, instead, when a button is clicked it will keep the activeElement as `body`. This meant that the reset of the disabled button (before the confirm triggers a click) was not working.
2. Visually the button still had the loading spinner due to w-progress controller having triggered the loading visuals, this did not block the behaviour but looked broken.
See Safari behaviour docs:
- https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#clicking_and_focus
- https://bugs.webkit.org/show_bug.cgi?id=22261
When the page listing is in re-ordering mode, use the Table caption to provide a screen reader description.
This is more suitable instead of aria-describedby & builds on changes made in #11250
Following c51baf6d42 we have started seeing intermittent test failures on `wagtail.snippets.tests.test_bulk_actions.test_bulk_delete.TestSnippetDeleteView.test_after_bulk_action_hook` under Postgres: https://github.com/wagtail/wagtail/actions/runs/7624525647/job/20766838203
These failures seem to be because we were using `assertQuerysetEqual` to check the result of a database query that does not guarantee ordering. This result is in fact passed as a list rather than a queryset, so assertQuerysetEqual is not valid here. Instead, we compare the two lists as sets.
Additionally, this method is now named `assertQuerySetEqual` as of Django 4.2 (see https://docs.djangoproject.com/en/5.0/topics/testing/tools/#django.test.TransactionTestCase.assertQuerySetEqual) - update the valid uses of this elsewhere in the file.
All views that extend the generic BaseListingView (including generic
IndexView) along with its template should already be adjusted to have
the full-width table styles, so the pagination needs to have its own
nice-padding so it's not too far to the left/right.
Without this fix, the "other searches bar" will have the nice-padding
applied twice, making it appear too close to the centre.
Unfortunately, we have to use a new nice-padding wrapper instead of just
applying the class to the <ul>, because we apply the "unlist" mixin to
ul.listing which includes setting the left padding to 0 (and it beats
the specificity of a single .nice-padding class).
bulk-action-checkbox is the checkbox in the <td> elements. On page
listings, if you're searching and there are no results, the table will
still be displayed (to give you the option to search the whole site).
The table has no data rows, which means there are no elements with
bulk-action-checkbox class.
Change the selector to target the bulk-actions-filter-checkbox class
instead, which is the bulk action's <th> checkbox. This element (in the
header cell) is always available even when there are no results.
- Ensure that revisions also exclude the field as an initial revision is created on page creation
- Fixes #11428
- Fixes #10922
- See also #11323 & #11323
Regression in e801e6cec4 and 568256fb67
Dropdowns are now rendered using a <template> element from the server to
then be initialised by Tippy.js on the client. When the inline script in
_workflow_init.html runs (which is very early as it's inline), the
dropdown hasn't been rendered by Tippy, so the event listener can't be
attached.