From 804d562dda10ed06ab088f2e81e9c5a550f16bde Mon Sep 17 00:00:00 2001
From: Jamesb
Date: Sat, 24 Feb 2024 18:24:48 +0000
Subject: [PATCH] feat: clean up profile page and summary table
---
.../client/src/components/AccountDropdown.tsx | 4 +
packages/client/src/components/AdminPage.tsx | 29 ++--
packages/client/src/components/Homepage.tsx | 13 +-
.../client/src/components/ProfilePage.tsx | 127 ++++++++++--------
.../client/src/components/SettingsModal.tsx | 77 +++++++++++
.../migration.sql | 5 +
packages/server/prisma/schema.prisma | 2 +-
packages/server/src/lib/jobsPrisma.ts | 20 +++
packages/server/src/routers/adminRouter.ts | 43 ++++--
packages/server/src/tasks/worker.ts | 21 +--
10 files changed, 223 insertions(+), 118 deletions(-)
create mode 100644 packages/client/src/components/SettingsModal.tsx
create mode 100644 packages/server/prisma/migrations/20240224145230_delete_cascade_logs/migration.sql
diff --git a/packages/client/src/components/AccountDropdown.tsx b/packages/client/src/components/AccountDropdown.tsx
index 19623f9..0504459 100644
--- a/packages/client/src/components/AccountDropdown.tsx
+++ b/packages/client/src/components/AccountDropdown.tsx
@@ -4,6 +4,7 @@ import { logout } from "../lib/login";
import { useNavigate } from "react-router-dom";
import { z } from "zod";
import { UserModel } from "shared/src/schemas/user";
+import { SettingsModal } from "./SettingsModal";
interface AccountDropdownProps {
user: z.infer;
@@ -52,6 +53,9 @@ export const AccountDropdown = (props: AccountDropdownProps) => {
>
View Profile
+
diff --git a/packages/client/src/components/AdminPage.tsx b/packages/client/src/components/AdminPage.tsx
index b7cc466..5f8526f 100644
--- a/packages/client/src/components/AdminPage.tsx
+++ b/packages/client/src/components/AdminPage.tsx
@@ -31,7 +31,7 @@ export const AdminPage = () => {
// Fetch data immediately and then set up the interval
fetchData();
- const interval = setInterval(fetchData, 2000);
+ const interval = setInterval(fetchData, 5000);
// Clear interval on component unmount
return () => clearInterval(interval);
@@ -59,13 +59,8 @@ export const AdminPage = () => {
Username
- Created
+ Created At
- {
- //
- // Status
- //
- }
Tasks
@@ -82,7 +77,9 @@ export const AdminPage = () => {
{pipeline.username}
- {dayjs(pipeline.createdAt).fromNow()}
+
+ {dayjs(pipeline.createdAt).format("YY-MM-DD HH:mm:ss")}
+
{
//{pipeline.status}
}
@@ -118,7 +115,15 @@ export const AdminPage = () => {
{task.name}
- {dayjs(task.createdAt).fromNow()}
+ {
+ // mins since pipeline created
+ "+" +
+ dayjs(task.createdAt).diff(
+ dayjs(pipeline.createdAt),
+ "minute"
+ ) +
+ " mins"
+ }
{idx === 0 ? pipeline.status : task.status}
@@ -129,11 +134,7 @@ export const AdminPage = () => {
{task.logs
.filter((x) => x.level !== "debug")
.map((log, idx) => (
-
- {dayjs(log.createdAt).fromNow()}
- {" - "}
- {log.log}
-
+ {log.log}
))}
)}
diff --git a/packages/client/src/components/Homepage.tsx b/packages/client/src/components/Homepage.tsx
index e2e548c..700ce1b 100644
--- a/packages/client/src/components/Homepage.tsx
+++ b/packages/client/src/components/Homepage.tsx
@@ -51,18 +51,7 @@ export function Homepage(props: HomepageProps) {
- Changelog
-
- - 2024-01-21: Implement user profile and follower system.
- - 2024-01-14: Add API.
- - 2024-01-13: Add auth and server.
- -
- 2024-01-08: Integrate metaphor
- .
-
-
-
- Top Users:
+ Example Users: