Frontend files added

This commit is contained in:
Minik Gaarde Lambrecht 2021-03-15 14:03:29 +01:00
parent 413765a901
commit 7de97473ba
23 changed files with 2040 additions and 99 deletions

View File

@ -0,0 +1,47 @@
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Default page settings -->
<title>GameJam Adminpanel</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="../Images/UFO.png" />
<!-- Default page settings end -->
<!-- CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
<link rel="stylesheet" href="../Styles/Index.css" />
<link rel="stylesheet" href="../Styles/AdminPage.css" />
<link rel="stylesheet" href="../Styles/minibar.min.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.2/css/all.min.css" integrity="sha512-HK5fgLBL+xu6dm/Ii3z4xhlSUyZgTT9tuc/hSrtw6uzJOvgRr2a9jyxxT1ely+B+xFAmJKVSTbpM/CuL7qxO8w==" crossorigin="anonymous" />
<!-- CSS end -->
<!-- Header scripts -->
<script src="https://kit.fontawesome.com/57b6c8b971.js" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
<script src="../Javascript/swipe.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.6.0/dist/umd/popper.min.js" integrity="sha384-KsvD1yqQ1/1+IA7gi3P0tyJcT3vR+NdBTt13hSJ2lnve8agRGXTTyNaBYmCR/Nwi" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.min.js" integrity="sha384-nsg8ua9HAw1y0W1btsyWgBklPnCUAFLuTMS2G72MMONqmOymq585AcH49TLBQObG" crossorigin="anonymous"></script>
<!-- Header scripts end -->
</head>
<body>
<div class="HeaderPanel">
<div class="HeaderLeft">
<a href="../Index.html">
<i class="fas fa-arrow-left"></i>
</a>
<h6>
Admin panel
</h6>
</div>
</div>
<!-- Body scripts -->
<script src="../Javascript/minibar.min.js"></script>
<!-- Body scripts end -->
</body>
</html>

View File

@ -0,0 +1,32 @@
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Default Page Settings -->
<title>GameJam 404</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="../Images/UFO.png" />
<!-- CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
<link rel="stylesheet" href="../Styles/PageNotFound.css" />
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.5.0/css/all.css" integrity="sha384-B4dIYHKNBt8Bc12p+WXckhzcICo0wtJAoU8YZTY5qE0Id1GSseTk6S+L3BlXeVIU" crossorigin="anonymous">
<!-- Scripts -->
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.6.0/dist/umd/popper.min.js" integrity="sha384-KsvD1yqQ1/1+IA7gi3P0tyJcT3vR+NdBTt13hSJ2lnve8agRGXTTyNaBYmCR/Nwi" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.min.js" integrity="sha384-nsg8ua9HAw1y0W1btsyWgBklPnCUAFLuTMS2G72MMONqmOymq585AcH49TLBQObG" crossorigin="anonymous"></script>
</head>
<body>
<div id="notfound">
<div class="notfound">
<div class="notfound-404">
<h1>404</h1>
<h2>Page not found</h2>
</div>
<a href="../Index.html">Go back</a>
</div>
</div>
</body>
</html>

BIN
Frontend/Images/UFO.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

BIN
Frontend/Images/spil.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

638
Frontend/Index.html Normal file
View File

@ -0,0 +1,638 @@
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Default page settings -->
<title>GameJam</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="Images/UFO.png" />
<!-- Default page settings end -->
<!-- CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
<link rel="stylesheet" href="Styles/Index.css" />
<link rel="stylesheet" href="Styles/minibar.min.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.2/css/all.min.css" integrity="sha512-HK5fgLBL+xu6dm/Ii3z4xhlSUyZgTT9tuc/hSrtw6uzJOvgRr2a9jyxxT1ely+B+xFAmJKVSTbpM/CuL7qxO8w==" crossorigin="anonymous" />
<!-- CSS end -->
<!-- Header scripts -->
<script src="https://kit.fontawesome.com/57b6c8b971.js" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
<script src="Javascript/swipe.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.6.0/dist/umd/popper.min.js" integrity="sha384-KsvD1yqQ1/1+IA7gi3P0tyJcT3vR+NdBTt13hSJ2lnve8agRGXTTyNaBYmCR/Nwi" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.min.js" integrity="sha384-nsg8ua9HAw1y0W1btsyWgBklPnCUAFLuTMS2G72MMONqmOymq585AcH49TLBQObG" crossorigin="anonymous"></script>
<!-- Header scripts end -->
</head>
<body>
<!-- Navbar -->
<nav id="header" class="navbar navbar-dark navbar-expand-lg navbar-light bg-dark smart-scroll">
<div class="container-fluid">
<a class="navbar-brand NavLink" onclick="GoToTop()">
<img src="Images/UFO.png" alt="Snow" style="width: 32px; height: 32px;">
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link NavLink" aria-current="page" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" href="#hjem">
Hjem
</a>
</li>
<li class="nav-item">
<a class="nav-link NavLink" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" href="#info">
Information
</a>
</li>
<li class="nav-item dropdown">
<div class="btn-group">
<a class="nav-link NavLink" href="#events" type="button">
Events
</a>
<a type="button" class="nav-link dropdown-toggle dropdown-toggle-split" id="navbarDropdown" data-bs-toggle="dropdown" aria-expanded="false">
<span class="visually-hidden">Toggle Dropdown</span>
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdown">
<li>
<a class="dropdown-item NavLink" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" href="#spil">Spil</a>
</li>
<li>
<a class="dropdown-item NavLink" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" href="#upload">Upload fil</a>
</li>
<li>
<a class="dropdown-item NavLink" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" href="#stem">Stem</a>
</li>
<li>
<a class="dropdown-item NavLink" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" href="#lod">Lodtrækning</a>
</li>
</ul>
</div>
</li>
<li class="nav-item">
<a class="nav-link NavLink" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" href="#admin">
Administration
</a>
</li>
<li class="nav-item">
<a type="button" class="nav-link NavLink" data-bs-toggle="modal" data-bs-target="#RulesModal">
Regler
</a>
</li>
</ul>
<a type="button" class="nav-link LoginButton" data-bs-toggle="modal" data-bs-target="#LoginModal">
Login
</a>
</div>
</div>
</nav>
<!-- Navbar end -->
<!-- Login modal -->
<div class="LoginModal">
<div class="modal fade" id="LoginModal" tabindex="-1" aria-labelledby="LoginModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header FullWidthModalTabs">
<ul class="nav nav-tabs" id="ModalLoginTab" role="tablist">
<li class="nav-item" role="presentation">
<button class="nav-link active" id="LoginTab" data-bs-toggle="tab" data-bs-target="#Login" type="button" role="tab" aria-controls="Login" aria-selected="true">
<i class="fas fa-sign-in-alt"></i> Login
</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="RegistrerTab" data-bs-toggle="tab" data-bs-target="#Registrer" type="button" role="tab" aria-controls="Registrer" aria-selected="false">
<i class="fas fa-user-plus"></i> Registrer
</button>
</li>
<li style="width: 32px; height: 42px; right: 0; position: absolute;">
<button style="padding: 25% !important; border: none; background-color: transparent;" type="button" data-bs-dismiss="modal" aria-label="Close">
<i class="fas fa-times CloseIcon"></i>
</button>
</li>
</ul>
</div>
<div class="modal-body">
<div class="tab-content" id="ModalLoginTabContent">
<div class="tab-pane fade show active" id="Login" role="tabpanel" aria-labelledby="LoginTab">
<form class="box">
<h1 class="text-muted">
Team Login
</h1>
<input type="text" name="" placeholder="Gruppe navn">
<input type="password" name="" placeholder="Password">
<input type="submit" name="" value="Login" href="#">
</form>
</div>
<div class="tab-pane fade" id="Registrer" role="tabpanel" aria-labelledby="RegistrerTab">
<form class="box">
<h1 class="text-muted">
Team Registrering
</h1>
<input id="username" type="text" name="" placeholder="Gruppe navn">
<input id="pass1" type="password" class="" name="" placeholder="Password">
<input id="pass2" type="password" name="" placeholder="Gentag Password">
<div class="form-check" style="display: table; margin: auto;">
<input class="form-check-input" type="checkbox" value="" id="flexCheckDefault">
<label class="form-check-label" for="flexCheckDefault">
Jeg accepterer Vilkår og betingelser
</label>
</div>
<div id="pass_info">
<h5>Passsword skal opfylde følgende krav :</h5>
<ul>
<li id="letter" class="invalid">
Mindst 1 <strong>bogstave
</strong>
</li>
<li id="capital" class="invalid">
Mindst 1 <strong>stort bogstave
</strong>
</li>
<li id="number" class="invalid">
Mindst 1 <strong>tal
</strong>
</li>
<li id="length" class="invalid">
Mindst <strong>8 tegn langt
</strong>
</li>
</ul>
</div>
<input type="submit" name="" value="Registrer" href="#">
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Login modal end -->
<!-- Rules Modal -->
<div class="modal fade" id="RulesModal" tabindex="-1" aria-labelledby="RulesModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered modal-dialog-scrollable">
<div class="modal-content">
<div class="modal-header">
<h1>
Regler
</h1>
</div>
<div class="modal-body">
<div class="tab-content" id="ModalRulesTabContent">
<ul>
<li>
<span>1.</span>
<p>
<strong>Hold det professionelt</strong>. Racisme, sexisme, politiske temaer osv. Vil naturligvis være uhørt, bevare en positiv stemning, brug sund fornuft og gør brug af helt almindelige manerer.
</p>
</li>
<li>
<span>2.</span>
<p>
<strong>Upload dit spil</strong>. Alle hold forventes at uploade en spilbar version af deres spil,
der gør det muligt for besøgende på siden at prøve deres spil. Upload skal begynde senest kl. 12 <a href="https://www.timeanddate.com/time/zones/cet">CET</a> den pågældende dato,
derefter er det ikke muligt at uploade flere.
</p>
</li>
<li>
<span>3.</span>
<p>
<strong>Del dit arbejde</strong>. Et af målene er at hjælpe andre med at lære af dit arbejde,
hjælp med dette ved at give folk mulighed for at rode med resultaterne af dit produkt.
Du skal dele enhver kode og aktiver du bruger til at lave spillet med (så længe du lovligt kan dele dem uden at bryde andre juridiske aftaler).
Del ikke kode der tilhører din arbejdsgiver eller andre end dig selv, og upload noget der er under <a href="https://www.amino.dk/ordbog/hvad-er-en-nda.aspx">NDA</a>, eller andre juridiske begrænsninger.
</p>
</li>
<li>
<span>4.</span>
<p>
<strong> Husk licensen. </strong> Alle uploads (kode, aktiver, eksekverbare filer osv.) deles og licenseres under <a href = "https://creativecommons.org/licenses/by-nc-sa/4.0/deed.en">Attribution-NonCommercial-ShareAlike 4.0 International Creative Commons License</a>
</p>
</li>
<li>
<span>5.</span>
<p>
<strong>Respekter jammens idealer</strong>. Uanset hvilke kreative beslutninger du tager når du laver dit spil, skal du huske det fælles mål om at samarbejde,
lære og dele blandt spiludviklingssamfundet. Brug værktøjer og aktiver, der gør det muligt at licensere dit spil under <a href="https://creativecommons.org/licenses/">creative commons</a>.
Upload så vidt som muligt et komplet og spilbart spil, og inkluder enhver kildekode og aktiver til uddannelsesmæssige formål. Alt hvad du opretter forbliver din ejendom inden for licensaftalen.
</p>
</li>
<li>
<span>6.</span>
<p>
<strong>Pas på dig selv</strong>. Her handler det om at skabe positive oplevelser og minder. Det handler ikke om knas og konkurrence.
Husk at være hydreret, spise mad, bevæge dig rundt, tage hvilepauser og give dig selv nok tid til at få masser af søvn hver nat.
</p>
</li>
<li>
<span>7.</span>
<p>
<strong>Hav det sjovt!</strong> Pas på hinanden, lær og skab nye muligheder sammen. Det handler ikke kun om at lave spil,
det er også til for at få nye venskaber, forbindelser, oplevelser og minder.
</p>
</li>
</ul>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-danger" data-bs-dismiss="modal">
Close
</button>
</div>
</div>
</div>
</div>
<!-- Rules modal end -->
<!-- Page content -->
<div id="content" class="container-fluid text-center">
<div class="text-left CenterDiv">
<!-- Velkomstside -->
<section id="hjem">
<h1>Velkommen til Game Jam!</h1>
<p>
Denne hjemmeside er lavet til alle som elsker at udvikle spil og konkurerre.
</p>
<p>
Game jam handler om at udvikle et spil i grupper på begrænset tid. Denne tidsbegrænsning er beregnet til at simulere presset fra en deadline og til at fremme kreativitet blandt ideer produceret af Game Jam teams. Selve Game Jammet handler om at udfodre sig selv og andre. Det giver god øvelse i forhold til sine egne evner indenfor programmering og design. Det viser selvfølelig også hvor godt man arbejder i grupper og hvor meget man kan nå på den tid man har fået til at lave sit spil i. Vi elsker at se hvordan de forskellige udviklere vælger sin fremgangs måde, og hvad som er vigtigst for de forskellige grupper at få med. Dette giver både nye ideer til alle samt en anden måde at tænke på. Vi ved jo alle sammen godt, at ingen tænker på den samme måde, og det er også det som er spændene. Man ved aldrig hvad temaet er inden man går i gang. Man kan have en ide om hvad for et spil man vil lave, men når man får temaet afvide, kan det være at man får en ny synsvinkel på hvordan man vil løse opgaven. læs mere under <a href="" data-bs-toggle="modal" data-bs-target="#RulesModal">Regler</a>.
</p>
<h5>Hvad er Game jam?</h5>
<p>
Game Jam er et sted hvor du og dine venner kan samles og konkurrer om at lave det bedste spil på begrænset tid. Her har i chancen for at gøre hvad i er bedst til, nemlig at udvikle jeres eget spil.Det er spændende, hyggeligt og selvfølelig rigtigt sjovt. Under <a href="#lod">Lodtrækning</a> bliver der trækket lod om et tema spillet skal handle om.
</p>
<h5>Hvorfor skal du deltage?</h5>
<p style="font-weight: bold;">
Her er 7 gode grunde til hvorfor lige præcis du burde deltage
</p>
<p style="font-weight: bold;">
1. Tids planlægning
</p>
<p>
Når du deltager i flere af Game Jams forbedrer du din evne til tidsplanlægning. Du begynder bedre at estimere den tid, det vil tage for en bestemt opgave. Denne færdighed er også meget vigtigt at forstå, om visse funktioner er det værd, og hvis du endda skal implementere dem eller ej.
</p>
<p style="font-weight: bold;">
2. Hastighed
</p>
<p>
Deltagelse i Game Jammet vil forbedre din hastighed. For eksempel, som programmør, vil du se nogle genvej til at gøre det mindre smukt i koden, men funktionelt det samme, som er vigtigt for et Game jam. Som et hold vil du lære at beslutte, hvilken mulighed du skal vælge, hvilket spil du skal gøre meget hurtigere. Når du laver prototyper, vil du også støde på en masse værktøjer og tricks, som du kan bruge på senere prototyper eller spil, fordi du allerede prøvet dem og nu ved, hvad de er bedst egnet til.
</p>
<p style="font-weight: bold;">
3. Forbedre prototypeevner
</p>
<p>
Game Jams omfavner virkelig tanken om, at du skal gøre spillet spilbart først. Uden kunst, lyde osv. I mange tilfælde efter dette får du ideen, hvis mekanikerne giver mening, eller hvis det har potentiale. Du vil bemærke nogle ting, som du ikke tænkte så meget på, men som er meget vigtige for at få spillet spilbart, som du vil blive nødt til at løse som det næste. Når spillet er spilbart, vil du fortsætte med at arbejde med ting, som du ikke ville udgive dit spil uden.
</p>
<p style="font-weight: bold;">
4. Eksperimenter som du lyster
</p>
<p>
Du kommer automatisk til at være mere villig til at prøve tingene ud og se, om de vil fungere eller ej. Men det afhænger naturligvis af, hvor lang tid det kommer til at tage at implementere visse funktioner og prøve dem af. Så en god tidsplans vil helt sikkert hjælpe. Du ved aldrig om en af de funktioner vil redde projektet og sikre dig førstepladsen.
</p>
<p style="font-weight: bold;">
5. Forbedre dine overordnede spiludviklingsevner
</p>
<p>
Jo flere game jams du deltager i, jo flere ting til du opdage. Du lærer hvad som gør et spil bedre og hvilke funktioner som kan redde dig i sidste ende. Du kan prøve en masse forskellige genre, som du måske ikke ville have overvejet at prøve af før. Det vil også vise dig, hvilke genre som er lettere eller sværere at udvikle.
</p>
<p style="font-weight: bold;">
6. Mød nye mennesker og skab et netværk
</p>
<p>
Game jams er fantastisk til at møde nye mennesker som du deler interesse med, samt styrke dine nuværende relationer hvis du deltager i et game jam med dem som et team. Når du skaber nye relationer der deler den samme interesse som dig, er det nemt at få inputs fra hinanden. Det kan muligvis være at du havde et problem som du aldrig helt fandt ud af, hvor din nye relation kan forklare hvordan han/hun ville have gjort, eller omvendt.
</p>
<p style="font-weight: bold;">
7. Hav det sjovt!
</p>
<p>
Game Jams er super sjovt! Man udfordre sig selv, får nye ideer og man får lov til at se hvordan andre tænker ved at løse den samme opgave. Er du et konkurrance menneske gør det kun det hele meget bedre. En undersøgelse af <a href="http://ludumdare.com/compo/2011/12/28/infographic-survey-results/">McFunkyPants</a> viser at over 95% af deltagere har haft det sjovt under deltagelse og vil gerne deltage i endnu en.
</p>
</section>
<!-- Velkomstside slut -->
<hr class="GradientDivider" />
<!-- Information -->
<section id="info">
<h3>Information</h3>
<p>Game Jam er en konkurrence, hvor deltagerne skal lave et videospil fra bunden på bestemt tid. Konkurrencens varighed varierer efter hvad der er efterspørsel om og hvilket tema spillet skal handle om. Nogle Game Jams kan tage 4 timer, hvor andre kan tage 1 uge.</p>
<p>
Deltagerne er generelt programmører, spildesignere, kunstnere, forfattere og andre inden for spiludviklingsrelaterede områder, dog er alle er velkommende til at deltage.
</p>
<h5>Game Jammet kommer til at foregå sådan: </h5>
<p>
Inden konkurrancen begynder, finder man ud af hvor mange grupper som skal være med til det bestemte Game Jam. Derefter bliver der trukket lod om tema i <a href="#lod">lodtrækningen.</a> Når der er blevet trukket et tema som spillende skal handle om, kommer der en bestemt tidsperiode som man skal arbejde med spillet i. Når tiden er gået, bliver hver gruppes spil
<a href="#upload">uploadet</a> så det kan afprøves af tilskuere og de andre grupper. Derefter stemmer man som gruppe på det spil man synes bedst om, og man synes har fortjent at vinde.
</p>
<h5>Hvad bliver der lagt vægt på når man finder vinderen?</h5>
<p>Når alle deltagerne har udviklet på livet løs, og tiden er løbet ud, bliver alle spillende uploadet og afprøvet af andre deltagere samt tilskuere. Når man skal finde en vinder, skal man kigge på forskellige ting som:</p>
<ul style="text-align: left;">
<li>Udnyttelse af tiden</li>
<li>Hvor godt virker spillet?</li>
<li>Hvor godt er designet?</li>
<li>Hvordan passer spillet til temaet?</li>
<li>Animationer</li>
</ul>
</section>
<!-- Information slut -->
<hr class="GradientDivider" />
<!--Kalender-->
<section id="events">
<h3>Events</h3>
<p></p>
<div class="container">
<div class="calendar">
<div class="month">
<i class="fas fa-angle-left prev"></i>
<div class="date">
<h1></h1>
<p></p>
</div>
<i class="fas fa-angle-right next"></i>
</div>
<div class="weekdays">
<div>Man</div>
<div>Tir</div>
<div>Ons</div>
<div>Tor</div>
<div>Fre</div>
<div>Lør</div>
<div>Søn</div>
</div>
<div class="days"></div>
</div>
</div>
<!--Pop up-->
<div class="modal" tabindex="-1" id="popup">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="popupDate">Modal title</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<p>Modal body text goes here.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary">knap</button>
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!--pop up slut-->
</section>
<!--Kalender slut-->
<hr class="GradientDivider" />
<!-- Spil -->0
<section id="spil">
<h3>Spil</h3>
<p>Se de nyesste spil</p>
<!-- Slideshow start -->
<div id="carouselExampleCaptions" class="carousel slide" data-bs-ride="carousel" data-bs-interval="false">
<div class="carousel-indicators">
<button type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button>
<button type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide-to="1" aria-label="Slide 2"></button>
<button type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide-to="2" aria-label="Slide 3"></button>
</div>
<div class="carousel-inner">
<div class="carousel-item active">
<img class="image_img" src="Images/spil.jpg" class="d-block w-100" alt="...">
<div class="image_overlay">
<div class="image_title"><a href="#" style="color: white;">Navn på spil</a></div>
<p class="image_gruppenavn">
Gruppenavn
</p>
</div>
</div>
<div class="carousel-item">
<img class="image_img" src="Images/spil.jpg" class="d-block w-100" alt="...">
<div class="image_overlay">
<div class="image_title"><a href="#" style="color: white;">Navn på spil</a></div>
<p class="image_gruppenavn">
Gruppenavn
</p>
</div>
</div>
<div class="carousel-item">
<img class="image_img" src="Images/spil.jpg" class="d-block w-100" alt="...">
<div class="image_overlay">
<div class="image_title"><a href="#" style="color: white;">Navn på spil</a></div>
<p class="image_gruppenavn">
Gruppenavn
</p>
</div>
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
</div>
<!-- Kategorier -->
<p>Kategorier af spil</p>
<div class="row">
<div class="col-sm">
<button type="button" class="Collapsible">Kategori1</button>
<div class="CollapsibleContent">
<a href="#">Spil</a>
<br />
<a href="#">Spil</a>
<br />
<a href="#">Spil</a>
<br />
<a href="#">Spil</a>
<br />
</div>
</div>
<div class="col-sm">
<button type="button" class="Collapsible">Kategori2</button>
<div class="CollapsibleContent">
<a href="#">Spil</a>
<br />
<a href="#">Spil</a>
<br />
<a href="#">Spil</a>
<br />
<a href="#">Spil</a>
<br />
</div>
</div>
<div class="col-sm">
<button type="button" class="Collapsible">Kategori3</button>
<div class="CollapsibleContent">
<a href="#">Spil</a>
<br />
<a href="#">Spil</a>
<br />
<a href="#">Spil</a>
<br />
<a href="#">Spil</a>
<br />
</div>
</div>
</div>
<div class="row">
<div class="col-sm">
<button type="button" class="Collapsible">Kategori4</button>
<div class="CollapsibleContent">
<a href="#">Spil</a>
<br />
<a href="#">Spil</a>
<br />
<a href="#">Spil</a>
<br />
<a href="#">Spil</a>
<br />
</div>
</div>
<div class="col-sm">
<button type="button" class="Collapsible">Kategori5</button>
<div class="CollapsibleContent">
<a href="#">Spil</a>
<br />
<a href="#">Spil</a>
<br />
<a href="#">Spil</a>
<br />
<a href="#">Spil</a>
<br />
</div>
</div>
<div class="col-sm">
<button type="button" class="Collapsible">Kategori6</button>
<div class="CollapsibleContent">
<a href="#">Spil</a>
<br />
<a href="#">Spil</a>
<br />
<a href="#">Spil</a>
<br />
<a href="#">Spil</a>
<br />
</div>
</div>
</div>
<div class="row">
<div class="col-sm">
<button type="button" class="Collapsible">Kategori7</button>
<div class="CollapsibleContent">
<a href="#">Spil</a>
<br />
<a href="#">Spil</a>
<br />
<a href="#">Spil</a>
<br />
<a href="#">Spil</a>
<br />
</div>
</div>
<div class="col-sm">
<button type="button" class="Collapsible">Kategori8</button>
<div class="CollapsibleContent">
<a href="#">Spil</a>
<br />
<a href="#">Spil</a>
<br />
<a href="#">Spil</a>
<br />
<a href="#">Spil</a>
<br />
</div>
</div>
<div class="col-sm">
<button type="button" class="Collapsible">Kategori9</button>
<div class="CollapsibleContent">
<a href="#">Spil</a>
<br />
<a href="#">Spil</a>
<br />
<a href="#">Spil</a>
<br />
<a href="#">Spil</a>
<br />
</div>
</div>
</div>
<!-- Kategorier slut -->
</section>
<!-- Spil slut -->
<hr class="GradientDivider" />
<!-- Upload filer -->
<section id="upload">
<h3>Upload filer</h3>
<p>Her kan du og din gruppe uploade jeres spil. Skriv gerne en lille kommentar omkring hvad spillet handler om, for at give spilleren den bedste oplevelse. </p>
</section>
<!-- Upload filer slut -->
<hr class="GradientDivider" />
<!-- Stem -->
<section id="stem">
<h3>Stem</h3>
<p></p>
</section>
<!-- Stem slut -->
<hr class="GradientDivider" />
<!-- Lodtrækning -->
<section id="lod">
<h3>Lodtrækning</h3>
<p></p>
</section>
<!-- Lodtrækning slut -->
<hr class="GradientDivider" />
<!-- Administation -->
<section id="admin">
<h3>Administration</h3>
<p></p>
</section>
<!-- Administation slut -->
<a href="javascript:" id="return-to-top">
<i class="fas fa-chevron-up"></i>
</a>
</div>
</div>
<!-- Page content end -->
<!-- Footer -->
<footer id="footer" class="text-center">
<p>Footer Text</p>
</footer>
<!-- Footer end -->
<!-- Body scripts -->
<script src="Javascript/Collapsible.js"></script>
<script src="Javascript/PasswordValidation.js"></script>
<script src="Javascript/Kalender.js"></script>
<script src="Javascript/minibar.min.js"></script>
<script src="Javascript/HeaderFunctionality.js"></script>
<!-- Body scripts end -->
</body>
</html>

View File

@ -0,0 +1,14 @@
var coll = document.getElementsByClassName("Collapsible");
var i;
for (i = 0; i < coll.length; i++) {
coll[i].addEventListener("click", function() {
this.classList.toggle("CollapsibleActive");
var content = this.nextElementSibling;
if (content.style.display === "block") {
content.style.display = "none";
} else {
content.style.display = "block";
}
});
}

View File

@ -0,0 +1,145 @@
$(document).ready(function() {
const scrollableObj = document.getElementById('content');
var scrollBar = new MiniBar('#content', {
barType: "default",
scrollX: false,
scrollY: true,
scrollAmount: 20,
onScroll: function() {
// Resize header on scroll.
if($('.smart-scroll').length > 0) {
scrollableObj.addEventListener('wheel', ScrollDirection);
const NavCollapse = document.getElementById('navbarSupportedContent');
const BackToTop = $('#return-to-top');
const nav = $('.smart-scroll');
const body = $('body');
const container = document.querySelector('.mb-content');
if (container.scrollTop <= 0)
{
body.removeClass('bodyScrolled-down').addClass('bodyScrolled-up');
nav.removeClass('scrolled-down').addClass('scrolled-up');
BackToTop.fadeOut(300);
scrollBar.update();
}
function ScrollDirection(event) {
var delta;
if (event.wheelDelta)
{
delta = event.wheelDelta;
}
else
{
delta = -1 * event.deltaY;
}
if (delta < 0)
{
body.removeClass('bodyScrolled-up').addClass('bodyScrolled-down');
nav.removeClass('scrolled-up').addClass('scrolled-down');
BackToTop.fadeIn(300);
NavCollapse.classList.remove('show');
scrollBar.update();
}
else if (delta > 0)
{
body.removeClass('bodyScrolled-down').addClass('bodyScrolled-up');
nav.removeClass('scrolled-down').addClass('scrolled-up');
BackToTop.fadeOut(300);
scrollBar.update();
}
}
}
}
});
$('body').onSwipe(function(results) {
const NavCollapse = document.getElementById('navbarSupportedContent');
const BackToTop = $('#return-to-top');
const nav = $('.smart-scroll');
const body = $('body');
if (results.up)
{
body.removeClass('bodyScrolled-up').addClass('bodyScrolled-down');
nav.removeClass('scrolled-up').addClass('scrolled-down');
BackToTop.fadeIn(300);
NavCollapse.classList.remove('show');
}
if (results.down)
{
body.removeClass('bodyScrolled-down').addClass('bodyScrolled-up');
nav.removeClass('scrolled-down').addClass('scrolled-up');
BackToTop.fadeOut(300);
}
})
GoToTop = function() {
scrollBar.scrollToTop();
// Show the Navbar on click.
$('#header').removeClass('scrolled-down').addClass('scrolled-up');
$('body').removeClass('bodyScrolled-down').addClass('bodyScrolled-up');
$('#return-to-top').fadeOut(300);
}
// Floating button functionality
$('#return-to-top').click(function() {
GoToTop();
});
// Smooth scrolling when click to nav
$('.NavLink').click(function(e) {
// Target element id.
var id = $(this).attr('href');
// Target element.
var $id = $(id);
// If no id was provided, return nothing.
if ($id.length === 0)
{
return;
}
// Prevent standard hash navigation (avoid blinking in IE).
e.preventDefault();
// Top position relative to the document.
var pos = $id.position().top;
if (pos >= 0)
{
$('#return-to-top').fadeIn(300);
}
// Animated top scrolling.
if (pos === 0)
{
scrollBar.scrollTo(pos, 'y');
}
else if (pos > 0)
{
scrollBar.scrollBy(pos, 'y');
}
else if (pos < 0)
{
scrollBar.scrollBy(pos, 'y');
}
// Hide the Navbar on click.
$('#header').addClass('scrolled-down');
$('body').addClass('bodyScrolled-down');
return;
});
});

View File

@ -0,0 +1,108 @@
const date = new Date();
const renderCalendar = () => {
date.setDate(1);
const monthDays = document.querySelector(".days");
const lastDay = new Date(
date.getFullYear(),
date.getMonth() + 1,
0
).getDate();
const prevLastDay = new Date(
date.getFullYear(),
date.getMonth(),
0
).getDate();
const firstDayIndex = date.getDay();
const lastDayIndex = new Date(
date.getFullYear(),
date.getMonth() + 1,
0
).getDay();
const nextDays = 7 - lastDayIndex - 1 + 1;
const months = [
"Januar",
"Februar",
"Marts",
"April",
"Maj",
"Juni",
"Juli",
"August",
"September",
"Oktober",
"November",
"December",
];
document.querySelector(".date h1").innerHTML = months[date.getMonth()];
document.querySelector(".date p").innerHTML = new Date().toLocaleDateString('da-DK', {
weekday: 'long',
year: 'numeric',
month: 'long',
day: 'numeric'
});
let days = "";
for (let x = firstDayIndex; x > 1; x--) {
days += `<div class="prev-date">${prevLastDay - x + 2}</div>`;
}
for (let i = 1; i <= lastDay; i++) {
if (
i === new Date().getDate() &&
date.getMonth() === new Date().getMonth()
) {
days += `<div class="today" onClick="clickdate()">${i}</div>`;
} else {
days += `<div onClick="clickdate()">${i}</div>`;
}
}
for (let j = 1; j <= nextDays; j++) {
days += `<div class="next-date" onClick="clickdate()">${j}</div>`;
monthDays.innerHTML = days;
}
};
document.querySelector(".prev").addEventListener("click", () => {
date.setMonth(date.getMonth() - 1);
renderCalendar();
});
document.querySelector(".next").addEventListener("click", () => {
date.setMonth(date.getMonth() + 1);
renderCalendar();
});
renderCalendar();
function clickdate() {
var dato = new Date();
let month = dato.getMonth() + 1;
let day = dato.getDate();
let currentDate = dato.getFullYear() + "/" + (("" + month).length < 2 ? "0" : "") + month + "/" + (("" + day).length < 2 ? "0" : "") + day;
var myModal = new bootstrap.Modal(document.getElementById("popup"));
$("#popupDate").text(currentDate);
myModal.show();
}
var myModal = document.getElementById('popup')
myModal.addEventListener('shown.bs.modal', function() {
myInput.focus()
})

View File

@ -0,0 +1,93 @@
$(document).ready(function() {
var Validation = function() {
// Set password variables
var pass1 = $('#pass1').val();
var pass2 = $('#pass2').val();
var len = false;
var le = false;
var cle = false;
var num = false;
// Length Validation.
if (pass1.length < 8)
{
$('#length').removeClass('valid').addClass('invalid');
len = false;
}
else
{
$('#length').removeClass('invalid').addClass('valid');
len = true;
}
// Letter Validation
if (pass1.match(/[A-z]/))
{
$('#letter').removeClass('invalid').addClass('valid');
le = true
}
else
{
$('#letter').removeClass('valid').addClass('invalid');
le = false
}
// Capital Letter Validation
if (pass1.match(/[A-Z]/))
{
$('#capital').removeClass('invalid').addClass('valid');
cle = true
}
else
{
$('#capital').removeClass('valid').addClass('invalid');
cle = false
}
// Number Validation
if (pass1.match(/\d/))
{
$('#number').removeClass('invalid').addClass('valid');
num = true;
}
else
{
$('#number').removeClass('valid').addClass('invalid');
num = false;
}
if (len && le && cle && num)
{
$('#pass_info').hide();
$('#pass1, #pass2').removeClass('invalidInput').addClass('validInput');
if (pass1 === pass2)
{
$('#pass2').removeClass('invalidInput').addClass('validInput');
}
else
{
$('#pass2').removeClass('validInput').addClass('invalidInput');
}
}
else
{
$('#pass_info').show();
$('#pass1, #pass2').removeClass('validInput').addClass('invalidInput').focus(function() {
$('#pass_info').show();
}).blur(function() {
$('#pass_info').hide();
});
}
}
$('#pass1, #pass2').click(function() {
Validation();
});
$('#pass1, #pass2').keyup(function() {
Validation();
});
});

File diff suppressed because one or more lines are too long

33
Frontend/Javascript/minibar.min.js vendored Normal file
View File

@ -0,0 +1,33 @@
/*
MiniBar 0.5.1
http://mobius.ovh/
Released under the MIT license
*/
var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.arrayIteratorImpl=function(w){var n=0;return function(){return n<w.length?{done:!1,value:w[n++]}:{done:!0}}};$jscomp.arrayIterator=function(w){return{next:$jscomp.arrayIteratorImpl(w)}};$jscomp.makeIterator=function(w){var n="undefined"!=typeof Symbol&&Symbol.iterator&&w[Symbol.iterator];return n?n.call(w):$jscomp.arrayIterator(w)};
(function(w){var n=window,p=document,H=p.body,J={x:"left",y:"top"},x={x:"width",y:"height"},u={x:"scrollLeft",y:"scrollTop"},z={x:"scrollWidth",y:"scrollHeight"},K={x:"offsetWidth",y:"offsetHeight"},E={x:"pageX",y:"pageY"},C=function(a,b){for(var c=Object(a),d=1;d<arguments.length;d++){var f=arguments[d];if(null!=f)for(var g in f)Object.prototype.hasOwnProperty.call(f,g)&&(c[g]=f[g])}return c},e={css:function(a,b){var c=a&&a.style,d="[object Object]"===Object.prototype.toString.call(b);if(c){if(!b)return n.getComputedStyle(a);
d&&y(b,function(f,g){f in c||(f="-webkit-"+f);c[f]=g+("string"==typeof g?"":"opacity"===f?"":"px")})}},rect:function(a){a=a.getBoundingClientRect();var b=p.documentElement||H.parentNode||H,c=void 0!==n.pageXOffset?n.pageXOffset:b.scrollLeft;b=void 0!==n.pageYOffset?n.pageYOffset:b.scrollTop;return{x:a.left+c,y:a.top+b,x2:a.left+a.width+c,y2:a.top+a.height+b,height:Math.round(a.height),width:Math.round(a.width)}},classList:{contains:function(a,b){if(a)return a.classList?a.classList.contains(b):!!a.className&&
!!a.className.match(new RegExp("(\\s|^)"+b+"(\\s|$)"))},add:function(a,b){e.classList.contains(a,b)||(a.classList?a.classList.add(b):a.className=a.className.trim()+" "+b)},remove:function(a,b){e.classList.contains(a,b)&&(a.classList?a.classList.remove(b):a.className=a.className.replace(new RegExp("(^|\\s)"+b.split(" ").join("|")+"(\\s|$)","gi")," "))},toggle:function(a,b,c){(c=this.contains(a,b)?!0!==c&&"remove":!1!==c&&"add")&&this[c](a,b)}},on:function(a,b,c){a.addEventListener(b,c,!1)},off:function(a,
b,c){a.removeEventListener(b,c)},isCollection:function(a){return Array.isArray(a)||a instanceof HTMLCollection||a instanceof NodeList},scrollWidth:function(){var a=0,b=p.createElement("div");return b.style.cssText="width: 100; height: 100; overflow: scroll; position: absolute; top: -9999;",p.body.appendChild(b),a=b.offsetWidth-b.clientWidth,p.body.removeChild(b),a}},y=function(a,b,c){if("[object Object]"===Object.prototype.toString.call(a))for(var d in a)Object.prototype.hasOwnProperty.call(a,d)&&
b.call(c,d,a[d]);else{d=0;for(var f=a.length;d<f;d++)b.call(c,d,a[d])}},L=function(a,b,c){var d;return function(){var f=this,g=arguments,h=c&&!d;clearTimeout(d);d=setTimeout(function(){d=null;c||a.apply(f,g)},b);h&&a.apply(f,g)}},D=n.requestAnimationFrame||function(){var a=0;return n.webkitRequestAnimationFrame||n.mozRequestAnimationFrame||function(b){var c,d=(new Date).getTime();return c=Math.max(0,16-(d-a)),a=d+c,setTimeout(function(){b(d+c)},c)}}(),A;(A=n.cancelAnimationFrame)||(clearTimeout(void 0),
A=void 0);var F=A;A=function(a,b){this.container="string"===typeof a?p.querySelector(a):a;this.config={barType:"default",minBarSize:10,alwaysShowBars:!1,horizontalMouseScroll:!1,scrollX:!0,scrollY:!0,navButtons:!1,scrollAmount:10,mutationObserver:{attributes:!1,childList:!0,subtree:!0},onInit:function(){},onUpdate:function(){},onStart:function(){},onScroll:function(){},onEnd:function(){},classes:{container:"mb-container",content:"mb-content",track:"mb-track",bar:"mb-bar",visible:"mb-visible",progress:"mb-progress",
hover:"mb-hover",scrolling:"mb-scrolling",textarea:"mb-textarea",wrapper:"mb-wrapper",nav:"mb-nav",btn:"mb-button",btns:"mb-buttons",increase:"mb-increase",decrease:"mb-decrease",item:"mb-item",itemVisible:"mb-item-visible",itemPartial:"mb-item-partial",itemHidden:"mb-item-hidden"}};b?this.config=C({},this.config,b):n.MiniBarOptions&&(this.config=C({},this.config,n.MiniBarOptions));this.css=n.getComputedStyle(this.container);this.size=e.scrollWidth();this.textarea="textarea"===this.container.nodeName.toLowerCase();
this.bars={x:{},y:{}};this.tracks={x:{},y:{}};this.lastY=this.lastX=0;this.scrollDirection={x:0,y:0};this.events={};for(var c="scroll mouseenter mousedown mousemove mouseup wheel".split(" "),d=0;d<c.length;d++)this.events[c[d]]=this["_"+c[d]].bind(this);this.events.update=this.update.bind(this);this.events.debounce=L(this.events.update,50);this.init()};var r=A.prototype;r.init=function(){var a=this,b=a.config,c=a.events;if(!a.initialised){if(a.textarea)a.content=a.container,a.container=p.createElement("div"),
e.classList.add(a.container,b.classes.textarea),a.wrapper=p.createElement("div"),e.classList.add(a.wrapper,b.classes.wrapper),a.container.appendChild(a.wrapper),a.content.parentNode.insertBefore(a.container,a.content),a.content.addEventListener("input",function(h){a.update()});else for(a.content=p.createElement("div");a.container.firstChild;)a.content.appendChild(a.container.firstChild);e.classList.add(a.container,b.classes.container);e.classList.add(a.content,b.classes.content);b.alwaysShowBars&&
e.classList.add(a.container,b.classes.visible);y(a.tracks,function(h,l){a.bars[h].node=p.createElement("div");l.node=p.createElement("div");e.classList.add(l.node,b.classes.track);e.classList.add(l.node,b.classes.track+"-"+h);e.classList.add(a.bars[h].node,b.classes.bar);l.node.appendChild(a.bars[h].node);if(b.navButtons){var k=p.createElement("button"),m=p.createElement("button"),t=p.createElement("div"),q=b.scrollAmount;k.className=b.classes.btn+" "+b.classes.decrease;m.className=b.classes.btn+
" "+b.classes.increase;t.className=b.classes.btns+" "+b.classes.btns+"-"+h;t.appendChild(k);t.appendChild(l.node);t.appendChild(m);a.container.appendChild(t);e.classList.add(a.container,b.classes.nav);e.on(t,"mousedown",function(v){var B=v.target;F(a.frame);if(B===m||B===k){var G=a.content[u[h]],I=function(M){switch(a.content[u[h]]=G,B){case k:G-=q;break;case m:G+=q}a.frame=D(I)};I()}});e.on(t,"mouseup",function(v){v=v.target;var B=5*q;F(a.frame);v!==m&&v!==k||a.scrollBy(v===k?-B:B,h)})}else a.container.appendChild(l.node);
"progress"===b.barType&&e.classList.add(l.node,b.classes.progress);e.on(l.node,"mousedown",c.mousedown);e.on(l.node,"mouseenter",function(v){e.classList.add(a.container,b.classes.hover+"-"+h)});e.on(l.node,"mouseleave",function(v){a.down||e.classList.remove(a.container,b.classes.hover+"-"+h)})});a.textarea?a.wrapper.appendChild(a.content):a.container.appendChild(a.content);"static"===a.css.position&&(a.manualPosition=!0,a.container.style.position="relative");if(b.observableItems){var d=this.getItems();
if(d.length&&"IntersectionObserver"in window){a.items=d;for(var f=[],g=0;1>g;g+=.01)f.push(g);g=function(h,l){h.forEach(function(k){var m=k.target,t=k.intersectionRatio;k=k.isIntersecting;var q=!k&&0>=t,v=k&&0<t&&1>t;e.classList.toggle(m,b.classes.itemVisible,k&&1<=t);e.classList.toggle(m,b.classes.itemPartial,v);e.classList.toggle(m,b.classes.itemHidden,q)})};this.intersectionObserver=new IntersectionObserver(g,{root:null,rootMargin:"0px",threshold:f});y(d,function(h,l){a.intersectionObserver.observe(l)})}}a.update();
e.on(a.content,"scroll",c.scroll);e.on(a.container,"mouseenter",c.mouseenter);if(b.horizontalMouseScroll)e.on(a.content,"wheel",c.wheel);e.on(n,"resize",c.debounce);e.on(p,"DOMContentLoaded",c.update);e.on(n,"load",c.update);"MutationObserver"in window&&(g=function(h,l){if(a.intersectionObserver)for(var k=$jscomp.makeIterator(h),m=k.next();!m.done;m=k.next())if(m=m.value,"childList"==m.type){for(var t=$jscomp.makeIterator(m.addedNodes),q=t.next();!q.done;q=t.next())q=q.value,a.intersectionObserver.observe(q);
m=$jscomp.makeIterator(m.removedNodes);for(q=m.next();!q.done;q=m.next())q=q.value,a.intersectionObserver.unobserve(q)}a.intersectionObserver&&(a.items=a.getItems());a.update()},this.mutationObserver=new MutationObserver(g),this.mutationObserver.observe(this.content,this.config.mutationObserver));a.initialised=!0;setTimeout(function(){a.config.onInit.call(a,a.getData())},10)}};r.getItems=function(){var a=this.config,b;"string"===typeof a.observableItems&&(b=this.content.querySelectorAll(a.observableItems));
if(a.observableItems instanceof HTMLCollection||a.observableItems instanceof NodeList)b=[].slice.call(a.observableItems);return b};r.getData=function(a){a=this.content;return{scrollTop:a.scrollTop,scrollLeft:a.scrollLeft,scrollHeight:a.scrollHeight,scrollWidth:a.scrollWidth,offsetWidth:a.offsetWidth,offsetHeight:a.offsetHeight,containerRect:this.rect,barSize:this.size}};r.scrollTo=function(a,b){void 0===b&&(b="y");var c=this.getData(),d;"string"===typeof a?"start"===a?d=-c[u[b]]:"end"===a&&(d=c[z[b]]-
c[K[b]]-c[u[b]]):d=a-c[u[b]];this.scrollBy(d,b)};r.scrollBy=function(a,b,c,d){void 0===b&&(b="y");if(0===c)this.content[u[b]]+=a;else{void 0===c&&(c=250);d=d||function(k,m,t,q){k/=q;return-t*k*(k-2)+m};var f=this,g=Date.now(),h=f.content[u[b]],l=function(){var k=Date.now()-g;k>c?(F(f.frame),f.content[u[b]]=Math.ceil(h+a)):(f.content[u[b]]=Math.ceil(d(k,h,a,c)),f.frame=D(l))};f.frame=l()}};r.scrollToTop=function(){this.scrollTo(0)};r.scrollToBottom=function(){var a=this.getData();this.scrollTo(a.scrollHeight-
a.offsetHeight)};r.update=function(){var a=this,b=a.config,c=a.content,d=a.size;a.rect=e.rect(a.container);a.scrollTop=c.scrollTop;a.scrollLeft=c.scrollLeft;a.scrollHeight=c.scrollHeight;a.scrollWidth=c.scrollWidth;a.offsetWidth=c.offsetWidth;a.offsetHeight=c.offsetHeight;a.clientWidth=c.clientWidth;a.clientHeight=c.clientHeight;var f=a.scrollWidth>a.offsetWidth&&!a.textarea,g=a.scrollHeight>a.offsetHeight;e.classList.toggle(a.container,"mb-scroll-x",f&&b.scrollX&&!b.hideBars);e.classList.toggle(a.container,
"mb-scroll-y",g&&b.scrollY&&!b.hideBars);e.css(c,{overflowX:f?"auto":"",overflowY:g?"auto":"",marginBottom:f?-d:"",paddingBottom:f?d:"",marginRight:g?-d:"",paddingRight:g&&!b.hideBars?d:""});a.scrollX=f;a.scrollY=g;y(a.tracks,function(h,l){C(l,e.rect(l.node));C(a.bars[h],e.rect(a.bars[h].node))});a.updateBars();a.wrapperPadding=0;a.textarea&&(b=e.css(a.wrapper),a.wrapperPadding=parseInt(b.paddingTop,10)+parseInt(b.paddingBottom,10),!a.down&&a.content.selectionStart>=a.content.value.length&&(a.content.scrollTop=
a.scrollToBottom()));this.config.onUpdate.call(this,this.getData())};r.updateBar=function(a){var b=this,c={},d=b.config,f=b.tracks[a][x[a]],g=b.rect[x[a]]-b.wrapperPadding,h=f/b[z[a]],l=b.content[u[a]]/(b[z[a]]-g);"progress"===d.barType?c[x[a]]=Math.floor(f*l):(c[x[a]]=Math.max(Math.floor(h*g),d.minBarSize),c[J[a]]=Math.floor((f-c[x[a]])*l));D(function(){e.css(b.bars[a].node,c)})};r.updateBars=function(){y(this.bars,function(a,b){this.updateBar(a)},this)};r.destroy=function(){var a=this.config,b=
this.container;if(this.initialised){e.off(b,"mouseenter",this.events.mouseenter);e.off(n,"resize",this.events.debounce);e.classList.remove(b,a.classes.visible);e.classList.remove(b,a.classes.container);e.classList.remove(b,a.classes.nav);for(y(this.tracks,function(c,d){b.removeChild(a.navButtons?d.node.parentNode:d.node);e.classList.remove(b,"mb-scroll-"+c)});this.content.firstChild;)b.appendChild(this.content.firstChild);b.removeChild(this.content);this.manualPosition&&(b.style.position="");this.bars=
{x:{},y:{}};this.tracks={x:{},y:{}};this.content=null;this.mutationObserver&&(this.mutationObserver.disconnect(),this.mutationObserver=!1);a.observableItems&&(this.intersectionObserver&&(this.intersectionObserver.disconnect(),this.intersectionObserver=!1),y(this.items,function(c,d){var f=d.node||d;e.classList.remove(f,a.classes.item);e.classList.remove(f,a.classes.itemVisible);e.classList.remove(f,a.classes.itemPartial);e.classList.remove(f,a.classes.itemHidden)}));this.initialised=!1}};r._scroll=
function(a){a=this.getData(!0);a.scrollLeft>this.lastX?this.scrollDirection.x=1:a.scrollLeft<this.lastX&&(this.scrollDirection.x=-1);a.scrollTop>this.lastY?this.scrollDirection.y=1:a.scrollTop<this.lastY&&(this.scrollDirection.y=-1);this.updateBars();this.config.onScroll.call(this,a);this.lastX=a.scrollLeft;this.lastY=a.scrollTop};r._wheel=function(a){a.preventDefault();this.scrollBy(100*a.deltaY,"x")};r._mouseenter=function(a){this.updateBars()};r._mousedown=function(a){a.preventDefault();var b=
this.config,c=a.target===this["progress"===b.barType?"tracks":"bars"].x.node?"x":"y";if(e.classList.contains(a.target,"mb-track"))return c=a.target===this.tracks.x.node?"x":"y",b=this.tracks[c],this.scrollTo((a[E[c]]-b[c])/b[x[c]]*(this.content[z[c]]-this.rect[x[c]]),c);this.down=!0;this.currentAxis=c;this.update();e.classList.add(this.container,b.classes.visible);e.classList.add(this.container,b.classes.scrolling+"-"+c);"progress"===b.barType?(this.origin={x:a.pageX-this.tracks[c].x,y:a.pageY-this.tracks[c].y},
this._mousemove(a)):this.origin={x:a.pageX-this.bars[c].x,y:a.pageY-this.bars[c].y};e.on(p,"mousemove",this.events.mousemove);e.on(p,"mouseup",this.events.mouseup)};r._mousemove=function(a){a.preventDefault();var b=this,c=this.origin,d=this.currentAxis,f=b.tracks[d],g="progress"===b.config.barType;a=(g?a[E[d]]-f[d]:a[E[d]]-c[d]-f[d])/f[x[d]];var h=g?a*(b.content[z[d]]-b.rect[x[d]]):a*b[z[d]];D(function(){b.content[u[d]]=h})};r._mouseup=function(a){var b=this.config,c=this.events;e.classList.toggle(this.container,
b.classes.visible,b.alwaysShowBars);e.classList.remove(this.container,b.classes.scrolling+"-"+this.currentAxis);e.classList.contains(a.target,b.classes.bar)||(e.classList.remove(this.container,b.classes.hover+"-x"),e.classList.remove(this.container,b.classes.hover+"-y"));this.currentAxis=null;this.down=!1;e.off(p,"mousemove",c.mousemove);e.off(p,"mouseup",c.mouseup)};w.MiniBar=A})(this);

View File

@ -0,0 +1,67 @@
(function( $ ){
function calculateResults(startX, startY, endX, endY, tresholdX, tresholdY){
var swipeDirection = {up:false, right:false, down: false, left:false};
if(startX > endX && startX - endX >= tresholdX)
swipeDirection.left = true;
else if(startX < endX && endX - startX >= tresholdX)
swipeDirection.right = true;
if(startY < endY && endY - startY >= tresholdY)
swipeDirection.down = true
else if(startY > endY && startY - endY >=tresholdY)
swipeDirection.up = true;
return swipeDirection;
}
$.fn.onSwipe = function(f, timeTreshold, tresholdX, tresholdY){
if(jQuery.isFunction(f)){ //We are only going to do our thing if the user passed a function
if(typeof timeTreshold === 'undefined' || timeTreshold === null)
timeTreshold = 100;//ms
if(typeof tresholdX === 'undefined' || tresholdX === null)
tresholdX = 30;//px
if(typeof tresholdY === 'undefined' || tresholdY === null)
tresholdY = 30;//px
var startX, startY; //Position when touch begins
var endX, endY; //Position when touch ends
var time; //Our timer variable
var totalTime = 0; //Total time that the swipe took
//When a touch starts on this element.
//We can start a timer, and start getting coordinates.
$(this).on("touchstart", function(e){
//Let's get our touch coordinates
startX = e.touches[0].clientX; //This is where touchstart coordinates are stored
startY = e.touches[0].clientY;
time = setInterval(function(){ //Let's see how long the swipe lasts.
totalTime += 10;
}, 10);
});
$(this).on("touchend", function(e){
endX = e.changedTouches[0].clientX; //This is where touchend coordinates are stored.
endY = e.changedTouches[0].clientY;
clearInterval(time); //Let's stop calculating time and free up resources.
if(totalTime >= timeTreshold) //If swipe time is less than our treshold we won't do anything. Useful for preventing spam and accidental swipes.
f(calculateResults(startX, startY, endX, endY, 30, 30)); //Send results to user's function
totalTime = 0;
});
} else console.error("You need to pass a function in order to process swipe data.");
return $(this);
}
})( jQuery );

View File

@ -0,0 +1,26 @@
.HeaderPanel {
position: fixed;
overflow: hidden;
background-color: rgb(33, 37, 41);
padding: 10px 10px;
top: 0;
width: 100%;
}
.HeaderPanel a {
text-align: center;
color: rgba(255, 255, 255, .75);
padding: 6px;
text-decoration: none;
font-size: 18px;
line-height: 25px;
border-radius: 4px;
}
.HeaderTitle {
text-align: center;
}
.HeaderLeft {
float: left;
}

715
Frontend/Styles/Index.css Normal file
View File

@ -0,0 +1,715 @@
body,
html {
color: rgba(255, 255, 255, .55);
font-family: Arial, Helvetica, sans-serif;
margin: 0;
padding: 0;
height: 100%;
scroll-behavior: smooth;
/*FireFox*/
scrollbar-width: none;
/*IE10+*/
-ms-overflow-style: -ms-autohiding-scrollbar;
}
body {
background-color: rgb(18, 18, 18);
overflow: hidden;
transition: padding-top 0.3s ease-in-out;
padding-top: 53px;
}
section {
height: 100%;
}
a {
color: rgba(255, 255, 255, .75);
}
a:hover {
color: rgba(255, 255, 255, .75);
}
#content {
overflow: hidden;
}
::-webkit-scrollbar {
/*Chrome, Safari, Edge*/
display: none;
}
.scrolled-up {
transform: translateY(0);
transition: all 0.3s ease-in-out;
}
.bodyScrolled-up {
padding-top: 53px;
}
.scrolled-down {
transform: translateY(-100%);
transition: all 0.3s ease-in-out;
}
.bodyScrolled-down {
padding-top: 0px;
}
.container, .container-fluid, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
padding-right: 0;
padding-left: 0;
}
/* Scrollbar */
.mb-container .mb-track {
border-radius: 5px;
}
.mb-container .mb-track-y {
right: 0;
height: calc(100% - 5px);
width: 5px;
}
.mb-container .mb-track .mb-bar {
background-color: rgba(51, 51, 51, 0.75);
}
.mb-container .mb-track {
background-color: transparent;
}
.navbar {
margin-bottom: 0;
border-radius: 0;
}
.smart-scroll {
position: fixed;
height: 52px;
top: 0;
right: 0;
left: 0;
width: 100%;
z-index: 1030;
}
.navbar-toggler:focus {
box-shadow: none;
}
.navbar-collapse {
background-color: rgb(33, 37, 41);
text-align: center;
}
.navbar-toggler:focus-visible {
outline: none;
}
.row.content {
height: 450px
}
.CenterDiv {
margin: 1vw 10vw 0;
}
.LoginButton {
color: rgba(255, 255, 255, .55);
}
.LoginButton:hover {
color: rgba(255, 255, 255, .75);
}
.dropdown-menu {
background-color: rgba(34, 39, 43) !important;
}
.dropdown-menu .dropdown-item {
color: rgba(255, 255, 255, .50) !important;
}
.dropdown-menu .dropdown-item:hover {
color: rgba(255, 255, 255, .75) !important;
background-color: transparent !important;
}
.LoginModal .modal-header {
padding: 0;
border-bottom: 0;
background-color: rgb(18, 18, 18);
color: rgba(255, 255, 255, .75);
}
#RulesModal .modal-header {
text-align: center;
display: unset;
padding: 0.5rem;
}
#RulesModal .modal-header h1 {
font-weight: bolder;
color: rgba(255, 255, 255, .75);
}
#RulesModal .modal-dialog-scrollable .modal-content {
max-height: 75%;
}
#ModalRulesTabContent ul {
color: rgb(204, 204, 204);
list-style-type: none;
padding-left: 0;
}
#ModalRulesTabContent ul li {
position: relative;
font: bold italic 45px/1.5 Helvetica, Verdana, sans-serif;
}
#ModalRulesTabContent li p {
font: 16px/1.5 Helvetica, sans-serif;
padding-left: 60px;
color: rgba(255, 255, 255, .55);
}
#ModalRulesTabContent span {
position: absolute;
color: rgba(255, 255, 255, .75);
}
#pass_info {
position: absolute;
top: 300px;
bottom: -90px;
right: 22%;
width: 250px;
padding: 15px;
background: rgb(254, 254, 254);
font-size: .875em;
border-radius: 5px;
box-shadow: 0 1px 3px rgb(204, 204, 204);
border: 1px solid rgb(221, 221, 221);
display: none;
}
#pass_info::before {
content: "\25B2";
position: absolute;
top: -12px;
left: 45%;
font-size: 14px;
line-height: 14px;
color: #ddd;
text-shadow: none;
display: block;
}
#pass_info ul, li {
margin:0;
padding:0;
list-style-type:none;
}
#pass_info h5 {
margin:0 0 10px 0;
padding:0;
font-weight:normal;
}
.invalid {
padding-left:22px;
line-height:24px;
color:rgb(236, 63, 65);
}
.invalidInput {
border-color: rgb(219, 52, 52) !important;
}
.invalid::before {
font-family: "FontAwesome";
content: '\f00d';
}
.valid {
padding-left:22px;
line-height:24px;
color:rgb(58, 125, 52);
}
.validInput {
border-color: rgb(80, 219, 52) !important;
}
.valid::before {
font-family: "FontAwesome";
content: '\f00c';
}
.RulesModal .modal-header {
text-align: center;
}
.modal-body {
padding: 0 0;
margin: 2vh 2vw;
background-color: rgb(18, 18, 18);
}
.modal-content {
background-color: rgb(18, 18, 18);
box-shadow: rgba(0, 0, 0, 0.07) 0px 1px 2px,
rgba(0, 0, 0, 0.07) 0px 2px 4px,
rgba(0, 0, 0, 0.07) 0px 4px 8px,
rgba(0, 0, 0, 0.07) 0px 8px 16px,
rgba(0, 0, 0, 0.07) 0px 16px 32px,
rgba(0, 0, 0, 0.07) 0px 32px 64px;
}
.modal-backdrop {
z-index: 1;
}
.nav-tabs {
border-bottom: 1px solid rgb(80, 80, 80);
}
.nav-tabs .nav-item.show .nav-link,
.nav-tabs .nav-link.active {
color: rgba(255, 255, 255, .75);
background-color: rgb(37, 37, 37);
border-color: rgb(80, 80, 80);
}
.nav-tabs .nav-link {
color: rgba(255, 255, 255, .55);
}
.nav-tabs .nav-link:focus,
.nav-tabs .nav-link:hover {
border-color: rgb(80, 80, 80);
color: rgba(255, 255, 255, .75);
}
.FullWidthModalTabs {
display: table;
width: 100%;
height: 32px;
table-layout: fixed;
}
.FullWithModalTabsItem {
float: none;
display: table-cell;
}
.FullWithModalTabsItem button {
text-align: center;
}
.CloseIcon {
width: 16px;
height: 16px;
background-color: transparent;
color: rgba(255, 255, 255, .55);
}
.CloseIcon:hover {
color: rgba(255, 255, 255, .75);
}
.btn-close:hover {
fill: rgb(255, 0, 0);
}
.btn-close:focus {
box-shadow: none;
}
.navbar-brand {
padding-top: 0;
padding-bottom: 0;
}
.CustomBrand {
position: relative;
text-align: center;
height: 32px;
}
.CenteredTitle {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.box {
background-color: rgb(18, 18, 18);
}
.box input[type="text"],
.box input[type="password"] {
border: 0;
background: none;
display: block;
margin: 20px auto;
text-align: center;
border: 2px solid rgb(52, 152, 219);
padding: 10px 10px;
width: 250px;
outline: none;
color: rgba(255, 255, 255, .55);
border-radius: 24px;
transition: 0.25s;
}
.text-muted {
margin-bottom: 5vh;
color: rgba(255, 255, 255, .55) !important;
}
.box h1 {
font-size: 3.2em;
text-align: center;
font-weight: 500;
}
.box input[type="text"]:focus,
.box input[type="password"]:focus {
width: 300px;
}
.box input[type="text"]:hover,
.box input[type="password"]:hover {
color: rgba(255, 255, 255, .75);
}
.box input[type="submit"] {
border: 0;
background: none;
display: block;
margin: 20px auto;
text-align: center;
border: 2px solid rgb(46, 204, 113);
padding: 14px 40px;
outline: none;
color: rgba(255, 255, 255, .55);
border-radius: 24px;
transition: 0.25s;
cursor: pointer;
}
.box input[type="submit"]:hover {
background: rgb(46, 204, 113);
color: rgba(255, 255, 255, .75);
}
.carousel-item img {
margin: 0 auto;
}
@media only screen and (min-width: 1280px) {
.CustomRow {
display: none
}
.SmallScreenDouImages {
display: block;
}
}
@media only screen and (min-width: 414px) {
.carousel-item img {
height: 320px;
width: 320px !important;
}
}
@media only screen and (min-width: 1366px) {
.carousel-item img {
height: 525px;
width: 576px !important;
}
}
@media only screen and (min-width: 1920px) {
.carousel-item img {
height: 576px;
width: 720px !important;
margin: 0 auto;
}
}
@media screen and (prefers-reduced-motion: reduce) {
html {
scroll-behavior: auto;
}
}
/*slideshow effekt*/
.image_img {
display: block;
width:100%;
}
.image_overlay{
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.6);
color: rgb(255, 255, 255);
font-family: Arial;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
opacity: 0;
transition: opacity 0.25s;
}
.image_overlay > *{
transform: translateY(20px);
transition: transform 0.25s;
}
.image_overlay:hover{
opacity: 1;
}
.image_overlay:hover > * {
transform: translateY(0);
}
.image_title {
font-size: 2em;
font-weight: bold;
}
image_gruppenavn{
font-size: 1.25em;
margin-top: 0.25em;
}
/* slide show effekt slut*/
/*Kategori spil*/
.Collapsible {
background-color: rgb(18, 18, 18);
color: rgba(255, 255, 255, .55);
cursor: pointer;
padding: 18px;
width: 100%;
border: none;
text-align: left;
outline: none;
font-size: 15px;
width: 33.333%;
}
.CollapsibleContent {
padding: 0 18px;
display: none;
overflow: hidden;
background-color: rgb(18, 18, 18);
}
.left_text{
float: left;
}
.center_text{
display: inline-block;
margin: 0 auto;
}
.right_text{
float: right;
}
#hjem {
padding-top: 0;
}
#header {
position: fixed;
height: 52px;
top: 0;
width: 100%;
z-index: 100;
transition: all .3s ease;
box-shadow: 0 1px 25px rgba(0,0,0, .1);
}
#header.hide {
top: -56px;
}
.GradientDivider {
margin: 16px 0 16px 0;
display: block;
border: none;
height: 3px !important;
background: rgb(0, 113, 185) !important;
background: linear-gradient(to right, rgb(18, 18, 18), rgb(0, 113, 185), rgb(38, 171, 255), rgb(0, 113, 185), rgb(18, 18, 18)) !important;
opacity: 1;
}
/*Kalender*/
.container {
width: 100%;
height: 100vh;
color: rgb(238, 238, 238);
display: flex;
justify-content: center;
align-items: center;
}
.calendar {
width: 45rem;
height: 52rem;
background-color: rgb(34, 34, 39);
box-shadow: 0 0.5rem 3rem rgba(0, 0, 0, 0.4);
border-radius: 20px;
}
.month {
width: 100%;
height: 12rem;
background-color: #01579b;
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 2rem;
text-align: center;
text-shadow: 0 0.3rem 0.5rem rgba(0, 0, 0, 0.5);
border-top-left-radius: 20px;
border-top-right-radius: 20px;
}
.month i {
font-size: 2.5rem;
cursor: pointer;
}
.month h1 {
font-size: 3rem;
font-weight: 400;
text-transform: uppercase;
letter-spacing: 0.2rem;
margin-bottom: 1rem;
}
.month p {
font-size: 1.6rem;
}
.weekdays {
width: 100%;
height: 5rem;
padding: 0 0.4rem;
display: flex;
align-items: center;
}
.weekdays div {
font-size: 1.5rem;
font-weight: 400;
letter-spacing: 0.1rem;
width: calc(44.2rem / 7);
display: flex;
justify-content: center;
align-items: center;
text-shadow: 0 0.3rem 0.5rem rgba(0, 0, 0, 0.5);
}
.days {
width: 100%;
display: flex;
flex-wrap: wrap;
padding: 0.2rem;
border-radius: 50%;
}
.days div {
font-size: 1.4rem;
margin: 0.3rem;
width: calc(40.2rem / 7);
height: 5rem;
display: flex;
justify-content: center;
align-items: center;
text-shadow: 0 0.3rem 0.5rem rgba(0, 0, 0, 0.5);
transition: background-color 0.2s;
border-radius: 50%;
}
.days div:hover{
background-color: #01579b;
border: 0.2rem solid rgb(119, 119, 119);
cursor: pointer;
border-radius: 50%;
}
.prev-date,
.next-date {
opacity: 0.5;
}
.today {
background-color: #01579b;
border-radius: 50%;
}
/*Kalender slut*/
#return-to-top {
position: fixed;
bottom: 20px;
right: 20px;
background: rgba(73, 122, 255, .8);
width: 50px;
height: 50px;
display: block;
text-decoration: none;
-webkit-border-radius: 35px;
-moz-border-radius: 35px;
border-radius: 35px;
display: none;
-webkit-transition: all 0.3s linear;
-moz-transition: all 0.3s ease;
-ms-transition: all 0.3s ease;
-o-transition: all 0.3s ease;
transition: all 0.3s ease;
}
#return-to-top:hover {
background: rgb(73, 122, 255);
}
#return-to-top i {
color: rgba(255, 255, 255, .75);;
margin: 0;
position: relative;
font-size: 30px;
-webkit-transition: all 0.3s ease;
-moz-transition: all 0.3s ease;
-ms-transition: all 0.3s ease;
-o-transition: all 0.3s ease;
transition: all 0.3s ease;
top: 8px;
}
#return-to-top:hover i {
color: rgba(255, 255, 255, .55);;
top: 5px;
}

View File

@ -0,0 +1,94 @@
#notfound {
position: relative;
height: 100vh;
background: #030005;
}
#notfound .notfound {
position: absolute;
left: 50%;
top: 50%;
-webkit-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
.notfound {
max-width: 767px;
width: 100%;
line-height: 1.4;
text-align: center;
}
.notfound .notfound-404 {
position: relative;
height: 180px;
margin-bottom: 20px;
z-index: -1;
}
.notfound .notfound-404 h1 {
font-family: 'Montserrat', sans-serif;
position: absolute;
left: 50%;
top: 50%;
-webkit-transform: translate(-50% , -50%);
-ms-transform: translate(-50% , -50%);
transform: translate(-50% , -50%);
font-size: 224px;
font-weight: 900;
margin-top: 0px;
margin-bottom: 0px;
margin-left: -12px;
color: #030005;
text-transform: uppercase;
text-shadow: -1px -1px 0px #8400ff, 1px 1px 0px #ff005a;
letter-spacing: -20px;
}
.notfound .notfound-404 h2 {
font-family: 'Montserrat', sans-serif;
position: absolute;
left: 0;
right: 0;
top: 110px;
font-size: 42px;
font-weight: 700;
color: #fff;
text-transform: uppercase;
text-shadow: 0px 2px 0px #8400ff;
letter-spacing: 13px;
margin: 0;
}
.notfound a {
font-family: 'Montserrat', sans-serif;
display: inline-block;
text-transform: uppercase;
color: #ff005a;
text-decoration: none;
border: 2px solid;
background: transparent;
padding: 10px 40px;
font-size: 14px;
font-weight: 700;
-webkit-transition: 0.2s all;
transition: 0.2s all;
}
.notfound a:hover {
color: #8400ff;
}
@media only screen and (max-width: 767px) {
.notfound .notfound-404 h2 {
font-size: 24px;
}
}
@media only screen and (max-width: 480px) {
.notfound .notfound-404 h1 {
font-size: 182px;
}
}

12
Frontend/Styles/bootstrap.min.css vendored Normal file

File diff suppressed because one or more lines are too long

5
Frontend/Styles/fontawesome.min.css vendored Normal file

File diff suppressed because one or more lines are too long

6
Frontend/Styles/minibar.min.css vendored Normal file
View File

@ -0,0 +1,6 @@
/*!
* MiniBar 0.5.0
* http://mobius.ovh/
*
* Released under the MIT license
*/.mb-bar,.mb-track{border-radius:5px;position:absolute}.mb-bar,.mb-button,.mb-buttons,.mb-track{position:absolute}.mb-container{overflow:hidden;height:100%;width:100%}.mb-container:hover.mb-scroll-x>.mb-buttons-x,.mb-container:hover.mb-scroll-x>.mb-buttons-x>.mb-track-x,.mb-container:hover.mb-scroll-x>.mb-track-x,.mb-container:hover.mb-scroll-y>.mb-buttons-y,.mb-container:hover.mb-scroll-y>.mb-buttons-y>.mb-track-y,.mb-container:hover.mb-scroll-y>.mb-track-y,.mb-visible.mb-scroll-x>.mb-buttons-x,.mb-visible.mb-scroll-x>.mb-buttons-x>.mb-track-x,.mb-visible.mb-scroll-x>.mb-track-x,.mb-visible.mb-scroll-y>.mb-buttons-y,.mb-visible.mb-scroll-y>.mb-buttons-y>.mb-track-y,.mb-visible.mb-scroll-y>.mb-track-y{opacity:1}.mb-content{overflow:auto;height:100%;width:auto;box-sizing:content-box}.mb-track{-webkit-transition:opacity 250ms;transition:opacity 250ms}.mb-bar{background-color:rgba(0,0,0,.2);z-index:10;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.mb-track-x{left:5px;bottom:5px;width:calc(100% - 10px);height:10px;opacity:0}.mb-buttons-y .mb-increase,.mb-track-y .mb-increase{bottom:0}.mb-track-x .mb-bar{left:0;top:0;height:100%;min-width:10px}.mb-track-y{right:5px;top:5px;height:calc(100% - 10px);width:10px;opacity:0}.mb-buttons-x .mb-increase,.mb-buttons-y,.mb-track-x .mb-increase{right:0}.mb-track-y .mb-bar{right:0;top:0;width:100%;min-height:10px}.mb-progress{overflow:hidden}.mb-progress .mb-bar{min-height:0}.mb-buttons-x{height:16px;width:100%;bottom:0;left:0;opacity:0}.mb-buttons-x .mb-decrease{left:0}.mb-buttons-x .mb-decrease::before{-webkit-transform:rotate(-135deg);transform:rotate(-135deg)}.mb-buttons-x .mb-increase::before{left:-1px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.mb-buttons-y{width:16px;height:100%;top:0;opacity:0}.mb-buttons-y .mb-decrease{top:0}.mb-buttons-y .mb-increase::before{top:5px;-webkit-transform:rotate(135deg);transform:rotate(135deg)}.mb-nav .mb-bar{border-radius:0;background-color:#969696}.mb-nav .mb-bar:hover{background-color:#a3a3a3}.mb-nav .mb-track{border-radius:0;background-color:#d6d6d6}.mb-nav .mb-track-x{left:16px;height:16px;width:calc(100% - 32px)}.mb-nav .mb-track-y{top:16px;width:16px;height:calc(100% - 32px)}.mb-button{border:none;width:16px;height:16px;padding:0;background-color:#969696;cursor:pointer}.mb-button:hover{background-color:#a3a3a3}.mb-button::before{border-style:solid;border-width:2px 2px 0 0;border-color:#fff;content:"";display:inline-block;height:3px;width:3px;left:0;top:6px;position:relative;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);vertical-align:top}.mb-track-x .mb-decrease{left:0}.mb-track-y .mb-decrease{top:0}.mb-scroll-x .mb-buttons-y{height:calc(100% - 16px)}.mb-scroll-x .mb-buttons-y::before{position:absolute;left:0;bottom:-16px;width:100%;height:100%;content:"";background-color:#fff;z-index:0}.mb-scroll-y .mb-buttons-x{width:calc(100% - 16px)}.mb-wrapper{width:100%;height:100%;padding:10px 0 10px 10px;box-sizing:border-box;background-color:#2E222D}.mb-textarea .mb-content{border:none;width:100%;height:100%;margin:0}.mb-textarea .mb-track-x{display:none}

View File

@ -1,17 +0,0 @@
<?php ?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="../Backend/Controllers/keyWord/GetKeyWinner.php" method="POST">
<input type="number" name="gameJamId" placeholder="Game Jam id">
<input type="submit" value="Gen" name="genKeyWord" id="pog" />
</form>
</body>
</html>

View File

@ -1,44 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="../Backend/Controllers/keyWord/NewKeyWord.php" method="POST">
<input type="text" name="key_word" placeholder="key word">
<input type="submit" name="submitKeyWord" value="Submit">
</form>
<hr>
<form action="../Backend/Controllers/FileHandler/upload.php" method="POST" id="uploadGame" enctype="multipart/form-data">
<input type="text" name="gameTitle" placeholder="Title på spillet"><br><br>
<input type="text" name="description" placeholder="Beskrivelse"><br><br>
<label for="uploadGame">Upload spil [.zip]</label>
<input type="file" name="gameFile" id="uploadGame" placeholder="Upload dit spil"><br><br>
<label for="uploadthumbnail">Upload thumbnail [GIF, JPEG, PNG, SVG]</label>
<input type="file" name="thumbnailFile" id="uploadthumbnail" placeholder="Upload en thumbnail"><br><br>
<label for="web">Er spillet web based</label>
<input type="checkbox" id="web" name="isWebBased" value="1"><br><br>
<input type="submit" name="submitUpload" value="Submit">
</form>
<hr>
<form action="updateGameJam.php" method="POST">
<input type="submit" value="Gå til Opdater" name="updateGamJam" id="pog" />
</form>
</body>
</html>

View File

@ -1,9 +0,0 @@
<?php
session_start();
echo strlen($_SESSION['token']), PHP_EOL;
echo bin2hex($_SESSION['token']), PHP_EOL;
print_r($_GET);

View File

@ -1,29 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<center>
<h1>Hvis det er noget du ikke vil ændre lad feltet forblive tomt</h1>
<form action="../Backend/Controllers/FileHandler/updateFiles.php" method="POST" id="updateGame" enctype="multipart/form-data">
<input type="text" name="gameTitle" placeholder="Updater Titlen på spillet"><br><br>
<input type="text" name="description" placeholder="Opdater beskrivelse"><br><br>
<label for="uploadGame">Opdater spil [.zip]</label>
<input type="file" name="gameFile" id="uploadGame" placeholder="Opdater dit spil"><br><br>
<label for="uploadthumbnail">Opdater thumbnail [GIF, JPEG, PNG, SVG]</label>
<input type="file" name="thumbnailFile" id="uploadthumbnail" placeholder="Opdater en thumbnail"><br><br>
<label for="web">Opdater om spillet er web based</label>
<input type="checkbox" id="web" name="isWebBased" value="1"><br><br>
<input type="submit" name="submitUpdate" value="Opdater">
</form>
</center>
</body>
</html>