feat: Release version 3.1.4 - Mode terrain et génération PDF
✨ Nouvelles fonctionnalités: - Ajout du mode terrain pour utilisation mobile hors connexion - Génération automatique de reçus PDF avec template personnalisé - Révision complète du système de cartes avec amélioration des performances 🔧 Améliorations techniques: - Refactoring du module chat avec architecture simplifiée - Optimisation du système de sécurité NIST SP 800-63B - Amélioration de la gestion des secteurs géographiques - Support UTF-8 étendu pour les noms d'utilisateurs 📱 Application mobile: - Nouveau mode terrain dans user_field_mode_page - Interface utilisateur adaptative pour conditions difficiles - Synchronisation offline améliorée 🗺️ Cartographie: - Optimisation des performances MapBox - Meilleure gestion des tuiles hors ligne - Amélioration de l'affichage des secteurs 📄 Documentation: - Ajout guide Android (ANDROID-GUIDE.md) - Documentation sécurité API (API-SECURITY.md) - Guide module chat (CHAT_MODULE.md) 🐛 Corrections: - Résolution des erreurs 400 lors de la création d'utilisateurs - Correction de la validation des noms d'utilisateurs - Fix des problèmes de synchronisation chat 🤖 Generated with Claude Code (https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
59
app/lib/chat/chat_module.dart
Executable file
59
app/lib/chat/chat_module.dart
Executable file
@@ -0,0 +1,59 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'services/chat_service.dart';
|
||||
import 'pages/rooms_page.dart';
|
||||
import 'pages/chat_page.dart';
|
||||
|
||||
/// Module de chat autonome avec gestion des rôles
|
||||
///
|
||||
/// Les permissions sont gérées via le fichier chat_config.yaml
|
||||
class ChatModule {
|
||||
|
||||
/// Initialiser le module chat avec support des rôles
|
||||
///
|
||||
/// @param apiUrl URL de base de l'API
|
||||
/// @param userId ID de l'utilisateur connecté
|
||||
/// @param userName Nom de l'utilisateur
|
||||
/// @param userRole Rôle de l'utilisateur (1: membre, 2: admin amicale, 9: superadmin)
|
||||
/// @param userEntite ID de l'entité/amicale de l'utilisateur (optionnel)
|
||||
/// @param authToken Token JWT d'authentification (optionnel)
|
||||
static Future<void> init({
|
||||
required String apiUrl,
|
||||
required int userId,
|
||||
required String userName,
|
||||
required int userRole,
|
||||
int? userEntite,
|
||||
String? authToken,
|
||||
}) async {
|
||||
await ChatService.init(
|
||||
apiUrl: apiUrl,
|
||||
userId: userId,
|
||||
userName: userName,
|
||||
userRole: userRole,
|
||||
userEntite: userEntite,
|
||||
authToken: authToken,
|
||||
);
|
||||
}
|
||||
|
||||
/// Obtenir la page de liste des conversations
|
||||
static Widget getRoomsPage() => const RoomsPage();
|
||||
|
||||
/// Obtenir la page de chat pour une room spécifique
|
||||
static Widget getChatPage(String roomId, String roomTitle) => ChatPage(
|
||||
roomId: roomId,
|
||||
roomTitle: roomTitle,
|
||||
);
|
||||
|
||||
/// Naviguer vers le chat depuis n'importe où
|
||||
static void openChat(BuildContext context) {
|
||||
Navigator.of(context).push(
|
||||
MaterialPageRoute(
|
||||
builder: (_) => const RoomsPage(),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
/// Nettoyer les ressources
|
||||
static void dispose() {
|
||||
ChatService.instance.dispose();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user