feat: Add comprehensive system enhancements
- Add version display above storage consumption in admin sidebar - Fix storage consumption to stick to bottom of window using flexbox - Add user upload settings to events (allow uploads, category selection) - Enhance disk space tab to comprehensive system status view - Add localized date formatting for German/English language support - Remove quick actions from dashboard for cleaner interface - Create user photo upload functionality for galleries - Add database migration for user upload settings - Update all TypeScript types and interfaces 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit is contained in:
@@ -11,6 +11,8 @@ interface CreateEventData {
|
||||
welcome_message?: string;
|
||||
color_theme?: string;
|
||||
expiration_days: number;
|
||||
allow_user_uploads?: boolean;
|
||||
upload_category_id?: number | null;
|
||||
}
|
||||
|
||||
interface UpdateEventData {
|
||||
@@ -23,6 +25,8 @@ interface UpdateEventData {
|
||||
color_theme?: string;
|
||||
expires_at?: string;
|
||||
is_active?: boolean;
|
||||
allow_user_uploads?: boolean;
|
||||
upload_category_id?: number | null;
|
||||
}
|
||||
|
||||
interface EventsListResponse {
|
||||
|
||||
@@ -36,6 +36,46 @@ export interface StorageInfo {
|
||||
storage_limit: number;
|
||||
}
|
||||
|
||||
export interface SystemStatus {
|
||||
database: {
|
||||
size: number;
|
||||
tables: {
|
||||
events: number;
|
||||
photos: number;
|
||||
admins: number;
|
||||
categories: number;
|
||||
activityLogs: number;
|
||||
};
|
||||
};
|
||||
emailQueue: {
|
||||
pending: number;
|
||||
sent: number;
|
||||
failed: number;
|
||||
};
|
||||
system: {
|
||||
platform: string;
|
||||
arch: string;
|
||||
hostname: string;
|
||||
uptime: number;
|
||||
nodeVersion: string;
|
||||
memory: {
|
||||
total: number;
|
||||
free: number;
|
||||
used: number;
|
||||
};
|
||||
cpu: {
|
||||
model: string;
|
||||
cores: number;
|
||||
};
|
||||
};
|
||||
services: {
|
||||
fileWatcher: { status: string };
|
||||
expirationChecker: { status: string };
|
||||
emailProcessor: { status: string };
|
||||
};
|
||||
timestamp: string;
|
||||
}
|
||||
|
||||
export const settingsService = {
|
||||
// Get all settings
|
||||
async getAllSettings(): Promise<Record<string, any>> {
|
||||
@@ -124,6 +164,12 @@ export const settingsService = {
|
||||
return response.data;
|
||||
},
|
||||
|
||||
// Get system status
|
||||
async getSystemStatus(): Promise<SystemStatus> {
|
||||
const response = await api.get<SystemStatus>('/api/admin/system/status');
|
||||
return response.data;
|
||||
},
|
||||
|
||||
// Format branding settings from raw data
|
||||
formatBrandingSettings(rawSettings: Record<string, any>): BrandingSettings {
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user