Usa la cabecera secundaria de Rappasoft (setSecondaryHeaderEnabled + secondaryHeaderFilter):
- Elementos: Elemento (texto), Capa (select), Fase (select).
- Inspecciones: Fecha (date), Elemento (texto), Resultado (select), Usuario (select);
Plantilla sin filtro.
Tests: MapTablesTest amplía con filtro de capa funcional. Suite 75 passing.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- FeatureTable e InspectionTable (DataTableComponent) sustituyen las tablas HTML
de las pestañas "Elementos" e "Inspecciones" del mapa: búsqueda, orden, filtro
(progreso) y acciones.
- Selección de elemento e "ver inspección" se comunican al ProjectMap por eventos
(map-select-feature / map-view-inspection, vía #[On]); seleccionar abre el panel
de edición y centra el mapa igual que antes.
- Las relaciones requieren sus FKs en additionalSelects (layer_id / feature_id,
template_id, user_id) porque Rappasoft no selecciona '*'.
Tests: MapTablesTest (3). Suite 74 passing.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- app/Livewire: 34 componentes agrupados en Issues/, Projects/, Phases/,
Companies/, Users/, Admin/, Inspections/, Layers/, Media/, Common/
(Client/, Reports/, Forms/, Actions/ ya estaban). Namespaces actualizados.
- resources/views/livewire: vistas sueltas movidas a subcarpetas espejo
(companies/, users/, phases/, roles/, inspections/, media/, common/);
render() actualizado.
- Referencias actualizadas sin romper nada: rutas (FQN, nombres de ruta intactos),
tags <livewire:...>/@livewire() a alias con punto, y use de los tests.
- No tocado: Volt de Breeze (auth/profile/navigation), y el portal cliente
(user-nav/client-projects) que ya tenía referencias inconsistentes.
Verificado: 69 rutas OK, vistas compilan, suite 69 passing (solo 2 pre-existentes
sqlite). autoload regenerado con --ignore-platform-reqs (PHP 8.2).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>