UI config
This commit is contained in:
@@ -11,10 +11,35 @@ from app.models.local_flight import LocalFlightStatus
|
||||
from app.models.departure import DepartureStatus
|
||||
from app.models.arrival import ArrivalStatus
|
||||
from datetime import date, datetime, timedelta
|
||||
import re
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
def lighten_color(hex_color, factor=0.3):
|
||||
"""Lighten a hex color by a factor (0-1)"""
|
||||
hex_color = hex_color.lstrip('#')
|
||||
if len(hex_color) != 6:
|
||||
return hex_color # Invalid, return as is
|
||||
r, g, b = int(hex_color[0:2], 16), int(hex_color[2:4], 16), int(hex_color[4:6], 16)
|
||||
r = min(255, int(r + (255 - r) * factor))
|
||||
g = min(255, int(g + (255 - g) * factor))
|
||||
b = min(255, int(b + (255 - b) * factor))
|
||||
return f"#{r:02x}{g:02x}{b:02x}"
|
||||
|
||||
|
||||
def darken_color(hex_color, factor=0.3):
|
||||
"""Darken a hex color by a factor (0-1)"""
|
||||
hex_color = hex_color.lstrip('#')
|
||||
if len(hex_color) != 6:
|
||||
return hex_color # Invalid, return as is
|
||||
r, g, b = int(hex_color[0:2], 16), int(hex_color[2:4], 16), int(hex_color[4:6], 16)
|
||||
r = max(0, int(r * (1 - factor)))
|
||||
g = max(0, int(g * (1 - factor)))
|
||||
b = max(0, int(b * (1 - factor)))
|
||||
return f"#{r:02x}{g:02x}{b:02x}"
|
||||
|
||||
|
||||
@router.get("/arrivals")
|
||||
async def get_public_arrivals(db: Session = Depends(get_db)):
|
||||
"""Get today's arrivals for public display (PPR and local flights)"""
|
||||
@@ -200,4 +225,18 @@ async def get_public_departures(db: Session = Depends(get_db)):
|
||||
'isDeparture': True
|
||||
})
|
||||
|
||||
return departures_list
|
||||
return departures_list
|
||||
|
||||
|
||||
@router.get("/config")
|
||||
async def get_ui_config():
|
||||
"""Get UI configuration for client-side rendering"""
|
||||
from app.core.config import settings
|
||||
base_color = settings.top_bar_base_color
|
||||
return {
|
||||
"tag": settings.tag,
|
||||
"top_bar_gradient_start": base_color,
|
||||
"top_bar_gradient_end": lighten_color(base_color, 0.4), # Lighten for gradient end
|
||||
"footer_color": darken_color(base_color, 0.2), # Darken for footer
|
||||
"environment": settings.environment
|
||||
}
|
||||
@@ -28,6 +28,11 @@ class Settings(BaseSettings):
|
||||
project_name: str = "Airfield PPR API"
|
||||
base_url: str
|
||||
|
||||
# UI Configuration
|
||||
tag: str = ""
|
||||
top_bar_base_color: str = "#2c3e50"
|
||||
environment: str = "production" # production, development, staging, etc.
|
||||
|
||||
# Redis settings (for future use)
|
||||
redis_url: Optional[str] = None
|
||||
|
||||
|
||||
Reference in New Issue
Block a user