Skip to content

Feat(projects): Add Topbar for choose Project #15

Description

@liamburja

Historia de usuario
Como usuario, quiero elegir el proyecto activo desde la topbar, para que el contenido que veo en vault, openreport y state-iac corresponda al proyecto en el que estoy trabajando.

Contexto
Depende de la Issue 1 (CRUD de proyectos). Esta issue cubre únicamente el selector y la persistencia del "proyecto activo" a nivel de sesión/navegador; no cubre el filtrado real de datos por proyecto dentro de cada módulo (eso llega con las issues de activación de módulos por proyecto).

Criterios de aceptación

  • En AppNavbar.svelte aparece un selector (dropdown) con los proyectos disponibles, reutilizando el componente Dropdown.svelte.
  • El listado de proyectos se obtiene del ProjectService//api/projects creado en la Issue 1 (solo proyectos activos).
  • La selección persiste entre navegaciones y recargas, igual que active_backend (cookie active_project).
  • Si no hay proyecto seleccionado (primera visita), se selecciona automáticamente el primero disponible.
  • Si solo existe un proyecto, se muestra el nombre en texto plano sin dropdown (mismo criterio que ya usa SubNavbar con backends).
  • El proyecto activo se expone desde +layout.server.ts (locals/PageData) para que cualquier ruta pueda consultarlo.
  • Al cambiar de proyecto se refresca el contexto de la app (invalidateAll o equivalente) sin requerir recarga manual de página.

Notas técnicas

Calcar el patrón de activeBackendId en +layout.server.ts: leer cookie active_project, fallback al primer proyecto si no hay cookie o el valor ya no existe.
Reutilizar Dropdown.svelte en AppNavbar.svelte, no en SubNavbar (ese selector es específico de state-iac/Pulumi).
Renombrar rootLabel/textos "Projects" en SubNavbar.svelte para evitar colisión conceptual con el nuevo Project global.

Fuera de alcance (issues futuras)

Filtrar los datos mostrados en vault/openreport/state-iac según el proyecto activo.
Restringir el listado del selector a los proyectos a los que el usuario tiene acceso (depende de la issue de usuarios/roles por proyecto).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions