Issue #3612925: Support non-default VBO field IDs in select-all

Closes #3612925

Summary

Updates the “Select / deselect all results” handler to find VBO row checkboxes through VBO’s existing .js-vbo-checkbox class.

The previous selector depended on the VBO field having the exact Views field ID views_bulk_operations_bulk_form. When the same VBO field plugin was stored under another valid field ID, the handler found no row checkboxes.

Changes

  • Replace the hard-coded Views wrapper selector with .js-vbo-checkbox.
  • Add FunctionalJavascript coverage for:
    • a one-page View with a non-default VBO field ID;
    • a multipage View with a non-default VBO field ID.

Testing

Before the fix:

  • the all-results checkbox becomes checked;
  • on a multipage View, VBO reports all results as selected;
  • the visible row checkboxes remain unchecked.

With the fix applied:

Tests: 2, Assertions: 58

The following checks also pass:

git diff --check
node --check js/frontUi.js
php -l tests/src/FunctionalJavascript/ViewsBulkOperationsBulkFormTest.php
phpcs --standard=Drupal tests/src/FunctionalJavascript/ViewsBulkOperationsBulkFormTest.php

AI disclosure

AI was used in preparing this merge request. ChatGPT assisted with code inspection, drafting the regression tests and fix, running local tests through a user-controlled shell tool, and reviewing the written explanation.

I reviewed and corrected the work, manually reproduced both the one-page and multipage failures, verified the tests and behaviour before and after the fix, and take responsibility for the submitted code.

Merge request reports

Loading