Users grouping improvements#4331
Merged
Merged
Conversation
Contributor
|
Tick the box to add this pull request to the merge queue (same as
|
Contributor
There was a problem hiding this comment.
Pull request overview
Improves the Users → User Groups kanban experience by making group membership changes feel instant (optimistic UI + per-user pending state), while also tightening record qualifier enforcement logic on the server to correctly account for “pending” node changes and code-typed qualifier values.
Changes:
- Webapp: switch group drag-and-drop to optimistic membership updates and disable re-drag while a user’s change is in-flight.
- Server: update qualifier matching to consider a request “pendingNode” without mutating the record’s node index, and align behavior for missing/empty qualifier nodes.
- Records list query + tests: fix qualifier SQL params for code nodeDefs and extend unit tests for pendingNode qualifier evaluation.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| webapp/views/App/views/Users/UserGroupsOverview/UserGroupsSummary/useUserGroupsSummary.ts | Implements optimistic user→group mapping updates, pending tracking, and error notifications. |
| webapp/views/App/views/Users/UserGroupsOverview/UserGroupsSummary/useUserGroupsKanbanDnd.ts | Removes reload fallback and relies on optimistic state + rollback to reconcile DOM after DnD. |
| webapp/views/App/views/Users/UserGroupsOverview/UserGroupsSummary/UserGroupsSummary.tsx | Wires pending set through the summary component and removes reload usage. |
| webapp/views/App/views/Users/UserGroupsOverview/UserGroupsSummary/UserGroupsSummary.scss | Adds pending visual styling for user cards. |
| webapp/views/App/views/Users/UserGroupsOverview/UserGroupsSummary/UserGroupColumn.tsx | Disables dragging for pending users and passes pending flag to cards. |
| webapp/views/App/views/Users/UserGroupsOverview/UserGroupsSummary/UserCard.tsx | Adds pending rendering state and class composition. |
| test/unit/tests/035recordQualifierMatcher.test.js | Adds coverage for qualifier matching with missing/empty qualifier nodes and pendingNode overlays. |
| server/modules/record/repository/recordRepository.js | Fixes qualifier filter SQL param value extraction for code nodeDefs. |
| server/modules/record/manager/_recordManager/recordQualifierMatcher.js | Adds pendingNode-aware qualifier evaluation and updated semantics for missing/empty qualifier nodes. |
| server/modules/record/api/recordQualifierMiddleware.js | Stops mutating record via Record.assocNode and passes pendingNode through to the matcher. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
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.



No description provided.