From a867f67fd9c808e57a5fda28ac73e285846963f7 Mon Sep 17 00:00:00 2001 From: Clayzxr Date: Fri, 24 Jan 2025 16:17:51 +0100 Subject: [PATCH] Trying to fix DB mobility --- fresh.gen.ts | 9 +- .../mobility/(_islands)/ConsultMobility.tsx | 8 +- .../mobility/(_islands)/EditMobility.tsx | 94 +++++++++++++------ routes/(apps)/mobility/api/insert_mobility.ts | 17 ++-- 4 files changed, 81 insertions(+), 47 deletions(-) diff --git a/fresh.gen.ts b/fresh.gen.ts index 58412fb..dd2f589 100644 --- a/fresh.gen.ts +++ b/fresh.gen.ts @@ -3,9 +3,9 @@ // This file is automatically updated during development when running `dev.ts`. import * as $_apps_layout from "./routes/(apps)/_layout.tsx"; +import * as $_apps_mobility_api_insert_mobility from "./routes/(apps)/mobility/api/insert_mobility.ts"; import * as $_apps_mobility_index from "./routes/(apps)/mobility/index.tsx"; import * as $_apps_mobility_partials_admin_edit_mobility from "./routes/(apps)/mobility/partials/(admin)/edit_mobility.tsx"; -import * as $_apps_mobility_partials_admin_consult_students_test from "./routes/(apps)/mobility/partials/(admin)/consult_students_test.tsx"; import * as $_apps_mobility_partials_index from "./routes/(apps)/mobility/partials/index.tsx"; import * as $_apps_mobility_partials_overview from "./routes/(apps)/mobility/partials/overview.tsx"; import * as $_apps_notes_index from "./routes/(apps)/notes/index.tsx"; @@ -30,7 +30,6 @@ import * as $logout from "./routes/logout.tsx"; import * as $_islands_AppNavigator from "./routes/(_islands)/AppNavigator.tsx"; import * as $_islands_Navbar from "./routes/(_islands)/Navbar.tsx"; import * as $_apps_mobility_islands_ConsultMobility from "./routes/(apps)/mobility/(_islands)/ConsultMobility.tsx"; -import * as $_apps_mobility_islands_ConsultStudents_test from "./routes/(apps)/mobility/(_islands)/ConsultStudents_test.tsx"; import * as $_apps_mobility_islands_EditMobility from "./routes/(apps)/mobility/(_islands)/EditMobility.tsx"; import * as $_apps_mobility_islands_ImportFile from "./routes/(apps)/mobility/(_islands)/ImportFile.tsx"; import * as $_apps_students_islands_ConsultStudents from "./routes/(apps)/students/(_islands)/ConsultStudents.tsx"; @@ -41,11 +40,11 @@ import type { Manifest } from "$fresh/server.ts"; const manifest = { routes: { "./routes/(apps)/_layout.tsx": $_apps_layout, + "./routes/(apps)/mobility/api/insert_mobility.ts": + $_apps_mobility_api_insert_mobility, "./routes/(apps)/mobility/index.tsx": $_apps_mobility_index, "./routes/(apps)/mobility/partials/(admin)/edit_mobility.tsx": $_apps_mobility_partials_admin_edit_mobility, - "./routes/(apps)/mobility/partials/(admin)/consult_students_test.tsx": - $_apps_mobility_partials_admin_consult_students_test, "./routes/(apps)/mobility/partials/index.tsx": $_apps_mobility_partials_index, "./routes/(apps)/mobility/partials/overview.tsx": @@ -82,8 +81,6 @@ const manifest = { "./routes/(_islands)/Navbar.tsx": $_islands_Navbar, "./routes/(apps)/mobility/(_islands)/ConsultMobility.tsx": $_apps_mobility_islands_ConsultMobility, - "./routes/(apps)/mobility/(_islands)/ConsultStudents_test.tsx": - $_apps_mobility_islands_ConsultStudents_test, "./routes/(apps)/mobility/(_islands)/EditMobility.tsx": $_apps_mobility_islands_EditMobility, "./routes/(apps)/mobility/(_islands)/ImportFile.tsx": diff --git a/routes/(apps)/mobility/(_islands)/ConsultMobility.tsx b/routes/(apps)/mobility/(_islands)/ConsultMobility.tsx index 0f78e87..0138de4 100644 --- a/routes/(apps)/mobility/(_islands)/ConsultMobility.tsx +++ b/routes/(apps)/mobility/(_islands)/ConsultMobility.tsx @@ -24,16 +24,20 @@ export default function ConsultMobility() { useEffect(() => { const fetchData = async () => { + console.log("ConsultMobility: Fetching data from API..."); try { const response = await fetch("/mobility/api/insert_mobility"); + console.log("ConsultMobility: API response status:", response.status); + if (!response.ok) { throw new Error(`Error fetching data: ${response.statusText}`); } const result = await response.json(); + console.log("ConsultMobility: Data fetched successfully:", result); setData(result); } catch (err) { - console.error("Error fetching mobility data:", err); + console.error("ConsultMobility: Error fetching data:", err); setError("Failed to load mobility data. Please try again later."); } }; @@ -47,7 +51,7 @@ export default function ConsultMobility() { {error &&

{error}

} {data?.promotions.map((promo) => (
-

Promotion: {promo.id}

+

Promotion: {promo.name}

diff --git a/routes/(apps)/mobility/(_islands)/EditMobility.tsx b/routes/(apps)/mobility/(_islands)/EditMobility.tsx index 43b80ef..2970a81 100644 --- a/routes/(apps)/mobility/(_islands)/EditMobility.tsx +++ b/routes/(apps)/mobility/(_islands)/EditMobility.tsx @@ -18,44 +18,48 @@ export default function EditMobility() { const [isSaving, setIsSaving] = useState(false); useEffect(() => { - async function fetchMobilityData() { - const response = await fetch("/mobility/api/insert_mobility"); - const data = await response.json(); - setMobilityData(data.mobilities || []); - } + const fetchMobilityData = async () => { + console.log("EditMobility: Fetching mobility data..."); + try { + const response = await fetch("/mobility/api/insert_mobility"); + console.log("EditMobility: API response status:", response.status); + + if (!response.ok) { + throw new Error(`Error fetching data: ${response.statusText}`); + } + + const data = await response.json(); + console.log("EditMobility: Data fetched successfully:", data); + setMobilityData(data.mobilities || []); + } catch (err) { + console.error("EditMobility: Error fetching data:", err); + } + }; fetchMobilityData(); }, []); - const handleChange = ( - id: number, - field: keyof MobilityData, - value: string | number | null, - ) => { - setMobilityData((prev) => - prev.map((entry) => - entry.id === id ? { ...entry, [field]: value } : entry, - ) - ); - }; - const handleSave = async () => { + console.log("EditMobility: Saving data..."); setIsSaving(true); try { - const response = await fetch("/mobility/api/insert_mobility", { + const response = await fetch("/mobility/api/insert_mobility", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ data: mobilityData }), }); + console.log("EditMobility: Save response status:", response.status); + if (response.ok) { + console.log("EditMobility: Data saved successfully."); alert("Data saved successfully!"); } else { - alert("Failed to save data."); + throw new Error(`Failed to save data: ${response.statusText}`); } } catch (error) { - console.error("Error saving data:", error); + console.error("EditMobility: Error saving data:", error); alert("An error occurred while saving data."); } finally { setIsSaving(false); @@ -87,7 +91,13 @@ export default function EditMobility() { type="date" value={mobility.startDate || ""} onChange={(e) => - handleChange(mobility.id, "startDate", e.target.value) + setMobilityData((prev) => + prev.map((entry) => + entry.id === mobility.id + ? { ...entry, startDate: e.target.value } + : entry + ) + ) } /> @@ -96,7 +106,13 @@ export default function EditMobility() { type="date" value={mobility.endDate || ""} onChange={(e) => - handleChange(mobility.id, "endDate", e.target.value) + setMobilityData((prev) => + prev.map((entry) => + entry.id === mobility.id + ? { ...entry, endDate: e.target.value } + : entry + ) + ) } /> @@ -105,10 +121,12 @@ export default function EditMobility() { type="number" value={mobility.weeksCount || ""} onChange={(e) => - handleChange( - mobility.id, - "weeksCount", - Number(e.target.value) || null, + setMobilityData((prev) => + prev.map((entry) => + entry.id === mobility.id + ? { ...entry, weeksCount: Number(e.target.value) || null } + : entry + ) ) } /> @@ -118,7 +136,13 @@ export default function EditMobility() { type="text" value={mobility.destinationCountry || ""} onChange={(e) => - handleChange(mobility.id, "destinationCountry", e.target.value) + setMobilityData((prev) => + prev.map((entry) => + entry.id === mobility.id + ? { ...entry, destinationCountry: e.target.value } + : entry + ) + ) } /> @@ -127,7 +151,13 @@ export default function EditMobility() { type="text" value={mobility.destinationName || ""} onChange={(e) => - handleChange(mobility.id, "destinationName", e.target.value) + setMobilityData((prev) => + prev.map((entry) => + entry.id === mobility.id + ? { ...entry, destinationName: e.target.value } + : entry + ) + ) } /> @@ -135,7 +165,13 @@ export default function EditMobility() {