feat: add sovereign map server migration runbook, seeding scripts, and tactical maneuver compare view

This commit is contained in:
Hamza-Ayed
2026-09-26 13:24:51 +03:00
parent 5028d20881
commit 9aa45ad605
9 changed files with 2232 additions and 6 deletions
+10 -1
View File
@@ -6,6 +6,7 @@ import CompareView from './pages/CompareView'
import IntelligenceDashboard from './pages/IntelligenceDashboard'
import { ExecutiveShowcase } from './pages/ExecutiveShowcase'
import { TacticalDefenseView } from './pages/TacticalDefenseView'
import { TacticalManeuverCompareView } from './pages/TacticalManeuverCompareView'
import { TourismMapView } from './pages/TourismMapView'
import { Terrain3DView } from './pages/Terrain3DView'
import { LandingPage } from './pages/LandingPage'
@@ -29,6 +30,7 @@ const NAV = [
{ hash: '#terrain3d', label: 'الخريطة ثلاثية الأبعاد والتضاريس', icon: '🏔️' },
{ hash: '#tourism', label: 'الخريطة السياحية والتراثية', icon: '🏛️' },
{ hash: '#tactical', label: 'المنظومة التكتيكية', icon: '🎖️' },
{ hash: '#maneuver', label: 'المناورة ونماذج الارتفاع', icon: '⚔️' },
{ hash: '#compare', label: 'مقارنة العمالقة والأسعار', icon: '⚖️' },
{ hash: '#review', label: 'تدقيق الطرق الذكي', icon: '🔍' },
]
@@ -420,11 +422,12 @@ function Root() {
const isLanding = hash === '#landing' || hash === '#portal';
const isTourism = hash === '#tourism' || hash === '#heritage' || hash === '#tourist';
const isTactical = hash === '#tactical' || hash === '#military' || hash === '#siro';
const isManeuver = hash === '#maneuver' || hash === '#contour' || hash === '#elevation';
const isTerrain3D = hash === '#terrain3d' || hash === '#3d' || hash === '#terrain';
const isExecutive = hash === '#showcase' || hash === '#pitch';
const isCompare = hash === '#compare';
const isReview = hash === '#review';
const isMap = hash === '#map' || (!isLanding && !isTourism && !isTactical && !isTerrain3D && !isExecutive && !isCompare && !isReview);
const isMap = hash === '#map' || (!isLanding && !isTourism && !isTactical && !isManeuver && !isTerrain3D && !isExecutive && !isCompare && !isReview);
return (
<ErrorBoundary>
@@ -464,6 +467,12 @@ function Root() {
</div>
)}
{isManeuver && (
<div style={{ width: '100%', height: '100%' }}>
<TacticalManeuverCompareView />
</div>
)}
{isExecutive && (
<div style={{ width: '100%', height: '100%', overflowY: 'auto', overflowX: 'hidden' }}>
<ExecutiveShowcase />
File diff suppressed because it is too large Load Diff