diff --git a/assets/css/variables.css b/assets/css/variables.css index 568b5b9..f235c37 100644 --- a/assets/css/variables.css +++ b/assets/css/variables.css @@ -5,10 +5,10 @@ :root { /* Primary Colors (Gold/Cinnamon) */ - --primary-color: #bc9f69; + --primary-color: #0048b4; --primary-rgb: 188, 159, 105; - --primary-light: #d4c4a8; - --primary-dark: #a68b58; + --primary-light: #0038b4; + --primary-dark: #0028b4; --primary-soft: rgba(188, 159, 105, 0.1); /* Secondary Colors */ diff --git a/routes/admin.js b/routes/admin.js index 3c105a3..829abaf 100644 --- a/routes/admin.js +++ b/routes/admin.js @@ -10,7 +10,6 @@ const footerController = require("../controllers/footerController"); const aboutUsController = require("../controllers/aboutUsController"); const formController = require("../controllers/formController"); const contactController = require("../controllers/contactController"); -const campLocationController = require("../controllers/campLocationController"); const pageController = require("../controllers/pageController"); const settingController = require("../controllers/settingController"); const faqController = require("../controllers/faqController"); // Thêm import này @@ -224,13 +223,6 @@ router.put( // Safety routes router.get("/safety", ensureAuthenticated, safetyController.index); router.post("/safety/update", ensureAuthenticated, safetyController.update); -// Camp Location routes -router.get("/camp-location", ensureAuthenticated, campLocationController.index); -router.post( - "/camp-location/update", - ensureAuthenticated, - campLocationController.update, -); //Insurance routes router.get("/insurance", ensureAuthenticated, insuranceController.index); @@ -265,65 +257,6 @@ router.post( serviceController.updateDetails, ); -// Test Image Paths route -router.get("/test-images", ensureAuthenticated, (req, res) => { - const fs = require("fs"); - const path = require("path"); - const campLocationData = require("../data/camp-location.json"); - - // Collect all image paths - const imagePaths = []; - - // Camps images - if (campLocationData.camps) { - campLocationData.camps.forEach((camp) => { - if (camp.image) { - imagePaths.push({ - type: "Camp", - name: camp.title, - path: camp.image, - exists: fs.existsSync(path.join(__dirname, "../public", camp.image)), - }); - } - }); - } - - // Locations images - if (campLocationData.locations) { - campLocationData.locations.forEach((location) => { - if (location.imageSrc) { - imagePaths.push({ - type: "Location", - name: location.title, - path: location.imageSrc, - exists: fs.existsSync(path.join(__dirname, "../public", location.imageSrc)), - }); - } - - // Program images - if (location.programOptions) { - location.programOptions.forEach((program) => { - if (program.imageSrc) { - imagePaths.push({ - type: "Program", - name: program.title, - path: program.imageSrc, - exists: fs.existsSync(path.join(__dirname, "../public", program.imageSrc)), - }); - } - }); - } - }); - } - - res.render("admin/test-images", { - layout: "layouts/admin", - title: "Test Image Paths", - images: imagePaths, - user: req.session.user, - }); -}); - // Display visa management page router.get("/visa", ensureAuthenticated, visaController.index); diff --git a/routes/index.js b/routes/index.js index 2a51b18..8090a59 100644 --- a/routes/index.js +++ b/routes/index.js @@ -12,7 +12,6 @@ const faqController = require("../controllers/faqController"); const visaController = require("../controllers/visaController"); const headerMenuController = require("../controllers/headerMenuController"); const safetyController = require("../controllers/safetyController"); -const campLocationController = require("../controllers/campLocationController"); // Booking flow removed const insuranceController = require("../controllers/insuranceController"); @@ -83,10 +82,6 @@ router.get("/api/safety", safetyController.api); // Activity API routes router.get("/api/activities", activityController.api); router.get("/api/activities/:id", activityController.apiDetail); - -// Camp Location API route -router.get("/api/camp-location", campLocationController.api); -// Booking routes removed // Insurance APi route router.get("/api/insurance", insuranceController.api); @@ -127,16 +122,6 @@ router.get( bookingSubmissionController.getSessionAvailability, ); -// New API for creating bookings directly into camp sessions (by program) -router.post("/api/camps/:program/sessions/:sessionId/bookings", activityController.createSessionBookingByProgram); -router.get("/api/camps/:program/sessions/:sessionId/bookings", activityController.getSessionBookingsByProgram); -// Keep admin-style update/delete by activityId (protected) if needed -router.put("/api/camps/:activityId/sessions/:sessionId/bookings/:bookingId", activityController.updateSessionBooking); -router.delete( - "/api/camps/:activityId/sessions/:sessionId/bookings/:bookingId", - activityController.deleteSessionBooking, -); - // Demo booking form router.get("/demo/booking-form", (req, res) => { res.sendFile(path.join(__dirname, "../views/demo/booking-form.html")); diff --git a/views/admin/campLocation/index.ejs b/views/admin/campLocation/index.ejs deleted file mode 100644 index ddcc568..0000000 --- a/views/admin/campLocation/index.ejs +++ /dev/null @@ -1,1481 +0,0 @@ - - - -
-
-
-

<%= title %>

-

Edit content displayed on Camp Location page

-
-
- - View Camp Location Page - -
-
- -
-
-
- - - - - - - - - - - - - - -
- - -
-
- -
-
-
-
-
- - -
-
- -
- - -
- - Recommended size: 1920x1080px. Upload or enter image path. -
-
- <% if (data.hero?.backgroundImage) { %> - Hero background preview - <% } %> -
-
-
-
-
- - -
-
-
-
-
- - -
-
- - -
-
- - -
-
-
-
-
- - -
-
-
-
-
- - - General introduction text displayed in IntroSection component -
-
-
-
-
- - -
-
-
-
-
Section Title
- -
-
-
Read More Button Text
- - Text displayed on location cards' read more button -
-
-
-
Locations
- -
-
- <% if (data.locations && data.locations.length > 0) { %> - <% data.locations.forEach((location, index) => { %> -
-
- - - -
-
- - -
-
- - -
-
- -
- - -
- - Recommended size: 1200x800px. Upload or enter image path. -
-
- <% if (location.imageSrc) { %> - Location image preview - <% } %> -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
- - -
-
-
- - -
-
- <% if (location.programOptions && location.programOptions.length > 0) { %> - <% location.programOptions.forEach((program, pIndex) => { %> -
-
-
-
- -
-
- -
-
-
- - -
- - Recommended: 600x400px -
-
- <% if (program.imageSrc) { %> - Program image preview - <% } %> -
-
- -
-
- -
-
-
-
- <% }); %> - <% } %> -
-
-
- -
-
- <% }); %> - <% } %> -
-
-
-
- - -
-
-
-
-
Section Title
- -
-
-
FAQ Button Settings
-
-
- - -
-
- - - UIkit icon name (e.g., comments, question, info) -
-
- - -
-
-
-
-
-
FAQ Items
- -
-
- <% if (data.faq && data.faq.length > 0) { %> - <% data.faq.forEach((faqItem, index) => { %> -
-
-
-
- - -
-
- - -
-
- -
-
- <% }); %> - <% } %> -
-
-
-
- - -
-
-
-
-
Section Title
- -
-
-
Introduction
- - Introduction text for parents about the security concept -
-
-
-
Security Measures
- -
-
- <% if (data.securityConcept && data.securityConcept.items && data.securityConcept.items.length > 0) { %> - <% data.securityConcept.items.forEach((item, index) => { %> -
-
-
-
- - -
-
- - -
-
- -
-
- <% }); %> - <% } %> -
-
-
-
- - -
-
-
-
Camp Locations Map
- - -
-
-
-
-
Manage Camp Markers
- Add camps with GPS coordinates to display on the map -
- -
- -
- <% if (data.camps && data.camps.length > 0) { %> - <% data.camps.forEach((camp, index) => { %> -
-
-
- -
- -
- - -
- - Recommended size: 800x600px -
- <% if (camp.image) { %> - Camp image preview - <% } %> -
-
- - -
- - - -
-
- -
- - -
- Click "Find" to auto-fill coordinates -
-
- - -
-
- - -
-
-
-
-
-
-
- -
-
- <% }); %> - <% } else { %> -
- No camps added yet. Click "Add Camp" to create your first camp marker. -
- <% } %> -
-
-
- -
- - -
-
-
-
Map Preview
- -
- <% if (data.camps && data.camps.filter(c => c.lat && c.lng).length > 0) { %> -
- - Showing <%= data.camps.filter(c => c.lat && c.lng).length %> camp location(s) on the map -
- <% } else { %> -
- - No camps with coordinates yet. Add latitude and longitude to camps above to see them on the map. -
- <% } %> -
- - -
-
-
-
- <% if (data.camps && data.camps.length > 0) { %> - <% - const validCamps = data.camps.filter(c => c.lat && c.lng); - if (validCamps.length > 0) { - %> - - <% } else { %> -
-
- -

Add coordinates to camps above to see them on the map

-
-
- <% } %> - <% } else { %> -
-
- -

No camps added yet. Click "Add Camp" button above to get started.

-
-
- <% } %> -
-
- <% if (data.camps && data.camps.filter(c => c.lat && c.lng).length > 0) { %> - - <% } %> -
-
-
- - - - - - - - - - -
-
-
-
-
-
- - -
- - -
-
-
-
-
- - - - diff --git a/views/admin/dashboard.ejs b/views/admin/dashboard.ejs index f9f1e9b..c04eaa0 100644 --- a/views/admin/dashboard.ejs +++ b/views/admin/dashboard.ejs @@ -217,25 +217,6 @@ - -
-
-
-
- -
-
-
Camp Location
-

Manage camp location

-
-
- - Edit - -
-
-
@@ -675,7 +656,7 @@