---
suivi: 1081
date: 2026-07-30
sujet: Module Foncier — sous-menu de navigation
chantier: module-foncier
type: feature
statut: poussé
hash: 3e3c1044
fichiers:
  - resources/js/Layouts/AppShell.vue
  - resources/js/Pages/Foncier/Parcelles/Index.vue
  - resources/js/Pages/Foncier/Dossiers/Index.vue
  - resources/js/Pages/Foncier/Proprietaires/Index.vue
  - resources/js/Pages/Foncier/Secteurs/Index.vue
  - resources/js/Pages/Foncier/Alertes/Index.vue
  - resources/js/Pages/Foncier/Referentiel.vue
  - tests/Feature/Foncier/FoncierSousMenuNavigationTest.php
  - tests/Feature/Foncier/FoncierSousMenuAppShellSourceTest.php
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - docs/suivi/SUIVI_1081_foncier_sous_menu.md
  - public/build/
---

## PROMPT ENVOYÉ

SUIVI #1081 — sous-menu Foncier (pattern existant), masquage par permission,
retrait barres nav redondantes, option /foncier, un commit, push.

## AUDIT PRÉALABLE AppShell.vue (avant modification)

### Pattern sous-menu existant
OUI — dropdown header identique pour GEMME (`locationDropdownOpen`), GED,
Comptabilité, Marketing, Juridique :
- parent = `<button>` (non navigable) + chevron ;
- `mouseenter` / `mouseleave` + clic toggle ;
- `Transition` + `v-show` panneau `role="menu"` ;
- click-outside via `handleClickOutsideGlobal` + fermeture sur `watch(page.url)`.

Foncier était un simple `<Link href="/foncier">` (L981-988 avant #1081).

### État actif
Classe `envol-header__nav-link--active` sur le parent si
`component.startsWith('Foncier/')` ou `url.startsWith('/foncier')`.
Sous-entrées GEMME : comparaison `page.url` / `startsWith` du préfixe.

### Visibilité
`peutVoirMenuFoncier` ← `page.props.nav.foncier_visible`
(= `FoncierContext::menuVisible` = `foncier.lecture` + module actif via
`Enseigne::aModule` / JSON `modules_actifs.foncier`, jamais un code enseigne en dur).
Sous-entrées admin : `userCan('foncier.secteurs|gestion|referentiels')`.

## OPTION /foncier
**(a) retenue** — parent « Foncier » déplie uniquement ; `/foncier` redirige déjà
vers la prospection (`FoncierController@index`). Justification : éviter une page
accueil avec compteurs dossiers (ACL #1075 R8) sans livrer un compteur global
révélateur. L’écran quotidien reste la prospection.

## Diff AppShell (résumé)
- Script ~L411-450 : constantes routes + dropdown + `userCan` + actifs par préfixe
- `handleClickOutsideGlobal` + `watch(page.url)` : fermeture foncier
- Template ~L1022+ : remplacement du Link unique par dropdown (pattern GEMME),
  groupes Métier / Administration (`v-if="peutVoirFoncierAdminGroupe"`)

Aucun autre module touché (GEMME, GED, programmes, tâches, admin inchangés).

## Navigation
| Libellé | Route | Permission | Module | Groupe |
|---------|-------|------------|--------|--------|
| Foncier (parent) | — (bouton) | foncier.lecture + module | foncier_visible | — |
| Prospection | foncier.parcelles.index | lecture | idem | Métier |
| Propriétaires | foncier.proprietaires.index | lecture | idem | Métier |
| Dossiers | foncier.dossiers.index | lecture | idem | Métier |
| Secteurs | foncier.secteurs.index | foncier.secteurs | idem | Admin |
| Alertes | foncier.alertes.index | foncier.gestion | idem | Admin |
| Référentiel | foncier.referentiel | foncier.referentiels | idem | Admin |

## Audit barres pages
Retiré : Parcelles (Dossiers/Secteurs/Propriétaires/Référentiel) — **gardé**
« + Nouvelle parcelle » ; Dossiers (Prospection/Alertes/Propriétaires) — **gardé**
Nouveau dossier ; liens « ← Prospection/Dossiers » sur Propriétaires, Secteurs,
Alertes, Référentiel. Show/Form : breadcrumbs intra-section conservés.

## Closures
Aucune PHP modifiée (hors journal). AppShell : pas de closures PHP.

## Bundles
app=`assets/app-DibGCAOz.js` · Parcelles Index=`assets/Index-CVEh8ePy.js`

## DÉPLOIEMENT
`git pull` · `view:clear` · `journal:sync` — pas de migration / route:clear utile
si aucune route ajoutée (aucune).

## LEÇON
Le pattern dropdown GEMME/GED est réutilisable tel quel : ajouter une entrée
(promesses, actes, faisabilité) = une constante URL + un `userCan` + un Link
dans le groupe Métier ou Administration, sans seconde mécanique ni barre
ad hoc sur les pages.
