From 018e35282079fd86654de02168c41ad11e9e8535 Mon Sep 17 00:00:00 2001 From: Mondo Diaz Date: Wed, 28 Jan 2026 15:45:46 +0000 Subject: [PATCH] Change projects display to table view in team dashboard --- frontend/src/pages/TeamDashboardPage.css | 138 +++++++++++++---------- frontend/src/pages/TeamDashboardPage.tsx | 96 +++++++++------- 2 files changed, 133 insertions(+), 101 deletions(-) diff --git a/frontend/src/pages/TeamDashboardPage.css b/frontend/src/pages/TeamDashboardPage.css index 452c632..32ad5da 100644 --- a/frontend/src/pages/TeamDashboardPage.css +++ b/frontend/src/pages/TeamDashboardPage.css @@ -84,74 +84,88 @@ font-size: 1.25rem; } -.projects-grid { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); - gap: 1rem; -} - -.project-card { - background: var(--color-bg-secondary); +/* Projects Table */ +.projects-table-container { + background: var(--color-bg); border: 1px solid var(--color-border); border-radius: var(--radius-md); - transition: all 0.15s ease; - display: flex; - flex-direction: column; -} - -.project-card:hover { - border-color: var(--color-border-hover); - box-shadow: var(--shadow-sm); -} - -.project-card-clickable { - padding: 1rem; - cursor: pointer; - flex: 1; -} - -.project-card-actions { - padding: 0.75rem 1rem; - border-top: 1px solid var(--color-border); - display: flex; - justify-content: flex-end; - gap: 0.5rem; -} - -.project-card-actions .btn { - display: inline-flex; - align-items: center; - gap: 0.375rem; -} - -.project-card-header { - display: flex; - justify-content: space-between; - align-items: flex-start; - gap: 0.75rem; - margin-bottom: 0.5rem; -} - -.project-card-header h3 { - margin: 0; - font-size: 1rem; - font-weight: 600; -} - -.project-card-description { - margin: 0 0 0.75rem; - font-size: 0.875rem; - color: var(--color-text-secondary); - line-height: 1.4; - display: -webkit-box; - -webkit-line-clamp: 2; - -webkit-box-orient: vertical; overflow: hidden; } -.project-card-meta { - font-size: 0.8125rem; +.projects-table { + width: 100%; + border-collapse: collapse; +} + +.projects-table th { + text-align: left; + padding: 0.75rem 1rem; + font-size: 0.75rem; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.05em; color: var(--color-text-muted); + background: var(--color-bg-secondary); + border-bottom: 1px solid var(--color-border); +} + +.projects-table td { + padding: 0.75rem 1rem; + font-size: 0.875rem; + border-bottom: 1px solid var(--color-border); + vertical-align: middle; +} + +.projects-table tbody tr:last-child td { + border-bottom: none; +} + +.project-row { + cursor: pointer; + transition: background 0.1s ease; +} + +.project-row:hover { + background: var(--color-bg-secondary); +} + +.project-name-link { + font-weight: 500; + color: var(--color-text); + text-decoration: none; +} + +.project-name-link:hover { + color: var(--color-primary); +} + +.project-description-cell { + color: var(--color-text-secondary); + max-width: 300px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.text-muted { + color: var(--color-text-muted); +} + +.actions-cell { + width: 48px; + text-align: right; +} + +.btn-ghost { + background: transparent; + color: var(--color-text-muted); + border: none; + padding: 0.375rem; +} + +.btn-ghost:hover { + background: var(--color-bg-tertiary); + color: var(--color-text); } .section-footer { diff --git a/frontend/src/pages/TeamDashboardPage.tsx b/frontend/src/pages/TeamDashboardPage.tsx index 1137334..9c6d97a 100644 --- a/frontend/src/pages/TeamDashboardPage.tsx +++ b/frontend/src/pages/TeamDashboardPage.tsx @@ -214,45 +214,63 @@ function TeamDashboardPage() { )} ) : ( -
- {projects?.items.map(project => ( -
-
navigate(`/project/${project.name}`)}> -
-

{project.name}

- - {project.is_public ? 'Public' : 'Private'} - -
- {project.description && ( -

{project.description}

- )} -
- Created by {project.created_by} -
-
- {isAdminOrOwner && ( -
- -
- )} -
- ))} +
+ + + + + + + + {isAdminOrOwner && } + + + + {projects?.items.map(project => ( + navigate(`/project/${project.name}`)} + > + + + + + {isAdminOrOwner && ( + + )} + + ))} + +
NameDescriptionVisibilityCreated By
+ e.stopPropagation()} + > + {project.name} + + + {project.description || } + + + {project.is_public ? 'Public' : 'Private'} + + {project.created_by} + +
)}