Merge branch 'master' into dev
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
class Env {
|
||||
// Base URL de l'API, surchargeable à la compilation via --dart-define=API_BASE_URL
|
||||
static const String apiBaseUrl = String.fromEnvironment(
|
||||
'API_BASE_URL',
|
||||
defaultValue: 'https://ynov.ptits-pas.fr',
|
||||
);
|
||||
|
||||
// Construit une URL vers l'API v1 à partir d'un chemin (commençant par '/')
|
||||
static String apiV1(String path) => "${apiBaseUrl}/api/v1$path";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import 'package:http/http.dart' as http;
|
||||
import 'dart:convert';
|
||||
import 'package:p_tits_pas/config/env.dart';
|
||||
|
||||
class BugReportService {
|
||||
static const String _apiUrl = 'https://ynov.ptits-pas.fr/api/bug-reports';
|
||||
static final String _apiUrl = Env.apiV1('/bug-reports');
|
||||
|
||||
static Future<void> sendReport(String description) async {
|
||||
try {
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>P'titsPas - Connexion</title>
|
||||
<link rel="stylesheet" href="styles.css">
|
||||
<link href="https://fonts.googleapis.com/css2?family=Merienda:wght@400;600&display=swap" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
<img src="assets/river.png" alt="" class="river" aria-hidden="true">
|
||||
|
||||
<main class="login-container">
|
||||
<img src="assets/logo.png" alt="P'titsPas" class="logo">
|
||||
<h1 class="slogan">Grandir pas à pas, sereinement</h1>
|
||||
|
||||
<form class="login-form">
|
||||
<div class="form-group">
|
||||
<label for="email">Adresse e-mail</label>
|
||||
<input type="email" id="email" name="email"
|
||||
placeholder="Votre adresse e-mail"
|
||||
aria-label="Saisissez votre adresse e-mail"
|
||||
required>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="password">Mot de passe</label>
|
||||
<input type="password" id="password" name="password"
|
||||
placeholder="Votre mot de passe"
|
||||
aria-label="Saisissez votre mot de passe"
|
||||
required>
|
||||
</div>
|
||||
|
||||
<button type="submit" class="login-button">
|
||||
Se connecter
|
||||
</button>
|
||||
</form>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,133 +0,0 @@
|
||||
/* Reset et styles de base */
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Merienda', cursive;
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
/* Décor de fond */
|
||||
.river {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 60vw;
|
||||
opacity: 0.15;
|
||||
pointer-events: none;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
/* Container principal */
|
||||
.login-container {
|
||||
width: 100%;
|
||||
max-width: 480px;
|
||||
padding: 2rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 2rem;
|
||||
}
|
||||
|
||||
/* Logo */
|
||||
.logo {
|
||||
max-width: 220px;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
/* Slogan */
|
||||
.slogan {
|
||||
font-family: 'Merienda', cursive;
|
||||
text-align: center;
|
||||
color: #3a3a3a;
|
||||
font-size: 1.5rem;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
/* Formulaire */
|
||||
.login-form {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 1.5rem;
|
||||
}
|
||||
|
||||
.form-group {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
|
||||
/* Labels */
|
||||
label {
|
||||
color: #3a3a3a;
|
||||
font-weight: 600;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
/* Champs de saisie */
|
||||
input {
|
||||
height: 80px;
|
||||
border: none;
|
||||
border-radius: 30px;
|
||||
padding: 0 1.2rem;
|
||||
font-size: 1rem;
|
||||
font-family: inherit;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
input[type="email"] {
|
||||
background-image: url('assets/field_email.png');
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
input[type="password"] {
|
||||
background-image: url('assets/field_password.png');
|
||||
color: #000;
|
||||
}
|
||||
|
||||
/* Bouton de connexion */
|
||||
.login-button {
|
||||
height: 80px;
|
||||
background-image: url('assets/btn_green.png');
|
||||
background-size: cover;
|
||||
border: none;
|
||||
border-radius: 40px;
|
||||
color: #ffffff;
|
||||
font-family: "Merienda", cursive;
|
||||
font-size: 1.1rem;
|
||||
cursor: pointer;
|
||||
transition: filter 0.2s ease;
|
||||
}
|
||||
|
||||
.login-button:hover {
|
||||
filter: brightness(1.08);
|
||||
}
|
||||
|
||||
/* Media queries pour mobile */
|
||||
@media (max-width: 480px) {
|
||||
.river {
|
||||
width: 40vw;
|
||||
opacity: 0.10;
|
||||
clip-path: inset(0 0 20% 0);
|
||||
}
|
||||
|
||||
.logo {
|
||||
max-width: 120px;
|
||||
}
|
||||
|
||||
.login-container {
|
||||
padding: 1rem;
|
||||
}
|
||||
|
||||
.slogan {
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user