feat: écran détail serveur (stats CPU/RAM + image importable RustFS)
Build APK / build (push) Successful in 2m36s

- carte cliquable → ServerDetailScreen : bannière (image ou thème), statut,
  connexion/ouvrir, joueurs/MOTD, jauges CPU/RAM/réseau (docker stats),
  import/suppression d'image (galerie → backend → RustFS).
- api_service: stats(), server(), imageBytes(), uploadImage(), deleteImage().
- deps: image_picker.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
neckfire
2026-07-13 12:05:09 +02:00
co-authored by Claude Opus 4.8
parent a971204b80
commit 2862fdd408
7 changed files with 504 additions and 2 deletions
+8
View File
@@ -5,6 +5,7 @@ import '../services/api_service.dart';
import '../services/auth_service.dart';
import '../services/update_service.dart';
import '../widgets/server_card.dart';
import 'server_detail_screen.dart';
import 'settings_screen.dart';
class ServersScreen extends StatefulWidget {
@@ -110,6 +111,12 @@ class _ServersScreenState extends State<ServersScreen> {
}
}
Future<void> _openDetail(GameServer s) async {
await Navigator.push(context,
MaterialPageRoute(builder: (_) => ServerDetailScreen(server: s, api: widget.api)));
_refresh();
}
Future<void> _openSettings() async {
await Navigator.push(context,
MaterialPageRoute(builder: (_) => SettingsScreen(api: widget.api)));
@@ -191,6 +198,7 @@ class _ServersScreenState extends State<ServersScreen> {
iconUrl: snap.data ?? '',
busy: _busy.contains(s.id),
onToggle: () => _toggle(s),
onTap: () => _openDetail(s),
),
),
);