From 0672666bd3f128923bd0a7edaf94b0cdb7a36cbc Mon Sep 17 00:00:00 2001 From: Clayzxr Date: Tue, 21 Jan 2025 15:17:47 +0100 Subject: [PATCH] CDN working with Docker --- Dockerfile | 2 +- deno.json | 1 + fresh.gen.ts | 18 ++++++++++++++++++ .../ConsultMobility.tsx | 0 .../ConsultStudents.tsx | 0 .../EditMobility.tsx | 0 .../EditStudents.tsx | 0 .../ImportFile.tsx | 0 .../UploadStudents.tsx | 10 +++++++++- routes/(apps)/mobility/api/insert_students.ts | 6 ------ routes/(apps)/mobility/partials/students.tsx | 2 +- 11 files changed, 30 insertions(+), 9 deletions(-) rename routes/(apps)/mobility/{(_components) => (_islands)}/ConsultMobility.tsx (100%) rename routes/(apps)/mobility/{(_components) => (_islands)}/ConsultStudents.tsx (100%) rename routes/(apps)/mobility/{(_components) => (_islands)}/EditMobility.tsx (100%) rename routes/(apps)/mobility/{(_components) => (_islands)}/EditStudents.tsx (100%) rename routes/(apps)/mobility/{(_components) => (_islands)}/ImportFile.tsx (100%) rename routes/(apps)/mobility/{(_components) => (_islands)}/UploadStudents.tsx (87%) diff --git a/Dockerfile b/Dockerfile index fd8f30c..6615438 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ FROM denoland/deno:alpine WORKDIR /app COPY . . -RUN deno cache main.ts +RUN deno cache main.ts --allow-import flag RUN deno task build USER deno diff --git a/deno.json b/deno.json index e9dcaca..344187a 100644 --- a/deno.json +++ b/deno.json @@ -26,6 +26,7 @@ "@db/sqlite": "jsr:@db/sqlite@^0.12.0", "@melvdouc/xml-parser": "jsr:@melvdouc/xml-parser@^0.1.1", "@popov/jwt": "jsr:@popov/jwt@^1.0.1", + "@psych/sheet": "jsr:@psych/sheet@^1.0.6", "@std/cli": "jsr:@std/cli@^1.0.10", "preact": "https://esm.sh/preact@10.22.0", "preact/": "https://esm.sh/preact@10.22.0/", diff --git a/fresh.gen.ts b/fresh.gen.ts index 0c4ae9b..e385358 100644 --- a/fresh.gen.ts +++ b/fresh.gen.ts @@ -24,6 +24,12 @@ import * as $login from "./routes/login.tsx"; 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 from "./routes/(apps)/mobility/(_islands)/ConsultStudents.tsx"; +import * as $_apps_mobility_islands_EditMobility from "./routes/(apps)/mobility/(_islands)/EditMobility.tsx"; +import * as $_apps_mobility_islands_EditStudents from "./routes/(apps)/mobility/(_islands)/EditStudents.tsx"; +import * as $_apps_mobility_islands_ImportFile from "./routes/(apps)/mobility/(_islands)/ImportFile.tsx"; +import * as $_apps_mobility_islands_UploadStudents from "./routes/(apps)/mobility/(_islands)/UploadStudents.tsx"; import type { Manifest } from "$fresh/server.ts"; const manifest = { @@ -59,6 +65,18 @@ const manifest = { islands: { "./routes/(_islands)/AppNavigator.tsx": $_islands_AppNavigator, "./routes/(_islands)/Navbar.tsx": $_islands_Navbar, + "./routes/(apps)/mobility/(_islands)/ConsultMobility.tsx": + $_apps_mobility_islands_ConsultMobility, + "./routes/(apps)/mobility/(_islands)/ConsultStudents.tsx": + $_apps_mobility_islands_ConsultStudents, + "./routes/(apps)/mobility/(_islands)/EditMobility.tsx": + $_apps_mobility_islands_EditMobility, + "./routes/(apps)/mobility/(_islands)/EditStudents.tsx": + $_apps_mobility_islands_EditStudents, + "./routes/(apps)/mobility/(_islands)/ImportFile.tsx": + $_apps_mobility_islands_ImportFile, + "./routes/(apps)/mobility/(_islands)/UploadStudents.tsx": + $_apps_mobility_islands_UploadStudents, }, baseUrl: import.meta.url, } satisfies Manifest; diff --git a/routes/(apps)/mobility/(_components)/ConsultMobility.tsx b/routes/(apps)/mobility/(_islands)/ConsultMobility.tsx similarity index 100% rename from routes/(apps)/mobility/(_components)/ConsultMobility.tsx rename to routes/(apps)/mobility/(_islands)/ConsultMobility.tsx diff --git a/routes/(apps)/mobility/(_components)/ConsultStudents.tsx b/routes/(apps)/mobility/(_islands)/ConsultStudents.tsx similarity index 100% rename from routes/(apps)/mobility/(_components)/ConsultStudents.tsx rename to routes/(apps)/mobility/(_islands)/ConsultStudents.tsx diff --git a/routes/(apps)/mobility/(_components)/EditMobility.tsx b/routes/(apps)/mobility/(_islands)/EditMobility.tsx similarity index 100% rename from routes/(apps)/mobility/(_components)/EditMobility.tsx rename to routes/(apps)/mobility/(_islands)/EditMobility.tsx diff --git a/routes/(apps)/mobility/(_components)/EditStudents.tsx b/routes/(apps)/mobility/(_islands)/EditStudents.tsx similarity index 100% rename from routes/(apps)/mobility/(_components)/EditStudents.tsx rename to routes/(apps)/mobility/(_islands)/EditStudents.tsx diff --git a/routes/(apps)/mobility/(_components)/ImportFile.tsx b/routes/(apps)/mobility/(_islands)/ImportFile.tsx similarity index 100% rename from routes/(apps)/mobility/(_components)/ImportFile.tsx rename to routes/(apps)/mobility/(_islands)/ImportFile.tsx diff --git a/routes/(apps)/mobility/(_components)/UploadStudents.tsx b/routes/(apps)/mobility/(_islands)/UploadStudents.tsx similarity index 87% rename from routes/(apps)/mobility/(_components)/UploadStudents.tsx rename to routes/(apps)/mobility/(_islands)/UploadStudents.tsx index d8db47a..ab93e74 100644 --- a/routes/(apps)/mobility/(_components)/UploadStudents.tsx +++ b/routes/(apps)/mobility/(_islands)/UploadStudents.tsx @@ -6,20 +6,26 @@ export default function UploadStudents() { const statusMessage = useSignal(""); const fileData = useSignal(null); + console.log("Component UploadStudents mounted"); + const handleFileChange = (event: Event) => { const input = event.target as HTMLInputElement; if (input.files && input.files.length > 0) { fileData.value = input.files[0]; statusMessage.value = "File selected: " + input.files[0].name; + console.log("File selected:", input.files[0].name); } else { fileData.value = null; statusMessage.value = "No file selected"; + console.log("No file selected."); } }; const confirmUpload = async () => { + console.log("Confirm Upload clicked"); if (!fileData.value) { statusMessage.value = "Please select a file before confirming upload."; + console.error("Error: No file selected."); return; } @@ -34,10 +40,12 @@ export default function UploadStudents() { for (const sheetName of workbook.SheetNames) { const sheet = workbook.Sheets[sheetName]; const data = XLSX.utils.sheet_to_json(sheet, { - header: ["Nom", "Prénom", "Mail"], + header: ["Nom", "Prénom", "Mail"], range: 1, // Ignorer les en-têtes }); + console.log(`Data from sheet ${sheetName}:`, data); + const response = await fetch("/api/insert_students", { method: "POST", headers: { "Content-Type": "application/json" }, diff --git a/routes/(apps)/mobility/api/insert_students.ts b/routes/(apps)/mobility/api/insert_students.ts index 790dce0..52be9dd 100644 --- a/routes/(apps)/mobility/api/insert_students.ts +++ b/routes/(apps)/mobility/api/insert_students.ts @@ -4,10 +4,8 @@ import { Database } from "@db/sqlite"; export const handler: Handlers = { async GET(_request, context) { try { - // Ouvre ou crée la base de données SQLite const db = new Database("databases/data/mobility.db"); - // Crée la table si elle n'existe pas db.execute(` CREATE TABLE IF NOT EXISTS students ( id INTEGER PRIMARY KEY AUTOINCREMENT, @@ -18,7 +16,6 @@ export const handler: Handlers = { ); `); - // Récupère toutes les données const students = []; for (const [id, firstName, lastName, email, promotion] of db.query( "SELECT id, firstName, lastName, email, promotion FROM students" @@ -43,10 +40,8 @@ export const handler: Handlers = { const body = await request.json(); const { data, promoName } = body; - // Ouvre ou crée la base de données SQLite const db = new Database("databases/data/mobility.db"); - // Crée la table si elle n'existe pas db.execute(` CREATE TABLE IF NOT EXISTS students ( id INTEGER PRIMARY KEY AUTOINCREMENT, @@ -57,7 +52,6 @@ export const handler: Handlers = { ); `); - // Prépare et insère les données const insertQuery = "INSERT INTO students (firstName, lastName, email, promotion) VALUES (?, ?, ?, ?)"; for (const student of data) { diff --git a/routes/(apps)/mobility/partials/students.tsx b/routes/(apps)/mobility/partials/students.tsx index c156c61..bbc0d34 100644 --- a/routes/(apps)/mobility/partials/students.tsx +++ b/routes/(apps)/mobility/partials/students.tsx @@ -1,5 +1,5 @@ import { RouteConfig } from "$fresh/server.ts"; -import UploadStudents from "../(_components)/UploadStudents.tsx"; +import UploadStudents from "../(_islands)/UploadStudents.tsx"; //import ConsultStudents from "../(_components)/ConsultStudents.tsx"; //import EditStudents from "../(_components)/EditStudents.tsx";