diff --git a/Caddyfile b/Caddyfile new file mode 100644 index 0000000..f85c628 --- /dev/null +++ b/Caddyfile @@ -0,0 +1,17 @@ +lan.vbytes.se { + reverse_proxy localhost:5000 + + log { + output file /var/log/caddy/access.log + } + + encode gzip zstd + + header { + Permissions-Policy interest-cohort=() + Strict-Transport-Security max-age=31536000; + X-Content-Type-Options nosniff + X-Frame-Options DENY + Referrer-Policy no-referrer-when-downgrade + } +} diff --git a/src/Registration/Registration.API/appsettings.Development.json b/src/Registration/Registration.API/appsettings.Development.json index 43ad566..cf475e8 100644 --- a/src/Registration/Registration.API/appsettings.Development.json +++ b/src/Registration/Registration.API/appsettings.Development.json @@ -14,7 +14,7 @@ "VbytesRelay": { "BaseUrl": "https://api.lan.vbytes.se", "ParticipantRegisterPath": "/api/participant", - "VolunteerRegisterPath": "/api/volunteer/register", + "VolunteerRegisterPath": "/api/volunteer", "ApiKeyHeaderName": "X-Api-Key", "ApiKey": "", "ClientCertificatePfxPath": "" diff --git a/src/Registration/Registration.API/appsettings.json b/src/Registration/Registration.API/appsettings.json index d3ae39b..8d47bd1 100644 --- a/src/Registration/Registration.API/appsettings.json +++ b/src/Registration/Registration.API/appsettings.json @@ -11,7 +11,7 @@ "VbytesRelay": { "BaseUrl": "https://api.lan.vbytes.se", "ParticipantRegisterPath": "/api/participant", - "VolunteerRegisterPath": "/api/volunteer/register", + "VolunteerRegisterPath": "/api/volunteer", "ApiKeyHeaderName": "X-Api-Key", "ApiKey": "__SET_IN_USER_SECRETS__", "ClientCertificatePfxPath": "__SET_IN_USER_SECRETS__" diff --git a/src/Web/lan-frontend/app/register/page.tsx b/src/Web/lan-frontend/app/register/page.tsx index 88f236f..69879c1 100644 --- a/src/Web/lan-frontend/app/register/page.tsx +++ b/src/Web/lan-frontend/app/register/page.tsx @@ -4,7 +4,7 @@ import { useEffect, useState } from "react"; import Image from "next/image"; import Link from "next/link"; -import { useRouter } from "next/navigation"; +import router from "next/router"; interface EventContent { registrationEnabled: boolean; @@ -29,7 +29,6 @@ const isValidMobileNumber = (value: string) => /^07\d{8}$/.test(normalizeMobileNumber(value)); export default function RegisterPage() { - const router = useRouter(); const [content, setContent] = useState(null); const [formData, setFormData] = useState({ firstName: "", @@ -168,7 +167,7 @@ export default function RegisterPage() { setShowBecomeMemberCta(false); setIsSubmitting(true); - setMessage({ type: "info", text: "Processing your registration..." }); + setMessage({ type: "info", text: "Behandlar din anmälan..." }); try { // Returns Ok (200) if NOT registered, Conflict (409) if registered @@ -179,7 +178,7 @@ export default function RegisterPage() { if (checkRes.status === 409) { setMessage({ type: "error", - text: "This SSN is already registered for the LAN.", + text: "Detta personnummer är redan registrerat för LAN:et.", }); setIsSubmitting(false); return; @@ -218,7 +217,7 @@ export default function RegisterPage() { if (response.ok) { setMessage({ type: "success", - text: "Registration complete! You are now registered for the LAN.", + text: "Registreringen är klar! Du är nu anmäld till LAN:et.", }); setShowBecomeMemberCta(!isMember); @@ -229,14 +228,14 @@ export default function RegisterPage() { const errorData = await response.json(); setMessage({ type: "error", - text: errorData.message || "Event registration failed.", + text: errorData.message || "Registreringen misslyckades.", }); } } catch (error) { console.error("Registration error:", error); setMessage({ type: "error", - text: "A connection error occurred. Please check your internet and try again.", + text: "Ett anslutningsfel uppstod. Kontrollera internet och försök igen.", }); } finally { setIsSubmitting(false); @@ -269,7 +268,7 @@ export default function RegisterPage() { />
-

Lan Registrering

+

LAN-registrering

Vänligen fyll i detta formulär för att anmäla dig till lanet.

@@ -399,7 +398,7 @@ export default function RegisterPage() { htmlFor="email" className="block text-sm font-medium text-gray-700" > - Email + E-post - Vårdnadshavares Email * + Vårdnadshavares E-post *

- Yttrligare uppgifter + Ytterligare uppgifter

@@ -575,11 +574,11 @@ export default function RegisterPage() { htmlFor="hasApprovedGdpr" className="font-medium text-gray-700" > - GDPR godkännande * + GDPR-godkännande *

- Jag Godkänner att min personliga uppgifter sparas och - hanteras i syfte för detta event. + Jag godkänner att mina personuppgifter sparas och hanteras i + syfte för detta event.

@@ -617,7 +616,7 @@ export default function RegisterPage() { disabled={isSubmitting} className="w-full flex justify-center py-3 px-4 border border-transparent rounded-md shadow-sm text-base font-medium text-white bg-blue-600 hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 disabled:bg-blue-400" > - {isSubmitting ? "Registering..." : "Register for LAN"} + {isSubmitting ? "Registrerar..." : "Anmäl dig till LAN"}