Compare commits

...

15 Commits

Author SHA1 Message Date
jona345e 619a052309 Merge remote-tracking branch 'origin/main' into main 2021-04-26 08:22:47 +02:00
jona345e 5213c33f2a back end update 2021-04-26 08:21:51 +02:00
Jacob Søfeldt 379634db47 Merge branch 'main' of https://gitea.itskp-odense.dk/Game-jam-Devs/Game-Jaming 2021-04-23 08:06:57 +02:00
Jacob Søfeldt 4b49d05fe1 update 2021-04-23 08:06:46 +02:00
Ida Tiegel 62d7d64e32 Update 2021-04-22 10:04:45 +02:00
Jacob Søfeldt a59fcdca30 Merge branch 'main' of https://gitea.itskp-odense.dk/Game-jam-Devs/Game-Jaming 2021-04-21 10:51:32 +02:00
Jacob Søfeldt 3ca45e6453 minder admin side fix 2021-04-21 10:51:18 +02:00
jona345e 23a98a23cf Merge remote-tracking branch 'origin/main' into main 2021-04-21 10:27:06 +02:00
jona345e 48b9f532a4 registration controllers update 2021-04-21 10:26:04 +02:00
Jacob Søfeldt ebeb93e5fa Backdrop and logind fix 2021-04-21 09:03:40 +02:00
Jacob Søfeldt 995cec56b1 Update 2021-04-20 14:48:16 +02:00
Ida Tiegel 9dda1a4336 Update 2021-04-20 14:01:33 +02:00
jona345e 15262c9cc6 test 2021-04-20 08:54:31 +02:00
jona345e 47094283cb test 2021-04-20 08:51:48 +02:00
RundelhausCode ae719b9d68 Merge pull request #1 from RundelhausCode/new_database
new database
2021-04-19 12:28:17 +02:00
28 changed files with 2664 additions and 1690 deletions
+1
View File
@@ -116,3 +116,4 @@ composer.phar
*.sqlite
Backend/test.php
config/database.json
+1
View File
@@ -19,4 +19,5 @@ function makeAdminLogin(string $userName)
'path' => '/'
]);
}
//test
+1 -1
View File
@@ -18,7 +18,7 @@ if (isset($_POST['aLogin'])) {
if (password_verify($password, $hashedPassword)) {
$_SESSION['userName'] = $userName;
$_SESSION['admin'] = true;
$_SESSION['success'] = "You are now logged in";
//$_SESSION['success'] = "You are now logged in";
http_response_code(200);
makeAdminLogin($userName);
} else {
+2 -1
View File
@@ -8,7 +8,8 @@ if (isAdmin()) {
if (isset($_POST["newAdmin"])) {
$admin = new AdminUser();
$admin->user_name = $_POST["newUsername"];
$admin->password = $_POST["newPassword"];
$admin->password = password_hash($_POST["newPassword"],PASSWORD_DEFAULT);
if ($admin->save()) {
http_response_code(201);
} else {
@@ -23,7 +23,7 @@ if (isAdmin()) {
$gameJam->description = $_POST['description'];
if ($gameJam->save()) {
http_response_code(201);
http_response_code(200);
} else {
http_response_code(500);
}
+2
View File
@@ -16,3 +16,5 @@ header("Access-Control-Allow-Methods: GET");
header("Access-Control-Allow-Headers: X-Requested-With, Content-Type, Accept");
header('Content-Type: application/json;charset=UTF-8');
echo json_encode(array('data' => $groups->jsonSerialize()));
+1 -2
View File
@@ -10,11 +10,10 @@ if (isAdmin()) {
$password = Password::firstWhere("group_id", $_POST['groupId']);
if ($password) {
$password->password = password_hash($_POST['newPassword'], PASSWORD_DEFAULT);
echo $password;
if (!$password->save()) {
http_response_code(500);
} else {
http_response_code(201);
http_response_code(200);
}
} else {
http_response_code(400);
-3
View File
@@ -8,9 +8,6 @@ use Backend\Models\Password;
use Backend\Models\GameJam;
use Illuminate\Support\Str;
$groupName = "";
$errors = array();
if (isset($_POST['regGroup'])) {
+1 -1
View File
@@ -11,7 +11,7 @@ if (isLogin()) {
if (!$group->save()) {
http_response_code(500);
} else {
http_response_code(201);
http_response_code(200);
}
} else {
http_response_code(400);
+1 -1
View File
@@ -12,7 +12,7 @@ if (isLogin()) {
if (!$password->save()) {
http_response_code(500);
} else {
http_response_code(201);
http_response_code(200);
}
} else {
http_response_code(400);
+17 -1
View File
@@ -1,13 +1,29 @@
<?php
use Backend\Models\GameData;
use Backend\Models\Vote;
use \Backend\Models\Registration;
require_once "../../../bootstrap.php";
require_once "../Group/Group.php";
if (isLogin()) {
$gameDate = GameData::find($_GET[]);
if(!$gameDate){
http_response_code(400);
echo json_encode(["message" => "game data not found"]);
exit();
}
$reg = Registration::where("game_data_id", $gameDate->id)->first();
$group = groupViaToken($_SESSION['token']);
if($reg->group_id !== $group->id){
http_response_code(401);
echo json_encode(["message" => "group not own game data"]);
}
header('Content-Type: application/json;charset=UTF-8');
echo json_encode(array('data' => Vote::where('group_id', groupViaToken($_SESSION['token'])->id)->get()->jsonSerialize()));
echo json_encode(array('data' => Vote::where('game_data_id',$gameDate->id)->get()->jsonSerialize()));
} else {
http_response_code(401);
@@ -1 +1,20 @@
<?php
require_once "../../../bootstrap.php";
use Backend\Models\Registration;
if(isset($_GET["registrationId"])){
$regs = Registration::find($_GET["registrationId"]);
} elseif (isset($_GET["groupId"])){
$regs = Registration::where("group_id", $_GET["groupId"])->get();
} elseif (isset($_GET["gameJamId"])){
$regs = Registration::where("game_jam_id", $_GET["gameJamId"])->get();
}elseif (isset($_GET["gameDataId"])){
$regs = Registration::where("game_data_id", $_GET["gameDataId"])->get();
}else{
$regs = Registration::all();
}
header("Access-Control-Allow-Methods: GET");
header("Access-Control-Allow-Headers: X-Requested-With, Content-Type, Accept");
header('Content-Type: application/json;charset=UTF-8');
echo json_encode(array('data' => $regs->jsonSerialize()));
@@ -1 +1,32 @@
<?php
require_once "../../../bootstrap.php";
require_once "../Group/Group.php";
use Backend\Models\Registration;
if(isLogin()){
if(isset($_POST['newReg'])){
$group = groupViaToken($_SESSION['token']);
$gameJam = \Backend\Models\GameJam::find($_POST["gameJamId"]);
if(Registration::where("group_id", $group->id)->where("game_jam_id", $gameJam->id)->count() === 0){
$reg = new Registration();
$reg->group_amount = $_POST["groupAmount"];
$reg->group()->associate($group);
$reg->gameJam()->associate($gameJam);
if($reg->save()){
http_response_code(201);
}else{
http_response_code(500);
}
}else {
http_response_code(400);
echo json_encode(["message" => "already registered"]);
}
}else {
http_response_code(400);
}
}else{
http_response_code(401);
echo json_encode(["message" => "is not login"]);
}
@@ -1 +1,27 @@
<?php
require_once "../../../bootstrap.php";
require_once "../Group/Group.php";
use Backend\Models\Registration;
if(isLogin()){
if(isset($_POST['updateReg'])){
if($reg = Registration::find($_POST["registrationId"])->where("group_id", groupViaToken($_SESSION['token'])->id)->first()){
$reg->group_amount = $_POST["groupAmount"];
if($reg->save()){
http_response_code(200);
}else{
http_response_code(500);
}
}else{
http_response_code(400);
echo json_encode(["message" => "registration does not exits"]);
}
}else{
http_response_code(400);
}
}else{
http_response_code(401);
echo json_encode(["message" => "is not login"]);
}
+140 -70
View File
@@ -1,47 +1,71 @@
<!DOCTYPE html>
<html lang="en">
<head>
<head>
<!-- Default page settings -->
<title>Admin Panel</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<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 rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css"
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="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/overlayscrollbars/1.13.1/css/OverlayScrollbars.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" />
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.css"
/>
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/overlayscrollbars/1.13.1/css/OverlayScrollbars.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://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" 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="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/moment@2.29.1/moment.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/inputmask@5.0.5/dist/jquery.inputmask.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/overlayscrollbars/1.13.1/js/jquery.overlayScrollbars.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>
<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>
</head>
<body>
<div class="HeaderPanel" id="header">
<div class="HeaderLeft">
<a style="display: inline-block;" href="../Index.html">
<i class="fas fa-arrow-left"></i>
</a>
</div>
<div class="HeaderTitle">
<h2 style="margin-bottom: 0px">
Admin Panel
</h2>
</div>
<div class="HeaderLeft">
<a style="display: inline-block" href="../Index.html">
<i class="fas fa-arrow-left"></i>
</a>
</div>
<div class="HeaderTitle">
<h2 style="margin-bottom: 0px">Admin Panel</h2>
</div>
</div>
<!--Opret game jam-->
@@ -52,70 +76,116 @@
<h5>Opret Game Jam</h5>
<div>
<form id="createGameJam" method="POST">
<!-- <label for="nameOfGameJam">Indtast navn på Game Jam:</label>
<form id="createGameJam" method="POST">
<!-- <label for="nameOfGameJam">Indtast navn på Game Jam:</label>
<input type="text" name="newGameJam" id="nameOfGameJam"> -->
<div class="FormField">
<input type="text" class="FormFieldInput" placeholder="Gamejam title" name="newGameJam" id="GamejamTitle" required>
<label for="GamejamTitle" class="FormFieldLabel">
Gamejam title
</label>
</div>
<div class="FormField">
<input
type="text"
class="FormFieldInput"
placeholder="Gamejam title"
name="newGameJam"
id="GamejamTitle"
required
/>
<label for="GamejamTitle" class="FormFieldLabel">
Gamejam title
</label>
</div>
<div class="FormField">
<div id="Dates">
<input type="date" class="FormFieldInput" placeholder="mm/dd/yyyy" name="startDate" id="startDate" required>
<label for="startDate" class="FormFieldLabel" id="startDateLabel">
Start dato
</label>
<div class="FormField">
<div id="Dates">
<input
type="date"
class="FormFieldInput"
placeholder="mm/dd/yyyy"
name="startDate"
id="startDate"
required
/>
<label for="startDate" class="FormFieldLabel" id="startDateLabel">
Start dato
</label>
<input type="date" class="FormFieldInput" placeholder="mm/dd/yyyy" name="endDate" id="endDate" required>
<label for="endDate" class="FormFieldLabel" id="endDateLabel">
Slut dato
</label>
</div>
<input
type="date"
class="FormFieldInput"
placeholder="mm/dd/yyyy"
name="endDate"
id="endDate"
required
/>
<label for="endDate" class="FormFieldLabel" id="endDateLabel">
Slut dato
</label>
</div>
<div class="Times">
<input type="text" class="FormFieldInput" placeholder="hh:mm" name="startTime" id="startTime" required>
<label for="startTime" class="FormFieldLabel" id="startTimeLabel">
Start tidspunkt
</label>
<div class="Times">
<label for="startTime" class="FormFieldLabel" id="startTimeLabel">
Start
</label>
<input
type="text"
class="FormFieldInput"
placeholder="hh:mm"
name="startTime"
id="startTime"
required
/>
<input type="text" class="FormFieldInput" placeholder="hh:mm" name="endTime" id="endTime" required>
<input
type="text"
class="FormFieldInput"
placeholder="hh:mm"
name="endTime"
id="endTime"
required
/>
</div>
</div>
</div>
</div>
<div class="FormField">
<input
type="text"
class="FormFieldInput"
placeholder="Emne / Keywords (Ikke obligatorisk)"
name="keyWord"
id="keyWord"
required
/>
<label for="keyWord" class="FormFieldLabel" id="keyWordLabel">
Emne / Keywords (Ikke obligatorisk)
</label>
</div>
<div class="FormField">
<input type="text" class="FormFieldInput" placeholder="Emne / Keywords (Ikke obligatorisk)" name="keyWord" id="keyWord" required>
<label for="keyWord" class="FormFieldLabel" id="keyWordLabel">
Emne / Keywords (Ikke obligatorisk)
</label>
</div>
<div class="FormField">
<textarea
class="FormFieldInput"
placeholder="Beskrivelse"
name="description"
id="Beskrivelse"
required
></textarea>
<label for="keyWord" class="FormFieldLabel" id="keyWordLabel">
Beskrivelse
</label>
</div>
<div class="FormField">
<textarea class="FormFieldInput" placeholder="Beskrivelse" name="description" id="Beskrivelse" required></textarea>
<label for="keyWord" class="FormFieldLabel" id="keyWordLabel">
Beskrivelse
</label>
</div>
<!-- <div class="form-floating">
<!-- <div class="form-floating">
<textarea class="form-control" name="description" id="description" placeholder="Leave a comment here" id="floatingTextarea2" style="height: 100px"></textarea>
<label for="floatingTextarea2">Beskrivelse</label>
</div> -->
<input type="submit" name="newGameJam" id="indsend" value="Indsend">
</form>
<input type="submit" name="newGameJam" id="indsend" value="Indsend" />
</form>
</div>
<!-- Opret game jam slut -->
<!-- Body scripts -->
<script src="../Javascript/OverlayScrollbar.js"></script>
<script src="../Javascript/AddEvent.js"></script>
<!--<script src="../Javascript/AddEvent.js"></script>-->
<script src="../Javascript/AddGameJam.js"></script>
<!-- Body scripts end -->
</body>
</body>
</html>
+11 -10
View File
@@ -28,7 +28,9 @@
<div>
<div class="row">
<div class="col-sm" id="description">
Beskrivelse
<b>Beskrivelse</b><br />
Yoooooooo my name is gert,
I love flowers.... HA what?
<br />
<button id="isWebBased">Play game online</button>
<button id="gameFil">Download game</button>
@@ -38,19 +40,18 @@
</div>
</div>
</div>
<div id="suggestions">
<p>Hej dkjhhnsd hid hgndnf ghnd df</p>
</div>
<hr class="GradientDivider" />
<p>Måske vil du prøve...</p>
<div class="jcarousel-wrapper">
<div class="jcarousel" data-jcarousel="true">
<ul style="left: 0px; top: 0px;">
<li style="width: 200px;"><img src="../Images/spil.jpg" alt="Image 1"></li>
<li style="width: 200px;"><img src="../Images/spil.jpg" alt="Image 2"></li>
<li style="width: 200px;"><img src="../Images/spil.jpg" alt="Image 3"></li>
<li style="width: 200px;"><img src="../Images/spil.jpg" alt="Image 4"></li>
<li style="width: 200px;"><img src="../Images/spil.jpg" alt="Image 5"></li>
<li style="width: 200px;"><img src="../Images/spil.jpg" alt="Image 6"></li>
<li style="width: 200px;"><a href="#link"><img src="../Images/spil.jpg" alt="Image 1"></a></li>
<li style="width: 200px;"><a href="#link"><img src="../Images/spil.jpg" alt="Image 2"></a></li>
<li style="width: 200px;"><a href="#link"><img src="../Images/spil.jpg" alt="Image 3"></a></li>
<li style="width: 200px;"><a href="#link"><img src="../Images/spil.jpg" alt="Image 4"></a></li>
<li style="width: 200px;"><a href="#link"><img src="../Images/spil.jpg" alt="Image 5"></a></li>
<li style="width: 200px;"><a href="#link"><img src="../Images/spil.jpg" alt="Image 6"></a></li>
</ul>
</div>
+287
View File
@@ -0,0 +1,287 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="icon" href="../Images/UFO.png" />
<title>GameJam</title>
<link
rel="stylesheet"
href="../../vendor/twbs/bootstrap/dist/css/bootstrap.min.css"
/>
<style>
#navbar {
transition: top 0.3s; /* Transition effect when sliding down (and up) */
}
</style>
<script src="../../vendor/twbs/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
<script
src="https://code.jquery.com/jquery-3.6.0.min.js"
integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4="
crossorigin="anonymous"
></script>
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
</head>
<body class="bg-dark text-white">
<nav
id="game-nav"
class="navbar sticky-top navbar-expand-lg navbar-dark bg-dark"
>
<div class="container-fluid">
<a class="navbar-brand" href="#"
><img src="../Images/UFO.png" alt="" width="32" height="32" />
</a>
<button
class="navbar-toggler"
type="button"
data-bs-toggle="collapse"
data-bs-target="#navbarNav"
aria-controls="navbarNav"
aria-expanded="false"
aria-label="Toggle navigation"
>
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" aria-current="page" href="#game-top">Hjem</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#game-what">Information</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Events</a>
</li>
<li class="nav-item dropdown">
<a
class="nav-link dropdown-toggle"
href="#"
id="navbarDropdownMenuLink"
role="button"
data-bs-toggle="dropdown"
aria-expanded="false"
>
Toggle Dropdown
</a>
<ul
class="dropdown-menu dropdown-menu-dark"
aria-labelledby="navbarDropdownMenuLink"
>
<li>
<a class="dropdown-item" href="#">Spil</a>
</li>
<li>
<a class="dropdown-item" href="#">Upload fil</a>
</li>
<li>
<a class="dropdown-item" href="#">Stem</a>
</li>
<li>
<a class="dropdown-item" href="#">Lodtrækning</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
<div>
<div class="container mb-5">
<h1 id="game-top" class="mt-3 text-center">Velkommen til Game Jam!</h1>
<section class="text-center">
<p>
Denne hjemmeside er lavet til alle som elsker at udvikle spil og
konkurerre.
</p>
<div>
<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
</p>
<p>
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="#">Regler</a>.
</p>
</div>
</section>
<h5 id="game-what" class="text-center">Hvad er et Game jam?</h5>
<section class="text-center">
<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="#">Lodtrækning</a>
bliver der trækket lod om et tema spillet skal handle om.
</p>
</section>
<h3 id="game-why" class="text-center">Hvorfor skal du deltage?</h3>
<section class="text-center">
<div class="mt-3">
<a
class="btn btn-lg btn-outline-info"
href="#game-why-collapse"
data-bs-toggle="collapse"
role="button"
>Her er 7 grunde.</a
>
<div id="game-why-collapse" class="collapse pt-4">
<div class="container text-start">
<div class="row">
<div class="col-3">
<h5>1. Tids planlægning</h5>
</div>
<div class="col">
<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>
</div>
</div>
<div class="row">
<div class="col-3">
<h5>2. Hastighed</h5>
</div>
<div class="col">
<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>
</div>
</div>
<div class="row">
<div class="col-3">
<h5>3. Forbedre prototypeevner</h5>
</div>
<div class="col">
<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>
</div>
</div>
<div class="row">
<div class="col-3">
<h5>4. Eksperimenter som du lyster</h5>
</div>
<div class="col">
<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>
</div>
</div>
<div class="row">
<div class="col-3">
<h5>5. Forbedre dine overordnede spiludviklingsevner</h5>
</div>
<div class="col">
<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>
</div>
</div>
<div class="row">
<div class="col-3">
<h5>6. Mød nye mennesker og skab et netværk</h5>
</div>
<div class="col">
<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>
</div>
</div>
<div class="row">
<div class="col-3">
<h5>7. Hav det sjovt!</h5>
</div>
<div class="col">
<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>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
</div>
</body>
<script>
$(document).ready(function () {
var prevScrollpos = window.pageYOffset;
window.onscroll = function () {
var currentScrollPos = window.pageYOffset;
if (prevScrollpos > currentScrollPos) {
document.getElementById("game-nav").style.top = "0";
} else {
document.getElementById("game-nav").style.top = "-50px";
}
prevScrollpos = currentScrollPos;
};
});
</script>
</html>
+1137 -614
View File
File diff suppressed because it is too large Load Diff
+27 -24
View File
@@ -1,32 +1,35 @@
$(document).ready(function() {
$(document).ready(function () {
axios.defaults.baseURL = "http://localhost/Game-Jaming";
$('#createGameJam').submit(function(e) {
let URL = 'https://ptsv2.com/t/tzztn-1616799712/post';
$("#createGameJam").submit(function (e) {
let URL = "/Backend/Controllers/GameJam/NewGameJam.php";
let form = $('#createGameJam')[0];
let formData = new FormData(form);
let form = $("#createGameJam")[0];
let formData = new FormData(form);
let id = $('#indsend').attr('name');
let value = $('#indsend').val();
let id = $("#indsend").attr("name");
let value = $("#indsend").val();
let startTime = $("#startTime").text();
let endTime = $("#endTime").text();
let startTime = $("#startTime").text();
let endTime = $("#endTime").text();
formData.append(id, value);
formData.set('startTime', startTime);
formData.append('endTime', endTime);
formData.append(id, value);
formData.set("startTime", startTime);
formData.append("endTime", endTime);
axios.post(URL, formData, {
header: 'multipart/form-data'
}).then(res => {
if (res.status === 200)
{
console.log('New Game Jam Created!');
}
}).catch(error => {
console.log(error.response);
});
axios
.post(URL, formData, {
header: "multipart/form-data",
})
.then((res) => {
if (res.status === 200) {
console.log("New Game Jam Created!");
}
})
.catch((error) => {
console.log(error.response);
});
e.preventDefault();
});
e.preventDefault();
});
});
+2 -5
View File
@@ -42,7 +42,7 @@ const renderCalendar = () => {
"December",
];
document.querySelector(".date h1").innerHTML = months[date.getMonth()];
document.querySelector(".date h1").innerHTML = months[date.getMonth()] + " " + date.getFullYear();
document.querySelector(".date p").innerHTML = new Date().toLocaleDateString('da-DK', {
weekday: 'long',
@@ -58,10 +58,7 @@ const renderCalendar = () => {
}
for (let i = 1; i <= lastDay; i++) {
if (
i === new Date().getDate() &&
date.getMonth() === new Date().getMonth()
) {
if (i === new Date().getDate() && date.getMonth() === new Date().getMonth() && date.getFullYear() === new Date().getFullYear()) {
days += `<div class="today" onClick="clickdate()">${i}</div>`;
+319 -349
View File
@@ -1,363 +1,333 @@
$(document).ready(function () {
// Register Start
let selectedGameJam;
let isAdminLoggedIn = false;
let displayValue = 0;
let arr = [
{"id": "-1", "Gamejam": "Vælg aktivt GameJam"}
];
// Register Start
axios.defaults.baseURL = "http://localhost/Game-Jaming";
if (getCookie('userName') != null)
{
isAdminLoggedIn = true;
SwitchNavInfo(true, true);
}
else if (getCookie('groupName') != null)
{
isAdminLoggedIn = false;
SwitchNavInfo(true);
}
let selectedGameJam;
let isAdminLoggedIn = false;
let displayValue = 0;
let arr = [{ id: "-1", Gamejam: "Vælg aktivt GameJam" }];
// Populate select with options from the database
axios.get('/Backend/Controllers/GameJam/GetGameJam.php')
.then(function(res) {
let resArr = res.data.data;
if (getCookie("userName") != null) {
isAdminLoggedIn = true;
SwitchNavInfo(true, true);
} else if (getCookie("groupName") != null) {
isAdminLoggedIn = false;
SwitchNavInfo(true);
}
for(let i = 0; i < res.data.data.length; i++)
{
arr.push({
id: resArr[i].id,
Gamejam: resArr[i].name
});
}
// Populate select with options from the database
axios
.get("/Backend/Controllers/GameJam/GetGameJam.php")
.then(function (res) {
let resArr = res.data.data;
$.each(arr, function(i, data) {
if (i === 0)
{
$('#GameJamSelect').append('<option disabled selected value="' + data.id + '">' + data.Gamejam + '</option>');
}
else
{
$('#GameJamSelect').append('<option value="' + data.id + '">' + data.Gamejam + '</option>');
}
for (let i = 0; i < res.data.data.length; i++) {
arr.push({
id: resArr[i].id,
Gamejam: resArr[i].name,
});
}
$.each(arr, function (i, data) {
if (i === 0) {
$("#GameJamSelect").append(
'<option disabled selected value="' +
data.id +
'">' +
data.Gamejam +
"</option>"
);
} else {
$("#GameJamSelect").append(
'<option value="' + data.id + '">' + data.Gamejam + "</option>"
);
}
});
})
.catch(function(error) {
.catch(function (error) {
console.log(error.response);
});
// Remove invalidInput if selected option has been changed
$("#GameJamSelect").change(function () {
selectedGameJam = $("#GameJamSelect").children("option:selected").val();
if (selectedGameJam >= 1) {
$("#GameJamSelect").removeClass("invalidInput");
}
});
// Remove invalidInput if change in group name has been detected
$("#username").on("input", function () {
if ($(this).hasClass("invalidInput")) {
$(this).removeClass("invalidInput");
}
});
GetGroupNames().then(function (res) {
let resArr = res.data;
let groupNameTaken = false;
$("#RegisterBtn").click(function () {
let groupName = $("#username").val();
for (let i = 0; i < resArr.length; i++) {
if (resArr[i].group_name.toUpperCase() === groupName.toUpperCase()) {
groupNameTaken = true;
break;
} else {
groupNameTaken = false;
}
}
});
// Check data before submitting
$("#RegisterForm").submit(function (e) {
if (!selectedGameJam >= 1) {
$("#GameJamSelect").addClass("invalidInput");
e.preventDefault();
return false;
} else {
$("#gameJamId").val($("#GameJamSelect option:selected").val());
}
if ($("#pass1").val().length === 0) {
$("#pass1").addClass("invalidInput");
e.preventDefault();
return;
}
if ($("#pass2").val().length === 0) {
$("#pass2").addClass("invalidInput");
e.preventDefault();
return;
}
if ($("#username").val().length === 0) {
$("#username").addClass("invalidInput");
e.preventDefault();
return;
}
if ($("#pass1").hasClass("invalidInput")) {
e.preventDefault();
return;
}
if ($("#pass2").hasClass("invalidInput")) {
e.preventDefault();
return;
}
if (!$.isNumeric($("#NUDDisplay").text())) {
$("#NUDDisplay").text("Ugyldigt antal!");
$("#NUDDisplay").css({ color: "red" });
e.preventDefault();
} else {
$("#groupAmount").val($("#NUDDisplay").text());
}
if (groupNameTaken) {
$("#username").addClass("invalidInput");
e.preventDefault();
return;
}
let URL = "/Backend/Controllers/Group/SigningUp.php";
let form = $("#RegisterForm")[0];
let formData = new FormData(form);
let id = $("#RegisterBtn").attr("name");
let value = $("#RegisterBtn").val();
formData.append(id, value);
axios
.post(URL, formData, {
header: "multipart/form-data",
})
.then((res) => {
if (res.status === 201) {
SwitchNavInfo(true);
}
})
.catch((error) => {
console.log(error.response);
});
e.preventDefault();
});
});
$("#NUDPlus").click(function () {
if ($("#NUDDisplay").css("color") === "rgb(255, 0, 0)") {
$("#NUDDisplay").css({ color: "rgba(255, 255, 255, .55)" });
}
displayValue++;
$("#NUDDisplay").text(displayValue);
});
$("#NUDMinus").click(function () {
if (displayValue <= 0) {
return;
} else if (displayValue <= 1) {
$("#NUDDisplay").text(1);
} else {
displayValue--;
$("#NUDDisplay").text(displayValue);
}
});
async function GetGroupNames() {
const res = await axios.get("/Backend/Controllers/Group/GetGroup.php");
return res.data;
}
// Register end
// Login start
$("#LoginForm").submit(function (e) {
let URL = "/Backend/Controllers/Group/Login.php";
let form = $("#LoginForm")[0];
let formData = new FormData(form);
let id = $("#LoginBtn").attr("name");
let value = $("#LoginBtn").val();
formData.append(id, value);
axios
.post(URL, formData, {
header: "multipart/form-data",
})
.then((res) => {
if (res.status === 200) {
isAdminLoggedIn = false;
SwitchNavInfo(true);
}
})
.catch((error) => {
if (error.response.status === 401) {
$("#loginUsername").css({ "border-color": "red" });
$("#loginPassword").css({ "border-color": "red" });
$("#ErrorText").css({ display: "block" });
} else {
console.log(error.response);
}
});
e.preventDefault();
});
$("#AdminLoginForm").submit(function (e) {
let URL = "/Backend/Controllers/Admin/AdminLogin.php";
let form = $("#AdminLoginForm")[0];
let formData = new FormData(form);
let id = $("#AdminLoginBtn").attr("name");
let value = $("#AdminLoginBtn").val();
formData.append(id, value);
axios
.post(URL, formData, {
header: "multipart/form-data",
})
.then((res) => {
if (res.status === 200) {
isAdminLoggedIn = true;
SwitchNavInfo(true, true);
}
})
.catch((error) => {
if (error.response.status === 401) {
$("#adminUsername").css({ "border-color": "red" });
$("#adminPassword").css({ "border-color": "red" });
$("#AdminErrorText").css({ display: "block" });
} else {
console.log(error.response);
}
});
e.preventDefault();
});
function SwitchNavInfo(isLoggedIn, isAdmin) {
if (isLoggedIn) {
$("#NavUser").css({ display: "block" });
$("#NavUser").text(
`Welcome, ${isAdmin ? getCookie("userName") : getCookie("groupName")}!`
);
$("#NavLogin").css({ display: "none" });
$("#NavLogout").css({ display: "block" });
$("#LoginModal").modal("hide");
} else {
$("#NavUser").css({ display: "none" });
$("#NavUser").text(``);
$("#NavLogin").css({ display: "block" });
$("#NavLogout").css({ display: "none" });
}
if (isAdmin === undefined) {
return;
} else {
if (isAdmin) {
if (isLoggedIn) {
$("#AdminPanel").css({ display: "block" });
console.log("Logged In As Admin!");
} else {
$("#AdminPanel").css({ display: "none" });
console.log("Logged Out As Admin!");
}
}
}
}
// Login end
// Logout start
$("#NavLogout").click(function () {
axios
.get("/Backend/Controllers/Group/Logout.php")
.then((res) => {
if (res.status == 200) {
SwitchNavInfo(false, isAdminLoggedIn);
isAdminLoggedIn = false;
}
})
.catch((error) => {
console.log(error.response);
});
});
});
// Logout end
// Remove invalidInput if selected option has been changed
$('#GameJamSelect').change(function() {
selectedGameJam = $('#GameJamSelect').children("option:selected").val();
function getCookie(name) {
// Split cookie string and get all individual name=value pairs in an array
var cookieArr = document.cookie.split(";");
if (selectedGameJam >= 1)
{
$('#GameJamSelect').removeClass('invalidInput');
}
});
// Loop through the array elements
for (var i = 0; i < cookieArr.length; i++) {
var cookiePair = cookieArr[i].split("=");
// Remove invalidInput if change in group name has been detected
$('#username').on('input', function() {
if ($(this).hasClass('invalidInput'))
{
$(this).removeClass('invalidInput');
}
})
GetGroupNames().then(function(res) {
let resArr = res.data;
let groupNameTaken = false;
$('#RegisterBtn').click(function() {
let groupName = $('#username').val();
for(let i = 0; i < resArr.length; i++)
{
if (resArr[i].group_name.toUpperCase() === groupName.toUpperCase())
{
groupNameTaken = true;
break;
}
else
{
groupNameTaken = false;
}
}
});
// Check data before submitting
$('#RegisterForm').submit(function(e) {
if(!selectedGameJam >= 1)
{
$('#GameJamSelect').addClass('invalidInput');
e.preventDefault();
return false;
}
else
{
$('#gameJamId').val($('#GameJamSelect option:selected').val());
}
if($('#pass1').val().length === 0)
{
$('#pass1').addClass('invalidInput');
e.preventDefault();
return;
}
if($('#pass2').val().length === 0)
{
$('#pass2').addClass('invalidInput');
e.preventDefault();
return;
}
if($('#username').val().length === 0)
{
$('#username').addClass('invalidInput');
e.preventDefault();
return;
}
if($('#pass1').hasClass('invalidInput'))
{
e.preventDefault();
return;
}
if($('#pass2').hasClass('invalidInput'))
{
e.preventDefault();
return;
}
if(!$.isNumeric($('#NUDDisplay').text()))
{
$('#NUDDisplay').text('Ugyldigt antal!');
$('#NUDDisplay').css({"color": "red"});
e.preventDefault();
}
else
{
$('#groupAmount').val($('#NUDDisplay').text());
}
if (groupNameTaken)
{
$('#username').addClass('invalidInput');
e.preventDefault();
return;
}
let URL = "/Backend/Controllers/Group/SigningUp.php";
let form = $('#RegisterForm')[0];
let formData = new FormData(form);
let id = $('#RegisterBtn').attr('name');
let value = $('#RegisterBtn').val();
formData.append(id, value);
axios.post(URL, formData, {
header: 'multipart/form-data'
}).then(res => {
if (res.status === 201)
{
SwitchNavInfo(true);
}
}).catch(error => {
console.log(error.response);
});
e.preventDefault();
});
});
$('#NUDPlus').click(function() {
if($('#NUDDisplay').css('color') === 'rgb(255, 0, 0)')
{
$('#NUDDisplay').css({'color': 'rgba(255, 255, 255, .55)'});
}
displayValue++;
$('#NUDDisplay').text(displayValue);
});
$('#NUDMinus').click(function() {
if (displayValue <= 0)
{
return;
}
else if(displayValue <= 1)
{
$('#NUDDisplay').text(1);
}
else
{
displayValue--;
$('#NUDDisplay').text(displayValue);
}
});
async function GetGroupNames() {
const res = await axios.get('/Backend/Controllers/Group/GetGroup.php');
return res.data;
}
// Register end
// Login start
$('#LoginForm').submit(function(e) {
let URL = "/Backend/Controllers/Group/Login.php";
let form = $('#LoginForm')[0];
let formData = new FormData(form);
let id = $('#LoginBtn').attr('name');
let value = $('#LoginBtn').val();
formData.append(id, value);
axios.post(URL, formData, {
header: 'multipart/form-data'
}).then(res => {
if (res.status === 200)
{
isAdminLoggedIn = false;
SwitchNavInfo(true);
}
}).catch(error => {
if (error.response.status === 401)
{
$('#loginUsername').css({'border-color':'red'});
$('#loginPassword').css({'border-color':'red'});
$('#ErrorText').css({'display':'block'});
}
else
{
console.log(error.response);
}
});
e.preventDefault();
});
$('#AdminLoginForm').submit(function(e) {
let URL = "/Backend/Controllers/Admin/AdminLogin.php";
let form = $('#AdminLoginForm')[0];
let formData = new FormData(form);
let id = $('#AdminLoginBtn').attr('name');
let value = $('#AdminLoginBtn').val();
formData.append(id, value);
axios.post(URL, formData, {
header: 'multipart/form-data'
}).then(res => {
if (res.status === 200)
{
isAdminLoggedIn = true;
SwitchNavInfo(true, true);
}
}).catch(error => {
if (error.response.status === 401)
{
$('#adminUsername').css({'border-color':'red'});
$('#adminPassword').css({'border-color':'red'});
$('#AdminErrorText').css({'display':'block'});
}
else
{
console.log(error.response);
}
});
e.preventDefault();
});
function SwitchNavInfo(isLoggedIn, isAdmin) {
if (isLoggedIn)
{
$('#NavUser').css({'display':'block'});
$('#NavUser').text(`Welcome, ${isAdmin ? getCookie('userName') : getCookie('groupName')}!`);
$('#NavLogin').css({'display':'none'});
$('#NavLogout').css({'display':'block'});
$('#LoginModal').modal('hide');
}
else
{
$('#NavUser').css({'display':'none'});
$('#NavUser').text(``);
$('#NavLogin').css({'display':'block'});
$('#NavLogout').css({'display':'none'});
}
if (isAdmin === undefined)
{
return
}
else
{
if (isAdmin)
{
if (isLoggedIn)
{
$('#AdminPanel').css({'display':'block'});
console.log('Logged In As Admin!');
}
else
{
$('#AdminPanel').css({'display':'none'});
console.log('Logged Out As Admin!');
}
}
}
}
// Login end
// Logout start
$('#NavLogout').click(function() {
axios.get('/Backend/Controllers/Group/Logout.php').then(res => {
if (res.status == 200)
{
SwitchNavInfo(false, isAdminLoggedIn);
isAdminLoggedIn = false;
}
}).catch(error => {
console.log(error.response);
});
});
// Logout end
function getCookie(name) {
// Split cookie string and get all individual name=value pairs in an array
var cookieArr = document.cookie.split(";");
// Loop through the array elements
for(var i = 0; i < cookieArr.length; i++) {
var cookiePair = cookieArr[i].split("=");
/* Removing whitespace at the beginning of the cookie name
/* Removing whitespace at the beginning of the cookie name
and compare it with the given string */
if(name == cookiePair[0].trim()) {
// Decode the cookie value and return
return decodeURIComponent(cookiePair[1]);
}
}
// Return null if not found
return null;
if (name == cookiePair[0].trim()) {
// Decode the cookie value and return
return decodeURIComponent(cookiePair[1]);
}
}
// Return null if not found
return null;
}
});
+1
View File
@@ -0,0 +1 @@
// JavaScript source code
+475 -421
View File
File diff suppressed because it is too large Load Diff
+41 -127
View File
@@ -16,35 +16,51 @@ html {
margin-bottom: 10px;
}
#suggestions {
justify-content: center;
background-color: blue;
margin-top: 20px;
}
#isWebBased {
border-radius: 15px;
border: 0;
background: none;
display: block;
margin: 20px auto;
text-align: center;
border: 2px solid rgb(52, 152, 219);
padding: 10px 10px;
outline: none;
color: rgba(255, 255, 255, .55);
background-color: rgb(18, 18, 18);
border: double;
height: 30px;
font-weight: bold;
margin: 8px;
border-radius: 24px;
transition: 0.25s;
position: static;
bottom: 45vh;
display: inline;
left: 27vw;
}
#gameFil {
border-radius: 15px;
border: 0;
background: none;
display: block;
margin: 20px auto;
text-align: center;
border: 2px solid rgb(52, 152, 219);
padding: 10px 10px;
outline: none;
color: rgba(255, 255, 255, .55);
background-color: rgb(18, 18, 18);
border: double;
height: 30px;
font-weight: bold;
margin: 8px;
border-radius: 24px;
transition: 0.25s;
position: static;
bottom: 45vh;
display: inline;
}
#thumbnailFile {
max-width: 100%;
max-height: 100%;
max-width: 100%;
max-height: 100%;
}
#thumbnailFile img{
width: 100%;
height:100%;
}
#description {
@@ -60,114 +76,12 @@ html {
margin: 20px !important;
}
.jcarousel-wrapper {
margin: 20px auto;
position: relative;
/*border: 10px solid #fff;*/
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
-webkit-box-shadow: 0 0 2px #999;
-moz-box-shadow: 0 0 2px #999;
box-shadow: 0 0 2px #999;
}
/** Carousel **/
.jcarousel {
position: relative;
overflow: hidden;
width: 100%;
}
.jcarousel ul {
width: 10000em;
position: relative;
list-style: none;
margin: 0;
padding: 0;
}
.jcarousel li {
width: 100%;
float: left;
border: 1px solid #fff;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.jcarousel img {
.GradientDivider {
margin: 16px 0 16px 0;
display: block;
max-width: 100%;
height: auto !important;
}
/** Carousel Controls **/
.jcarousel-control-prev,
.jcarousel-control-next {
position: absolute;
top: 50%;
margin-top: -15px;
width: 30px;
height: 30px;
text-align: center;
background: #4E443C;
color: #fff;
text-decoration: none;
text-shadow: 0 0 1px #000;
font: 24px/27px Arial, sans-serif;
-webkit-border-radius: 30px;
-moz-border-radius: 30px;
border-radius: 30px;
-webkit-box-shadow: 0 0 4px #F0EFE7;
-moz-box-shadow: 0 0 4px #F0EFE7;
box-shadow: 0 0 4px #F0EFE7;
}
.jcarousel-control-prev {
left: 15px;
}
.jcarousel-control-next {
right: 15px;
}
/** Carousel Pagination **/
.jcarousel-pagination {
position: absolute;
bottom: -40px;
left: 50%;
-webkit-transform: translate(-50%, 0);
-ms-transform: translate(-50%, 0);
transform: translate(-50%, 0);
margin: 0;
}
.jcarousel-pagination a {
text-decoration: none;
display: inline-block;
font-size: 11px;
height: 10px;
width: 10px;
line-height: 10px;
background: #fff;
color: #4E443C;
border-radius: 10px;
text-indent: -9999px;
margin-right: 7px;
-webkit-box-shadow: 0 0 2px #4E443C;
-moz-box-shadow: 0 0 2px #4E443C;
box-shadow: 0 0 2px #4E443C;
}
.jcarousel-pagination a.active {
background: #4E443C;
color: #fff;
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;
-webkit-box-shadow: 0 0 2px #F0EFE7;
-moz-box-shadow: 0 0 2px #F0EFE7;
box-shadow: 0 0 2px #F0EFE7;
}
+2 -2
View File
@@ -7,7 +7,7 @@
border-radius: 5px;
-webkit-box-shadow: 0 0 2px #999;
-moz-box-shadow: 0 0 2px #999;
box-shadow: 0 0 2px #999;
box-shadow: none !important;
}
/** Carousel **/
@@ -29,7 +29,7 @@
.jcarousel li {
width: 200px;
float: left;
border: 1px solid #fff;
/* border: 1px solid #fff;*/
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
+3 -1
View File
@@ -3,7 +3,9 @@
"illuminate/database": "^8.30",
"ext-mysqli": "*",
"ext-sqlite3": "*",
"ext-fileinfo": "*"
"ext-fileinfo": "*",
"ext-json": "*",
"twbs/bootstrap": "5.0.0-beta3"
},
"autoload": {
"classmap": [
Generated
+95 -36
View File
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "f7278c3dc731961ed65f3f31bf2b49f0",
"content-hash": "e0289598393b91834d5fbd72b92a029a",
"packages": [
{
"name": "doctrine/inflector",
@@ -103,16 +103,16 @@
},
{
"name": "illuminate/collections",
"version": "v8.36.0",
"version": "v8.38.0",
"source": {
"type": "git",
"url": "https://github.com/illuminate/collections.git",
"reference": "591e31015a8b0731708c54411cb52d50a00b2bc3"
"reference": "21690cd5591f2d42d792e5e4a687f9beba829f1d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/illuminate/collections/zipball/591e31015a8b0731708c54411cb52d50a00b2bc3",
"reference": "591e31015a8b0731708c54411cb52d50a00b2bc3",
"url": "https://api.github.com/repos/illuminate/collections/zipball/21690cd5591f2d42d792e5e4a687f9beba829f1d",
"reference": "21690cd5591f2d42d792e5e4a687f9beba829f1d",
"shasum": ""
},
"require": {
@@ -153,11 +153,11 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
"time": "2021-04-01T13:26:52+00:00"
"time": "2021-04-14T11:48:08+00:00"
},
{
"name": "illuminate/container",
"version": "v8.36.0",
"version": "v8.38.0",
"source": {
"type": "git",
"url": "https://github.com/illuminate/container.git",
@@ -208,7 +208,7 @@
},
{
"name": "illuminate/contracts",
"version": "v8.36.0",
"version": "v8.38.0",
"source": {
"type": "git",
"url": "https://github.com/illuminate/contracts.git",
@@ -256,16 +256,16 @@
},
{
"name": "illuminate/database",
"version": "v8.36.0",
"version": "v8.38.0",
"source": {
"type": "git",
"url": "https://github.com/illuminate/database.git",
"reference": "09a2d38e27f930a5d9b7ef3514b650a3dc4cdd55"
"reference": "03c0525b693587f877f4d80dcc55597528c98fc0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/illuminate/database/zipball/09a2d38e27f930a5d9b7ef3514b650a3dc4cdd55",
"reference": "09a2d38e27f930a5d9b7ef3514b650a3dc4cdd55",
"url": "https://api.github.com/repos/illuminate/database/zipball/03c0525b693587f877f4d80dcc55597528c98fc0",
"reference": "03c0525b693587f877f4d80dcc55597528c98fc0",
"shasum": ""
},
"require": {
@@ -320,11 +320,11 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
"time": "2021-04-06T13:40:22+00:00"
"time": "2021-04-17T17:53:05+00:00"
},
{
"name": "illuminate/macroable",
"version": "v8.36.0",
"version": "v8.38.0",
"source": {
"type": "git",
"url": "https://github.com/illuminate/macroable.git",
@@ -370,16 +370,16 @@
},
{
"name": "illuminate/support",
"version": "v8.36.0",
"version": "v8.38.0",
"source": {
"type": "git",
"url": "https://github.com/illuminate/support.git",
"reference": "26aa01648f348df7b7988ee911cdf98bcaae8ea1"
"reference": "735391f31e145aad4f7aff3d9736ef70452dd1fe"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/illuminate/support/zipball/26aa01648f348df7b7988ee911cdf98bcaae8ea1",
"reference": "26aa01648f348df7b7988ee911cdf98bcaae8ea1",
"url": "https://api.github.com/repos/illuminate/support/zipball/735391f31e145aad4f7aff3d9736ef70452dd1fe",
"reference": "735391f31e145aad4f7aff3d9736ef70452dd1fe",
"shasum": ""
},
"require": {
@@ -434,7 +434,7 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
"time": "2021-04-06T13:05:53+00:00"
"time": "2021-04-15T11:51:39+00:00"
},
{
"name": "nesbot/carbon",
@@ -1213,21 +1213,21 @@
},
{
"name": "symfony/service-contracts",
"version": "v2.2.0",
"version": "v2.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
"reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1"
"reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/d15da7ba4957ffb8f1747218be9e1a121fd298a1",
"reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1",
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb",
"reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
"psr/container": "^1.0"
"psr/container": "^1.1"
},
"suggest": {
"symfony/service-implementation": ""
@@ -1235,7 +1235,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.2-dev"
"dev-main": "2.4-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -1272,7 +1272,7 @@
"standards"
],
"support": {
"source": "https://github.com/symfony/service-contracts/tree/master"
"source": "https://github.com/symfony/service-contracts/tree/v2.4.0"
},
"funding": [
{
@@ -1288,7 +1288,7 @@
"type": "tidelift"
}
],
"time": "2020-09-07T11:33:47+00:00"
"time": "2021-04-01T10:43:52+00:00"
},
{
"name": "symfony/string",
@@ -1468,16 +1468,16 @@
},
{
"name": "symfony/translation-contracts",
"version": "v2.3.0",
"version": "v2.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation-contracts.git",
"reference": "e2eaa60b558f26a4b0354e1bbb25636efaaad105"
"reference": "95c812666f3e91db75385749fe219c5e494c7f95"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/translation-contracts/zipball/e2eaa60b558f26a4b0354e1bbb25636efaaad105",
"reference": "e2eaa60b558f26a4b0354e1bbb25636efaaad105",
"url": "https://api.github.com/repos/symfony/translation-contracts/zipball/95c812666f3e91db75385749fe219c5e494c7f95",
"reference": "95c812666f3e91db75385749fe219c5e494c7f95",
"shasum": ""
},
"require": {
@@ -1489,7 +1489,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.3-dev"
"dev-main": "2.4-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -1526,7 +1526,7 @@
"standards"
],
"support": {
"source": "https://github.com/symfony/translation-contracts/tree/v2.3.0"
"source": "https://github.com/symfony/translation-contracts/tree/v2.4.0"
},
"funding": [
{
@@ -1542,7 +1542,63 @@
"type": "tidelift"
}
],
"time": "2020-09-28T13:05:58+00:00"
"time": "2021-03-23T23:28:01+00:00"
},
{
"name": "twbs/bootstrap",
"version": "v5.0.0-beta3",
"source": {
"type": "git",
"url": "https://github.com/twbs/bootstrap.git",
"reference": "220139a89ffc3864bbb6e1b35471667318eadc1f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/twbs/bootstrap/zipball/220139a89ffc3864bbb6e1b35471667318eadc1f",
"reference": "220139a89ffc3864bbb6e1b35471667318eadc1f",
"shasum": ""
},
"replace": {
"twitter/bootstrap": "self.version"
},
"type": "library",
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Mark Otto",
"email": "markdotto@gmail.com"
},
{
"name": "Jacob Thornton",
"email": "jacobthornton@gmail.com"
}
],
"description": "The most popular front-end framework for developing responsive, mobile first projects on the web.",
"homepage": "https://getbootstrap.com/",
"keywords": [
"JS",
"css",
"framework",
"front-end",
"mobile-first",
"responsive",
"sass",
"web"
],
"support": {
"issues": "https://github.com/twbs/bootstrap/issues",
"source": "https://github.com/twbs/bootstrap/tree/v5.0.0-beta3"
},
"funding": [
{
"url": "https://opencollective.com/bootstrap",
"type": "open_collective"
}
],
"time": "2021-03-23T16:26:54+00:00"
},
{
"name": "voku/portable-ascii",
@@ -1622,13 +1678,16 @@
"packages-dev": [],
"aliases": [],
"minimum-stability": "stable",
"stability-flags": [],
"stability-flags": {
"twbs/bootstrap": 10
},
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
"ext-mysqli": "*",
"ext-sqlite3": "*",
"ext-fileinfo": "*"
"ext-fileinfo": "*",
"ext-json": "*"
},
"platform-dev": [],
"plugin-api-version": "2.0.0"
+5 -5
View File
@@ -1,7 +1,7 @@
{
"driver":"mysql",
"host":"localhost",
"database":"testdb",
"username":"root",
"password":"V#_xWL6_"
"driver": "mysql",
"host": "localhost",
"database": "testdb",
"username": "root",
"password": ""
}