Conversation
Adds a search bar to the observation list and filter dialogs for observations and user locations. Observations can be filtered by keyword, time range, team or member, attachments, favorites, important, and per-field conditions. People can be filtered by time range and team or member. Both lists show their active filters, result count and paging, and recover from failed searches with a retry. The filters also apply to the map, and the export page reuses the keyword and condition filters. Client - New observation filter dialog, user location filter dialog and search bar, replacing the old filter component. They are standalone, use control flow and signals with OnPush, and follow Material 3. - EventService and FilterService drive the map, list page and locations from triggers with per-fetch teardown, so switching events or destroying the service drops late responses instead of applying them. - The member filter takes an event id, teams and an initial filter, owns its chips after init and clears them when the event changes. - Flagging as important and favoriting update the list immediately instead of waiting for the next poll. - A new export starts from the current observation and location filters, including attachments, favorites, important, keyword and condition. - The observation, people, feed and export panels share the same backgrounds, toolbar colors, and empty state icons and text. The export detail toolbar holds the download and delete actions. - Type the map layers, user locations and observation entities shared by these components, and remove the unused follow inputs on the people list. Server - Exports keep both the keyword and the condition when both are sent, and drop the filter when neither is. - Favorite and important updates populate the same user fields as the read path, so responses match what the list expects. - Document the known team-scoping gap in resolveUserIsAnyOf. Tests - New specs for the dialogs, search bar, date/time picker, field filter and observation page updates, plus expanded specs for the map, filter and event services, local storage, sidebar, navigation, user list and export create. - web-app 1465 passing, service 1235 passing (55 pending).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a search bar to the observation list and filter dialogs for observations and user locations.
Both lists show their active filters, result count and paging, and recover from failed searches with a retry. The filters also apply to the map, and the export page reuses the keyword and condition filters.
Changes
Client
EventServiceandFilterServicedrive the map, list page and locations from triggers with per-fetch teardown, so switching events or destroying the service drops late responses instead of applying them.Server
resolveUserIsAnyOf.Known gaps
resolveUserIsAnyOfdoes not check that a team id belongs to the event (documented in code).EventServiceandMapServiceremain. Replacing them with observables is planned for a later PR.