From 28cde800d90f18db0a8efe7d8264aef462d74373 Mon Sep 17 00:00:00 2001 From: Matt Westcott Date: Sat, 30 Nov 2024 02:50:37 +0000 Subject: [PATCH] Correctly initialize page chooser search results for multiple selection --- .../entrypoints/admin/page-chooser-modal.js | 23 +++++++++++-------- wagtail/admin/views/chooser.py | 6 ++++- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/client/src/entrypoints/admin/page-chooser-modal.js b/client/src/entrypoints/admin/page-chooser-modal.js index 381bcc3074..a7ee3539f9 100644 --- a/client/src/entrypoints/admin/page-chooser-modal.js +++ b/client/src/entrypoints/admin/page-chooser-modal.js @@ -69,6 +69,16 @@ const PAGE_CHOOSER_MODAL_ONLOAD_HANDLERS = { $(this).data('timer', wait); }); + function updateMultipleChoiceSubmitEnabledState() { + // update the enabled state of the multiple choice submit button depending on whether + // any items have been selected + if ($('[data-multiple-choice-select]:checked', modal.body).length) { + $('[data-multiple-choice-submit]', modal.body).removeAttr('disabled'); + } else { + $('[data-multiple-choice-submit]', modal.body).attr('disabled', true); + } + } + /* Set up behaviour of choose-page links in the newly-loaded search results, to pass control back to the calling page */ function ajaxifySearchResults() { @@ -95,16 +105,11 @@ const PAGE_CHOOSER_MODAL_ONLOAD_HANDLERS = { modal.loadUrl(this.href); return false; }); - } - function updateMultipleChoiceSubmitEnabledState() { - // update the enabled state of the multiple choice submit button depending on whether - // any items have been selected - if ($('[data-multiple-choice-select]:checked', modal.body).length) { - $('[data-multiple-choice-submit]', modal.body).removeAttr('disabled'); - } else { - $('[data-multiple-choice-submit]', modal.body).attr('disabled', true); - } + updateMultipleChoiceSubmitEnabledState(); + $('[data-multiple-choice-select]', modal.body).on('change', () => { + updateMultipleChoiceSubmitEnabledState(); + }); } function ajaxifyBrowseResults() { diff --git a/wagtail/admin/views/chooser.py b/wagtail/admin/views/chooser.py index 8ec9dde8b9..66c5e63e79 100644 --- a/wagtail/admin/views/chooser.py +++ b/wagtail/admin/views/chooser.py @@ -408,7 +408,11 @@ class SearchView(View): @property def columns(self): cols = [ - PageTitleColumn("title", label=_("Title")), + PageTitleColumn( + "title", + label=_("Title"), + is_multiple_choice=self.is_multiple_choice, + ), ParentPageColumn("parent", label=_("Parent")), DateColumn( "updated",