FEAT: UI — activer/désactiver une caméra (statut) #59

Open
opened 2026-08-11 21:36:59 +02:00 by nonobis · 1 comment
Owner

🎯 Contexte

Camera.Status par défaut = Disabled. Les caméras créées par découverte restent Disabled — or la config agent embarque camera..enabled = (Status != Disabled) (depuis #1) : une caméra Disabled n'est jamais capturée. L'UI ne permet nulle part de changer le statut → le pipeline de capture est inutilisable en pratique pour les caméras découvertes.

📚 Référence spec (MASTER_SPECIFICATION.md v2.0)

Phase 10 — gestion des caméras (statuts).

🔍 État actuel (vérifié dans le code)

CamerasPage.razor n'affiche qu'un compteur « X en ligne » (Status == "Online") — aucun contrôle de statut. UpdateCameraCommand accepte Status (API) mais l'UI ne l'envoie jamais. SitesPage montre un chip Actif/Inactif basé sur autre chose (champ Enabled du site).

🧩 À faire

  • Ajouter dans CamerasPage (dialog d'édition caméra) un contrôle Activer/Désactiver → appelle UpdateCamera avec Status (Online / Disabled)
  • Feedback visuel : chip de statut par caméra (couleur par statut), rafraîchi
  • Décider du statut initial des caméras issues de la découverte (Online d'office ? ou activation manuelle documentée) — aligner avec le pipeline #1
  • Tests bUnit : toggle statut → API appelée avec le bon payload ; chip affiché

✅ Critères d'acceptation

  • Depuis l'UI, activer une caméra → l'agent démarre la capture (≤ 30 s, config reload)
  • Désactiver → la capture s'arrête
  • L'état est visible et persiste (DB)

📁 Fichiers concernés

src/Heimdall.Web/Components/Pages/CamerasPage.razor, src/Heimdall.Application/Cameras/Commands/UpdateCamera/



Maquette

Maquette

Description

Contrôle de statut dans la liste/détail caméra : switch activé/désactivé par ligne avec confirmation lors de la désactivation (dialog annonçant l'arrêt de la surveillance, caract


Maquette

Maquette

## 🎯 Contexte Camera.Status par défaut = Disabled. Les caméras créées par découverte restent Disabled — or la config agent embarque camera.<id>.enabled = (Status != Disabled) (depuis #1) : **une caméra Disabled n'est jamais capturée**. L'UI ne permet nulle part de changer le statut → le pipeline de capture est inutilisable en pratique pour les caméras découvertes. ## 📚 Référence spec (MASTER_SPECIFICATION.md v2.0) **Phase 10** — gestion des caméras (statuts). ## 🔍 État actuel (vérifié dans le code) CamerasPage.razor n'affiche qu'un compteur « X en ligne » (Status == "Online") — aucun contrôle de statut. UpdateCameraCommand accepte Status (API) mais l'UI ne l'envoie jamais. SitesPage montre un chip Actif/Inactif basé sur autre chose (champ Enabled du site). ## 🧩 À faire - [ ] Ajouter dans CamerasPage (dialog d'édition caméra) un contrôle Activer/Désactiver → appelle UpdateCamera avec Status (Online / Disabled) - [ ] Feedback visuel : chip de statut par caméra (couleur par statut), rafraîchi - [ ] Décider du statut initial des caméras issues de la découverte (Online d'office ? ou activation manuelle documentée) — aligner avec le pipeline #1 - [ ] Tests bUnit : toggle statut → API appelée avec le bon payload ; chip affiché ## ✅ Critères d'acceptation - [ ] Depuis l'UI, activer une caméra → l'agent démarre la capture (≤ 30 s, config reload) - [ ] Désactiver → la capture s'arrête - [ ] L'état est visible et persiste (DB) ## 📁 Fichiers concernés src/Heimdall.Web/Components/Pages/CamerasPage.razor, src/Heimdall.Application/Cameras/Commands/UpdateCamera/ --- --- ## Maquette - **Lien Penpot** : [nonobis-design-system › page cameras](https://penpot.tordais.cc/?page=127dfd1c-12b5-80f7-8008-79c8ea061142) ![Maquette](https://forgejo.tordais.cc/attachments/12e3d205-3226-4f3f-92b8-9045996e3665) - [Détails / composants MudBlazor (README)](https://forgejo.tordais.cc/attachments/edf6ff4a-97c9-4ff2-85f6-df875e941592) - Statut : maquette appliquée dans Penpot ✓ ## Description Contrôle de statut dans la liste/détail caméra : switch activé/désactivé par ligne avec confirmation lors de la désactivation (dialog annonçant l'arrêt de la surveillance, caract --- ## Maquette - **Lien Penpot** : [nonobis-design-system › page cameras](https://penpot.tordais.cc/?page=127dfd1c-12b5-80f7-8008-79c8ea061142) ![Maquette](https://forgejo.tordais.cc/attachments/12e3d205-3226-4f3f-92b8-9045996e3665) - [Détails / composants MudBlazor (README)](https://forgejo.tordais.cc/attachments/edf6ff4a-97c9-4ff2-85f6-df875e941592) - Statut : maquette appliquée dans Penpot ✓
Author
Owner

Maquette the-designer intégrée (14/08/2026) :

Maquette the-designer intégrée (14/08/2026) : - Aperçu (PNG) : https://forgejo.tordais.cc/attachments/12e3d205-3226-4f3f-92b8-9045996e3665 - Détails / composants MudBlazor (README) : https://forgejo.tordais.cc/attachments/edf6ff4a-97c9-4ff2-85f6-df875e941592 - Statut : application Penpot différée (plugin MCP non connecté) — maquette locale consultable
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
nonobis/Heimdall#59
No description provided.