[PR #867] [MERGED] Fix - Sort Data In/Out correctly in Sites Management page in the Pangolin Dashboard #2343

Closed
opened 2026-04-16 09:21:15 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/fosrl/pangolin/pull/867
Author: @thijsvanloef
Created: 6/7/2025
Status: Merged
Merged: 6/9/2025
Merged by: @oschwartz10612

Base: devHead: fix-767/unit-aware-sorting


📝 Commits (3)

  • 26207bd add datasize helper and add correct sorting to sitestable
  • f2e461a improve readability
  • 96151de improve readability

📊 Changes

2 files changed (+28 additions, -2 deletions)

View changed files

📝 src/app/[orgId]/settings/sites/SitesTable.tsx (+7 -2)
src/lib/dataSize.ts (+21 -0)

📄 Description

Community Contribution License Agreement

By creating this pull request, I grant the project maintainers an unlimited,
perpetual license to use, modify, and redistribute these contributions under any terms they
choose, including both the AGPLv3 and the Fossorial Commercial license terms. I
represent that I have the right to grant this license for all contributed content.

Description

Fixes https://github.com/fosrl/pangolin/issues/767
Data Out and Data In sorting option in the "Manage Sites" tab does not actually seem to be sorting on most data in/out based on total number of bytes, but it will try to sort it as text (Str).

The solution is to parse each size string to a numeric value (in bytes) and compare those numbers:

  • Added a parseDataSize helper that splits off the numeric part and unit from the string and converts it to a consistent number (bytes)
  • Added sortingFn to the SitesTable.tsx to correctly sort the data in/out.

As you can see the table now sorts correctly!

image

Fix Considerations

I've decided to put the parseDataSize function as a shared module, this makes it more reusable if the maintainers of this project decide to use any other table or component that needs to sort or compare data-size strings.
Adding it to only the SitesTable.tsx seemed a fine fix for now, but could lead to duplicate code if it is needed elsewhere in the project.

How to test?

  1. Clone the branch
  2. Create a dev instance by following the https://docs.fossorial.io/development#pangolin docs.
  3. Go to the sites overview in the pangolin dashboard.
  4. Click on the sorting button above Data In or Data Out
  5. Check if the Data In/Out is sorted on total number of bytes instead of as a string.

I'm not super used to Typescript, so please let me know if you would like things changed :)


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/fosrl/pangolin/pull/867 **Author:** [@thijsvanloef](https://github.com/thijsvanloef) **Created:** 6/7/2025 **Status:** ✅ Merged **Merged:** 6/9/2025 **Merged by:** [@oschwartz10612](https://github.com/oschwartz10612) **Base:** `dev` ← **Head:** `fix-767/unit-aware-sorting` --- ### 📝 Commits (3) - [`26207bd`](https://github.com/fosrl/pangolin/commit/26207bd9511691c6bb9551eb8bc22fec0f060600) add datasize helper and add correct sorting to sitestable - [`f2e461a`](https://github.com/fosrl/pangolin/commit/f2e461a1ee2827de148083bec21015281daaa70b) improve readability - [`96151de`](https://github.com/fosrl/pangolin/commit/96151de814459a420e0c94a81226190f48767c0e) improve readability ### 📊 Changes **2 files changed** (+28 additions, -2 deletions) <details> <summary>View changed files</summary> 📝 `src/app/[orgId]/settings/sites/SitesTable.tsx` (+7 -2) ➕ `src/lib/dataSize.ts` (+21 -0) </details> ### 📄 Description ## Community Contribution License Agreement By creating this pull request, I grant the project maintainers an unlimited, perpetual license to use, modify, and redistribute these contributions under any terms they choose, including both the AGPLv3 and the Fossorial Commercial license terms. I represent that I have the right to grant this license for all contributed content. ## Description Fixes https://github.com/fosrl/pangolin/issues/767 Data Out and Data In sorting option in the "Manage Sites" tab does not actually seem to be sorting on most data in/out based on total number of bytes, but it will try to sort it as text (Str). The solution is to parse each size string to a numeric value (in bytes) and compare those numbers: - Added a `parseDataSize` helper that splits off the numeric part and unit from the string and converts it to a consistent number (bytes) - Added `sortingFn` to the `SitesTable.tsx` to correctly sort the data in/out. As you can see the table now sorts correctly! ![image](https://github.com/user-attachments/assets/f9a69d72-9917-4540-b0c4-35af2bfca1f1) ## Fix Considerations I've decided to put the `parseDataSize` function as a shared module, this makes it more reusable if the maintainers of this project decide to use any other table or component that needs to sort or compare data-size strings. Adding it to only the `SitesTable.tsx` seemed a fine fix for now, but could lead to duplicate code if it is needed elsewhere in the project. ## How to test? 1. Clone the branch 2. Create a dev instance by following the https://docs.fossorial.io/development#pangolin docs. 3. Go to the sites overview in the pangolin dashboard. 4. Click on the sorting button above Data In or Data Out 5. Check if the Data In/Out is sorted on total number of bytes instead of as a string. I'm not super used to Typescript, so please let me know if you would like things changed :) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-04-16 09:21:15 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/pangolin#2343