Skip to content

Commit

Permalink
Merge pull request #77 from emil-webkom/POreq
Browse files Browse the repository at this point in the history
Poreq
  • Loading branch information
Mauritzskog authored Sep 9, 2024
2 parents 96b747a + f94fcf6 commit 6d808bb
Show file tree
Hide file tree
Showing 12 changed files with 285 additions and 101 deletions.
2 changes: 1 addition & 1 deletion frontend/prisma/schema.prisma
Original file line number Diff line number Diff line change
Expand Up @@ -192,4 +192,4 @@ enum UserRole {
ADMIN
USER
SUPER_USER
}
}
138 changes: 134 additions & 4 deletions frontend/src/app/for_studenten/arkiv/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ import MenuCard, {
} from "@/components/ForStudenten/ui/menu-card";
import MenuCardView from "@/components/ForStudenten/ui/menu-card-view";
import SmallTransissionPCSPC from "@/components/hero/transissions/smallTransissionPCSPC";
import SmallTransissionSPCPC from "@/components/hero/transissions/smallTransissionSPCPC";
import { Button } from "@/components/ui/button";
import Modal from "@/components/ui/modal";
import useFetch from "@/hooks/use-fetch";
import { AeresEmiler } from "@/schemas/aeresEmiler";
import { testDeleteAeresemiler } from "@/tests/api/delete/deleteAeresemiler";
Expand All @@ -16,6 +19,7 @@ const ArkivPage = () => {
const { data, loading, error } = useFetch<AeresEmiler[] | null>(
"/api/aeresemiler",
);
const [openModal, setOpenModal] = useState<boolean>(false);

// Define the page size (number of entries per page)
const PAGE_SIZE = 7;
Expand Down Expand Up @@ -43,10 +47,9 @@ const ArkivPage = () => {
}
};

// const handleTest = () => {
// testPostAeresemiler({aar: 2005, type:"AERESEMILER", navn:"Sigrun Kavli" });
// testDeleteAeresemiler("cm0mjnivx00021vc4ie8zii2w");
// };
const toggleModal = () => {
setOpenModal((prevState) => !prevState);
};

const cards: MenuCardProps[] = [
{
Expand Down Expand Up @@ -98,7 +101,134 @@ const ArkivPage = () => {
<MenuCardView cards={cards} />
</div>
<SmallTransissionPCSPC />
<div className="w-full flex flex-col items-center justify-center text-white bg-[#225654] px-2 lg:px-4 gap-y-4 pb-4">
<div className="max-w-[512px] flex flex-col items-center justify-center text-white rounded-md bg-[#3333] w-full px-4 lg:px-8 p-4">
<h1 className="font-bold text-lg pb-4">EMIL-Eden</h1>
<p>Lær oss gleden over de enkle ting,</p>
<br />
<p>og latter som ikke har ondt i sinn</p>
<br />
<p>Forlatelse fri for baktanke,</p>
<br />
<p>og kjærlighet til alle mennesker under solen.</p>
</div>
</div>
<div className="w-full flex flex-col items-center justify-center text-white bg-[#225654] px-2 lg:px-4 gap-y-4 pb-4 rounded-b-lg">
<div className="flex flex-col items-center justify-center max-w-[512px] py-4 gap-y-4 bg-[#225654]">
<p className="font-bold text-lg text-white">Emil Eventyret</p>
<p className="text-white text-md text-center">
Emil har også sitt eget eventyr. Dette er det essensielt at alle
emilere kan utenatt, så du gjør deg kanskje lurt som førsteklassing
å kjenne til eventyret.
</p>
<Button onClick={toggleModal}>Du finner det her</Button>
{openModal ? (
<Modal
isOpen={openModal}
children={
<div className="p-4 space-y-4">
<p>
Det var en gang en liten gutt som het Emil. Han var egentlig
en ganske vanlig gutt, men han hadde en egenskap som ikke
alle andre gutter på hans alder hadde. Emil hadde en tanke.
Faktisk en ganske stor tanke for en liten gutt. Emil ville
nemlig redde verden. Men hvordan skulle han klare det? Han
var jo bare én, og så veldig liten.
<br />
<br />
Emil tenkte stille for seg selv:
<br /> – Verden blir nøyaktig så bra som de handlingene vi
mennesker velger å gjøre. Å gjøre eller ikke gjøre, det er
tingen! Og slik sendte Moder Jord Emil ut i verden sånn at
han kunne realisere den store, lille tanken sin.
<br />
<br />
Etter å ha gått langt og lengre enn langt kom Emil til et
stort hav. På en metalløy ute i havet stod Georg og Petrine
og pumpet opp stygg, svart og stinkende olje. Det gikk i et
forrykende tempo og flammene stod høyt på himmelen mens
oljen ble fraktet over i store tankskip. I det samme så Emil
at en stor og sterk storm nærmet seg land. Havnivået steg
raskere enn antatt og nyhetene meldte om ekstreme
tørkeperioder i store deler av verden. Irma Isbjørn klamret
seg fast til et smeltende isflak.
<br /> – Å hjelp meg, hjelp meg, isen må ikke smelte,
hikstet Irma Isbjørn. Og klok som Emil var, løp han ned til
Georg og Petrine og ropte:
<br /> – Hallo, hallo, jeg tror ikke dere vet hva dere gjør.
Ser dere ikke at dere varmer opp verden?! Så forklarte Emil
om klimagassene og klimaendringne. Georg og Petrine forstod
og bestemte seg for å hjelpe Emil med å redde verden i
stedet. Teknologi kan vi jo bruke til flere ting, mente de.
<br />
<br />
Plutselig kom en knallrosa Jeep kjørende forbi i en rasende
fart. Det var Smøre-Snorre. Emil syntes at det var for galt
at han skulle kjøre slik og forurense, så han foreslo for
Smøre-Snorre at han kunne kjøre el-bil istedenfor, og det
synes Smøre-Snorre var en fabelaktig idé.
<br /> – Kanskje du kan hjelpe kompisen min også, spurte
Smøre-Snorre.
<br /> – Hun heter Bjørg-Bygg og har kledd på seg alt, alt
for mye. Hun er blitt både for varm og klam og ingen vil bo
i henne lengre. Faktisk holder hun på å knekke fordi hun er
blitt for tung.
<br /> – Ikke noe problem, sa Emil. Og slik ble det til at
Bjørg-Bygg fikk både solceller på taket og SMART-måler i
kjelleren. Slik fortsatte Emil med å gjøre verden bedre,
litt etter litt. Emil vandret fredelig videre og nøt synet
av en stor vindmøllepark, som lå i utkanten av en stor skog.
Det regnet, så Emil skjønte at dette måtte være regnskogen.
<br />– Regnskogen er viktig, tenkte Emil mens han grublet
på hvordan han skulle klare å gjøre hele verden bedre. Det
var verken en lett eller rask oppgave. Emil så seg rundt
igjen. En grå tåke hadde lagt seg rundt den lille byen han
nå befant seg i. Trærne så triste og sørgelige ut, og over
alt var det søppel. Emil ga det nærmeste treet en god klem
og begynte å plukke opp skrotet.
<br />
<br />
Når menneskene ikke engang tar vare på byen og trærne sine,
hvordan skal jeg da klare å lære dem å gjør det som er
riktig for verden? tenkte Emil. Han prøvde å tenke positive
tanker. I det samme dukket noen grønnkledde skikkelser i et
særlig grønt lys opp. Dette var Moder Jords personlige
etterretningstjeneste. Og de sa:
<br /> – Emil, vår venn, Moder Jord trenger deg mer enn noen
gang, så ikke mist motet. Vi kan vise deg riktig vei, men
bare virkelige handlinger kan redde verden, og det må du og
alle andre gjøre alene. Og like brått som de kom, forsvant
De Grønne. Emil trasket tappert mot byen. Rundt seg og på
veien så han triste og uttrykksløse mennesker, som han
åpenhjertig forsøkte å opplyse om sin gode idé. Men
menneskene virket likegyldige og upåvirkelige, akkurat som
om noen hadde tatt fra dem selve evnen til å tenke selv.
<br />
<br />
Jo lenger Emil gikk, desto mørkere ble det. Plutselig tronet
den grusomme og voldsomt onde Grev Tsjernobyl og De
Sortkledde hjelperne hans opp midt på torget, høyt hevet
over alle andre.
<br /> – DU! tordnet Grev Tsjernobyl, og heiste Emil høyt
opp i været med bare en finger. Den lille byen ristet og
himmelen ble svart som svarteste natten.
<br /> – Hvis ikke du slutter å redde verden, må du bøte med
livet ved å drikke dette giftbegeret! Først ble Emil veldig
redd, men så husket han hva De Grønne hadde sagt, og lille
Emil følte seg slett ikke så liten likevel. Han stirret Grev
Tsjernobyl hardt inn i øynene og sa:
<br /> – Ikke for min skyld, men for menneskenes egen skyld,
drikker jeg heller giftbegeret enn å gi opp min tanke!
</p>
<Button onClick={toggleModal}>Lukk?</Button>
</div>
}
/>
) : null}
</div>
</div>
<SmallTransissionSPCPC />
<div className="w-full flex flex-col items-center justify-center text-white px-2 lg:px-4 gap-y-4 pb-4 rounded-b-lg">
<div className="max-w-[512px] w-full px-4 lg:px-8">
<h1 className="text-white text-center font-semibold py-2 text-xl sm:text-2xl w-full">
Wall of fame
Expand Down
9 changes: 1 addition & 8 deletions frontend/src/app/for_studenten/booking/bookings/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,12 @@ const MineBookingerPage = () => {
<div className="flex flex-col items-center justify-center bg-[#225654] rounded-b-md gap-y-4 p-4">
<div className="flex justify-between w-full ">
<Link
href="/for_studenten/booking"
href="/for_studenten/booking/soundbox"
className="flex px-4 font-light text-md items-center text-underscore"
>
<ArrowLeft />
Tilbake
</Link>
<Link
href="/for_studenten/booking/soundbox"
className="flex px-4 font-light text-md items-center text-underscore"
>
Soundbox
<ArrowRight />
</Link>
</div>
<div className="flex flex-col space-y-4">
<h1 className=" text-white text-center font-semibold text-4xl w-full">
Expand Down
21 changes: 14 additions & 7 deletions frontend/src/app/for_studenten/booking/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,14 @@ import MenuCard, {
import MenuCardView from "@/components/ForStudenten/ui/menu-card-view";
import { Booking } from "@/schemas/booking";
import SmallTransissionPCSPC from "@/components/hero/transissions/smallTransissionPCSPC";
import { Speaker, Coffee, Home, FileQuestion, ListChecks } from "lucide-react";
import {
Speaker,
Coffee,
Home,
FileQuestion,
ListChecks,
GlassWater,
} from "lucide-react";
import { useState } from "react";
import Calendar from "react-calendar";

Expand All @@ -32,17 +39,17 @@ const BookingPage = () => {
title: "Hytte",
logo: <Home />,
description:
"Emil har hele 2 soundboxer som studenter kan låne! Book en soundbox til en valgt dato eller tid. Ventetiden kan være lang så vær obs på å booke i god tid!",
"Emil har egen hytte som vi deler med Smørekoppen. Dette er en hytte som kan bookes til fritt bruk av medlemmene i linjeforeningen. Du finner all informasjon under.",
buttonLabel: "Book hytte",
href: "http://eshyttekom.no/",
},
{
title: "Mine bookinger",
logo: <ListChecks />,
title: "Emil og Smørekopp-kjelleren",
logo: <GlassWater />,
description:
"Her finner du en oversikt over dine aktive og tidligere bookinger.",
buttonLabel: "Se min oversikt",
href: "/for_studenten/booking/bookings",
"Emil deler kjeller med Smørekoppen og som medlem av linjeforeningen kan denne bookes! Du finner lenken under.",
buttonLabel: "Book kjelleren",
href: "https://emilogsmorekoppenkjelleren.simplybook.it/v2/",
},
];

Expand Down
29 changes: 16 additions & 13 deletions frontend/src/app/for_studenten/ny_student/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -216,18 +216,18 @@ const ForStudentPage = () => {
},
],
},
{
mainpoint: "EMILs lille hjelper",
description:
"Linjeforeningen har en felles disk hvor man deler ressurser internt i linjeforeningen. Kanskje det finnes noe lurt her som du kan få bruk for?",
thumbnailButton: [
{
title: "EMILS lille hjelper",
oneliner: "Linjeforeningens interne disk",
link: "https://drive.google.com/drive/folders/0B1yZD12vp6TdRjJQZWhLNU51NnM?resourcekey=0--piITTQpCvehrwAFuTXJnQ",
},
],
},
// {
// mainpoint: "EMILs lille hjelper",
// description:
// "Linjeforeningen har en felles disk hvor man deler ressurser internt i linjeforeningen. Kanskje det finnes noe lurt her som du kan få bruk for?",
// thumbnailButton: [
// {
// title: "EMILS lille hjelper",
// oneliner: "Linjeforeningens interne disk",
// link: "https://drive.google.com/drive/folders/0B1yZD12vp6TdRjJQZWhLNU51NnM?resourcekey=0--piITTQpCvehrwAFuTXJnQ",
// },
// ],
// },
{
mainpoint: "Engasjer deg i frivilligheten",
description:
Expand Down Expand Up @@ -393,7 +393,10 @@ const ForStudentPage = () => {
<br />
+47 123 45 678
</p>
<Button className="gap-2">
<Button
onClick={() => window.open("mailto:[email protected]")}
className="gap-2"
>
Kontakt styret <ArrowUpRight size={20} />
</Button>
</div>
Expand Down
16 changes: 15 additions & 1 deletion frontend/src/components/auth/user-button.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,31 @@ import { LogIn, LogOut, Settings } from "lucide-react";
import LogoutButton from "@/components/auth/logout-button";
import { useSession } from "next-auth/react";
import Link from "next/link";
import { getUserByEmail } from "@/data/user";
import { useEffect, useState } from "react";
import { UserPrisma } from "@/schemas/user";

const UserButton = () => {
const user = useCurrentUser();
const session = useSession();
const isLoggedIn = session.status === "authenticated";
const [userFull, setuserFull] = useState<UserPrisma | null>();

const setFullUser = async () => {
if (user?.email) {
const userFull = await getUserByEmail(user.email);
setuserFull(userFull);
}
};
useEffect(() => {
setFullUser();
}, [user]);

return (
<DropdownMenu>
<DropdownMenuTrigger>
<Avatar>
<AvatarImage src={user?.image || ""} />
<AvatarImage src={userFull?.image || ""} className="object-cover" />
<AvatarFallback className="background-dark">
<FaUser size={12} className="text-white" />
</AvatarFallback>
Expand Down
2 changes: 1 addition & 1 deletion frontend/src/components/ui/avatar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ const AvatarImage = React.forwardRef<
>(({ className, ...props }, ref) => (
<AvatarPrimitive.Image
ref={ref}
className={cn("aspect-square h-full w-full", className)}
className={cn("h-full w-full", className)}
{...props}
/>
));
Expand Down
9 changes: 4 additions & 5 deletions frontend/src/components/ui/modal.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ReactNode } from 'react';
import { ReactNode } from "react";

interface ModalProps {
isOpen: boolean;
Expand All @@ -9,10 +9,9 @@ const Modal = ({ isOpen, children }: ModalProps) => {
if (!isOpen) return null;

return (
<div className="fixed inset-0 bg-opacity-30 flex items-center h-full w-full z-50 justify-center ">
<div className="bg-white text-primary rounded-lg shadow-lg px-3 py-6 w-[300px] lg:w-1/3">
{/* Modal Content */}
{children}
<div className="fixed inset-0 bg-opacity-30 flex items-center h-full w-full z-50 justify-center">
<div className="bg-white text-primary rounded-lg shadow-lg px-3 py-6 w-full max-w-[90%] lg:max-w-[60%] max-h-[80vh] overflow-y-auto">
<div className="break-words">{children}</div>
</div>
</div>
);
Expand Down
Loading

0 comments on commit 6d808bb

Please sign in to comment.