Merge pull request #7 from Yasder5/guillaume

Guillaume
This commit is contained in:
Yass 2026-01-23 18:24:10 +01:00 committed by GitHub
commit c8c9bbdb87
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 11768 additions and 19 deletions

View file

@ -20,11 +20,11 @@
$objProjectModel = new ProjectModel; $objProjectModel = new ProjectModel;
$arrProject = $objProjectModel->findAll(4); $arrProject = $objProjectModel->findAll(4);
$arrProjectToDiplay = array(); $arrProjectToDisplay = array();
foreach($arrProject as $arrDetProject){ foreach($arrProject as $arrDetProject){
$objProject = new Project; $objProject = new Project;
$objProject->hydrate($arrDetProject); $objProject->hydrate($arrDetProject);
$arrProjectToDiplay[] = $objProject; $arrProjectToDisplay[] = $objProject;
} }
include('../app/views/partials/header.php'); include('../app/views/partials/header.php');
@ -64,9 +64,10 @@
foreach($arrProject as $arrDetProject){ foreach($arrProject as $arrDetProject){
$objProject = new Project; $objProject = new Project;
$objProject->hydrate($arrDetProject); $objProject->hydrate($arrDetProject);
$arrProjectToDisplay[] = $objProject; $arrProjectToDisplay[] = $objProject;
} }
// Récupération des utilisateurs // Récupération des utilisateurs
require_once("../app/models/user_model.php"); require_once("../app/models/user_model.php");
$objUserModel = new UserModel; $objUserModel = new UserModel;

View file

@ -70,7 +70,28 @@
} }
// Lancer la requête et récupérer les résultats // Lancer la requête et récupérer les résultats
var_dump($strRq);
return $this->_db->query($strRq)->fetchAll(); return $this->_db->query($strRq)->fetchAll();
} }
//Fonction d'insertion d'information dans la BDD (Repris de la partie BLOG vu en cours..)
public function insert(object $objProject):bool{
//Construire la requête
$strRq = "INSERT INTO project (project_title, project_description, project_thumbnail, project_content, project_status, project_creation_date)
VALUES (:title, :description, :thumbnail, :content, :status, DATE(NOW()))";
// Préparer la requête
$rqPrep = $this->_db->prepare($strRq);
// Donne les informations
$rqPrep->bindValue(":title", $objProject->getTitle(), PDO::PARAM_STR);
$rqPrep->bindValue(":description", $objProject->getDescription(), PDO::PARAM_STR);
$rqPrep->bindValue(":thumbnail", $objProject->getThumbnail(), PDO::PARAM_STR);
$rqPrep->bindValue(":content", $objProject->getContent(), PDO::PARAM_STR);
$rqPrep->bindValue(":status", $objProject->getStatus(), PDO::PARAM_STR);
//Executer la requête
//var_dump($strRq);die;
//return $db->exec($strRq);
return $rqPrep->execute();
}
} }

133
app/views/admin.php Normal file
View file

@ -0,0 +1,133 @@
<? php
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>Dashboard - Folliow Admin</title>
<link href="https://cdn.jsdelivr.net/npm/simple-datatables@7.1.2/dist/style.min.css" rel="stylesheet" />
<link href="css/styles.css" rel="stylesheet" />
<script src="https://use.fontawesome.com/releases/v6.3.0/js/all.js" crossorigin="anonymous"></script>
</head>
<body class="sb-nav-fixed">
<nav class="sb-topnav navbar navbar-expand navbar-dark bg-dark">
<!-- Navbar Brand-->
<a class="navbar-brand ps-3" href="index.html"><img src="./img/Logo-Wordmark.svg" alt="Logo du site" width="150px"></a>
<!-- Sidebar Toggle-->
<button class="btn btn-link btn-sm order-1 order-lg-0 me-4 me-lg-0" id="sidebarToggle" href="#!"><i class="fas fa-bars"></i></button>
<!-- Navbar Search-->
<form class="d-none d-md-inline-block form-inline ms-auto me-0 me-md-3 my-2 my-md-0">
<div class="input-group">
<input class="form-control" type="text" placeholder="Recherche par pseudo..." aria-label="Recherche pseudo" aria-describedby="btnNavbarSearch" />
<button class="btn btn-primary" id="btnNavbarSearch" type="button"><i class="fas fa-search"></i></button>
</div>
</form>
<!-- Navbar - User-->
<ul class="navbar-nav ms-auto ms-md-0 me-3 me-lg-4">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" id="navbarDropdown" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false"><i class="fas fa-user fa-fw"></i></a>
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdown">
<li><a class="dropdown-item" href="/option.php">Paramètre</a></li>
<li><hr class="dropdown-divider" /></li>
<li><a class="dropdown-item" href="/deconnexion.php">Déconnexion</a></li>
</ul>
</li>
</ul>
</nav>
<!-- SideNav Infos -->
<div id="layoutSidenav">
<div id="layoutSidenav_nav">
<nav class="sb-sidenav accordion sb-sidenav-dark" id="sidenavAccordion">
<div class="sb-sidenav-menu">
<div class="nav">
<div class="sb-sidenav-menu-heading"></div>
<a class="nav-link" href="index.html">
<div class="sb-nav-link-icon"><i class="fas fa-tachometer-alt"></i></div>
Rafraichir la page
</a>
<div class="sb-sidenav-menu-heading"></div>
<div class="collapse" id="collapseLayouts" aria-labelledby="headingOne" data-bs-parent="#sidenavAccordion">
</div>
<form action="post">
<div class="container-fluid ps-2">
<div class="row">
<div class="col-6">
<label for="checkbox1">Par date</label>
</div>
<div class="col-6 text-center">
<input type="checkbox" name="search_date" id="">
</div>
<div class="col-6">
<label for="checkbox2">Par date de creation de compte</label>
</div>
<div class="col-6 text-center">
<input type="checkbox" name="search_creationdate" id="">
</div>
<div class="col-6">
<label for="checkbox3">Recherche par date</label>
</div>
<div class="col-6 text-center">
<input type="checkbox" name="search_date" id="">
</div>
<div class="col-12 text-center">
<button type="submit" class="btn mt-3 bg-primary text-light">Recherche</button>
</div>
</div>
</div>
</form>
</div>
</div>
<div class="sb-sidenav-footer">
<!-- Mettre le pseudo en fonction de qui est connecté -->
<div class="small">Connecté avec le compte :</div>
*mettre un nom*
</div>
</nav>
</div>
<!-- Main page -->
<div id="layoutSidenav_content">
<main>
<div class="container-fluid px-4">
<h1 class="mt-4">Dashboard</h1>
</div>
<!-- Gray bloc -->
<div class="container-fluid px-4">
<!-- Container with img/list/remove btn = A DUPLIQUER à partir d'ici-->
<div class="p-3 mt-2 text-primary-emphasis bg-primary-subtle border border-primary-subtle rounded-3">
<div class="container-fluid pt-2">
<div class="row">
<div class="col-4">
<!-- IMG USER -->
<img src="./img/Logo-Wordmark.svg" alt="" width="100">
</div>
<!-- USER MODIF -->
<div class="col-4">
<select class="form-select" aria-label="Default select example">
<option value="0" selected>Modifier le statut de l'Utilisateur...</option>
<option value="1">Utilisateur</option>
<option value="2">Modérateur</option>
<option value="3">Administrateur</option>
</select>
</div>
<!-- Btn SUPPR -->
<div class="col-4">
<button class="btn bg-danger text-light rounded-circle">X</button>
</div>
</div>
</div>
</div>
</div>
</main>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
<script src="js/scripts.js"></script>
</body>
</html>

View file

@ -1,3 +1,4 @@
<!-- Contenu principal de la page --> <!-- Contenu principal de la page -->
<main class="container py-5"> <main class="container py-5">
@ -13,6 +14,92 @@
<!-- Carte contenant le formulaire de connexion --> <!-- Carte contenant le formulaire de connexion -->
<div class="card shadow-sm border-0 rounded-4 p-4 p-lg-5"> <div class="card shadow-sm border-0 rounded-4 p-4 p-lg-5">
<!-- Titre principal -->
<h1 class="h3 fw-bold mb-1">Connexion</h1>
<!-- Texte descriptif -->
<p class="text-secondary mb-4">
Connectez-vous à votre compte.
</p>
<!-- Formulaire de connexion -->
<!-- Le traitement sera effectué en PHP via la méthode POST -->
<form method="POST">
<div class="row g-3">
<!-- Champ : adresse e-mail de l'utilisateur -->
<div class="col-12">
<label for="user_mail" class="form-label">
Adresse e-mail
</label>
<input
type="email"
class="form-control"
id="user_mail"
name="user_mail"
required
>
</div>
<!-- Champ : mot de passe -->
<div class="col-12">
<label for="user_password" class="form-label">
Mot de passe
</label>
<input
type="password"
class="form-control"
id="user_password"
name="user_password"
required
>
</div>
<!-- Option "Se souvenir de moi" (fonctionnalité optionnelle côté PHP) -->
<div class="col-12">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="remember_me" name="remember_me">
<label class="form-check-label" for="remember_me">
Se souvenir de moi
</label>
</div>
</div>
<!-- Bouton de soumission du formulaire -->
<div class="col-12 d-grid mt-2">
<button type="submit" class="btn btn-primary btn-lg rounded-3">
Se connecter
</button>
</div>
<!-- Lien vers la page d'inscription -->
<div class="col-12 text-center">
<small class="text-secondary">
Pas encore de compte ?
<a href="inscription.php" class="link-primary">Créer un compte</a>
</small>
</div>
<!-- Lien pour la récupération du mot de passe -->
<div class="col-12 text-center">
<small>
<a href="#" class="link-primary">
Mot de passe oublié ?
</a>
</small>
</div>
</div>
</form>
</div>
</div>
</div>
</main>
<h1 class="h3 fw-bold mb-1">Connexion</h1> <h1 class="h3 fw-bold mb-1">Connexion</h1>
<p class="text-secondary mb-4"> <p class="text-secondary mb-4">

View file

@ -1,3 +1,4 @@
<!-- Page : Inscription --> <!-- Page : Inscription -->
<main class="container py-5"> <main class="container py-5">
@ -10,6 +11,66 @@
<div class="row justify-content-center"> <div class="row justify-content-center">
<div class="col-12 col-md-10 col-lg-6"> <div class="col-12 col-md-10 col-lg-6">
<!-- Carte contenant le formulaire d'inscription -->
<div class="card shadow-sm border-0 rounded-4 p-4 p-lg-5">
<!-- Titre principal de la page -->
<h1 class="h3 fw-bold mb-1">Inscription</h1>
<!-- Texte descriptif -->
<p class="text-secondary mb-4">
Créez votre compte utilisateur.
</p>
<!-- Formulaire d'inscription -->
<!-- Les données seront traitées côté serveur en PHP via la méthode POST -->
<form method="POST">
<div class="row g-3">
<!-- Champ : prénom de l'utilisateur -->
<div class="col-md-6">
<label class="form-label" for="user_firstname">
Prénom *
</label>
<input
class="form-control"
type="text"
id="user_firstname"
name="user_firstname"
required
>
</div>
<!-- Champ : nom de l'utilisateur -->
<div class="col-md-6">
<label class="form-label" for="user_name">
Nom *
</label>
<input
class="form-control"
type="text"
id="user_name"
name="user_name"
required
>
</div>
<!-- Champ : pseudo (identifiant public de l'utilisateur) -->
<div class="col-12">
<label class="form-label" for="user_pseudo">
Pseudo *
</label>
<div class="input-group">
<span class="input-group-text">@</span>
<input
class="form-control"
type="text"
id="user_pseudo"
name="user_pseudo"
required
>
</div>
<!-- Carte Bootstrap contenant le formulaire --> <!-- Carte Bootstrap contenant le formulaire -->
<div class="card shadow-sm border-0 rounded-4 p-4 p-lg-5"> <div class="card shadow-sm border-0 rounded-4 p-4 p-lg-5">
@ -314,5 +375,8 @@
</div> </div>
</div> </div>
</div>
</div> </div>
</main> </main>

View file

@ -1,29 +1,113 @@
<?php
require_once('../app/controllers/project_controller.php');
require_once('../app/models/project_model.php');
require_once('../app/entities/project_entity.php');
//Variable data
$_SESSION['title'] = $_POST['titleProject']??"";
$_SESSION['description'] = $_POST['descProject']??"";
$_SESSION['content'] = $_POST['textProject']??"";
$_SESSION['thumbnail'] = $_FILES['imageProject']['name']??"";
$_SESSION['status'] = 'en_attente';
$objProject = new Project();
$objProjectModel = new ProjectModel();
/**
/* Créer par Besnik le GOAT et l'autre GOAT de Guillaume
/*
/* @return bool pour savoir si le fichier existe,
/* puis déplace vers le fichier uploads avec les images projet des utilisateurs
/* Communication avec la BDD
*/
if (($_SESSION['thumbnail'] != null)){
$strDest = "";
if ((count($_FILES) > 0) && ($_FILES['imageProject']['error'] != 4)){
$strDest = '../public/uploads/projects/'.$_FILES['imageProject']['name'];
var_dump($strDest);
move_uploaded_file($_FILES['imageProject']['tmp_name'], $strDest);
}
}
/** En cas d'appuis sur le bouton d'envoie ou celui de remettre a plus tard
/* 1. Changement de status
/* 2. Hydratation avec les informations récupéré de l'utilisateur
/* 3. Envoie des données à la BDD
*/
if (isset($_POST['sendMessage'])) {
$_SESSION['status'] = 'publié';
$objProject->hydrate($_SESSION);
$objProject->setThumbnail($strDest);
$objProjectModel->insert($objProject);
} else if (isset($_POST['toContinue'])) {
$objProject->hydrate($_SESSION);
$objProject->setThumbnail($strDest);
$objProjectModel->insert($objProject);
}
//Débuggage
var_dump($_SESSION);
var_dump($objProject);
?>
<body> <body>
<section class="container mt-5 p-5 d-flex flex-column align-items-center justify-content-center"> <section class="container mt-5 p-5 d-flex flex-column align-items-center">
<h2>Alimenter votre projet</h2> <div>
<div class="justify-content-center align-items-center"> <h2>Alimenter votre projet</h2>
<button type="button" class="btn btn-primary rounded-circle d-flex justify-content-center align-items-center"><span class="fs-4 fw-bold text-white mb-2 ms-2 me-2">+</span></button> <form method="post">
</div class="col-12"> <button type="submit" class="btn btn-primary btn-lg" name="showForm">+</button>
<?php if (isset($_POST['toContinue'])) { ?>
<button type="submit" class="btn btn-warning btn-lg" name="showFormContinue">Reprendre</button>
<?php } ?>
</form>
<?php // Affichage d'un formulaire en cas d'appuie sur le bouton "+"
if ((isset($_POST["showForm"])) || (isset($_POST['showFormContinue']))) {?>
<form method="post" enctype="multipart/form-data" onsubmit="return confirm('Voulez-vous vraiment envoyer le formulaire ?')">
<div>
<label>Titre</label>
<input type="text" name="titleProject">
</div>
<div>
<label>Description</label>
<input type="text" name="descProject">
</div>
<div>
<label>Texte Portfolio</label>
<input type="text" name="textProject">
</div>
<div>
<input name="imageProject" class="form-control" type="file">
</div>
<button type="submit" class="btn btn-primary btn-md" name="sendMessage">Envoyer</button>
<button type="submit" class="btn btn-warning btn-md" name="toContinue">Remettre à plus tard</button>
</form>
<?php }; ?>
</div>
<div> <div>
<h3 class="fw-semibold fs-3 my-5">Description</h3> <h3>Description</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div> </div>
<div class="col-12"> <div>
<h3 class="fw-semibold fs-3 my-5">Photos behind the scene</h3> <h3>Photos behind the scene</h3>
<div class="row my-2"> <div class="row mb-2">
<img class="bd-placeholder-img" width="200" height="250" src="<?= isset($objImage) ? '../../public/assets/img/'.$objImage->getName() : '' ?>" alt="<?php echo $objImage->getAlt(); ?>" loading="lazy"> <img>
</div> </div>
</div> </div>
<div class="col-12"> <div>
<h3>Other projects</h3> <h3>Other projects</h3>
<div class="row my-2"> <div class="row mb-2">
<?php <?php
foreach($arrProjectToDiplay as $objProject){ foreach($arrProjectToDisplay as $objProject){
include("../app/views/partials/preview.php"); include("../app/views/partials/preview.php");
} }
?> ?>
</div> </div>
</div> </div>
</div> </div>

View file

@ -86,7 +86,8 @@
foreach($arrCategory as $arrDetCategory){ foreach($arrCategory as $arrDetCategory){
?> ?>
<option value="<?php echo $arrDetCategory['category_id']; ?>" <option value="<?php echo $arrDetCategory['category_id']; ?>"
<?php echo ($intCategory == $arrDetCategory['category_id'])?'selected':''; ?> > <?php echo ($intCategory == $arrDetCategory['category_id'])?'selected':''; ?>
>
<?php echo $arrDetCategory['category_name']; ?> <?php echo $arrDetCategory['category_name']; ?>
</option> </option>
<?php <?php

11243
public/assests/css/styles.css Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,89 @@
<svg width="2130" height="558" viewBox="0 0 2130 558" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M510.224 203.704C544.762 203.704 574.076 210.742 598.169 224.819C622.259 238.897 640.595 258.304 653.173 283.045C665.754 307.784 672.041 336.152 672.041 368.145V390.217C672.041 424.557 665.754 454.309 653.173 479.477C640.595 504.642 622.259 524.052 598.169 537.703C574.076 551.141 544.762 557.857 510.224 557.857C475.685 557.857 446.263 551.141 421.957 537.703C397.868 524.052 379.426 504.75 366.635 479.796C354.054 454.628 347.767 424.875 347.767 390.538V368.784C347.767 336.792 354.054 308.427 366.635 283.685C379.426 258.73 397.868 239.216 421.957 225.139C446.263 210.848 475.685 203.704 510.224 203.704ZM509.903 279.845C495.619 279.845 484.107 283.898 475.367 292.004C466.837 299.894 460.654 310.558 456.817 323.996C452.98 337.218 451.061 351.722 451.061 367.505V393.418C451.061 408.135 452.875 422.212 456.499 435.647C460.336 449.085 466.518 460.068 475.046 468.6C483.786 477.13 495.406 481.399 509.903 481.399C524.615 481.399 536.235 477.238 544.762 468.918C553.29 460.389 559.367 449.404 562.991 435.968C566.828 422.53 568.747 408.348 568.747 393.418V367.505C568.747 351.722 566.828 337.218 562.991 323.996C559.154 310.558 552.968 299.894 544.441 292.004C535.914 283.898 524.402 279.845 509.903 279.845ZM735.362 551.459V91.7314H837.378V551.459H735.362ZM917.648 551.459V91.7314H1019.66V551.459H917.648ZM1100.57 551.459V209.782H1202.59V551.459H1100.57ZM1096.42 123.723C1096.42 108.58 1101.85 96.5308 1112.73 87.5724C1123.6 78.6145 1136.6 74.1357 1151.74 74.1357C1166.88 74.1357 1179.78 78.6145 1190.44 87.5724C1201.31 96.5308 1206.75 108.58 1206.75 123.723C1206.75 138.867 1201.31 151.024 1190.44 160.195C1179.78 169.366 1166.88 173.951 1151.74 173.951C1136.6 173.951 1123.6 169.366 1112.73 160.195C1101.85 151.024 1096.42 138.867 1096.42 123.723ZM1429.33 203.704C1463.86 203.704 1493.18 210.742 1517.27 224.819C1541.36 238.897 1559.7 258.304 1572.28 283.045C1584.86 307.784 1591.15 336.152 1591.15 368.145V390.217C1591.15 424.557 1584.86 454.309 1572.28 479.477C1559.7 504.642 1541.36 524.052 1517.27 537.703C1493.18 551.141 1463.86 557.857 1429.33 557.857C1394.79 557.857 1365.36 551.141 1341.06 537.703C1316.97 524.052 1298.53 504.75 1285.74 479.796C1273.16 454.628 1266.87 424.875 1266.87 390.538V368.784C1266.87 336.792 1273.16 308.427 1285.74 283.685C1298.53 258.73 1316.97 239.216 1341.06 225.139C1365.36 210.848 1394.79 203.704 1429.33 203.704ZM1429 279.845C1414.72 279.845 1403.21 283.898 1394.47 292.004C1385.94 299.894 1379.76 310.558 1375.92 323.996C1372.08 337.218 1370.16 351.722 1370.16 367.505V393.418C1370.16 408.135 1371.98 422.212 1375.6 435.647C1379.44 449.085 1385.62 460.068 1394.15 468.6C1402.89 477.13 1414.51 481.399 1429 481.399C1443.72 481.399 1455.34 477.238 1463.86 468.918C1472.39 460.389 1478.47 449.404 1482.09 435.968C1485.93 422.53 1487.85 408.348 1487.85 393.418V367.505C1487.85 351.722 1485.93 337.218 1482.09 323.996C1478.26 310.558 1472.07 299.894 1463.54 292.004C1455.02 283.898 1443.5 279.845 1429 279.845ZM2130 209.782L2043.33 551.459H1935.25L1877.04 320.475H1873.52L1815.33 551.459H1706.28L1620.25 209.782H1723.23L1766.72 451.322H1770.87L1827.79 209.782H1923.41L1980.66 451.322H1984.81L2028.3 209.782H2130Z" fill="url(#paint0_linear_323_447)"/>
<path d="M0 139.789L208.446 0H348.766L139.032 139.789H0Z" fill="url(#paint1_linear_323_447)"/>
<path d="M139.137 139.548L348.755 0L313.88 139.548H139.137Z" fill="url(#paint2_linear_323_447)"/>
<path d="M209.253 0L0.000366211 139.548L0.000366216 0H209.253Z" fill="url(#paint3_linear_323_447)"/>
<path d="M0.000732422 418.644L0.000732613 279.096H140.987L0.000732422 418.644Z" fill="url(#paint4_linear_323_447)"/>
<path d="M0 418.639L137.27 279.004L279.013 278.968L138.779 418.639H0Z" fill="url(#paint5_linear_323_447)"/>
<path d="M278.909 279.096L244.683 418.644H138.754L278.909 279.096Z" fill="url(#paint6_linear_323_447)"/>
<path d="M0 139.458H138.76V279.006L0 139.458Z" fill="url(#paint7_linear_323_447)"/>
<path d="M0 418.452H138.76V558L0 418.452Z" fill="url(#paint8_linear_323_447)"/>
<path d="M0 420.379L135.518 282.525L275.453 282.489L137.008 420.379H0Z" fill="url(#paint9_linear_323_447)"/>
<path d="M0 145.086L205.787 7.08105H344.316L137.258 145.086H0Z" fill="url(#paint10_linear_323_447)"/>
<path d="M137.362 144.849L344.305 7.08105L309.875 144.849H137.362Z" fill="url(#paint11_linear_323_447)"/>
<path d="M206.584 7.08105L0.000732422 144.849L0.000732427 7.08105H206.584Z" fill="url(#paint12_linear_323_447)"/>
<path d="M0.000732422 420.384L0.00073261 282.616H139.188L0.000732422 420.384Z" fill="url(#paint13_linear_323_447)"/>
<path d="M275.351 282.616L241.561 420.384H136.983L275.351 282.616Z" fill="url(#paint14_linear_323_447)"/>
<path d="M0 144.76H136.99V282.527L0 144.76Z" fill="url(#paint15_linear_323_447)"/>
<path d="M0 420.193H136.99V557.961L0 420.193Z" fill="url(#paint16_linear_323_447)"/>
<defs>
<linearGradient id="paint0_linear_323_447" x1="1260.89" y1="1062.25" x2="2688.61" y2="-887.578" gradientUnits="userSpaceOnUse">
<stop stop-color="#0099FF"/>
<stop offset="1" stop-color="#0000FF"/>
</linearGradient>
<linearGradient id="paint1_linear_323_447" x1="174.383" y1="0" x2="174.383" y2="139.789" gradientUnits="userSpaceOnUse">
<stop stop-color="#91D3FF"/>
<stop offset="1" stop-color="#0099FF"/>
</linearGradient>
<linearGradient id="paint2_linear_323_447" x1="223.477" y1="1.83571" x2="264.403" y2="228.183" gradientUnits="userSpaceOnUse">
<stop stop-color="#28DBFF"/>
<stop offset="1" stop-color="#0000FF"/>
</linearGradient>
<linearGradient id="paint3_linear_323_447" x1="-175.546" y1="-231.311" x2="656.398" y2="312.107" gradientUnits="userSpaceOnUse">
<stop stop-color="#E1F7FF"/>
<stop offset="1" stop-color="#0E9FFF"/>
</linearGradient>
<linearGradient id="paint4_linear_323_447" x1="141.083" y1="306.265" x2="-193.82" y2="198.214" gradientUnits="userSpaceOnUse">
<stop stop-color="#45B5FF"/>
<stop offset="1" stop-color="#E1F7FF"/>
</linearGradient>
<linearGradient id="paint5_linear_323_447" x1="129.044" y1="268.506" x2="151.125" y2="424.265" gradientUnits="userSpaceOnUse">
<stop stop-color="#95D6FF"/>
<stop offset="1" stop-color="#0385FF"/>
</linearGradient>
<linearGradient id="paint6_linear_323_447" x1="182.521" y1="278.967" x2="208.823" y2="533.74" gradientUnits="userSpaceOnUse">
<stop stop-color="#29DAFF"/>
<stop offset="1" stop-color="#0000FF"/>
</linearGradient>
<linearGradient id="paint7_linear_323_447" x1="166.514" y1="313.303" x2="-66.2218" y2="39.4828" gradientUnits="userSpaceOnUse">
<stop stop-color="#0087E8"/>
<stop offset="1" stop-color="#000091"/>
</linearGradient>
<linearGradient id="paint8_linear_323_447" x1="166.514" y1="592.297" x2="-66.2218" y2="318.477" gradientUnits="userSpaceOnUse">
<stop stop-color="#0087E8"/>
<stop offset="1" stop-color="#000091"/>
</linearGradient>
<linearGradient id="paint9_linear_323_447" x1="127.397" y1="272.161" x2="149.197" y2="425.932" gradientUnits="userSpaceOnUse">
<stop stop-color="#95D6FF"/>
<stop offset="1" stop-color="#0385FF"/>
</linearGradient>
<linearGradient id="paint10_linear_323_447" x1="172.158" y1="7.08105" x2="172.158" y2="145.086" gradientUnits="userSpaceOnUse">
<stop stop-color="#91D3FF"/>
<stop offset="1" stop-color="#0099FF"/>
</linearGradient>
<linearGradient id="paint11_linear_323_447" x1="220.625" y1="8.89334" x2="261.03" y2="232.352" gradientUnits="userSpaceOnUse">
<stop stop-color="#28DBFF"/>
<stop offset="1" stop-color="#0000FF"/>
</linearGradient>
<linearGradient id="paint12_linear_323_447" x1="-173.306" y1="-221.278" x2="648.023" y2="315.206" gradientUnits="userSpaceOnUse">
<stop stop-color="#E1F7FF"/>
<stop offset="1" stop-color="#0E9FFF"/>
</linearGradient>
<linearGradient id="paint13_linear_323_447" x1="191.449" y1="282.521" x2="-191.351" y2="202.773" gradientUnits="userSpaceOnUse">
<stop stop-color="#45B5FF"/>
<stop offset="1" stop-color="#E1F7FF"/>
</linearGradient>
<linearGradient id="paint14_linear_323_447" x1="180.192" y1="282.49" x2="206.158" y2="534.011" gradientUnits="userSpaceOnUse">
<stop stop-color="#29DAFF"/>
<stop offset="1" stop-color="#0000FF"/>
</linearGradient>
<linearGradient id="paint15_linear_323_447" x1="164.389" y1="316.386" x2="-65.3768" y2="46.0602" gradientUnits="userSpaceOnUse">
<stop stop-color="#0087E8"/>
<stop offset="1" stop-color="#000091"/>
</linearGradient>
<linearGradient id="paint16_linear_323_447" x1="164.389" y1="591.82" x2="-65.3768" y2="321.494" gradientUnits="userSpaceOnUse">
<stop stop-color="#0087E8"/>
<stop offset="1" stop-color="#000091"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 8.4 KiB

View file

@ -0,0 +1,26 @@
/*!
* Start Bootstrap - SB Admin v7.0.7 (https://startbootstrap.com/template/sb-admin)
* Copyright 2013-2023 Start Bootstrap
* Licensed under MIT (https://github.com/StartBootstrap/startbootstrap-sb-admin/blob/master/LICENSE)
*/
//
// Scripts
//
window.addEventListener('DOMContentLoaded', event => {
// Toggle the side navigation
const sidebarToggle = document.body.querySelector('#sidebarToggle');
if (sidebarToggle) {
// Uncomment Below to persist sidebar toggle between refreshes
// if (localStorage.getItem('sb|sidebar-toggle') === 'true') {
// document.body.classList.toggle('sb-sidenav-toggled');
// }
sidebarToggle.addEventListener('click', event => {
event.preventDefault();
document.body.classList.toggle('sb-sidenav-toggled');
localStorage.setItem('sb|sidebar-toggle', document.body.classList.contains('sb-sidenav-toggled'));
});
}
});

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 708 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB