feat: add system info and backup functionalities to settings page

- Integrated system info fetching in `SettingsPage` for improved user insights.
- Enhanced `SettingsIndexPageClient` with manual backup creation and Jira connection testing features.
- Added loading states and auto-dismiss messages for user feedback during actions.
- Updated UI to display system info and backup statistics dynamically.
This commit is contained in:
Julien Froidefond
2025-09-20 16:38:33 +02:00
parent da0565472d
commit 3c20df95d9
5 changed files with 434 additions and 27 deletions

View File

@@ -0,0 +1,16 @@
'use server';
import { SystemInfoService } from '@/services/system-info';
export async function getSystemInfo() {
try {
const systemInfo = await SystemInfoService.getSystemInfo();
return { success: true, data: systemInfo };
} catch (error) {
console.error('Error getting system info:', error);
return {
success: false,
error: error instanceof Error ? error.message : 'Failed to get system info'
};
}
}

View File

@@ -1,12 +1,21 @@
import { userPreferencesService } from '@/services/user-preferences';
import { SystemInfoService } from '@/services/system-info';
import { SettingsIndexPageClient } from '@/components/settings/SettingsIndexPageClient';
// Force dynamic rendering (no static generation)
export const dynamic = 'force-dynamic';
export default async function SettingsPage() {
// Fetch basic data for the index page
const preferences = await userPreferencesService.getAllPreferences();
// Fetch data in parallel for better performance
const [preferences, systemInfo] = await Promise.all([
userPreferencesService.getAllPreferences(),
SystemInfoService.getSystemInfo()
]);
return <SettingsIndexPageClient initialPreferences={preferences} />;
return (
<SettingsIndexPageClient
initialPreferences={preferences}
initialSystemInfo={systemInfo}
/>
);
}