This commit is contained in:
ragueneaul 2024-12-12 16:56:21 +01:00
commit 53b56f986f
16 changed files with 343 additions and 162 deletions

View File

@ -1,11 +1,64 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DataSourceManagerImpl" format="xml" multifile-model="true">
<<<<<<< HEAD
<data-source source="LOCAL" name="HegreEtConfort@172.20.96.1" uuid="df0d05c3-5fc7-46c8-a0dc-7e45756a28ce">
<driver-ref>postgresql</driver-ref>
<synchronize>true</synchronize>
<jdbc-driver>org.postgresql.Driver</jdbc-driver>
<jdbc-url>jdbc:postgresql://172.20.96.1:5432/HegreEtConfort</jdbc-url>
=======
<<<<<<< HEAD
<data-source source="LOCAL" name="HegreEtConfort@172.20.96.1" uuid="7dfccb0e-433e-4f42-b6ce-6362f7e2187a">
<driver-ref>postgresql</driver-ref>
<synchronize>true</synchronize>
<jdbc-driver>org.postgresql.Driver</jdbc-driver>
<jdbc-url>jdbc:postgresql://172.20.96.1:5432/HegreEtConfort</jdbc-url>
=======
<<<<<<< HEAD
<<<<<<< HEAD
<data-source source="LOCAL" name="chauffageproj@172.20.96.1" uuid="633df7e7-7b9a-4298-8a3c-3075313a1153">
=======
<<<<<<< HEAD
<data-source source="LOCAL" name="@172.20.96.1" uuid="76621fd2-6622-4f8e-a632-d7b7602e0afe">
<driver-ref>postgresql</driver-ref>
<synchronize>true</synchronize>
<jdbc-driver>org.postgresql.Driver</jdbc-driver>
<jdbc-url>jdbc:postgresql://172.20.96.1:5432/</jdbc-url>
<working-dir>$ProjectFileDir$</working-dir>
</data-source>
<data-source source="LOCAL" name="hegreconfort@127.0.0.1" uuid="a0219ca4-02a7-456a-bf02-9b3234ed346b">
<driver-ref>mariadb</driver-ref>
<synchronize>true</synchronize>
<jdbc-driver>org.mariadb.jdbc.Driver</jdbc-driver>
<jdbc-url>jdbc:mariadb://127.0.0.1:3306/hegreconfort</jdbc-url>
=======
<data-source source="LOCAL" name="chauffageproj@172.20.96.1" uuid="6554e332-842b-41d7-a021-08782c7b72bb">
<driver-ref>postgresql</driver-ref>
<synchronize>true</synchronize>
<jdbc-driver>org.postgresql.Driver</jdbc-driver>
<jdbc-url>jdbc:postgresql://172.20.96.1:5432/chauffageproj</jdbc-url>
<working-dir>$ProjectFileDir$</working-dir>
</data-source>
<data-source source="LOCAL" name="chauffageproj@172.20.96.1 [2]" uuid="a446f2ca-1dfc-459a-97f5-eda71fd74aa2">
>>>>>>> 6532d4d88b86c321a212cdc0ca43b2e4770db117
<driver-ref>postgresql</driver-ref>
<synchronize>true</synchronize>
<jdbc-driver>org.postgresql.Driver</jdbc-driver>
<jdbc-url>jdbc:postgresql://172.20.96.1:5432/chauffageproj</jdbc-url>
>>>>>>> ee236ff74aaac1882a825817d5ce8f692d3bdd0f
=======
<data-source source="LOCAL" name="HegreConfort@localhost" uuid="755cf5bd-875b-416d-8bc2-76a5b9ba2d4d">
<driver-ref>mariadb</driver-ref>
<synchronize>true</synchronize>
<jdbc-driver>org.mariadb.jdbc.Driver</jdbc-driver>
<jdbc-url>jdbc:mariadb://localhost:3306/HegreConfort</jdbc-url>
<jdbc-additional-properties>
<property name="database.introspection.mysql.dbe5060" value="true" />
</jdbc-additional-properties>
>>>>>>> cc65343635c8771e56e2a3304b42ec32f4f91b97
>>>>>>> d7375d330251cab10a2296bbb292fcdb7cd6e847
>>>>>>> 05b64fc2b1e17491a87ea32353e6987b0e97bf50
<working-dir>$ProjectFileDir$</working-dir>
</data-source>
</component>

View File

@ -1,3 +1,3 @@
body {
background-color: skyblue;
background: url("../image/fond.png") center center / cover no-repeat !important;
}

View File

@ -0,0 +1,84 @@
body {
background: #A6CD9E !important;
}
.background {
background-color: #7D9599;
position: absolute;
width: 100%;
height: 87%;
}
.background-intervention {
background-color: #A0C2C8;
position: absolute;
box-shadow: 0 0 15px 0 black;
border-radius: 5%;
margin: 7% 0 0 15%;
width: 70%;
height: 70%;
}
.logoCalendar {
position: absolute;
margin: 1% 0 0 5%;
width: 5%;
}
.titre {
position: absolute;
margin: 2% 0 0 11%;
color: white;
}
#nom {
position: absolute;
margin: 2% 0 0 5%;
width: 45%;
}
#echecs {
position: absolute;
margin: 6% 0 0 5%;
}
#employesCompetences {
position: absolute;
margin: 10% 0 0 5%;
}
#piece {
position: absolute;
margin: 14% 0 0 5%;
}
#vehicule {
position: absolute;
margin: 18.5% 0 0 5%;
}
#vehicule1 {
position: absolute;
margin: 19% 0 0 21.5%;
}
#oui {
position: absolute;
margin: 18.5% 0 0 24%;
}
#vehicule2 {
position: absolute;
margin: 19% 0 0 30%;
}
#non {
position: absolute;
margin: 18.5% 0 0 33%;
}
#date {
position: absolute;
margin: 2% 0 0 70%;
}
#calendar {
position: absolute;
margin: 18.5% 0 0 33%;
}
.from {
position: absolute;
margin: 65% 15% 15% 15%;
}

View File

@ -1,67 +1,86 @@
body {
width: 1500px;
height: 1000px;
background: linear-gradient(#A0C2C8, #A6CD9E);
background: url("../image/fond.png") center center / cover no-repeat !important;
}
.logo {
position: absolute;
margin: -3% 0 0 1%;
height: 30%;
margin: 0.5% 0 0 43.5%;
height: 25%;
}
.titre { /*pas fini*/
margin: 4% 10% 0 25%;
font-weight: 50;
font-size: 450%;
.titre {
position: absolute;
color: white;
margin: 15% 0 0 38%;
}
.logoProfile {
position: absolute;
border-radius: 10%;
margin: 20% 0 0 36%;
height: 10%;
}
.logoPassword {
position: absolute;
border-radius: 10%;
margin: 27% 0 0 36%;
height: 10%;
}
#profile {
position: absolute;
border-radius: 2%;
margin: 20% 0 0 42%;
width: 22%;
height: 5%;
}
#password {
position: absolute;
border-radius: 2%;
margin: 27% 0 0 42%;
width: 22%;
height: 5%;
}
.forgot {
position: absolute;
font-style: italic;
margin: 30% 0 0 52%;
font-size: 100%;
color: white;
}
#remember {
position: absolute;
margin: 33% 0 0 38%;
font-size: 100%;
color: white;
}
.remember {
position: absolute;
margin: 32.7% 0 0 39.5%;
font-size: 100%;
color: white;
}
.login {
position: absolute;
margin: 37.5% 0 0 36.6%;
width: 27%;
background-color: #243C40;
color: white;
}
.background {
position: absolute;
width: 50%;
height: 50%;
left: 25%;
top: 25%;
box-shadow: 0 0 30px 1px black;
border-radius: 10%;
opacity: 85%;
background: rgba(36, 60, 64, 0.7);
}
.logoEmail {
position: absolute;
margin: 6.5% 0 0 31%;
height: 12%;
background: #243C40;
}
.email {
position: absolute;
margin: 7% 0 0 37.5%;
margin: 7% 0 0 35%;
width: 30%;
height: 9.5%;
background-color: #f0f0f0;
}
height: 75%;
.logoPassword {
position: absolute;
margin: 16.5% 0 0 31%;
height: 12%;
background: #243C40;
}
.password {
position: absolute;
margin: 17% 0 0 37.5%;
width: 30%;
height: 9.5%;
background-color: #f0f0f0;
}
/*forgot password*/
.forgot {
position: absolute;
margin: 23.5% 0 0 42.5%;
font-size: 130%;
color: #f0f0f0;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

View File

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 42 KiB

View File

@ -1,43 +0,0 @@
<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20241114151456 extends AbstractMigration
{
public function getDescription(): string
{
return '';
}
public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$this->addSql('CREATE TABLE fault (id INT AUTO_INCREMENT NOT NULL, wording VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE intervention (id INT AUTO_INCREMENT NOT NULL, wording VARCHAR(255) NOT NULL, timestamp DATETIME NOT NULL, description VARCHAR(255) NOT NULL, address VARCHAR(255) NOT NULL, status VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE skill (id INT AUTO_INCREMENT NOT NULL, wording VARCHAR(255) NOT NULL, description VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE stock (id INT AUTO_INCREMENT NOT NULL, wording VARCHAR(255) NOT NULL, description VARCHAR(255) NOT NULL, quantity VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE `user` (id INT AUTO_INCREMENT NOT NULL, first_name VARCHAR(255) NOT NULL, last_name VARCHAR(255) NOT NULL, birth_date DATE NOT NULL, email VARCHAR(255) NOT NULL, phone VARCHAR(255) NOT NULL, type VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE vehicle (id INT AUTO_INCREMENT NOT NULL, license_plate VARCHAR(255) NOT NULL, brand VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE messenger_messages (id BIGINT AUTO_INCREMENT NOT NULL, body LONGTEXT NOT NULL, headers LONGTEXT NOT NULL, queue_name VARCHAR(190) NOT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', available_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', delivered_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', INDEX IDX_75EA56E0FB7336F0 (queue_name), INDEX IDX_75EA56E0E3BD61CE (available_at), INDEX IDX_75EA56E016BA31DB (delivered_at), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('DROP TABLE fault');
$this->addSql('DROP TABLE intervention');
$this->addSql('DROP TABLE skill');
$this->addSql('DROP TABLE stock');
$this->addSql('DROP TABLE `user`');
$this->addSql('DROP TABLE vehicle');
$this->addSql('DROP TABLE messenger_messages');
}
}

View File

@ -0,0 +1,50 @@
<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20241205162005 extends AbstractMigration
{
public function getDescription(): string
{
return '';
}
public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$this->addSql('CREATE SEQUENCE fault_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
$this->addSql('CREATE SEQUENCE intervention_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
$this->addSql('CREATE SEQUENCE skill_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
$this->addSql('CREATE SEQUENCE stock_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
$this->addSql('CREATE SEQUENCE user_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
$this->addSql('CREATE SEQUENCE vehicle_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
$this->addSql('ALTER TABLE "user" ADD roles JSON NOT NULL');
$this->addSql('ALTER TABLE "user" ALTER email TYPE VARCHAR(180)');
$this->addSql('ALTER TABLE "user" RENAME COLUMN type TO password');
$this->addSql('CREATE UNIQUE INDEX UNIQ_IDENTIFIER_EMAIL ON "user" (email)');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('CREATE SCHEMA public');
$this->addSql('DROP SEQUENCE fault_id_seq CASCADE');
$this->addSql('DROP SEQUENCE intervention_id_seq CASCADE');
$this->addSql('DROP SEQUENCE skill_id_seq CASCADE');
$this->addSql('DROP SEQUENCE stock_id_seq CASCADE');
$this->addSql('DROP SEQUENCE user_id_seq CASCADE');
$this->addSql('DROP SEQUENCE vehicle_id_seq CASCADE');
$this->addSql('DROP INDEX UNIQ_IDENTIFIER_EMAIL');
$this->addSql('ALTER TABLE "user" DROP roles');
$this->addSql('ALTER TABLE "user" ALTER email TYPE VARCHAR(255)');
$this->addSql('ALTER TABLE "user" RENAME COLUMN password TO type');
}
}

View File

@ -10,7 +10,7 @@ use Doctrine\Migrations\AbstractMigration;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20241128141518 extends AbstractMigration
final class Version20241212153452 extends AbstractMigration
{
public function getDescription(): string
{

View File

@ -18,7 +18,11 @@ class AuthenticationController extends AbstractController
// last username entered by the user
$lastUsername = $authenticationUtils->getLastUsername();
<<<<<<< HEAD
return $this->render('calendrier/index.html.twig', [
=======
return $this->render('login/index.html.twig', [
>>>>>>> 05b64fc2b1e17491a87ea32353e6987b0e97bf50
'last_username' => $lastUsername,
'error' => $error,
]);

View File

@ -18,7 +18,7 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface
private ?int $id = null;
#[ORM\Column(length: 180)]
private ?string $email = null;
private string $email;
#[ORM\Column(length: 255)]
private ?string $FirstName = null;
@ -29,9 +29,6 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface
#[ORM\Column(type: Types::DATE_MUTABLE)]
private ?\DateTimeInterface $BirthDate = null;
#[ORM\Column(length: 255)]
private ?string $Email = null;
#[ORM\Column(length: 255)]
private ?string $Phone = null;
/**

View File

@ -1,35 +0,0 @@
{% block title %}Log in!{% endblock %}
{% block body %}
<form method="post">
{% if error %}
<div class="alert alert-danger">{{ error.messageKey|trans(error.messageData, 'security') }}</div>
{% endif %}
{% if app.user %}
<div class="mb-3">
You are logged in as {{ app.user.userIdentifier }}, <a href="{{ path('app_logout') }}">Logout</a>
</div>
{% endif %}
<h1 class="h3 mb-3 font-weight-normal">Please sign in</h1>
<label for="username">Email</label>
<input type="email" value="{{ last_username }}" name="_username" id="username" class="form-control" autocomplete="email" required autofocus>
<label for="password">Password</label>
<input type="password" name="_password" id="password" class="form-control" autocomplete="current-password" required>
<input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}">
<div class="checkbox mb-3">
<input type="checkbox" name="_remember_me" id="_remember_me">
<label for="_remember_me">Remember me</label>
</div>
<button class="btn btn-lg btn-primary" type="submit">
Sign in
</button>
</form>
{% endblock %}

View File

@ -1,10 +1,39 @@
{# templates/user/add.html.twig #}
{% extends 'base.html.twig' %}
<!DOCTYPE html>
<html lang="fr, en">
<head>
<meta charset="UTF-8">
<title>Créer Une Intervention</title>
<link href="{{ asset('styles/css/intervention.css') }}" rel='stylesheet'>
<link rel="icon"
href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 128 128%22><text y=%221.2em%22 font-size=%2296%22>⚫️</text><text y=%221.3em%22 x=%220.2em%22 font-size=%2276%22 fill=%22%23fff%22>sf</text></svg>">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
{% block title %}Ajouter une intervention {% endblock %}
<meta name="viewport" content="width=device-width, initial-scale=1">
{% block body %}
<h1>Ajouter une intervention</h1>
{% block stylesheets %}
{% endblock %}
</head>
<body>
<div class="background"></div>
<img class="logoCalendar" src="{{ asset('styles/image/calendar.png') }}" alt="Logo Calendrier">
<h1 class="titre">Créer Une Intervention</h1>
{{ form(form) }}
{% endblock %}
<div class="background-intervention">
<input required id="nom" placeholder="Nom de l'intervention">
<input required id="echecs" placeholder="Liste des échecs">
<input required id="employesCompetences" placeholder="Liste des employés et de leurs compétences">
<input id="piece" placeholder="Pièce affecter">
<p id="vehicule">Véhicule nécessaire</p>
<input type="checkbox" name="vehicule1" id="vehicule1">
<label for=”vehicule1” id="oui"> Oui </label>
<input type="checkbox" name="vehicule2" id="vehicule2">
<label for=”vehicule2” id="non"> Non </label>
<p id="date">Jour de l'intervention</p>
<input type="date" id="calendar">
<div class="from"> {{ form(form) }} </div>
</div>
</body>
</html>

View File

@ -2,30 +2,53 @@
<html lang="fr, en">
<head>
<meta charset="UTF-8">
<title>{% block title %}Authentification{% endblock %}</title>
<link href="{{ asset('styles/css/authentification.css') }}" rel='stylesheet'>
<link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 128 128%22><text y=%221.2em%22 font-size=%2296%22>⚫️</text><text y=%221.3em%22 x=%220.2em%22 font-size=%2276%22 fill=%22%23fff%22>sf</text></svg>">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
<title>Authentification</title>
<link href="{{ asset('styles/css/login.css') }}" rel='stylesheet'>
<link rel="icon"
href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 128 128%22><text y=%221.2em%22 font-size=%2296%22>⚫️</text><text y=%221.3em%22 x=%220.2em%22 font-size=%2276%22 fill=%22%23fff%22>sf</text></svg>">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
<meta name="viewport" content="width=device-width, initial-scale=1">
{% block stylesheets %}
{% endblock %}
</head>
<body>
<div class="col">
<section>
<div class="background"></div>
<div class="row" id="xxx">
<div class="col-2"><img class="logo" src="{{ asset('styles/image/LogoHegreConfort_SansFond.png') }}" alt="Logo Hegre et Confort"></div>
<div class="col-10"><h1 class="titre">D'HEGRE ET CONFORT</h1></div>
<img class="logo" src="{{ asset('styles/image/LogoHegreConfort_SansFond.png') }}" alt="Logo Hegre et Confort">
<h1 class="titre">D'Hegre Et Confort</h1>
<img class="logoProfile" src="{{ asset('styles/image/profile.png') }}" alt="Logo Profil">
<img class="logoPassword" src="{{ asset('styles/image/password.png') }}" alt="Logo Password">
<form method="post">
{% if error %}
<div class="alert alert-danger">{{ error.messageKey|trans(error.messageData, 'security') }}</div>
{% endif %}
{% if app.user %}
<div class="mb-3">
Vous êtes connecté en tant que {{ app.user.userIdentifier }}, <a href="{{ path('app_logout') }}">Déconnexion</a>
</div>
{% endif %}
<label>
<input id="profile" type="email" placeholder="Adresse mail" value="{{ last_username }}" name="_username" class="form-control" autocomplete="email" required autofocus>
<input id="password" type="password" placeholder="Mot de passe" name="_password" class="form-control" autocomplete="current-password" required>
<input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}">
<input type="checkbox" name="remember" id="remember">
<label class="remember" for="remember">Se souvenir de moi</label>
</label>
</form>
<button class="login"> Connexion </button>
<p class="forgot"> Mot de passe oublié ?</p>
</section>
</div>
<section>
<div class="background"></div>
<img class="logoEmail" src="{{ asset('styles/image/1.png') }}">
<input class="email" type="email" placeholder="Adresse mail">
<img class="logoPassword" src="{{ asset('styles/image/2.png') }}">
<input class="password" type="password" placeholder="Mot de passe">
</section>
<p class="forgot"> Mot de passe oublié ?</p>
</body>
</html>