Fees and Charges
+Landing, parking, handling, passenger loading, drone, and related operational charges.
+diff --git a/.env.example b/.env.example
index ac1e646..6d5af77 100644
--- a/.env.example
+++ b/.env.example
@@ -1,4 +1,5 @@
PUBLIC_SITE_URL=https://swansea-airport.wales
+PUBLIC_PPR_API_BASE=https://ppr.swansea-airport.wales/api/v1
DIRECTUS_URL=http://directus:8055
FRONTEND_PORT=8080
DIRECTUS_PORT=8055
diff --git a/README.md b/README.md
index d339735..59a89a5 100644
--- a/README.md
+++ b/README.md
@@ -18,6 +18,7 @@ Production-ready airfield website stack built with Astro, Directus, PostgreSQL,
## Notes
- All deploy-time variables live in `.env`.
+- `PUBLIC_PPR_API_BASE` controls the browser-side PPR API base URL; PPR and drone request endpoints are derived from it at build/dev-server startup.
- The frontend service bind-mounts the project into `/app`, keeps `node_modules` and `.astro` in named volumes, and serves the site with `astro dev` on the published frontend port.
- Layout and page structure are controlled entirely by Astro.
- Frontend source edits should appear without rebuilding the container image.
diff --git a/docker-compose.yml b/docker-compose.yml
index 224169a..254c1bd 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -71,6 +71,7 @@ services:
command: ["sh", "-c", "npm install && npm run dev -- --host 0.0.0.0 --port 80"]
environment:
PUBLIC_SITE_URL: ${PUBLIC_SITE_URL}
+ PUBLIC_PPR_API_BASE: ${PUBLIC_PPR_API_BASE}
DIRECTUS_URL: ${DIRECTUS_URL}
DIRECTUS_PUBLIC_URL: ${DIRECTUS_PUBLIC_URL}
DIRECTUS_PORT: ${DIRECTUS_PORT}
@@ -99,4 +100,4 @@ volumes:
networks:
default:
webapps:
- external: true
\ No newline at end of file
+ external: true
diff --git a/public/images/SDMAP.png b/public/images/SDMAP.png
new file mode 100644
index 0000000..a39db5f
Binary files /dev/null and b/public/images/SDMAP.png differ
diff --git a/src/components/DroneFlightRequestForm.astro b/src/components/DroneFlightRequestForm.astro
new file mode 100644
index 0000000..5557282
--- /dev/null
+++ b/src/components/DroneFlightRequestForm.astro
@@ -0,0 +1,724 @@
+---
+const configuredApiBase = import.meta.env.PUBLIC_PPR_API_BASE ?? 'https://ppr.swansea-airport.wales/api/v1';
+const pprApiBase = configuredApiBase.replace(/\/$/, '');
+const droneRequestEndpoint = `${pprApiBase}/drone-requests/public`;
+const frzGeoJsonEndpoint = `${pprApiBase}/drone-requests/frz`;
+---
+
+ Drone flight request
+ Tell us when and where you plan to fly. Pick the operating location on the map or enter it
+ manually, then click Submit. We will review your request and contact you if we need any further information.
+ Your drone request has been submitted. We will review it and contact you if we need any further information.Request a flight within the FRZ
+ Drone Request Submitted.
+
Prior permission request
++ Complete the details below for flights into Swansea Airport. Requests are accepted by default; + the airport will contact you if additional information is required. +
++ This form is under test. If you have any issues, email + james.pattinson@sasalliance.org. +
+Your PPR request has been submitted. You will receive confirmation via email if provided.
+Please note: PPR requests are accepted by default. We will contact you if additional information is required. Remember to check NOTAMs before your flight.
+About
+Prices are based on maximum take-off weight (MTOW) unless otherwise stated.
+ +| Type | +Landing fee | +Daytime parking | +Overnight parking outside | +Overnight parking hangar | +
|---|---|---|---|---|
| {cell} | )} +
| Type | +Single | +Unlimited | +
|---|---|---|
| {cell} | )} +
| MTOW | +Landing fee | +Daytime parking | +Overnight parking | +
|---|---|---|---|
| {cell} | )} +
| Charge | +Price | +Notes | +
|---|---|---|
| {cell} | )} +
Guidance and local operating expectations for drone use near the airport.
+Landing, parking, handling, passenger loading, drone, and related operational charges.
+Information about noise awareness, reporting, and community engagement.
diff --git a/src/pages/drone-flight-request.astro b/src/pages/drone-flight-request.astro new file mode 100644 index 0000000..60004df --- /dev/null +++ b/src/pages/drone-flight-request.astro @@ -0,0 +1,10 @@ +--- +import BaseLayout from '../layouts/BaseLayout.astro'; +import DroneFlightRequestForm from '../components/DroneFlightRequestForm.astro'; +--- + +Pilot info
+Airport open: Monday to Sunday, 0900-1800 local time.
+Licensed with fire cover: Friday, Saturday, and Sunday only. RFFS Cat A1.
+- Swansea Airport operates a Air / Ground Communication Service, callsign Swansea Radio on 119.705. This service is staffed by volunteers and may not be operational at all times. + Swansea Airport operates a Air / Ground Communication Service, callsign SWANSEA RADIO on 119.705. This service is staffed by volunteers and may not be operational at all times.
-When the Tower is unavailable, this will be NOTAMed and blind calls to Swansea Traffic shall be made on the Air / Ground frequency +When the Tower is unavailable, this will be NOTAMed and blind calls to Swansea Traffic shall be made on the Air / Ground frequency.
+Please submit your PPR request before flying into Swansea.
+ + +
+
+
+ Make your initial arrival call 10 NM from the ATZ. From the east, this is above Port Talbot. + From the north, this is above Ammanford/Tycroes. From the west, this is just off the Gower + coast approaching Rhossili. From the south, this is over the sea abeam Porthcawl. +
++ The Air/Ground service will advise if parachuting is in progress, as well as providing the + usual joining information. If parachuting is in progress, no overhead joins are permitted + and there is to be no dead-side flight within the ATZ. +
+All joins are to be downwind or base leg joins only.
++ When already on frequency, parachuting will be notified by the Air/Ground service using the + following message: +
++ ALL STATIONS, THIS IS SWANSEA RADIO. PARACHUTING HAS COMMENCED ON THE NORTHERN/SOUTHERN PLA. + NO OVERHEAD JOINS, NO DEAD SIDE FLIGHT. ++
+ When this is called, no overhead joins or dead-side flight is permitted in the ATZ. +
+ ++ All helicopters are to request start. This is to protect parachuting operations. + If parachuting descent is already taking place, pilots will be advised to start only after the + parachuting descent has completed. +
+When parachuting is in progress, all departing aircraft should:
++ Helicopters are to adhere to the circuit patterns when parachuting is taking place. +
++ + Be advised that these procedures form part of the rules of the aerodrome. Permission to use + the aerodrome will be revoked if they are not adhered to. + +
+ +Circuits at 1000ft agl. Overhead joins and/or dead-side flying not permitted when Parachuting is active. - - - -
Operations
-- This page is intentionally text-led and easy to scan. It is controlled by Astro so the structure stays stable even as the content evolves. -
- -Surface the checklist items pilots need most, without burying them under visual clutter.
-Operational notices should be reviewed before taxi, because the homepage is fed by the same notices collection.
-Noise abatement text can be expanded in Directus while the page structure stays fixed in code.
-