feat(features): refontes onboarding/organizations/profile/reports/settings/solidarity
- onboarding : datasource souscription, models formule/status, bloc complet - organizations : bloc orgs + switcher + types bloc, models, pages edit/create - profile : bloc complet avec change password, delete account, preferences - reports : bloc avec DashboardReports + ScheduleReports + GenerateReport - settings : language, privacy, feedback pages - solidarity : bloc complet demandes d'aide (CRUD, approuver, rejeter)
This commit is contained in:
@@ -38,6 +38,20 @@ class SystemSettingsBloc extends Bloc<SystemSettingsEvent, SystemSettingsState>
|
||||
on<TestDatabaseConnection>(_onTestDatabaseConnection);
|
||||
on<TestEmailConfiguration>(_onTestEmailConfiguration);
|
||||
on<ResetSystemConfig>(_onResetSystemConfig);
|
||||
on<OptimizeDatabase>(_onOptimizeDatabase);
|
||||
on<ForceGlobalLogout>(_onForceGlobalLogout);
|
||||
on<CleanupSessions>(_onCleanupSessions);
|
||||
on<CleanOldLogs>(_onCleanOldLogs);
|
||||
on<PurgeExpiredData>(_onPurgeExpiredData);
|
||||
on<AnalyzePerformance>(_onAnalyzePerformance);
|
||||
on<CreateBackup>(_onCreateBackup);
|
||||
on<ScheduleMaintenance>(_onScheduleMaintenance);
|
||||
on<EmergencyMaintenance>(_onEmergencyMaintenance);
|
||||
on<CheckUpdates>(_onCheckUpdates);
|
||||
on<ExportLogs>(_onExportLogs);
|
||||
on<GenerateUsageReport>(_onGenerateUsageReport);
|
||||
on<GenerateAuditReport>(_onGenerateAuditReport);
|
||||
on<ExportGDPRData>(_onExportGDPRData);
|
||||
}
|
||||
|
||||
Future<void> _onLoadSystemConfig(
|
||||
@@ -165,4 +179,159 @@ class SystemSettingsBloc extends Bloc<SystemSettingsEvent, SystemSettingsState>
|
||||
emit(SystemSettingsError('Erreur de réinitialisation: ${e.toString()}'));
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _onOptimizeDatabase(OptimizeDatabase event, Emitter<SystemSettingsState> emit) async {
|
||||
emit(SystemSettingsLoading());
|
||||
try {
|
||||
final result = await _repository.optimizeDatabase();
|
||||
emit(SystemSettingsSuccess(result['message'] as String? ?? 'Base de données optimisée'));
|
||||
} catch (e) {
|
||||
if (e is DioException && e.type == DioExceptionType.cancel) return;
|
||||
emit(SystemSettingsError('Erreur: ${e.toString()}'));
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _onForceGlobalLogout(ForceGlobalLogout event, Emitter<SystemSettingsState> emit) async {
|
||||
emit(SystemSettingsLoading());
|
||||
try {
|
||||
final result = await _repository.forceGlobalLogout();
|
||||
emit(SystemSettingsSuccess(result['message'] as String? ?? 'Déconnexion globale déclenchée'));
|
||||
} catch (e) {
|
||||
if (e is DioException && e.type == DioExceptionType.cancel) return;
|
||||
emit(SystemSettingsError('Erreur: ${e.toString()}'));
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _onCleanupSessions(CleanupSessions event, Emitter<SystemSettingsState> emit) async {
|
||||
emit(SystemSettingsLoading());
|
||||
try {
|
||||
final result = await _repository.cleanupSessions();
|
||||
emit(SystemSettingsSuccess(result['message'] as String? ?? 'Sessions nettoyées'));
|
||||
} catch (e) {
|
||||
if (e is DioException && e.type == DioExceptionType.cancel) return;
|
||||
emit(SystemSettingsError('Erreur: ${e.toString()}'));
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _onCleanOldLogs(CleanOldLogs event, Emitter<SystemSettingsState> emit) async {
|
||||
emit(SystemSettingsLoading());
|
||||
try {
|
||||
final result = await _repository.cleanOldLogs();
|
||||
emit(SystemSettingsSuccess(result['message'] as String? ?? 'Logs nettoyés'));
|
||||
} catch (e) {
|
||||
if (e is DioException && e.type == DioExceptionType.cancel) return;
|
||||
emit(SystemSettingsError('Erreur: ${e.toString()}'));
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _onPurgeExpiredData(PurgeExpiredData event, Emitter<SystemSettingsState> emit) async {
|
||||
emit(SystemSettingsLoading());
|
||||
try {
|
||||
final result = await _repository.purgeExpiredData();
|
||||
emit(SystemSettingsSuccess(result['message'] as String? ?? 'Données purgées'));
|
||||
} catch (e) {
|
||||
if (e is DioException && e.type == DioExceptionType.cancel) return;
|
||||
emit(SystemSettingsError('Erreur: ${e.toString()}'));
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _onAnalyzePerformance(AnalyzePerformance event, Emitter<SystemSettingsState> emit) async {
|
||||
emit(SystemSettingsLoading());
|
||||
try {
|
||||
final result = await _repository.analyzePerformance();
|
||||
emit(SystemSettingsSuccess(result['message'] as String? ?? 'Analyse terminée'));
|
||||
} catch (e) {
|
||||
if (e is DioException && e.type == DioExceptionType.cancel) return;
|
||||
emit(SystemSettingsError('Erreur: ${e.toString()}'));
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _onCreateBackup(CreateBackup event, Emitter<SystemSettingsState> emit) async {
|
||||
emit(SystemSettingsLoading());
|
||||
try {
|
||||
final result = await _repository.createBackup();
|
||||
emit(SystemSettingsSuccess(result['message'] as String? ?? 'Sauvegarde créée'));
|
||||
} catch (e) {
|
||||
if (e is DioException && e.type == DioExceptionType.cancel) return;
|
||||
emit(SystemSettingsError('Erreur: ${e.toString()}'));
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _onScheduleMaintenance(ScheduleMaintenance event, Emitter<SystemSettingsState> emit) async {
|
||||
emit(SystemSettingsLoading());
|
||||
try {
|
||||
final result = await _repository.scheduleMaintenance(scheduledAt: event.scheduledAt, reason: event.reason);
|
||||
emit(SystemSettingsSuccess(result['message'] as String? ?? 'Maintenance planifiée'));
|
||||
} catch (e) {
|
||||
if (e is DioException && e.type == DioExceptionType.cancel) return;
|
||||
emit(SystemSettingsError('Erreur: ${e.toString()}'));
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _onEmergencyMaintenance(EmergencyMaintenance event, Emitter<SystemSettingsState> emit) async {
|
||||
emit(SystemSettingsLoading());
|
||||
try {
|
||||
final result = await _repository.emergencyMaintenance();
|
||||
emit(SystemSettingsSuccess(result['message'] as String? ?? 'Maintenance d\'urgence activée'));
|
||||
} catch (e) {
|
||||
if (e is DioException && e.type == DioExceptionType.cancel) return;
|
||||
emit(SystemSettingsError('Erreur: ${e.toString()}'));
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _onCheckUpdates(CheckUpdates event, Emitter<SystemSettingsState> emit) async {
|
||||
emit(SystemSettingsLoading());
|
||||
try {
|
||||
final result = await _repository.checkUpdates();
|
||||
emit(SystemSettingsSuccess(result['message'] as String? ?? 'Vérification terminée'));
|
||||
} catch (e) {
|
||||
if (e is DioException && e.type == DioExceptionType.cancel) return;
|
||||
emit(SystemSettingsError('Erreur: ${e.toString()}'));
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _onExportLogs(ExportLogs event, Emitter<SystemSettingsState> emit) async {
|
||||
emit(SystemSettingsLoading());
|
||||
try {
|
||||
final result = await _repository.exportLogs();
|
||||
final count = result['count'] as int? ?? 0;
|
||||
emit(SystemSettingsSuccess('$count log(s) exporté(s)'));
|
||||
} catch (e) {
|
||||
if (e is DioException && e.type == DioExceptionType.cancel) return;
|
||||
emit(SystemSettingsError('Erreur: ${e.toString()}'));
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _onGenerateUsageReport(GenerateUsageReport event, Emitter<SystemSettingsState> emit) async {
|
||||
emit(SystemSettingsLoading());
|
||||
try {
|
||||
final result = await _repository.generateUsageReport();
|
||||
emit(SystemSettingsSuccess(result['message'] as String? ?? 'Rapport généré'));
|
||||
} catch (e) {
|
||||
if (e is DioException && e.type == DioExceptionType.cancel) return;
|
||||
emit(SystemSettingsError('Erreur: ${e.toString()}'));
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _onGenerateAuditReport(GenerateAuditReport event, Emitter<SystemSettingsState> emit) async {
|
||||
emit(SystemSettingsLoading());
|
||||
try {
|
||||
final result = await _repository.generateAuditReport();
|
||||
emit(SystemSettingsSuccess(result['message'] as String? ?? 'Rapport d\'audit généré'));
|
||||
} catch (e) {
|
||||
if (e is DioException && e.type == DioExceptionType.cancel) return;
|
||||
emit(SystemSettingsError('Erreur: ${e.toString()}'));
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _onExportGDPRData(ExportGDPRData event, Emitter<SystemSettingsState> emit) async {
|
||||
emit(SystemSettingsLoading());
|
||||
try {
|
||||
final result = await _repository.exportGDPRData();
|
||||
emit(SystemSettingsSuccess(result['message'] as String? ?? 'Export RGPD initié'));
|
||||
} catch (e) {
|
||||
if (e is DioException && e.type == DioExceptionType.cancel) return;
|
||||
emit(SystemSettingsError('Erreur: ${e.toString()}'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user