diff --git a/apps/console/src/App.tsx b/apps/console/src/App.tsx index cffb7e8d..65e78f64 100644 --- a/apps/console/src/App.tsx +++ b/apps/console/src/App.tsx @@ -218,14 +218,14 @@ export function AppContent() { - - - {editingRecord ? 'Edit' : 'Create'} {currentObjectDef?.label} - + + + {editingRecord ? 'Edit' : 'Create'} {currentObjectDef?.label} + {editingRecord ? `Update details for ${currentObjectDef?.label}` : `Add a new ${currentObjectDef?.label} to your database.`} -
+
{currentObjectDef && ( -
+
+
{/* Mobile sidebar trigger */} - - + + - + {breadcrumbItems.map((item, index) => ( {index > 0 && } {index === breadcrumbItems.length - 1 || !item.href ? ( - {item.label} + {item.label} ) : ( - {item.label} + {item.label} )} @@ -102,12 +102,12 @@ export function AppHeader({ appName, objects, connectionState }: { appName: stri {/* Mobile: Just show current page */} - + {breadcrumbItems[breadcrumbItems.length - 1]?.label || appName}
-
+
{/* Connection Status */} {connectionState && } @@ -127,24 +127,26 @@ export function AppHeader({ appName, objects, connectionState }: { appName: stri {/* Notifications */} - {/* Help */} - {/* Theme toggle */} - +
+ +
); diff --git a/apps/console/src/components/DashboardView.tsx b/apps/console/src/components/DashboardView.tsx index cb128f23..e0a09ad9 100644 --- a/apps/console/src/components/DashboardView.tsx +++ b/apps/console/src/components/DashboardView.tsx @@ -30,18 +30,20 @@ export function DashboardView({ dataSource }: { dataSource?: any }) { return (
-
-
-

{dashboard.label || dashboard.name}

+
+
+

{dashboard.label || dashboard.name}

{dashboard.description && ( -

{dashboard.description}

+

{dashboard.description}

)}
- +
+ +
-
+
diff --git a/apps/console/src/components/ObjectView.tsx b/apps/console/src/components/ObjectView.tsx index faa9673b..3db8b83a 100644 --- a/apps/console/src/components/ObjectView.tsx +++ b/apps/console/src/components/ObjectView.tsx @@ -208,19 +208,19 @@ export function ObjectView({ dataSource, objects, onEdit, onRowClick }: any) { return (
{/* 1. Main Header */} -
-
-
+
+
+
-
-

{objectDef.label}

+
+

{objectDef.label}

-
+
- @@ -230,7 +230,7 @@ export function ObjectView({ dataSource, objects, onEdit, onRowClick }: any) { {/* 2. Content — Plugin ObjectView with ViewSwitcher + Filter + Sort */}
-
+
onEdit?.(record)} + onEdit={(record: any) => onEdit?.(record)} onRowClick={onRowClick || ((record: any) => onEdit?.(record))} renderListView={renderListView} /> @@ -254,10 +254,10 @@ export function ObjectView({ dataSource, objects, onEdit, onRowClick }: any) {
{/* Drawer for Record Details */} - !open && handleDrawerClose()}> - + !open && handleDrawerClose()}> + {drawerRecordId && ( -
+
-
+
-
+
-
+
-
- -
Edit Report: {reportData.title}
+
Edit Report: {reportData.title}
-
-
+
+
{/* Header is handled by ReportViewer usually, but we can have a page header too */} -

{reportData.title || 'Report Viewer'}

+

{reportData.title || 'Report Viewer'}

-
-
-
-
+
+
diff --git a/apps/console/src/pages/ForgotPasswordPage.tsx b/apps/console/src/pages/ForgotPasswordPage.tsx index 5dc99661..5fb9053d 100644 --- a/apps/console/src/pages/ForgotPasswordPage.tsx +++ b/apps/console/src/pages/ForgotPasswordPage.tsx @@ -6,7 +6,7 @@ import { ForgotPasswordForm } from '@object-ui/auth'; export function ForgotPasswordPage() { return ( -
+
); diff --git a/apps/console/src/pages/LoginPage.tsx b/apps/console/src/pages/LoginPage.tsx index 55fab5ce..ef0c60b7 100644 --- a/apps/console/src/pages/LoginPage.tsx +++ b/apps/console/src/pages/LoginPage.tsx @@ -9,7 +9,7 @@ export function LoginPage() { const navigate = useNavigate(); return ( -
+
navigate('/')} registerUrl="/register" diff --git a/apps/console/src/pages/RegisterPage.tsx b/apps/console/src/pages/RegisterPage.tsx index 91165571..b5214711 100644 --- a/apps/console/src/pages/RegisterPage.tsx +++ b/apps/console/src/pages/RegisterPage.tsx @@ -9,7 +9,7 @@ export function RegisterPage() { const navigate = useNavigate(); return ( -
+
navigate('/')} loginUrl="/login" diff --git a/apps/console/src/pages/system/AuditLogPage.tsx b/apps/console/src/pages/system/AuditLogPage.tsx index 435692d1..5fbd58c4 100644 --- a/apps/console/src/pages/system/AuditLogPage.tsx +++ b/apps/console/src/pages/system/AuditLogPage.tsx @@ -11,20 +11,20 @@ const auditObject = systemObjects.find((o) => o.name === 'sys_audit_log')!; export function AuditLogPage() { return ( -
-
-

Audit Log

-

View system activity and user actions

+
+
+

Audit Log

+

View system activity and user actions

-
+
{auditObject.views[0].columns.map((col) => { const field = auditObject.fields.find((f) => f.name === col); return ( - ); @@ -33,7 +33,7 @@ export function AuditLogPage() { - diff --git a/apps/console/src/pages/system/OrgManagementPage.tsx b/apps/console/src/pages/system/OrgManagementPage.tsx index 691541ed..1605e8ae 100644 --- a/apps/console/src/pages/system/OrgManagementPage.tsx +++ b/apps/console/src/pages/system/OrgManagementPage.tsx @@ -15,30 +15,30 @@ export function OrgManagementPage() { const isAdmin = currentUser?.role === 'admin'; return ( -
-
-
-

Organization Management

-

Manage organizations and their members

+
+
+
+

Organization Management

+

Manage organizations and their members

{isAdmin && ( )}
-
+
+ {field?.label ?? col}
+ Connect to ObjectStack server to load audit logs. In production, this page uses plugin-grid in read-only mode.
{orgObject.views[0].columns.map((col) => { const field = orgObject.fields.find((f) => f.name === col); return ( - ); @@ -47,7 +47,7 @@ export function OrgManagementPage() { - diff --git a/apps/console/src/pages/system/ProfilePage.tsx b/apps/console/src/pages/system/ProfilePage.tsx index 4db127a3..97d8d44b 100644 --- a/apps/console/src/pages/system/ProfilePage.tsx +++ b/apps/console/src/pages/system/ProfilePage.tsx @@ -30,16 +30,16 @@ export function ProfilePage() { if (!user) return null; return ( -
-
-

Profile

-

Manage your account settings

+
+
+

Profile

+

Manage your account settings

-
+
{/* Profile Info */} -
-

Personal Information

+
+

Personal Information

{error && (
@@ -94,7 +94,7 @@ export function ProfilePage() { @@ -102,8 +102,8 @@ export function ProfilePage() {
{/* Password Change */} -
-

Change Password

+
+

Change Password

To change your password, use the password reset flow from the login page.

diff --git a/apps/console/src/pages/system/RoleManagementPage.tsx b/apps/console/src/pages/system/RoleManagementPage.tsx index ac41ed68..beedf227 100644 --- a/apps/console/src/pages/system/RoleManagementPage.tsx +++ b/apps/console/src/pages/system/RoleManagementPage.tsx @@ -15,30 +15,30 @@ export function RoleManagementPage() { const isAdmin = currentUser?.role === 'admin'; return ( -
-
-
-

Role Management

-

Define roles and assign permissions

+
+
+
+

Role Management

+

Define roles and assign permissions

{isAdmin && ( )}
-
+
+ {field?.label ?? col}
+ Connect to ObjectStack server to load organizations. In production, this page uses plugin-grid for full CRUD functionality.
{roleObject.views[0].columns.map((col) => { const field = roleObject.fields.find((f) => f.name === col); return ( - ); @@ -47,7 +47,7 @@ export function RoleManagementPage() { - diff --git a/apps/console/src/pages/system/UserManagementPage.tsx b/apps/console/src/pages/system/UserManagementPage.tsx index 92434d51..65b52da7 100644 --- a/apps/console/src/pages/system/UserManagementPage.tsx +++ b/apps/console/src/pages/system/UserManagementPage.tsx @@ -15,30 +15,30 @@ export function UserManagementPage() { const isAdmin = currentUser?.role === 'admin'; return ( -
-
-
-

User Management

-

Manage system users and their roles

+
+
+
+

User Management

+

Manage system users and their roles

{isAdmin && ( )}
-
+
+ {field?.label ?? col}
+ Connect to ObjectStack server to load roles. In production, this page uses plugin-grid with a permission assignment matrix.
{userObject.views[0].columns.map((col) => { const field = userObject.fields.find((f) => f.name === col); return ( - ); @@ -47,7 +47,7 @@ export function UserManagementPage() { - diff --git a/packages/layout/src/AppShell.tsx b/packages/layout/src/AppShell.tsx index d7cd0f84..624391d1 100644 --- a/packages/layout/src/AppShell.tsx +++ b/packages/layout/src/AppShell.tsx @@ -135,12 +135,12 @@ export function AppShell({ {sidebar} -
+
-
+
{navbar}
-
+
{children}
+ {field?.label ?? col}
+ Connect to ObjectStack server to load users. In production, this page uses plugin-grid for full CRUD functionality.