diff --git a/Data/Engine/web-interface/src/Access_Management/Credential_List.jsx b/Data/Engine/web-interface/src/Access_Management/Credential_List.jsx
index 0e0e5184..1ad69d93 100644
--- a/Data/Engine/web-interface/src/Access_Management/Credential_List.jsx
+++ b/Data/Engine/web-interface/src/Access_Management/Credential_List.jsx
@@ -8,6 +8,7 @@ import {
Paper,
Typography,
CircularProgress,
+ Stack,
} from "@mui/material";
import MoreVertIcon from "@mui/icons-material/MoreVert";
import AddIcon from "@mui/icons-material/Add";
@@ -310,6 +311,53 @@ export default function CredentialList({ isAdmin = false, onPageMetaChange }) {
return (
<>
+
+
+ }
+ sx={{
+ borderColor: "rgba(148,163,184,0.4)",
+ color: "#e2e8f0",
+ textTransform: "none",
+ borderRadius: 999,
+ px: 1.9,
+ minWidth: 112,
+ backgroundColor: "rgba(12,18,35,0.85)",
+ "&:hover": {
+ borderColor: "rgba(125,211,252,0.85)",
+ backgroundColor: "rgba(16,24,44,0.95)",
+ },
+ }}
+ onClick={fetchCredentials}
+ disabled={loading}
+ >
+ Refresh
+
+ }
+ sx={{
+ ...gradientButtonSx,
+ minWidth: 150,
+ }}
+ onClick={handleCreate}
+ >
+ New Credential
+
+
+
+
-
-
- }
- sx={{
- borderColor: "rgba(148,163,184,0.35)",
- color: "#e2e8f0",
- textTransform: "none",
- borderRadius: 999,
- px: 1.7,
- minWidth: 86,
- "&:hover": { borderColor: "rgba(148,163,184,0.55)" },
- }}
- onClick={fetchCredentials}
- disabled={loading}
- >
- Refresh
-
- }
- sx={gradientButtonSx}
- onClick={handleCreate}
- >
- New Credential
-
-
-
{loading && (
-
-
+ {/* Page-level action button (floating top-right) */}
+
+
+
+
diff --git a/Data/Engine/web-interface/src/Admin/Log_Management.jsx b/Data/Engine/web-interface/src/Admin/Log_Management.jsx
index 77bc82f0..a71cb88c 100644
--- a/Data/Engine/web-interface/src/Admin/Log_Management.jsx
+++ b/Data/Engine/web-interface/src/Admin/Log_Management.jsx
@@ -359,8 +359,32 @@ const defaultColDef = useMemo(
flexDirection: "column",
}}
>
+
+
+ }
+ onClick={() => {
+ fetchLogs();
+ if (selectedFile) fetchEntries(selectedFile);
+ }}
+ sx={{ ...gradientButtonSx, minWidth: 112 }}
+ >
+ Refresh
+
+
+
+
{!useGlobalHeader && (
-
+
Log Management
-
-
- }
- onClick={() => {
- fetchLogs();
- if (selectedFile) fetchEntries(selectedFile);
- }}
- sx={gradientButtonSx}
- >
- Refresh
-
-
Analyze engine logs and adjust log retention periods for different engine services.
)}
- {useGlobalHeader && (
-
- }
- onClick={() => {
- fetchLogs();
- if (selectedFile) fetchEntries(selectedFile);
- }}
- sx={gradientButtonSx}
- >
- Refresh
-
-
- )}
{error && (
@@ -425,8 +420,8 @@ const defaultColDef = useMemo(
sx={{
width: 360,
p: 3,
- borderRight: `1px solid ${AURORA_SHELL.border}`,
- bgcolor: "rgba(3,7,18,0.7)",
+ borderRight: "none",
+ bgcolor: "transparent",
display: "flex",
flexDirection: "column",
gap: 2,
@@ -646,9 +641,32 @@ const defaultColDef = useMemo(
value={gridMode}
onChange={(_, val) => val && setGridMode(val)}
sx={{
- backgroundColor: "rgba(0,0,0,0.25)",
- borderRadius: 999,
- p: 0.2,
+ background: "rgba(9,14,25,0.9)",
+ borderRadius: 1,
+ border: `1px solid ${AURORA_SHELL.border}`,
+ boxShadow: "0 14px 32px rgba(2,6,23,0.55)",
+ overflow: "hidden",
+ "& .MuiToggleButton-root": {
+ textTransform: "none",
+ color: "#dce7f5",
+ border: "none",
+ px: 2.8,
+ py: 1,
+ fontWeight: 700,
+ fontSize: 13,
+ letterSpacing: 0.1,
+ transition: "all 0.18s ease",
+ backgroundColor: "#0f1627",
+ "&:hover": { backgroundColor: "rgba(148,163,184,0.14)" },
+ "&.Mui-selected": {
+ color: "#0c1224",
+ backgroundImage: "linear-gradient(135deg,#7fc9ff 0%,#b195ff 100%)",
+ boxShadow: "0 10px 24px rgba(124,58,237,0.4)",
+ },
+ "&.Mui-selected:hover": {
+ backgroundImage: "linear-gradient(135deg,#8bd8ff 0%,#c0a8ff 100%)",
+ },
+ },
}}
>
@@ -702,8 +720,8 @@ const defaultColDef = useMemo(
flexGrow: 1,
minHeight: 0,
borderRadius: 2,
- border: `1px solid ${AURORA_SHELL.border}`,
- bgcolor: "rgba(5,7,15,0.85)",
+ border: "none",
+ bgcolor: "transparent",
overflow: "hidden",
}}
>
diff --git a/Data/Engine/web-interface/src/Admin/Page_Template.jsx b/Data/Engine/web-interface/src/Admin/Page_Template.jsx
index 51edace3..dbc6c0e2 100644
--- a/Data/Engine/web-interface/src/Admin/Page_Template.jsx
+++ b/Data/Engine/web-interface/src/Admin/Page_Template.jsx
@@ -252,6 +252,46 @@ export default function PageTemplate({ onPageMetaChange }) {
}}
elevation={0}
>
+
+
+
+
+ } sx={{ ...gradientButtonSx, minWidth: 120 }}>
+ New Item
+
+
+
+
+
+ }
+ sx={{
+ borderColor: "rgba(148,163,184,0.35)",
+ color: "#e2e8f0",
+ textTransform: "none",
+ borderRadius: 999,
+ px: 1.7,
+ minWidth: 100,
+ "&:hover": { borderColor: "rgba(148,163,184,0.55)" },
+ }}
+ >
+ Settings
+
+
+
+
+
+
-
-
- } sx={gradientButtonSx}>
- New Item
-
-
-
-
-
- }
- sx={{
- borderColor: "rgba(148,163,184,0.35)",
- color: "#e2e8f0",
- textTransform: "none",
- borderRadius: 999,
- px: 1.7, // ~5% wider than previous
- minWidth: 86,
- "&:hover": { borderColor: "rgba(148,163,184,0.55)" },
- }}
- >
- Settings
-
-
-
diff --git a/Data/Engine/web-interface/src/Admin/Server_Info.jsx b/Data/Engine/web-interface/src/Admin/Server_Info.jsx
index c6e2082e..3d0a38d1 100644
--- a/Data/Engine/web-interface/src/Admin/Server_Info.jsx
+++ b/Data/Engine/web-interface/src/Admin/Server_Info.jsx
@@ -1,8 +1,12 @@
-import React, { useEffect, useState } from "react";
-import { Paper, Box, Typography, Button } from "@mui/material";
+import React, { useEffect, useMemo, useState } from "react";
+import { Paper, Box, Typography, Button, Stack } from "@mui/material";
import { GitHub as GitHubIcon, InfoOutlined as InfoIcon } from "@mui/icons-material";
+import { AgGridReact } from "ag-grid-react";
+import { ModuleRegistry, AllCommunityModule, themeQuartz } from "ag-grid-community";
import { CreditsDialog } from "../Dialogs.jsx";
+ModuleRegistry.registerModules([AllCommunityModule]);
+
const gradientButtonSx = {
backgroundImage: "linear-gradient(135deg,#7dd3fc,#c084fc)",
color: "#0b1220",
@@ -16,6 +20,19 @@ const gradientButtonSx = {
},
};
+const gridTheme = themeQuartz.withParams({
+ accentColor: "#7dd3fc",
+ backgroundColor: "#050915",
+ browserColorScheme: "dark",
+ fontFamily: { googleFont: "IBM Plex Sans" },
+ foregroundColor: "#e2e8f0",
+ headerFontSize: 13,
+});
+
+const themeClassName = gridTheme.themeName || "ag-theme-quartz";
+const gridFontFamily = "\"IBM Plex Sans\", \"Helvetica Neue\", Arial, sans-serif";
+const iconFontFamily = "\"Quartz Regular\"";
+
export default function ServerInfo({ isAdmin = false, onPageMetaChange }) {
const [serverTime, setServerTime] = useState(null);
const [error, setError] = useState(null);
@@ -51,50 +68,168 @@ export default function ServerInfo({ isAdmin = false, onPageMetaChange }) {
return () => onPageMetaChange?.(null);
}, [onPageMetaChange]);
+ const infoRows = useMemo(
+ () => [
+ {
+ id: "server-time",
+ field: "Server Time",
+ value: error ? `Error: ${error}` : (serverTime || "Loading..."),
+ description: "Internal server clock used for troubleshooting the job scheduling system.",
+ },
+ ],
+ [error, serverTime]
+ );
+
+ const columnDefs = useMemo(
+ () => [
+ { headerName: "Field", field: "field", minWidth: 180, flex: 0.35 },
+ { headerName: "Value", field: "value", minWidth: 240, flex: 0.4 },
+ { headerName: "Description", field: "description", minWidth: 260, flex: 0.6 },
+ ],
+ []
+ );
+
if (!isAdmin) return null;
return (
-
+
+
+ }
+ onClick={() => window.open("https://github.com/bunny-lab-io/Borealis", "_blank")}
+ sx={{
+ borderColor: "rgba(148,163,184,0.4)",
+ color: "#e2e8f0",
+ textTransform: "none",
+ borderRadius: 999,
+ px: 1.9,
+ minWidth: 150,
+ backgroundColor: "rgba(12,18,35,0.85)",
+ "&:hover": {
+ borderColor: "rgba(125,211,252,0.85)",
+ backgroundColor: "rgba(16,24,44,0.95)",
+ },
+ }}
+ >
+ GitHub Project
+
+ }
+ onClick={() => setAboutOpen(true)}
+ sx={{ ...gradientButtonSx, minWidth: 150 }}
+ >
+ About Borealis
+
+
+
+
Basic server information for debug and support. Server time updates automatically every minute.
-
- Server Time
-
- {error ? `Error: ${error}` : (serverTime || 'Loading...')}
-
+
+ params.data?.id || String(params.rowIndex ?? "")}
+ suppressCellFocus
+ animateRows
+ rowHeight={48}
+ headerHeight={42}
+ pagination={false}
+ theme={gridTheme}
+ style={{
+ width: "100%",
+ flex: 1,
+ fontFamily: gridFontFamily,
+ "--ag-icon-font-family": iconFontFamily,
+ }}
+ />
-
- Project Links
-
- }
- onClick={() => window.open("https://github.com/bunny-lab-io/Borealis", "_blank")}
- sx={{
- borderColor: "rgba(148,163,184,0.35)",
- color: "#e2e8f0",
- textTransform: "none",
- borderRadius: 999,
- px: 1.7,
- minWidth: 86,
- "&:hover": { borderColor: "rgba(148,163,184,0.55)" },
- }}
- >
- GitHub Project
-
- }
- onClick={() => setAboutOpen(true)}
- sx={gradientButtonSx}
- >
- About Borealis
-
-
-
setAboutOpen(false)} />
diff --git a/Data/Engine/web-interface/src/Assemblies/Assembly_List.jsx b/Data/Engine/web-interface/src/Assemblies/Assembly_List.jsx
index d158f6c5..c68417af 100644
--- a/Data/Engine/web-interface/src/Assemblies/Assembly_List.jsx
+++ b/Data/Engine/web-interface/src/Assemblies/Assembly_List.jsx
@@ -14,6 +14,7 @@ import {
TextField,
CircularProgress,
Link as MuiLink,
+ Stack,
} from "@mui/material";
import AddIcon from "@mui/icons-material/Add";
import CachedIcon from "@mui/icons-material/Cached";
@@ -633,6 +634,40 @@ export default function AssemblyList({ onOpenWorkflow, onOpenScript, userRole =
}}
elevation={0}
>
+ {/* Page-level action button (floating top-right) */}
+
+
+ }
+ onClick={(event) => setNewMenuAnchor(event.currentTarget)}
+ sx={{
+ backgroundImage: "linear-gradient(135deg,#7dd3fc,#c084fc)",
+ color: "#0b1220",
+ borderRadius: 999,
+ textTransform: "none",
+ boxShadow: "0 10px 26px rgba(124,58,237,0.28)",
+ "&:hover": {
+ backgroundImage: "linear-gradient(135deg,#86e1ff,#d1a6ff)",
+ boxShadow: "0 12px 34px rgba(124,58,237,0.38)",
+ filter: "none",
+ },
+ }}
+ >
+ New Assembly
+
+
+
+
) : null}
- }
- onClick={(event) => setNewMenuAnchor(event.currentTarget)}
- sx={{
- backgroundImage: "linear-gradient(135deg,#7dd3fc,#c084fc)",
- color: "#0b1220",
- borderRadius: 999,
- textTransform: "none",
- boxShadow: "0 10px 26px rgba(124,58,237,0.28)",
- "&:hover": {
- backgroundImage: "linear-gradient(135deg,#86e1ff,#d1a6ff)",
- boxShadow: "0 12px 34px rgba(124,58,237,0.38)",
- filter: "none",
- },
- }}
- >
- New Assembly
-