Skip to content

Sc 115 add pagination to all tables that do not have it#873

Open
nbeatty-gpa wants to merge 52 commits into
masterfrom
SC-115-Add-pagination-to-all-tables-that-do-not-have-it
Open

Sc 115 add pagination to all tables that do not have it#873
nbeatty-gpa wants to merge 52 commits into
masterfrom
SC-115-Add-pagination-to-all-tables-that-do-not-have-it

Conversation

@nbeatty-gpa

@nbeatty-gpa nbeatty-gpa commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Adds pagination to tables, especially in "info" tabs


Jira Work Item(s)

  • SC-115

@nbeatty-gpa nbeatty-gpa requested a review from elwills June 10, 2026 19:59
@nbeatty-gpa nbeatty-gpa force-pushed the SC-115-Add-pagination-to-all-tables-that-do-not-have-it branch 3 times, most recently from 9b18228 to de09c01 Compare June 15, 2026 14:44
@elwills elwills requested a review from Copilot June 18, 2026 19:39

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds pagination support across multiple SystemCenter UI tables (especially “info”/detail tabs) by wiring table views to paged search endpoints and introducing/using paged APIs on the backend where needed.

Changes:

  • Add <Paging /> controls to many TSX table views and update sorting/page state handling.
  • Introduce/extend paged API endpoints for several resources (e.g., security group users, asset group members, asset connections/channels, location images).
  • Extend Redux/EventChannel slice state to support paged results and update store typing setup.

Reviewed changes

Copilot reviewed 31 out of 31 changed files in this pull request and generated 12 comments.

Show a summary per file
File Description
Source/Applications/SystemCenter/wwwroot/Scripts/TSX/SystemCenter/ValueListGroup/ValueListGroupItem.tsx Adds paging and server-side sort/page flow for value list items.
Source/Applications/SystemCenter/wwwroot/Scripts/TSX/SystemCenter/User/UserGroup/GroupUsers.tsx Switches group user listing to a paged backend endpoint and adds paging UI.
Source/Applications/SystemCenter/wwwroot/Scripts/TSX/SystemCenter/User/UserGroup/ByUserGroup.tsx Refactors to GenericController paged search and adds paging UI.
Source/Applications/SystemCenter/wwwroot/Scripts/TSX/SystemCenter/User/User/ByUser.tsx Refactors to GenericController paged search and adds paging UI.
Source/Applications/SystemCenter/wwwroot/Scripts/TSX/SystemCenter/Store/Store.ts Updates store typing and reducer composition structure.
Source/Applications/SystemCenter/wwwroot/Scripts/TSX/SystemCenter/Store/EventChannelSlice.ts Adds paged-search thunk/state/selectors for event channels.
Source/Applications/SystemCenter/wwwroot/Scripts/TSX/SystemCenter/RemoteXDA/RemoteMeterTab.tsx Adds paging support to remote meter table search results.
Source/Applications/SystemCenter/wwwroot/Scripts/TSX/SystemCenter/RemoteXDA/RemoteAssetTab.tsx Adds paging support to remote asset table search results.
Source/Applications/SystemCenter/wwwroot/Scripts/TSX/SystemCenter/Meter/MeterTrendChannel.tsx Adds paging to trend channel table.
Source/Applications/SystemCenter/wwwroot/Scripts/TSX/SystemCenter/Meter/MeterEventChannel.tsx Adds paging to event channel table using new paged slice data.
Source/Applications/SystemCenter/wwwroot/Scripts/TSX/SystemCenter/Meter/ChannelScaling/ChannelScalingForm.tsx Adds client-side paging for scaling wrappers table.
Source/Applications/SystemCenter/wwwroot/Scripts/TSX/SystemCenter/Location/LocationImages.tsx Adds paging UI for location image lists and updates API call shape.
Source/Applications/SystemCenter/wwwroot/Scripts/TSX/SystemCenter/ExternalDB/ExternalDBTables.tsx Adds paging UI and paged search for external DB tables listing.
Source/Applications/SystemCenter/wwwroot/Scripts/TSX/SystemCenter/ExternalDB/ExternalDBTableFields.tsx Moves additional-field table to paged backend query and adds paging UI.
Source/Applications/SystemCenter/wwwroot/Scripts/TSX/SystemCenter/Customer/CustomerMeter.tsx Switches customer meter listing to paged search and adds paging UI.
Source/Applications/SystemCenter/wwwroot/Scripts/TSX/SystemCenter/Customer/CustomerAsset.tsx Switches customer asset listing to paged search and adds paging UI.
Source/Applications/SystemCenter/wwwroot/Scripts/TSX/SystemCenter/CommonComponents/ExternalDBUpdate.tsx Updates UI message strings during external DB updates.
Source/Applications/SystemCenter/wwwroot/Scripts/TSX/SystemCenter/ChannelGroup/ChannelGroupItem.tsx Adds paging and server-side sort/page flow for channel group details.
Source/Applications/SystemCenter/wwwroot/Scripts/TSX/SystemCenter/AssetGroups/MeterAssetGroup.tsx Adds paging UI and paged backend calls for meters in an asset group.
Source/Applications/SystemCenter/wwwroot/Scripts/TSX/SystemCenter/AssetGroups/ByAssetGroup.tsx Adds paging UI and paged searching for asset group listing.
Source/Applications/SystemCenter/wwwroot/Scripts/TSX/SystemCenter/AssetGroups/AssetGroupAssetGroup.tsx Adds paging UI and paged backend calls for subgroups in an asset group.
Source/Applications/SystemCenter/wwwroot/Scripts/TSX/SystemCenter/AssetGroups/AssetAssetGroup.tsx Adds paging UI and paged backend calls for assets in an asset group.
Source/Applications/SystemCenter/wwwroot/Scripts/TSX/SystemCenter/Asset/AssetMeter.tsx Adds paging UI and paged backend calls for meters tied to an asset.
Source/Applications/SystemCenter/wwwroot/Scripts/TSX/SystemCenter/Asset/AssetLocation.tsx Adds paging UI and paged backend calls for locations tied to an asset.
Source/Applications/SystemCenter/wwwroot/Scripts/TSX/SystemCenter/Asset/AssetConnection.tsx Adds paging UI and paged backend calls for asset connections.
Source/Applications/SystemCenter/wwwroot/Scripts/TSX/SystemCenter/Asset/AssetChannel.tsx Adds paging UI and paged backend calls for connected channels.
Source/Applications/SystemCenter/wwwroot/Scripts/TSX/SystemCenter/AdditionalFields/ByAdditionalField.tsx Uses paged status/results and adds paging-aware sorting.
Source/Applications/SystemCenter/Model/Security/SecurityGroup.cs Adds paged users endpoint for security groups.
Source/Applications/SystemCenter/Controllers/OpenXDA/OpenXDALocationController.cs Adds paged location images endpoint and paging helper.
Source/Applications/SystemCenter/Controllers/OpenXDA/Assets/OpenXDAAssetController.cs Adds paged endpoints for asset locations/meters/connections/channels.
Source/Applications/SystemCenter/Controllers/OpenXDA/AssetGroups/OpenXDAAssetGroupsController.cs Adds paged endpoints for asset group members and subgroups.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 71 to 74
React.useEffect(() => {
if (status == 'uninitiated' || status == 'changed' || parentID != props.Record.ID)
dispatch(ValueListSlice.Fetch(props.Record.ID));
if (status == 'uninitiated' || status == 'changed')
dispatch(ValueListSlice.PagedSearch({ filter: [], sortField: 'SortOrder', ascending: true, page: 0 }));
}, [status, parentID, props.Record.ID]);
Comment on lines 69 to +72
React.useEffect(() => {
let handle = getAssetConnections();
return () => { if (handle != null || handle.abort != null) handle.abort();}
}, [props.ID, trigger])
}, [props.ID, trigger, page, sortKey, ascending])
Comment on lines +55 to +57
const getData = React.useCallback(() => {
dispatch(CustomerAssetSlice.PagedSearch({ filter: [], sortField, ascending, page }))
}, [sortField, ascending, page, CustomerAssetSlice.PagedSearch])
Comment on lines +146 to +148
HAVING AssetAssetGroup.AssetGroupID = {{0}}
ORDER BY {postData.OrderBy} {(postData.Ascending ? "ASC" : "DESC")}
";
Comment on lines +251 to +254
WHERE
ParentID = {{0}} OR ChildID = {{0}}
ORDER BY {postData.OrderBy} {(postData.Ascending ? "ASC" : "DESC")}
", assetID);
Comment on lines +86 to +89
if (postData.Ascending)
records = records.OrderBy(record => record.GetType().GetProperty(postData.OrderBy).GetValue(record));
else
records = records.OrderByDescending(record => record.GetType().GetProperty(postData.OrderBy).GetValue(record));
Comment on lines +308 to +310
HAVING MeterAssetGroup.AssetGroupID = {{0}}
ORDER BY {postData.OrderBy} {(postData.Ascending ? "ASC" : "DESC")}
";
@nbeatty-gpa nbeatty-gpa force-pushed the SC-115-Add-pagination-to-all-tables-that-do-not-have-it branch from 73a24e6 to 3d7977f Compare June 19, 2026 17:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants