Skip to content

Add a direct link to the Foothold SITAC from the server view #182

Description

@mitch10593

Ajouter un lien direct vers la SITAC Foothold depuis la vue d'un serveur, lorsque ce serveur héberge une campagne Foothold.

Le point à trancher : comment faire le lien entre le nom d'un serveur dans la vue d'un serveur et l'URL du serveur Foothold correspondant.

Contexte

Sujet vierge : aucune occurrence de « Foothold » ni « SITAC » dans le dépôt, ni dans l'ancien site Symfony.

La difficulté vient de deux notions de « serveur » qu'aucun code ne relie aujourd'hui :

  • les serveurs live du DCSServerBot, seule source des pages publiques, identifiés par leur nom côté bot (DcsBotServerOut.name) — backend/app/services/dcsbot.py, GET /api/dcsbot/servers[/{server_name}] (backend/app/api/dcsbot.py), affichés par frontend/src/views/ServersView.vue et frontend/src/views/ServerDetailView.vue. Le bot ne renvoie aucune métadonnée par serveur (ni tag, ni type de campagne, ni URL) ;
  • l'entité Server en base (backend/app/models/dcs.py), limitée à id, name et code (unique), sans champ d'URL, administrée via backend/app/api/admin_servers.py et frontend/src/views/admin/ServersView.vue (formulaire { name, code }).

Seul signal exploitable pour savoir qu'une campagne Foothold tourne : le nom de la mission en cours (MissionInfoOut.name, backend/app/schemas/dcs.py), qui n'est jamais persisté. Un rapprochement par Server.name serait fragile (shortName() de ServersView.vue découpe le nom du bot sur -) ; Server.code est la seule clé stable existante — c'était déjà le jeton d'URL par serveur sur l'ancien site Symfony (routes perun_instance, map_index, server_control).

Questions ouvertes

  • Où stocker l'URL de la SITAC : nouveau champ nullable sur Server (+ migration Alembic) saisi en admin, ou URL déduite par convention depuis Server.code ?
  • Qu'est-ce qui déclenche l'affichage : la détection sur le nom de la mission, ou la simple présence d'une URL configurée ?
  • Où afficher le lien : vue détaillée d'un serveur seulement, ou aussi la liste des serveurs ?
  • Le lien est-il réservé aux membres, comme l'est déjà le mot de passe serveur (backend/app/api/dcsbot.py) ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions