Add accessible multi-feed selection with header actions and throttled batch move/delete in feed settings#3728
Conversation
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
b81f83f to
0edae25
Compare
There was a problem hiding this comment.
Pull request overview
Adds bulk feed management controls to the Feed settings modal, enabling multi-select and sequential (throttled) batch move/delete operations when no backend batch endpoints exist.
Changes:
- Introduces multi-feed selection UI (per-row checkboxes + select-all) and batch action controls (move/delete).
- Implements sequential, throttled batch move/delete flows with partial-failure reporting.
- Extends unit tests for new batch behaviors and updates the Unreleased changelog entry.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 6 comments.
| File | Description |
|---|---|
src/components/modals/FeedInfoTable.vue |
Adds selection UI, batch actions, throttling helper, and move/delete batch methods. |
tests/javascript/unit/components/modals/FeedInfoTable.spec.ts |
Adds unit tests covering select-all, batch move/delete, and error handling. |
CHANGELOG.md |
Documents the new bulk feed settings capability in Unreleased notes. |
|
@copilot respond to the review comments and fix the things |
Done in commit I addressed the requested review items:
|
|
Screencast_20260510_115227.webm |
|
@copilot fix the failing tests |
looks good, but you should consider using NcCheckboxRadioSwitch as checkbox, to fix styling with light/dark theme |
Fixed in I updated All frontend checks are passing now (
Implemented in Batch actions now switch the table header into a selection-action row (files-app style), and batch move reuses |
| @@ -39,6 +39,7 @@ import { ACTIONS } from '../store/index.ts' | |||
|
|
|||
| type MoveFeedState = { | |||
| folder?: Folder | |||
- show selection count and batch actions in the table header while feeds are selected - restore normal sortable headers when no feeds are selected - reuse MoveFeed dialog for bulk moves and remove inline batch folder select - throttle sequential batch move requests to avoid request bursts - keep modal/table dimensions stable when toggling selection to prevent visual jumps - retain indeterminate select-all state for partial selections Signed-off-by: Benjamin Brahmer <info@b-brahmer.de> Co-authored-by: Grotax <5429298+Grotax@users.noreply.github.com>
31d5a37 to
8baad25
Compare
Changed - Feed keyword filtering: hide articles matching keywords in title, body, or URL (#3711) New occ commands: ```bash news:feed:filter:get news:feed:filter:set news:feed:filter:delete ``` Added API v1-3 `GET|POST|DELETE /api/v1-3/feeds/{feedId}/filter` - Feed settings now support selecting multiple feeds and moving/deleting them in throttled, sequential requests. (#3728) - Replace `arthurhoaro/favicon` with `php-feed-io/favicon-io` for favicon discovery, using PSR-based HTTP interfaces and Symfony-backed discovery caching (#3710) Signed-off-by: Benjamin Brahmer <info@b-brahmer.de>


Summary
This PR adds bulk feed management in Feed settings by allowing users to select multiple feeds and run move/delete actions in one flow. Because the backend has no batch endpoints, operations are executed sequentially with a short delay between requests to avoid server overload.
Bulk selection in Feed settings
Batch move for selected feeds
MoveFeed.vuedialog for batch moves (instead of an always-visible folder select).Batch delete for selected feeds
Test coverage and changelog
FeedInfoTableunit tests for bulk selection, batch move/delete success and failure paths, and delay behavior.Checklist