diff --git a/CHANGELOG.md b/CHANGELOG.md index 30809e8..f2bfdd1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Replaced project card grid with sortable data table on Home page for better handling of large project lists - Replaced package card grid with sortable data table on Project page for consistency - Replaced SortDropdown with table header sorting on Package page for consistency +- Enabled sorting on all table columns (except description) across Home, Project, and Package pages +- Updated browser tab title to "Orchard" with custom favicon - Improved pod naming: Orchard pods now named `orchard-{env}-server-*` for clarity (#51) ### Fixed diff --git a/frontend/index.html b/frontend/index.html index b14dd1b..33af6ba 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -2,9 +2,9 @@ - + - Orchard - Content-Addressable Storage + Orchard
diff --git a/frontend/public/orchard.svg b/frontend/public/orchard.svg new file mode 100644 index 0000000..bd09b79 --- /dev/null +++ b/frontend/public/orchard.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/frontend/src/pages/Home.tsx b/frontend/src/pages/Home.tsx index fb6aeab..4f11592 100644 --- a/frontend/src/pages/Home.tsx +++ b/frontend/src/pages/Home.tsx @@ -234,6 +234,7 @@ function Home() { { key: 'visibility', header: 'Visibility', + sortable: true, render: (project) => ( {project.is_public ? 'Public' : 'Private'} @@ -243,6 +244,7 @@ function Home() { { key: 'created_by', header: 'Owner', + sortable: true, className: 'cell-owner', render: (project) => project.created_by, }, diff --git a/frontend/src/pages/PackagePage.tsx b/frontend/src/pages/PackagePage.tsx index d397e0f..ad523d8 100644 --- a/frontend/src/pages/PackagePage.tsx +++ b/frontend/src/pages/PackagePage.tsx @@ -193,20 +193,23 @@ function PackagePage() { ), }, { - key: 'size', + key: 'artifact_size', header: 'Size', + sortable: true, render: (t: TagDetail) => {formatBytes(t.artifact_size)}, }, { - key: 'content_type', + key: 'artifact_content_type', header: 'Type', + sortable: true, render: (t: TagDetail) => ( {t.artifact_content_type || '-'} ), }, { - key: 'original_name', + key: 'artifact_original_name', header: 'Filename', + sortable: true, className: 'cell-truncate', render: (t: TagDetail) => ( {t.artifact_original_name || '-'} diff --git a/frontend/src/pages/ProjectPage.tsx b/frontend/src/pages/ProjectPage.tsx index 75ad577..7239d95 100644 --- a/frontend/src/pages/ProjectPage.tsx +++ b/frontend/src/pages/ProjectPage.tsx @@ -327,21 +327,25 @@ function ProjectPage() { { key: 'format', header: 'Format', + sortable: true, render: (pkg) => {pkg.format}, }, { - key: 'tags', + key: 'tag_count', header: 'Tags', + sortable: true, render: (pkg) => pkg.tag_count ?? '—', }, { - key: 'artifacts', + key: 'artifact_count', header: 'Artifacts', + sortable: true, render: (pkg) => pkg.artifact_count ?? '—', }, { - key: 'size', + key: 'total_size', header: 'Size', + sortable: true, render: (pkg) => pkg.total_size !== undefined && pkg.total_size > 0 ? formatBytes(pkg.total_size) : '—', },