This commit is contained in:
jleroy2023
2024-11-18 15:34:13 +01:00
parent 826d03eaac
commit 753a490484
33 changed files with 35 additions and 2664 deletions

2
.env
View File

@@ -24,7 +24,7 @@ APP_SECRET=ba1ab1eaa1c6662c10564a7a82901198
# IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml
#
# DATABASE_URL="sqlite:///%kernel.project_dir%/var/data.db"
DATABASE_URL="mysql://root:@10.4.200.16:3306/sortir?serverVersion=8.0.32&charset=utf8mb4"
DATABASE_URL="mysql://root:_7ODs[qJpFwEfmls@10.4.200.16:3306/sortir?serverVersion=8.0.32&charset=utf8mb4"
# DATABASE_URL="mysql://app:root@10.4.200.16:3306/app?serverVersion=10.11.2-MariaDB&charset=utf8mb4"
# DATABASE_URL="postgresql://app:!ChangeMe!@127.0.0.1:5432/app?serverVersion=16&charset=utf8"
###< doctrine/doctrine-bundle ###

15
.idea/dataSources.xml generated
View File

@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DataSourceManagerImpl" format="xml" multifile-model="true">
<data-source source="LOCAL" name="test" uuid="836eda53-d12f-4aee-b051-cf97423e2711">
<driver-ref>mysql.8</driver-ref>
<synchronize>true</synchronize>
<jdbc-driver>com.mysql.cj.jdbc.Driver</jdbc-driver>
<jdbc-url>jdbc:mysql://10.4.200.16:3306</jdbc-url>
<jdbc-additional-properties>
<property name="APPROVED_DRIVER" value="mariadb" />
</jdbc-additional-properties>
<working-dir>$ProjectFileDir$</working-dir>
</data-source>
</component>
</project>

1
.idea/sortir.iml generated
View File

@@ -3,7 +3,6 @@
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" packagePrefix="App\" />
<sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" packagePrefix="App\Tests\" />
<excludeFolder url="file://$MODULE_DIR$/vendor/composer" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/cache" />

View File

@@ -0,0 +1,18 @@
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class HomeController extends AbstractController
{
#[Route('/home', name: 'app_home')]
public function index(): Response
{
return $this->render('home/index.html.twig', [
'controller_name' => 'HomeController',
]);
}
}

View File

@@ -1,101 +0,0 @@
{% extends '@EasyAdmin/page/content.html.twig' %}
{% block page_title %}Administration | Sortir{% endblock %}
{% block content_title %}Administration{% endblock %}
{% block main %}
<style>
.order-card {
color: #fff;
}
.bg-c-blue {
background: linear-gradient(45deg,#4099ff,#73b4ff);
}
.bg-c-green {
background: linear-gradient(45deg,#2ed8b6,#59e0c5);
}
.bg-c-yellow {
background: linear-gradient(45deg,#FFB64D,#ffcb80);
}
.bg-c-pink {
background: linear-gradient(45deg,#FF5370,#ff869a);
}
.card {
border-radius: 5px;
-webkit-box-shadow: 0 1px 2.94px 0.06px rgba(4,26,55,0.16);
box-shadow: 0 1px 2.94px 0.06px rgba(4,26,55,0.16);
border: none;
margin-bottom: 30px;
-webkit-transition: all 0.3s ease-in-out;
transition: all 0.3s ease-in-out;
}
.card .card-block {
padding: 25px;
}
.order-card i {
font-size: 26px;
}
.f-left {
float: left;
}
.f-right {
float: right;
}
</style>
<div class="container">
<div class="row">
<div class="col-md-4 col-xl-3">
<div class="card bg-c-blue order-card">
<div class="card-block">
<h6 class="m-b-20">Utilisateurs actifs</h6>
<h2 class="text-right"><i class="fas fa-user f-left"></i><span>{{ numberUserActive }}</span></h2>
<p class="m-b-0">Comptes désactivés<span class="f-right">{{ numberUserDisable }}</span></p>
</div>
</div>
</div>
<div class="col-md-4 col-xl-3">
<div class="card bg-c-pink order-card">
<div class="card-block">
<h6 class="m-b-20">Nombre de groupes</h6>
<h2 class="text-right"><i class="fa fa-group f-left"></i><span>{{ numberGroup }}</span></h2>
<p class="m-b-0">Incroyable<span class="f-right"></span></p>
</div>
</div>
</div>
<div class="col-md-4 col-xl-3">
<div class="card bg-c-green order-card">
<div class="card-block">
<h6 class="m-b-20">Prochaine sorties</h6>
<h2 class="text-right"><i class="fa fa-person-hiking f-left"></i><span>{{ numberOutingNotStarted }}</span></h2>
<p class="m-b-0">Sorties terminées<span class="f-right">{{ numberOutingFinished }}</span></p>
</div>
</div>
</div>
<div class="col-md-4 col-xl-3">
<div class="card bg-c-yellow order-card">
<div class="card-block">
<h6 class="m-b-20">Total participations</h6>
<h2 class="text-right"><i class="fa fa-champagne-glasses f-left"></i><span>{{ numberRegistered }}</span></h2>
<p class="m-b-0">Sur l'ensemble des sorties<span class="f-right"></span></p>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@@ -1,16 +0,0 @@
{% extends '@EasyAdmin/page/content.html.twig' %}
{% block page_title %}Importation des utilisateurs | {{ parent() }}{% endblock %}
{% block content_title %}Importation des utilisateurs{% endblock %}
{% block main %}
{{ form_start(requestForm) }}
<div class="my-3">
{{ form_row(requestForm.csvFile) }}
</div>
<div class="my-3">
{{ form_row(requestForm.submit) }}
</div>
{{ form_end(requestForm) }}
{% endblock %}

View File

@@ -1,91 +0,0 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>{% block title %}Sortir{% endblock %}</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" href="{{ asset('icon.svg') }}">
<script>
// On page load or when changing themes, best to add inline in `head` to avoid FOUC
if (localStorage.getItem('color-theme') === 'dark' || (!('color-theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
document.documentElement.classList.add('dark');
} else {
document.documentElement.classList.remove('dark')
}
</script>
{% block stylesheets %}
{{ encore_entry_link_tags('app') }}
{% endblock %}
{% block javascripts %}
{{ encore_entry_script_tags('app') }}
{% endblock %}
</head>
<body class="bg-light-font dark:bg-dark-font transition-all duration-300">
{% if app.flashes is defined %}
<div class="fixed bottom-16 right-8 z-50">
{% for type, flash in app.flashes %}
{% for message in flash %}
<div id="alert-{{ loop.index }}" role="alert"
class="max-w-md bg-light-font dark:bg-dark-card rounded-lg border-gray-400 dark:border-dark-primary border p-3 shadow-xl my-3 flash-message transition duration-300 ease-linear">
<div class="flex flex-row">
<div class="px-2">
{% if type == 'success' %}
{% set typeMessage = 'Succès' %}
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none"
viewBox="0 0 24 24" stroke-width="2.5" stroke="#44C997">
<path stroke-linecap="round" stroke-linejoin="round"
d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"></path>
</svg>
{% elseif type == 'danger' or type == 'error' %}
{% set typeMessage = 'Erreur' %}
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none"
viewBox="0 0 24 24" stroke-width="2.5" stroke="#FF0E0E">
<path stroke-linecap="round" stroke-linejoin="round"
d="m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"></path>
</svg>
{% elseif type == 'warning' %}
{% set typeMessage = 'Attention' %}
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none"
viewBox="0 0 24 24" stroke-width="2.5" stroke="#FFCC00">
<path stroke-linecap="round" stroke-linejoin="round"
d="M12 9v3.75m9-.75a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 3.75h.008v.008H12v-.008Z"></path>
</svg>
{% else %}
{% set typeMessage = 'Information' %}
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none"
viewBox="0 0 24 24" stroke-width="2.5" stroke="#076ECA">
<path stroke-linecap="round" stroke-linejoin="round"
d="m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z"></path>
</svg>
{% endif %}
</div>
<div class="ml-2 mr-3 w-full">
<div class="flex">
<span class="grow font-semibold text-dark dark:text-white">{{ typeMessage }}</span>
<button data-dismiss-target="#alert-{{ loop.index }}" aria-label="Close">
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M6 18L18 6M6 6l12 12"></path>
</svg>
</button>
</div>
<span class="block text-gray-600 dark:text-gray-400">{{ message }}</span>
</div>
</div>
</div>
{% endfor %}
{% endfor %}
</div>
{% endif %}
{% include "base/navbar.html.twig" %}
{% block body %}{% endblock %}
{% include "base/footer.html.twig" %}
<script src="{{ asset('js/script.js') }}" defer></script>
</body>
</html>

View File

@@ -1,440 +0,0 @@
<svg class="{{ classes }}" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8000.000000 2942.000000"
preserveAspectRatio="xMidYMid meet">
<g transform="translate(0.000000,2942.000000) scale(0.100000,-0.100000)" stroke="none">
<path d="M19560 29049 c-52 -10 -196 -38 -320 -60 -124 -23 -288 -59 -365 -80
-142 -40 -371 -97 -660 -164 -245 -57 -380 -96 -760 -222 -364 -121 -632 -216
-845 -301 -69 -27 -143 -53 -165 -57 -87 -15 -397 -125 -591 -208 -45 -19
-139 -68 -210 -108 -212 -119 -320 -174 -494 -249 -377 -163 -553 -261 -840
-469 -63 -46 -162 -106 -219 -134 -65 -31 -152 -87 -233 -147 -78 -59 -182
-125 -261 -166 -156 -82 -206 -117 -363 -259 -134 -121 -203 -175 -384 -294
-84 -56 -161 -118 -235 -191 -60 -59 -216 -191 -345 -293 -227 -180 -255 -206
-832 -784 -524 -526 -614 -621 -748 -788 -146 -184 -216 -282 -331 -468 -30
-48 -101 -143 -158 -210 -136 -159 -180 -219 -235 -322 -26 -46 -117 -180
-203 -297 -266 -361 -343 -481 -394 -610 -11 -29 -88 -183 -171 -341 -97 -186
-165 -331 -193 -410 -24 -67 -78 -209 -120 -316 -159 -403 -228 -640 -290
-1001 -19 -113 -45 -252 -56 -310 -20 -100 -21 -126 -16 -585 5 -472 14 -612
46 -732 6 -21 17 -102 25 -181 17 -159 123 -600 202 -840 90 -273 226 -542
474 -942 70 -113 158 -259 195 -325 156 -275 236 -360 555 -582 232 -161 1061
-656 1242 -741 57 -27 162 -85 233 -129 206 -126 498 -297 1095 -638 996 -569
1219 -704 1387 -842 137 -111 191 -148 448 -308 231 -144 282 -181 326 -236
18 -23 76 -70 128 -104 53 -35 116 -84 141 -110 25 -25 101 -90 170 -143 146
-114 289 -248 372 -350 33 -40 110 -114 171 -166 128 -107 311 -289 393 -391
36 -46 86 -133 144 -250 48 -99 120 -228 159 -287 139 -212 134 -195 217 -713
l28 -170 -17 -120 c-9 -66 -20 -176 -23 -245 -8 -146 -26 -214 -154 -576 -99
-277 -149 -384 -230 -492 -38 -49 -79 -121 -106 -182 -24 -56 -70 -138 -103
-184 -33 -45 -78 -121 -101 -168 -43 -90 -74 -127 -249 -293 -52 -49 -105
-113 -138 -165 -39 -60 -96 -126 -197 -225 -78 -77 -179 -187 -223 -245 -179
-231 -454 -506 -707 -708 -67 -52 -166 -139 -221 -192 -57 -54 -129 -113 -169
-135 -50 -29 -97 -71 -177 -157 -121 -129 -189 -178 -434 -313 -77 -43 -219
-124 -315 -180 -96 -56 -263 -153 -370 -215 -107 -62 -239 -144 -293 -183
-117 -83 -226 -131 -500 -217 -276 -87 -314 -101 -597 -212 -266 -105 -715
-258 -810 -277 -30 -6 -118 -17 -195 -25 -77 -8 -187 -26 -245 -40 -348 -81
-678 -106 -1425 -106 -435 0 -490 2 -585 20 -58 11 -197 33 -310 50 -113 17
-257 42 -320 56 -63 13 -173 31 -245 39 -103 12 -191 33 -426 100 -561 161
-813 253 -1179 434 -119 58 -283 138 -365 176 -83 39 -181 91 -220 117 -44 29
-172 146 -342 315 l-271 268 -21 69 c-45 146 -24 273 83 511 35 77 80 191 100
252 30 91 53 136 118 235 44 68 104 173 134 235 65 137 97 188 205 323 46 58
129 177 184 264 89 140 112 169 206 257 83 78 125 127 192 227 105 156 199
250 389 386 76 53 156 119 178 146 23 27 62 64 88 83 365 264 411 300 477 373
75 83 129 122 330 234 72 40 222 130 335 200 553 344 703 410 1460 645 681
212 958 323 1195 483 306 206 442 413 491 744 22 153 15 460 -15 638 -68 399
-187 727 -457 1260 -79 157 -177 356 -219 443 -60 126 -87 170 -132 220 -32
34 -110 139 -173 232 -73 108 -141 195 -186 240 -48 46 -107 124 -177 230
-116 177 -183 249 -312 335 -44 29 -134 94 -200 143 -140 105 -223 148 -356
181 -144 37 -282 50 -449 42 -168 -7 -295 -30 -446 -81 -139 -46 -237 -99
-372 -199 -59 -45 -186 -130 -282 -190 -326 -204 -402 -259 -497 -363 -61 -67
-114 -113 -173 -151 -53 -33 -133 -101 -210 -176 -77 -76 -231 -206 -400 -338
-359 -280 -392 -305 -675 -502 -171 -120 -269 -196 -340 -266 -55 -53 -143
-125 -195 -159 -118 -78 -135 -94 -227 -208 -40 -51 -105 -118 -144 -149 -38
-31 -185 -178 -325 -325 -140 -148 -267 -277 -282 -286 -15 -10 -49 -42 -77
-72 -78 -85 -126 -131 -197 -193 -46 -40 -130 -142 -272 -330 -393 -521 -549
-723 -616 -798 -81 -90 -266 -349 -475 -665 -229 -346 -279 -431 -341 -571
-32 -73 -98 -194 -152 -279 -122 -192 -152 -257 -201 -435 -22 -80 -70 -230
-106 -335 -200 -571 -208 -601 -225 -850 -11 -181 5 -2035 19 -2090 5 -22 31
-161 56 -310 25 -148 61 -335 80 -415 19 -80 39 -183 45 -230 14 -113 34 -178
80 -270 21 -43 51 -120 66 -171 44 -153 69 -194 247 -393 58 -65 163 -199 233
-299 176 -251 182 -258 292 -331 61 -40 134 -101 197 -166 56 -57 135 -125
180 -155 44 -29 105 -78 135 -110 39 -40 81 -70 145 -102 135 -68 584 -340
715 -433 136 -97 134 -96 219 -125 36 -13 188 -76 336 -140 494 -215 882 -358
1481 -549 258 -82 299 -92 885 -210 511 -103 639 -126 764 -135 83 -6 206 -20
275 -31 348 -55 521 -74 740 -81 124 -4 245 -12 270 -17 117 -27 366 -34 1090
-29 639 4 748 7 835 22 77 14 188 19 485 24 365 7 391 8 505 33 168 37 386 69
855 128 524 66 702 92 940 142 107 22 198 42 201 44 3 2 181 48 395 103 214
55 425 111 469 125 44 14 141 39 215 55 197 44 633 196 1116 389 111 45 239
91 285 102 152 39 263 90 707 327 140 75 356 184 480 243 275 130 356 170 447
223 38 22 108 57 155 77 47 20 229 126 405 235 599 371 700 432 860 517 154
82 376 216 535 321 42 27 144 117 230 202 85 83 196 183 245 220 50 38 189
166 310 285 161 159 245 233 311 277 50 33 129 91 175 127 46 37 117 83 158
104 65 32 84 37 166 40 125 6 220 -26 304 -102 55 -50 155 -215 341 -566 121
-229 154 -279 294 -446 64 -76 170 -218 236 -314 116 -171 125 -182 397 -451
265 -265 286 -282 448 -393 94 -63 226 -163 295 -222 179 -153 276 -216 610
-394 74 -40 234 -132 355 -205 275 -166 427 -243 583 -294 121 -41 184 -70
377 -176 87 -48 224 -96 1079 -381 l979 -326 286 7 c264 6 295 5 406 -14 181
-31 361 -41 785 -41 397 0 607 10 767 35 70 11 188 15 477 15 370 0 387 1 507
25 68 14 278 48 467 75 189 28 396 61 460 74 64 13 167 27 227 31 131 9 207
29 625 165 168 54 384 117 480 140 243 56 313 81 486 171 83 43 285 133 448
199 393 159 472 195 593 267 64 38 188 94 335 153 271 108 287 115 558 268
265 149 307 177 416 283 101 98 147 124 248 138 125 18 229 -16 296 -96 85
-103 161 -351 185 -608 9 -99 29 -217 59 -348 80 -346 123 -446 250 -572 156
-155 350 -231 913 -355 235 -52 287 -60 375 -60 67 0 140 -8 208 -22 93 -19
151 -22 510 -29 307 -5 426 -11 490 -23 59 -12 171 -18 366 -23 288 -6 469 4
624 33 61 11 248 14 1025 14 787 0 964 3 1033 15 178 31 355 36 1002 29 655
-7 833 -1 1031 32 53 9 195 19 324 23 225 7 232 8 350 43 248 74 426 161 557
270 142 118 297 474 415 948 l45 184 -5 381 c-6 482 -11 515 -130 842 -30 84
-65 165 -76 182 -12 16 -68 66 -124 110 -56 44 -138 110 -182 146 -56 46 -126
89 -235 144 -539 269 -593 317 -613 550 -12 141 -9 3147 4 3361 5 91 17 210
26 265 11 68 18 209 23 435 4 184 13 360 19 390 5 30 20 145 31 255 11 110 27
238 35 285 7 47 17 150 20 230 4 80 18 206 31 280 13 74 37 239 54 367 42 321
59 405 156 743 201 701 386 1177 589 1520 18 30 63 121 99 202 72 160 101 211
242 423 274 413 562 677 898 824 210 92 433 78 810 -50 261 -89 285 -103 609
-346 228 -171 352 -253 474 -310 120 -56 395 -148 483 -162 36 -6 180 -11 320
-11 277 0 392 -10 475 -41 111 -42 159 -96 190 -217 28 -110 58 -367 65 -567
6 -159 12 -225 33 -324 22 -102 27 -150 27 -270 0 -112 6 -179 25 -285 19
-108 25 -174 25 -287 0 -130 5 -176 41 -376 23 -125 47 -277 54 -338 8 -60 21
-146 30 -190 8 -44 31 -181 50 -305 19 -124 43 -272 54 -330 11 -58 23 -170
26 -250 4 -80 13 -181 20 -225 8 -44 25 -180 40 -302 14 -123 32 -260 40 -305
8 -46 15 -129 15 -184 0 -69 8 -141 25 -225 39 -192 61 -339 120 -804 55 -427
99 -722 135 -885 13 -60 20 -150 25 -305 5 -181 13 -258 41 -435 43 -265 62
-344 130 -532 193 -537 458 -1022 884 -1623 118 -166 145 -197 348 -395 159
-157 227 -230 245 -267 32 -62 73 -99 268 -238 107 -75 188 -143 264 -220 105
-106 117 -115 260 -191 82 -43 203 -117 270 -163 193 -136 243 -166 370 -220
66 -29 199 -95 296 -147 227 -121 326 -167 424 -194 44 -12 127 -47 185 -77
326 -173 322 -171 475 -212 83 -22 227 -69 320 -104 317 -120 868 -297 1000
-322 69 -13 183 -40 253 -59 121 -33 218 -55 646 -146 175 -37 201 -40 350
-40 99 0 196 -6 251 -16 120 -20 408 -29 510 -15 44 6 130 16 190 21 61 6 146
15 190 19 131 13 221 57 421 203 60 44 132 91 159 105 112 57 152 92 236 206
45 62 128 157 183 213 130 129 199 166 326 172 165 8 239 -43 383 -264 120
-184 203 -256 401 -350 139 -65 281 -111 433 -138 76 -13 217 -43 313 -65
l175 -41 6176 0 6175 0 110 45 109 45 968 0 967 0 116 -25 c64 -14 128 -25
143 -25 35 0 276 60 416 103 465 145 726 330 833 590 17 40 42 126 57 192 14
66 45 194 68 285 51 203 54 280 15 415 -20 68 -30 132 -38 260 l-12 170 -63
140 c-37 81 -74 182 -88 241 -31 127 -66 196 -181 359 -50 71 -111 170 -136
218 -44 87 -47 91 -123 137 -49 29 -101 72 -139 114 -73 81 -124 108 -265 142
-187 44 -550 143 -640 175 -222 78 -351 181 -416 330 -25 55 -44 130 -73 279
-9 47 -26 130 -39 185 -13 55 -44 214 -69 353 -91 499 -86 483 -463 1342 -72
162 -152 358 -178 435 -61 181 -94 261 -200 480 -133 275 -163 349 -201 490
-19 72 -53 180 -75 240 -95 258 -317 984 -334 1086 -8 57 -31 169 -50 249 -81
346 -144 683 -150 815 -5 82 -16 168 -32 235 -25 102 -25 111 -18 355 6 240 6
255 -18 385 -59 313 -61 670 -7 1005 12 76 21 200 25 340 7 213 8 225 46 377
51 200 98 341 164 496 94 216 181 331 295 388 106 53 279 42 544 -36 310 -91
554 -206 975 -460 108 -65 243 -140 301 -167 58 -27 152 -80 209 -117 176
-114 215 -130 526 -211 134 -36 145 -37 260 -32 187 8 351 62 640 212 460 237
672 424 787 694 29 69 33 89 39 221 4 80 8 255 8 389 1 259 -11 388 -51 531
-50 182 -224 647 -466 1240 -44 107 -98 259 -121 337 -51 172 -71 224 -199
518 -55 127 -125 305 -155 397 -66 197 -94 255 -199 410 -47 69 -104 172 -142
255 -133 292 -140 300 -331 394 -138 67 -271 113 -470 163 -115 28 -167 36
-290 41 -82 4 -200 15 -261 26 -294 49 -736 47 -1029 -6 -44 -8 -152 -19 -239
-26 -147 -10 -179 -16 -395 -75 -129 -36 -277 -71 -329 -80 -106 -17 -162 -36
-347 -121 -71 -33 -200 -86 -285 -117 -203 -76 -251 -104 -410 -237 -148 -123
-213 -169 -292 -200 -106 -42 -246 -19 -366 61 -51 35 -429 408 -592 586 -69
76 -147 131 -230 164 -51 20 -64 20 -5903 20 l-5852 1 -110 26 -110 27 -2205
6 c-2037 5 -2209 7 -2260 22 -142 44 -214 107 -247 216 -27 86 -22 270 10 452
23 126 27 181 31 425 4 225 8 302 25 390 17 92 20 152 21 365 0 190 4 277 16
340 25 135 30 430 9 575 -10 66 -21 221 -25 345 -5 149 -13 244 -23 280 -9 30
-18 107 -22 170 -6 101 -13 132 -56 259 -27 79 -58 189 -70 245 -25 118 -35
145 -94 247 -25 41 -65 124 -90 184 -97 230 -129 269 -299 349 -50 24 -144 69
-210 100 -65 31 -149 79 -186 106 -37 28 -89 60 -116 72 l-49 22 -1969 -3
-1969 -3 -86 -30 c-190 -66 -351 -171 -533 -347 -227 -219 -391 -471 -499
-766 -29 -80 -33 -102 -34 -205 -1 -63 -7 -152 -14 -197 -8 -50 -11 -114 -7
-165 4 -46 10 -211 15 -368 5 -201 13 -308 24 -364 10 -43 35 -214 57 -380 22
-166 48 -350 59 -411 11 -60 23 -146 26 -190 4 -44 20 -145 35 -225 16 -80 45
-282 65 -450 20 -168 50 -372 66 -455 20 -95 31 -180 31 -230 -1 -147 -60
-274 -155 -329 -61 -36 -137 -44 -352 -39 -186 4 -194 4 -340 -28 -139 -30
-169 -33 -400 -39 -224 -6 -274 -10 -480 -44 -126 -21 -279 -44 -340 -51 -121
-14 -462 -104 -710 -186 -192 -64 -613 -265 -722 -344 -127 -91 -192 -118
-298 -123 -107 -5 -157 7 -222 52 -47 34 -171 117 -328 222 -52 34 -151 123
-280 250 -109 108 -214 203 -232 210 -27 12 -294 14 -1570 14 -1560 0 -1761 4
-1953 38 -85 15 -246 17 -1588 19 l-1493 3 -76 -25 c-42 -15 -156 -67 -252
-116 -97 -49 -214 -101 -261 -115 -167 -51 -185 -71 -240 -273 -17 -62 -69
-207 -115 -322 -97 -238 -106 -269 -135 -469 -50 -342 -104 -467 -229 -523
-87 -39 -244 -17 -358 49 -23 14 -88 66 -145 115 -57 50 -240 190 -407 312
-199 145 -345 259 -420 330 -121 114 -199 167 -389 261 -250 125 -655 293
-811 336 -62 17 -192 60 -289 96 -97 35 -224 74 -282 85 -58 12 -184 50 -281
85 -219 78 -280 94 -549 138 l-215 35 -785 2 c-798 2 -888 -1 -1084 -37 -178
-33 -205 -34 -471 -28 -263 6 -273 6 -405 -20 -74 -14 -160 -26 -190 -26 -48
0 -547 -100 -719 -145 -31 -8 -128 -26 -216 -40 -131 -22 -204 -41 -400 -107
-522 -175 -831 -297 -1097 -436 -212 -111 -316 -163 -438 -221 -70 -34 -169
-96 -300 -190 -107 -77 -267 -184 -355 -238 -260 -159 -386 -247 -450 -313
-33 -34 -161 -135 -285 -225 -296 -215 -375 -279 -575 -467 -181 -171 -326
-295 -505 -433 -63 -48 -182 -155 -265 -236 -82 -81 -177 -164 -210 -185 -33
-20 -105 -80 -160 -132 -173 -165 -264 -209 -406 -199 -175 12 -255 84 -410
371 -43 79 -86 143 -129 190 -36 39 -108 134 -159 211 -69 103 -126 173 -216
265 -73 75 -145 159 -178 210 -86 134 -340 376 -627 600 -131 102 -288 235
-355 300 -122 119 -194 175 -825 633 -151 110 -326 243 -390 297 -134 113
-206 161 -500 330 -247 141 -443 265 -1195 755 -732 477 -919 596 -1059 672
-168 92 -204 115 -605 382 -196 131 -401 264 -456 296 -220 128 -266 158 -333
210 -168 131 -213 299 -162 599 32 189 74 324 204 656 164 417 186 459 312
597 44 48 116 135 159 193 226 301 456 553 585 641 51 34 136 109 215 189 100
101 168 159 295 250 743 530 1534 942 2325 1210 166 56 324 91 555 122 98 13
267 5 410 -21 63 -11 228 -32 365 -45 270 -27 377 -45 476 -77 138 -45 221
-105 267 -193 25 -47 27 -60 26 -166 0 -83 -6 -140 -22 -203 -12 -49 -29 -145
-37 -215 -21 -174 -43 -242 -115 -351 -33 -51 -87 -145 -119 -209 -108 -215
-232 -365 -564 -679 -210 -199 -265 -261 -371 -409 -72 -102 -113 -142 -203
-196 -54 -33 -146 -117 -388 -356 -310 -307 -318 -315 -355 -395 -21 -45 -70
-131 -109 -192 -101 -155 -140 -269 -162 -472 -19 -182 8 -393 80 -612 49
-150 252 -647 298 -731 78 -143 130 -181 313 -226 147 -35 188 -49 328 -111
82 -35 172 -66 265 -88 78 -19 264 -73 412 -120 149 -47 484 -151 745 -231
261 -80 615 -192 785 -249 180 -61 362 -116 434 -131 82 -17 165 -43 244 -76
156 -65 210 -80 282 -80 64 1 310 63 670 170 110 33 243 70 295 82 146 35 167
48 293 184 221 238 342 427 506 789 244 538 436 1089 800 2298 143 474 171
581 181 669 6 58 22 146 35 195 15 58 26 135 30 215 4 69 13 156 21 195 47
226 65 496 44 650 -6 50 -16 149 -20 220 -9 136 -27 259 -54 360 -26 102 -143
431 -255 717 -33 84 -83 230 -111 323 -66 219 -122 335 -269 559 -65 99 -158
251 -207 336 -235 416 -220 396 -430 610 -122 124 -205 217 -227 255 -24 40
-97 121 -219 241 -194 193 -217 210 -605 467 -104 68 -274 189 -380 268 -115
87 -232 166 -292 197 -143 75 -327 132 -652 202 -156 33 -300 65 -319 70 -19
5 -94 14 -165 20 -72 5 -187 21 -255 35 -322 62 -566 79 -1110 78 -245 -1
-490 -3 -545 -5 -55 -2 -147 0 -205 4 -84 5 -124 3 -200 -13z m-3332 -3234
c103 -31 156 -122 155 -265 -1 -89 -27 -177 -88 -305 -76 -159 -265 -429 -402
-577 -49 -52 -171 -202 -272 -334 -102 -131 -226 -282 -275 -334 -101 -106
-154 -198 -261 -450 -73 -172 -103 -231 -210 -415 -48 -82 -180 -330 -293
-550 -112 -220 -250 -483 -305 -585 -55 -102 -136 -252 -180 -335 -44 -82 -98
-179 -119 -214 -51 -83 -78 -152 -78 -201 0 -69 103 -247 279 -483 185 -248
537 -797 625 -976 63 -127 322 -515 415 -620 43 -49 109 -140 147 -203 54 -90
93 -139 193 -243 69 -72 161 -179 205 -238 98 -136 193 -230 282 -282 38 -22
103 -71 144 -111 41 -39 116 -98 165 -132 50 -33 115 -86 145 -117 44 -46 79
-69 175 -116 66 -32 183 -95 260 -140 77 -45 329 -184 560 -309 231 -125 502
-275 603 -333 101 -58 227 -124 280 -147 148 -65 178 -85 292 -195 68 -66 190
-164 346 -278 261 -190 313 -239 425 -400 49 -70 134 -166 269 -302 108 -110
237 -252 286 -315 49 -63 184 -230 299 -370 116 -140 250 -307 299 -370 49
-63 155 -183 235 -265 80 -83 177 -185 214 -228 38 -43 119 -119 180 -171 174
-145 314 -301 372 -416 12 -25 36 -92 53 -150 17 -58 83 -256 147 -440 64
-184 130 -384 146 -445 30 -109 64 -185 85 -192 17 -6 159 93 231 160 35 33
91 99 125 146 35 49 146 172 258 286 116 118 213 225 235 260 20 33 70 94 110
135 40 41 172 211 295 377 136 186 241 319 271 344 27 22 84 91 126 152 97
141 183 229 260 265 56 26 64 27 213 26 143 0 164 -3 275 -33 66 -19 165 -44
220 -58 124 -30 168 -54 313 -171 64 -52 161 -123 215 -159 101 -67 123 -90
223 -243 27 -41 98 -136 157 -210 60 -74 127 -166 150 -205 23 -38 46 -73 51
-77 30 -20 98 40 157 139 28 48 73 112 101 143 66 74 130 189 239 426 147 324
204 426 597 1064 281 456 369 591 493 756 182 243 366 418 617 586 203 136
337 232 427 307 156 130 239 171 349 171 123 0 217 -50 267 -143 32 -58 34
-68 33 -152 -1 -105 -26 -192 -106 -368 -123 -274 -160 -336 -333 -567 -55
-74 -134 -191 -175 -260 -61 -103 -93 -143 -176 -225 -71 -70 -151 -166 -264
-320 -89 -121 -192 -251 -229 -290 -67 -70 -207 -256 -293 -390 -64 -99 -98
-170 -189 -392 -107 -264 -124 -299 -286 -598 -164 -302 -193 -364 -264 -558
-69 -190 -109 -274 -283 -591 -164 -299 -218 -414 -265 -561 -19 -58 -73 -178
-131 -290 -116 -224 -140 -295 -180 -538 -17 -100 -47 -244 -66 -321 -19 -76
-55 -231 -80 -345 -25 -113 -56 -249 -69 -301 -14 -58 -28 -155 -35 -250 -6
-85 -20 -206 -32 -270 -16 -91 -22 -185 -29 -450 -5 -225 -13 -366 -24 -430
-13 -76 -17 -204 -21 -645 -6 -541 -5 -552 17 -665 18 -95 24 -165 29 -395 4
-175 13 -321 23 -390 9 -60 25 -200 36 -310 18 -183 59 -421 136 -781 13 -62
111 -379 219 -705 188 -570 199 -602 289 -779 115 -231 204 -374 283 -459 83
-90 106 -137 112 -233 3 -43 -1 -98 -7 -125 -31 -121 -117 -229 -202 -254 -69
-21 -247 -15 -369 10 -108 23 -421 125 -545 178 -187 80 -368 218 -763 582
-118 108 -255 224 -305 259 -51 34 -141 111 -202 171 -65 64 -132 120 -164
137 -36 19 -85 63 -150 133 -72 78 -124 123 -211 181 -129 87 -174 131 -279
275 -50 68 -175 203 -395 425 -313 316 -325 330 -436 494 -63 92 -166 229
-228 304 -164 196 -175 213 -257 415 -15 37 -63 118 -107 180 -137 193 -200
347 -313 772 -52 196 -66 264 -75 370 -6 75 -22 170 -36 225 -14 52 -28 128
-31 168 -4 46 -11 76 -19 79 -17 6 -61 -18 -114 -64 -25 -22 -92 -71 -150
-110 -70 -47 -128 -95 -172 -145 -48 -54 -123 -116 -265 -219 -166 -120 -222
-168 -348 -295 -82 -84 -193 -187 -245 -229 -199 -161 -411 -365 -955 -923
-114 -117 -183 -171 -257 -199 -53 -20 -263 -23 -324 -5 -125 37 -229 224
-259 467 -16 128 -102 557 -147 730 -17 66 -55 188 -85 270 -153 420 -545
1588 -603 1795 -30 110 -100 515 -115 670 -8 74 -23 184 -34 244 -17 91 -21
149 -21 337 0 124 -5 251 -10 280 -6 30 -24 175 -41 323 -16 148 -32 272 -35
277 -2 5 -11 91 -18 191 -13 167 -18 197 -60 342 -55 188 -124 374 -174 470
-49 93 -168 217 -316 328 -67 49 -188 156 -271 238 -90 88 -174 162 -211 184
-42 24 -102 79 -184 166 -96 102 -140 141 -205 180 -65 39 -109 78 -202 177
-87 93 -144 144 -218 194 -67 45 -141 109 -225 194 -80 81 -157 149 -215 187
-56 37 -147 117 -240 208 -163 159 -181 172 -555 393 -107 63 -253 158 -323
211 -78 59 -169 116 -230 146 -59 29 -173 100 -272 171 -93 66 -215 144 -270
171 -106 54 -164 92 -365 237 -69 50 -177 118 -241 151 -64 33 -168 97 -230
142 -188 136 -268 187 -374 240 -55 27 -169 99 -253 160 -84 60 -235 161 -335
225 -220 138 -306 203 -388 291 -196 209 -313 501 -490 1221 -38 157 -90 356
-114 441 -24 85 -62 229 -85 320 -61 245 -82 303 -204 550 -120 241 -150 320
-168 436 -14 89 -3 151 71 384 27 85 61 216 75 290 28 143 33 156 189 455 34
66 84 181 110 256 26 75 63 165 80 200 18 35 143 240 277 454 134 215 283 465
331 556 48 92 106 196 130 230 141 209 294 288 481 248 191 -41 353 -162 536
-400 45 -59 119 -140 164 -180 58 -53 125 -132 231 -274 136 -182 310 -433
364 -527 12 -21 27 -38 32 -38 14 0 39 89 56 200 8 52 22 241 30 420 14 309
21 386 45 509 5 29 10 104 10 166 0 120 13 212 37 260 8 16 180 197 383 400
343 346 379 386 553 610 102 132 209 263 237 290 29 28 98 111 153 185 400
532 727 886 1077 1163 69 54 166 141 215 192 72 74 100 96 140 110 28 9 64 23
80 30 41 19 140 18 203 0z m36902 -3676 c141 -22 251 -99 314 -219 73 -137 94
-292 98 -690 2 -233 1 -251 -25 -371 -16 -76 -27 -158 -27 -205 0 -44 -5 -97
-10 -119 -5 -22 -23 -130 -41 -240 -22 -143 -62 -323 -141 -635 -213 -844
-290 -1083 -478 -1480 -48 -102 -102 -219 -120 -260 -60 -138 -119 -247 -169
-314 -61 -80 -52 -83 76 -31 47 20 110 42 141 50 115 30 477 8 544 -33 48 -30
74 -60 100 -117 20 -44 23 -65 23 -180 0 -114 -3 -136 -22 -179 -23 -48 -23
-49 -5 -90 11 -22 43 -67 72 -99 67 -73 237 -227 250 -227 12 0 12 0 34 82 19
69 104 167 164 191 65 26 197 40 316 34 157 -8 204 -25 276 -97 106 -106 111
-154 103 -1000 -6 -650 0 -837 32 -1022 12 -65 15 -185 15 -548 0 -436 2 -470
21 -540 14 -53 24 -140 33 -295 8 -121 23 -274 34 -340 12 -66 35 -241 52
-388 17 -148 40 -317 50 -375 11 -59 20 -149 20 -201 0 -54 10 -150 24 -230
14 -75 28 -194 31 -266 4 -71 15 -164 25 -205 10 -41 21 -120 25 -175 3 -55
17 -155 31 -223 13 -67 42 -232 64 -365 23 -133 56 -321 75 -417 19 -96 39
-218 44 -270 6 -52 26 -178 46 -280 20 -102 42 -237 49 -300 8 -63 30 -182 49
-265 43 -183 84 -386 177 -875 88 -457 145 -734 199 -946 28 -112 44 -202 51
-295 6 -74 16 -153 21 -176 19 -89 39 -249 64 -513 24 -260 46 -435 65 -525 4
-22 11 -110 15 -195 4 -91 16 -210 31 -289 14 -79 24 -172 24 -227 0 -51 7
-126 15 -166 9 -40 34 -181 55 -313 22 -132 53 -305 69 -385 16 -80 35 -199
41 -265 17 -179 30 -221 145 -496 89 -211 117 -266 172 -343 82 -113 109 -171
123 -262 28 -183 -66 -375 -205 -414 -54 -15 -170 -9 -260 15 -115 30 -551
178 -705 240 -85 34 -204 77 -265 95 -148 43 -248 91 -414 200 -77 50 -171
104 -208 121 -252 113 -434 229 -547 349 -35 38 -108 135 -161 216 -54 82
-128 182 -164 224 -36 41 -125 164 -196 273 -72 108 -219 327 -328 485 -334
483 -526 790 -647 1033 -80 159 -113 215 -256 430 -57 86 -121 194 -142 241
-22 46 -67 121 -100 166 -91 123 -117 216 -158 572 -13 118 -31 256 -39 305
-8 50 -17 142 -20 205 -4 63 -17 169 -30 235 -35 179 -61 373 -100 750 -39
378 -65 571 -100 750 -13 66 -27 176 -30 245 -4 69 -18 184 -31 255 -13 72
-24 164 -24 206 0 42 -11 136 -25 210 -14 74 -25 166 -25 205 0 40 -9 115 -20
168 -50 246 -80 466 -135 1006 -54 530 -88 783 -135 1000 -10 47 -21 144 -25
215 -3 72 -15 177 -26 234 -11 57 -35 226 -54 375 -19 149 -44 318 -54 376
-11 58 -23 161 -26 230 -4 69 -18 184 -31 255 -13 72 -24 162 -24 202 0 39 -7
105 -15 145 -9 40 -34 215 -56 388 -21 173 -48 362 -58 420 -11 58 -22 159
-26 225 -3 66 -17 181 -30 255 -21 118 -24 170 -26 410 -2 329 5 456 37 655
29 178 41 216 150 488 45 114 101 273 124 354 22 81 68 212 102 292 118 282
124 315 84 441 -13 41 -36 145 -50 230 -41 243 -56 307 -97 424 -22 60 -60
189 -84 285 -56 225 -93 330 -220 626 -56 132 -128 321 -160 420 -31 99 -83
245 -116 325 -92 230 -111 302 -116 461 -5 111 -2 156 15 245 12 60 26 138 31
173 18 109 79 177 192 212 108 34 342 22 728 -37 202 -30 390 -90 596 -188
217 -104 281 -151 498 -365 110 -108 216 -221 237 -251 84 -123 92 -108 101
185 6 187 11 241 37 360 44 214 87 292 187 343 45 24 91 27 185 11z m14275
-5044 c72 -8 229 -19 350 -24 206 -9 229 -12 355 -46 291 -78 556 -175 736
-269 154 -80 240 -142 343 -244 56 -57 97 -90 102 -85 6 6 1 76 -12 179 -23
186 -20 259 12 335 24 56 80 112 134 135 60 27 312 32 425 9 47 -9 142 -22
212 -29 146 -15 214 -41 283 -111 63 -63 75 -109 75 -292 0 -110 6 -186 20
-266 29 -161 40 -352 40 -682 0 -246 3 -306 20 -395 11 -58 31 -184 45 -280
36 -247 62 -387 96 -522 84 -336 171 -548 225 -548 8 0 48 22 91 49 86 55 76
43 303 361 84 118 176 240 205 270 29 30 83 100 121 155 119 175 211 289 308
383 80 78 102 93 151 107 78 23 223 23 300 0 117 -34 164 -76 201 -175 24 -68
30 -253 11 -380 -9 -58 -19 -170 -23 -250 -3 -80 -12 -174 -19 -210 -19 -90
-40 -261 -69 -555 -14 -137 -35 -303 -46 -368 -12 -74 -20 -164 -20 -239 0
-93 -5 -141 -24 -216 -20 -79 -26 -135 -31 -302 -5 -149 -14 -241 -31 -335
-17 -94 -24 -166 -24 -260 0 -101 -5 -145 -20 -195 -40 -130 -42 -168 -20
-292 11 -62 29 -189 40 -283 11 -93 27 -206 35 -250 8 -44 17 -114 21 -155 3
-41 19 -129 35 -195 15 -66 71 -316 124 -555 106 -478 187 -808 246 -1001 21
-69 57 -208 79 -310 38 -172 77 -296 335 -1089 40 -124 76 -249 80 -279 7 -53
32 -132 139 -434 31 -87 63 -191 72 -230 9 -40 54 -164 99 -277 259 -642 420
-1121 499 -1475 30 -137 82 -360 115 -495 32 -135 79 -331 105 -436 25 -104
64 -251 86 -325 23 -74 56 -210 75 -302 37 -188 57 -236 174 -435 131 -221
157 -299 149 -453 -7 -125 -34 -196 -102 -264 -66 -67 -119 -85 -244 -85 -111
0 -256 20 -439 61 -73 16 -159 29 -190 29 -32 0 -150 16 -263 35 -113 19 -230
35 -261 35 -127 0 -567 182 -885 366 -165 95 -322 205 -482 337 -192 159 -662
486 -1169 815 -253 163 -317 268 -422 691 -22 86 -76 264 -120 395 -97 288
-151 465 -271 901 -174 629 -211 752 -370 1240 -123 377 -237 745 -420 1355
-93 311 -254 851 -359 1200 -193 647 -312 1031 -426 1380 -35 107 -73 245 -85
305 -12 61 -44 180 -71 265 -28 85 -108 355 -180 599 -72 245 -175 585 -229
755 -55 171 -151 484 -215 696 -197 654 -321 1055 -400 1300 -41 129 -94 312
-116 405 -59 246 -91 352 -170 568 -39 106 -83 239 -96 297 -14 58 -39 155
-56 215 -16 61 -39 142 -49 180 -23 83 -27 214 -8 270 38 116 147 194 320 231
78 16 254 12 445 -11z m-4260 -108 c28 -9 70 -33 93 -52 90 -78 164 -304 177
-540 3 -71 15 -164 25 -205 11 -46 21 -136 25 -230 4 -85 15 -204 26 -265 10
-60 30 -218 44 -350 26 -252 53 -454 62 -469 3 -4 11 -101 18 -215 16 -253 37
-409 74 -549 16 -59 96 -366 179 -682 83 -316 173 -656 201 -755 27 -99 70
-285 96 -413 28 -143 73 -320 115 -460 38 -126 132 -481 209 -790 78 -308 161
-630 185 -714 46 -160 62 -229 97 -417 11 -63 36 -166 55 -228 56 -185 88
-308 179 -693 48 -200 105 -423 126 -495 22 -71 61 -227 88 -345 27 -118 55
-228 61 -245 6 -16 52 -187 102 -380 49 -192 115 -429 145 -525 163 -515 421
-1451 479 -1740 26 -124 80 -342 121 -485 41 -143 137 -505 213 -805 76 -300
168 -653 205 -785 98 -359 109 -414 109 -590 1 -119 -3 -160 -17 -201 -20 -59
-75 -127 -121 -151 -123 -64 -359 -66 -671 -7 -71 14 -188 34 -260 45 -177 26
-243 48 -424 139 -86 43 -201 92 -256 108 -118 37 -210 91 -375 222 -226 178
-347 266 -455 330 -62 37 -133 89 -165 121 -63 62 -239 182 -552 373 -114 70
-251 161 -305 204 -54 42 -145 105 -203 141 -164 100 -211 134 -271 198 -94
99 -118 160 -164 427 -14 82 -45 217 -70 300 -56 191 -86 319 -175 740 -39
187 -87 401 -106 475 -19 74 -43 193 -55 265 -11 72 -29 161 -39 197 -43 145
-196 809 -223 969 -8 47 -42 193 -75 325 -124 497 -166 674 -187 805 -12 74
-50 241 -83 370 -80 307 -138 557 -282 1228 -149 686 -192 875 -282 1222 -39
151 -79 326 -89 389 -10 63 -32 171 -49 240 -16 69 -51 221 -76 336 -25 116
-59 257 -75 315 -72 261 -122 524 -224 1185 -31 198 -77 461 -102 585 -25 124
-52 275 -58 335 -13 111 -88 468 -150 715 -33 132 -71 246 -155 464 -75 195
-107 365 -97 516 5 82 46 286 68 342 13 32 83 99 127 122 88 46 257 58 417 30
50 -8 158 -21 240 -29 177 -16 301 -49 678 -181 472 -165 490 -174 693 -326
56 -41 142 -99 190 -128 118 -71 201 -127 244 -163 20 -18 36 -25 38 -18 2 6
-25 95 -60 198 l-63 188 1 120 c1 156 10 186 81 263 63 68 90 81 188 82 28 1
59 6 70 11 34 15 412 4 470 -14z m-20552 -22 c117 -47 169 -140 169 -300 0
-82 -8 -119 -86 -402 -76 -274 -86 -322 -86 -395 0 -55 -9 -118 -26 -188 -25
-97 -27 -129 -35 -420 -6 -247 -11 -329 -25 -380 -15 -58 -18 -137 -21 -687
-3 -543 -2 -623 11 -623 26 0 111 108 195 248 l83 138 313 307 c366 358 433
407 554 407 52 0 174 -40 205 -68 60 -55 75 -87 86 -186 11 -93 10 -100 -20
-214 -57 -213 -143 -413 -286 -663 -59 -104 -122 -234 -170 -350 -41 -101
-124 -285 -184 -409 -60 -124 -116 -252 -126 -285 -9 -33 -27 -81 -40 -107
-13 -26 -24 -51 -24 -57 0 -5 33 -17 73 -26 202 -49 256 -128 244 -355 -4 -63
-16 -153 -27 -200 -12 -47 -50 -219 -86 -383 -36 -164 -76 -339 -89 -390 -13
-51 -29 -129 -35 -175 -6 -46 -33 -167 -60 -270 -68 -257 -154 -635 -250
-1097 -44 -214 -111 -539 -150 -720 l-70 -330 0 -2920 c0 -1937 -4 -2941 -10
-2983 -25 -150 -96 -256 -190 -282 -77 -22 -231 -16 -375 13 -71 14 -209 38
-305 52 -96 15 -204 33 -240 40 -36 7 -103 16 -150 20 -151 13 -302 76 -555
232 -72 44 -189 106 -260 137 -138 62 -220 112 -325 199 -127 107 -958 723
-1115 827 -233 155 -312 236 -369 374 -21 51 -21 53 -27 1856 l-5 1805 -24
100 c-23 100 -23 103 -27 944 -2 474 -8 840 -13 835 -5 -5 -27 -74 -50 -154
-23 -80 -71 -237 -107 -350 -35 -113 -89 -299 -119 -413 -78 -302 -106 -357
-320 -623 -76 -96 -162 -216 -208 -295 -100 -169 -169 -269 -360 -522 -232
-307 -314 -424 -647 -918 -548 -815 -408 -651 -1424 -1670 -636 -637 -891
-887 -920 -900 -70 -31 -166 -41 -333 -36 -180 5 -218 14 -273 65 -98 88 -132
256 -94 467 18 98 21 625 4 773 -13 117 -47 284 -99 487 -21 83 -41 184 -45
225 -3 41 -28 190 -55 330 -27 140 -52 298 -55 350 -4 52 -17 151 -30 220 -37
199 -49 338 -49 595 0 332 27 590 99 950 18 94 37 211 40 260 6 82 65 421 100
570 27 118 54 353 60 520 4 94 13 208 22 255 9 51 18 199 23 370 5 157 13 305
19 330 19 85 33 366 28 585 -3 176 -9 243 -27 335 -22 110 -23 139 -25 645 -2
486 -12 698 -32 745 -4 8 -10 164 -13 347 l-5 332 -82 163 c-45 90 -98 210
-118 268 -20 58 -70 169 -111 245 -119 222 -197 386 -277 585 -100 246 -151
354 -316 664 -95 177 -153 300 -181 381 -23 66 -64 163 -90 216 -72 142 -93
220 -88 327 4 108 22 146 98 212 54 47 62 50 151 66 75 13 104 14 151 4 85
-16 221 -63 402 -139 88 -37 198 -80 242 -95 69 -23 96 -39 178 -107 53 -43
160 -125 239 -181 187 -135 327 -248 462 -374 61 -56 151 -133 200 -170 50
-36 168 -144 264 -238 144 -142 200 -206 331 -381 87 -115 193 -244 235 -285
137 -133 340 -416 575 -805 73 -121 205 -330 293 -465 88 -135 219 -337 292
-450 72 -113 159 -245 193 -293 33 -49 66 -105 73 -125 6 -21 49 -117 95 -214
47 -98 127 -273 179 -390 52 -116 130 -277 174 -357 43 -80 89 -175 102 -211
31 -90 35 -93 91 -76 57 17 94 42 178 122 36 34 106 88 155 119 116 74 152
108 237 230 52 73 144 174 339 370 186 187 273 282 285 310 15 37 17 113 15
885 -2 828 4 1068 31 1179 8 32 13 386 18 1146 5 929 8 1106 20 1140 21 57
139 179 188 193 96 29 554 -3 817 -58 50 -10 129 -21 177 -24 68 -5 115 -16
215 -52 70 -25 184 -66 253 -91 69 -24 182 -57 252 -73 155 -35 195 -52 301
-128 45 -33 165 -101 267 -152 230 -115 336 -183 422 -271 36 -38 71 -69 77
-69 10 0 14 18 51 220 46 250 79 311 264 496 128 128 180 165 286 202 80 28
147 25 243 -13z m15839 -1478 c139 -68 187 -192 234 -598 14 -126 40 -289 59
-374 19 -82 57 -269 85 -415 89 -463 141 -711 181 -866 22 -87 48 -222 59
-315 12 -96 37 -226 60 -314 55 -210 96 -396 195 -882 80 -396 111 -527 249
-1058 29 -115 97 -386 150 -602 53 -215 118 -466 146 -557 27 -91 61 -229 75
-308 15 -81 52 -223 85 -328 89 -282 214 -710 379 -1300 137 -488 151 -546
161 -660 6 -69 21 -181 35 -250 13 -69 40 -221 60 -337 19 -117 42 -241 49
-275 8 -35 17 -110 21 -168 4 -58 26 -213 50 -345 24 -132 49 -283 55 -335 14
-124 78 -326 145 -460 29 -58 60 -130 69 -160 21 -69 20 -181 0 -251 -47 -157
-191 -370 -402 -591 -53 -57 -134 -149 -179 -204 -93 -115 -144 -163 -212
-196 -39 -19 -62 -23 -151 -23 -91 0 -111 3 -148 23 -63 34 -124 93 -196 192
-35 47 -87 106 -115 129 -35 29 -70 74 -106 135 -61 105 -73 117 -175 181 -41
26 -100 71 -130 101 -95 92 -210 131 -530 179 -355 53 -466 78 -561 126 -81
40 -115 72 -149 142 -43 88 -65 185 -95 418 -14 112 -39 263 -55 334 -40 184
-62 312 -120 705 -28 190 -66 422 -85 515 -18 94 -36 213 -40 265 -4 52 -25
194 -47 315 -22 121 -46 272 -53 335 -8 63 -30 192 -49 285 -20 94 -63 332
-96 530 -77 453 -104 607 -140 770 -15 72 -31 168 -35 215 -4 47 -13 112 -20
145 -7 33 -30 155 -50 270 -19 116 -51 289 -70 385 -51 256 -67 405 -75 690
l-7 255 -76 295 c-90 350 -139 585 -167 810 -26 205 -43 309 -80 475 -15 72
-31 175 -35 230 -3 55 -17 156 -30 225 -13 69 -40 222 -60 340 -20 118 -40
232 -46 253 -6 21 -16 91 -24 155 -25 217 -83 586 -119 757 -85 412 -94 641
-32 736 50 74 172 123 351 139 55 5 152 16 215 24 63 8 216 22 340 31 124 9
276 25 338 36 85 14 164 19 305 19 162 1 200 4 242 20 41 15 75 18 180 17 121
-2 134 -4 187 -30z m-28029 -81 c32 -13 83 -43 113 -67 70 -54 300 -299 401
-428 42 -53 117 -139 168 -191 50 -52 115 -129 142 -171 28 -41 96 -122 150
-180 54 -57 141 -151 193 -209 253 -280 387 -414 500 -498 140 -105 306 -269
338 -334 53 -109 52 -63 52 -1714 l0 -1531 -29 -144 c-22 -109 -30 -187 -36
-319 -5 -131 -14 -212 -35 -320 -16 -80 -52 -293 -80 -475 -28 -181 -64 -393
-80 -470 -16 -77 -34 -167 -40 -200 -7 -33 -16 -184 -20 -335 -9 -311 -36
-514 -105 -804 -31 -130 -45 -168 -74 -211 -20 -29 -447 -460 -949 -956 -794
-787 -995 -990 -1315 -1329 -110 -117 -210 -143 -383 -100 -300 74 -544 219
-958 569 -83 70 -194 161 -246 203 -105 84 -159 138 -279 278 -112 130 -161
169 -399 311 -323 193 -422 276 -459 382 -16 48 -18 97 -18 582 0 513 1 534
24 670 23 135 24 165 30 790 3 358 9 655 13 660 3 6 18 118 33 250 14 132 32
278 40 325 8 47 17 141 20 210 6 108 18 174 92 485 46 198 102 432 125 520 22
88 46 210 54 270 7 61 22 171 33 245 11 74 30 248 41 385 44 544 74 678 210
945 148 289 295 473 789 991 123 129 270 288 325 354 56 66 180 201 277 300
155 159 337 371 482 561 83 111 267 397 306 479 30 63 55 96 113 152 44 42 87
74 104 78 16 4 34 8 39 10 6 2 62 4 125 4 99 0 123 -3 173 -23z m36020 -3342
c50 -17 108 -72 150 -145 44 -76 143 -341 197 -526 28 -98 166 -522 305 -943
140 -421 349 -1060 465 -1420 116 -360 251 -776 300 -925 49 -148 96 -309 105
-357 9 -50 86 -297 181 -575 90 -268 182 -559 204 -648 22 -88 65 -230 96
-315 111 -305 226 -657 254 -780 36 -156 35 -153 108 -340 109 -284 136 -384
151 -556 13 -157 4 -209 -44 -268 -21 -26 -61 -60 -89 -74 -46 -24 -61 -27
-151 -26 -231 1 -524 105 -650 231 -75 75 -109 151 -135 296 -12 66 -30 147
-40 180 -71 232 -124 432 -146 552 -13 77 -47 212 -74 300 -88 287 -120 408
-146 547 -13 75 -54 239 -90 365 -35 125 -144 543 -240 928 -97 385 -205 801
-240 925 -36 124 -112 430 -170 680 -58 250 -116 491 -130 534 -14 44 -59 206
-100 360 -41 155 -93 344 -114 421 -22 77 -49 196 -60 265 -11 73 -46 215 -84
340 -106 357 -136 517 -136 735 l0 121 63 67 62 67 76 0 c42 0 96 -7 122 -16z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 32 KiB

View File

@@ -1,11 +0,0 @@
<footer class="p-2 px-6">
<hr class="border-t-2 border-light-secondary dark:border-dark-secondary-secondary">
<div class="flex flex-col items-center mb-8 lg:mb-0 p-3">
<a href="{{ path('home_index') }}" class="text-3xl font-bold leading-none">
{% include "base/banner-svg.html.twig" with {'classes': 'h-12 fill-gray-700 dark:fill-light-font'} %}
</a>
<p class="mt-2 text-sm text-center text-gray-700 dark:text-light-font">
© {{ 'now'|date('Y') }} ENI Sortir. Tous droits réservés.
</p>
</div>
</footer>

View File

@@ -1,174 +0,0 @@
<svg class="{{ classes }}" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 3000.000000 3000.000000"
preserveAspectRatio="xMidYMid meet">
<g transform="translate(0.000000,3000.000000) scale(0.100000,-0.100000)" stroke="none">
<path d="M21465 29200 c-331 -7 -503 -37 -1085 -187 -96 -25 -308 -78 -470
-119 -162 -40 -363 -91 -445 -113 -168 -45 -930 -297 -1130 -374 -71 -28 -227
-83 -345 -122 -118 -40 -269 -95 -335 -122 -66 -27 -147 -60 -180 -73 -33 -12
-148 -68 -255 -123 -107 -56 -238 -121 -290 -146 -280 -135 -635 -314 -710
-359 -47 -27 -161 -101 -255 -164 -93 -62 -201 -131 -240 -152 -38 -22 -142
-87 -230 -146 -88 -58 -198 -127 -245 -152 -123 -67 -381 -255 -509 -371 -36
-33 -93 -78 -126 -100 -33 -22 -82 -59 -110 -82 -27 -23 -79 -61 -115 -85 -36
-24 -103 -80 -150 -125 -47 -45 -121 -108 -165 -140 -44 -32 -125 -101 -180
-154 -55 -54 -129 -117 -165 -140 -93 -62 -1212 -1179 -1287 -1285 -31 -43
-82 -106 -113 -140 -65 -71 -185 -231 -323 -431 -53 -77 -144 -201 -202 -275
-57 -74 -148 -200 -202 -280 -53 -80 -121 -175 -151 -212 -29 -37 -128 -179
-219 -315 -153 -230 -180 -278 -367 -653 -112 -223 -217 -439 -234 -480 -118
-281 -311 -846 -338 -989 -9 -47 -31 -151 -51 -231 -19 -80 -41 -193 -48 -253
-8 -59 -23 -135 -32 -170 -16 -56 -18 -116 -18 -617 0 -497 2 -561 17 -616 10
-34 23 -97 28 -140 30 -220 95 -517 150 -689 22 -66 46 -151 55 -190 9 -38 31
-106 50 -150 18 -44 61 -149 95 -233 83 -211 109 -261 318 -607 64 -104 145
-242 182 -305 114 -196 182 -286 328 -428 75 -74 157 -148 182 -165 25 -17 72
-52 105 -77 76 -60 328 -212 465 -280 58 -29 148 -80 200 -115 52 -34 136 -83
185 -110 50 -26 128 -71 175 -100 47 -28 130 -76 185 -105 55 -29 134 -74 175
-100 41 -26 134 -79 205 -117 72 -38 166 -92 210 -120 107 -67 297 -178 420
-245 97 -53 373 -218 485 -290 30 -19 89 -52 130 -73 76 -38 257 -142 385
-221 39 -24 103 -63 144 -86 40 -24 113 -69 162 -100 48 -31 123 -76 166 -99
88 -48 237 -148 333 -225 36 -28 195 -138 353 -244 159 -106 314 -216 345
-245 32 -28 100 -83 152 -121 52 -39 102 -79 110 -89 8 -10 65 -55 125 -100
82 -61 218 -189 536 -506 256 -254 444 -450 471 -489 25 -36 86 -141 135 -235
50 -93 110 -201 135 -240 83 -128 119 -213 159 -374 50 -195 83 -459 76 -591
-22 -387 -34 -459 -113 -703 -95 -291 -192 -508 -299 -672 -29 -44 -75 -126
-103 -182 -28 -55 -75 -139 -105 -185 -29 -45 -73 -119 -98 -163 -33 -60 -78
-114 -185 -225 -77 -80 -167 -181 -199 -225 -32 -44 -115 -138 -183 -210 -69
-71 -156 -172 -194 -223 -103 -137 -676 -709 -803 -802 -55 -40 -134 -105
-175 -145 -41 -39 -104 -91 -140 -115 -36 -24 -119 -96 -185 -160 -131 -127
-225 -194 -505 -359 -96 -57 -221 -132 -276 -167 -56 -34 -144 -84 -195 -109
-52 -26 -130 -71 -174 -99 -44 -29 -107 -67 -140 -86 -33 -18 -93 -56 -134
-83 -90 -60 -164 -95 -295 -136 -55 -18 -141 -50 -193 -72 -51 -22 -182 -70
-290 -108 -109 -37 -254 -91 -323 -118 -69 -28 -179 -67 -245 -88 -66 -20
-212 -67 -325 -105 -139 -47 -234 -72 -295 -80 -111 -14 -315 -52 -455 -85
-58 -13 -152 -27 -210 -30 -58 -4 -157 -16 -220 -28 -111 -21 -139 -22 -795
-22 -658 0 -684 1 -790 22 -60 12 -148 24 -195 28 -47 4 -123 15 -170 26 -142
33 -329 69 -440 85 -138 19 -313 66 -655 174 -577 183 -729 239 -910 335 -66
35 -179 90 -252 123 -153 70 -312 157 -398 217 -33 24 -173 155 -311 291 -307
305 -299 291 -299 489 0 166 9 202 95 385 32 69 73 166 91 215 39 111 50 133
159 315 47 80 108 186 134 235 26 50 87 146 136 215 50 69 127 179 171 245
112 164 194 267 279 350 39 39 104 115 142 170 84 119 311 346 432 432 45 31
109 83 143 115 35 31 90 76 123 98 33 23 88 66 123 97 34 30 100 82 147 115
47 33 123 97 170 143 87 84 229 185 380 270 47 26 155 93 240 148 103 68 261
155 475 262 273 138 349 171 520 229 110 38 252 89 315 113 63 25 167 60 230
78 357 103 728 239 945 348 283 141 506 334 614 530 86 157 102 205 113 342
14 160 14 277 1 475 -12 182 -29 263 -102 505 -27 88 -61 205 -75 260 -19 71
-61 171 -143 340 -163 337 -430 861 -467 917 -41 62 -150 207 -207 277 -25 31
-64 85 -88 119 -24 35 -70 93 -103 130 -33 36 -74 86 -91 111 -71 105 -237
319 -278 359 -24 24 -73 64 -109 90 -36 25 -96 72 -135 103 -211 170 -285 201
-635 265 l-195 36 -175 -33 c-187 -34 -381 -94 -501 -154 -38 -20 -164 -99
-280 -176 -116 -77 -237 -153 -268 -168 -31 -16 -81 -48 -111 -71 -30 -23 -89
-67 -130 -98 -41 -30 -121 -100 -177 -153 -56 -54 -140 -124 -185 -156 -46
-32 -135 -107 -198 -168 -63 -61 -146 -133 -185 -160 -38 -27 -108 -85 -155
-130 -47 -44 -155 -129 -240 -189 -85 -59 -191 -135 -236 -169 -45 -34 -182
-136 -305 -227 -123 -91 -265 -204 -317 -252 -51 -48 -130 -113 -175 -145
-109 -76 -1312 -1281 -1391 -1393 -29 -41 -77 -102 -107 -134 -30 -32 -81 -96
-114 -141 -120 -164 -232 -310 -255 -330 -12 -11 -53 -64 -91 -117 -38 -53
-86 -117 -107 -141 -37 -44 -140 -181 -196 -261 -16 -22 -55 -75 -86 -116 -78
-102 -280 -401 -321 -475 -18 -33 -77 -126 -130 -206 -53 -81 -131 -216 -174
-300 -43 -85 -104 -194 -135 -244 -32 -49 -76 -128 -100 -175 -48 -95 -339
-956 -397 -1175 l-38 -140 -3 -965 c-3 -984 3 -1246 34 -1395 8 -38 19 -104
25 -145 11 -82 49 -270 109 -540 22 -96 46 -210 55 -253 9 -42 31 -114 50
-158 19 -44 45 -113 56 -152 29 -96 79 -194 132 -259 24 -29 75 -96 115 -148
40 -52 96 -122 124 -156 29 -33 74 -90 100 -125 210 -282 217 -291 311 -357
45 -31 132 -104 192 -163 61 -58 146 -132 190 -164 44 -32 107 -83 141 -114
33 -31 100 -78 150 -105 49 -28 118 -69 154 -92 36 -23 151 -92 255 -154 105
-62 246 -148 314 -193 74 -48 181 -106 270 -145 276 -122 516 -224 636 -272
66 -26 149 -60 185 -75 103 -44 732 -253 875 -290 72 -19 171 -48 220 -65 129
-44 215 -63 845 -189 427 -86 562 -109 680 -116 58 -3 155 -17 215 -29 64 -14
166 -26 245 -30 74 -3 164 -13 200 -21 41 -10 157 -19 310 -25 176 -6 274 -15
348 -29 98 -20 136 -21 907 -21 780 0 807 1 907 21 90 19 154 22 503 29 241 5
417 12 443 19 24 6 100 18 170 26 70 8 168 23 217 34 50 11 126 22 170 26 44
3 127 15 185 25 58 10 141 22 185 25 44 3 127 15 185 25 58 10 139 21 180 25
41 3 125 15 185 25 61 10 151 26 200 34 85 14 483 110 790 190 77 20 230 58
340 86 452 111 737 198 933 281 62 27 179 69 260 95 81 25 217 74 302 109 85
35 191 74 235 88 44 14 103 34 130 45 85 34 1746 865 1820 912 105 65 371 225
540 324 83 49 186 112 230 139 44 28 112 68 150 90 39 22 120 70 180 107 118
72 222 134 350 211 229 136 281 174 420 310 77 75 176 162 220 194 44 32 188
164 320 295 132 130 272 259 311 286 46 31 157 137 309 294 l237 245 242 360
242 360 129 285 c95 211 138 320 166 420 l38 135 26 509 c17 312 23 512 18
517 -18 18 -300 -188 -437 -318 -45 -44 -111 -99 -146 -123 -36 -24 -92 -69
-126 -100 -34 -31 -99 -83 -145 -115 -48 -33 -147 -122 -229 -205 -86 -87
-179 -170 -230 -205 -63 -43 -213 -186 -590 -560 -278 -276 -518 -511 -535
-522 -51 -35 -131 -53 -236 -53 -141 0 -189 13 -248 66 -93 83 -138 182 -167
362 -8 53 -24 140 -35 192 -10 52 -26 144 -34 205 -28 205 -97 424 -595 1907
-152 453 -205 644 -234 843 -9 60 -23 134 -31 165 -8 30 -21 116 -29 190 -9
74 -23 167 -31 205 -11 49 -19 160 -25 365 -6 219 -13 310 -25 355 -10 37 -19
132 -25 245 -5 103 -17 234 -29 295 -11 61 -23 159 -26 218 -4 60 -15 141 -25
180 -37 141 -162 504 -206 596 -40 86 -55 105 -157 206 -61 61 -150 138 -197
170 -47 33 -148 120 -225 195 -77 75 -176 163 -220 195 -44 32 -136 113 -205
180 -69 67 -161 148 -205 180 -44 32 -136 113 -205 180 -69 67 -161 149 -205
181 -44 32 -141 117 -215 189 -74 72 -173 157 -219 189 -46 32 -145 118 -220
190 -135 131 -222 197 -356 271 -38 21 -209 132 -380 245 -170 113 -341 224
-380 245 -38 21 -171 105 -295 185 -124 81 -252 162 -285 180 -33 19 -159 100
-280 181 -121 80 -258 168 -305 194 -47 27 -170 105 -275 175 -104 70 -228
149 -275 175 -47 27 -177 110 -290 184 -113 74 -253 163 -313 197 -224 130
-381 255 -471 375 -154 205 -300 618 -497 1408 -155 619 -219 820 -351 1096
-50 105 -101 216 -114 247 -58 136 -57 286 0 463 19 61 58 202 86 315 49 199
53 211 155 420 57 118 122 262 143 320 48 130 115 264 197 395 34 55 77 127
96 160 18 33 54 92 79 130 26 39 64 102 85 140 21 39 55 95 75 125 20 30 52
82 70 115 227 405 351 579 448 627 42 21 60 23 177 22 155 0 184 -9 325 -104
119 -80 223 -179 310 -295 36 -49 114 -140 172 -202 58 -61 121 -133 139 -160
18 -26 62 -86 99 -133 37 -47 124 -170 193 -275 151 -227 172 -254 186 -240 6
6 15 51 21 100 5 50 17 115 26 145 13 42 18 128 24 370 6 247 12 339 28 425
11 61 23 166 26 235 7 140 26 236 58 289 12 20 177 194 368 386 200 201 365
377 389 413 23 34 81 104 129 155 48 51 113 130 145 175 31 44 83 109 115 144
32 35 80 94 107 131 26 38 69 92 95 120 25 29 78 95 117 147 39 52 92 115 118
140 26 25 78 90 117 145 53 76 134 163 337 364 153 152 306 293 361 334 52 39
134 108 183 154 146 138 215 173 342 173 89 0 123 -11 170 -52 70 -62 80 -86
80 -208 0 -120 -21 -200 -85 -335 -63 -130 -308 -477 -435 -614 -28 -32 -71
-86 -95 -121 -24 -35 -78 -100 -120 -145 -42 -44 -103 -115 -135 -159 -32 -43
-89 -113 -128 -155 -102 -111 -131 -161 -312 -526 -90 -181 -192 -373 -225
-425 -34 -52 -187 -345 -340 -651 -153 -306 -309 -605 -345 -664 -37 -59 -112
-199 -167 -309 l-100 -202 31 -79 c58 -149 145 -284 397 -617 72 -95 148 -204
170 -243 21 -38 66 -113 99 -167 33 -53 79 -129 103 -170 164 -283 420 -676
532 -818 37 -47 104 -141 150 -210 54 -81 121 -164 190 -235 58 -60 126 -139
150 -175 60 -90 249 -280 345 -347 43 -31 106 -82 140 -112 33 -31 96 -83 140
-115 44 -33 103 -80 131 -107 59 -55 129 -101 231 -153 40 -20 119 -65 177
-100 57 -36 218 -122 358 -192 139 -69 285 -147 323 -172 39 -25 171 -98 295
-162 124 -64 257 -138 297 -163 40 -26 143 -84 230 -129 196 -101 228 -122
328 -218 44 -42 116 -103 160 -135 44 -32 110 -84 147 -116 36 -31 95 -76 130
-100 85 -57 201 -176 271 -276 32 -47 143 -170 260 -290 112 -114 230 -244
262 -288 32 -44 93 -116 135 -160 42 -44 96 -109 120 -144 23 -35 71 -95 107
-133 35 -39 85 -100 110 -137 26 -36 83 -104 128 -151 44 -47 105 -121 136
-165 38 -54 179 -203 436 -461 208 -209 400 -410 426 -446 63 -88 82 -133 175
-419 86 -264 298 -884 307 -900 8 -12 28 -1 130 72 126 90 223 197 273 302 54
114 153 533 222 947 49 291 49 300 65 680 l16 385 -26 274 c-23 250 -29 286
-65 410 -62 210 -164 377 -453 745 -34 44 -77 103 -96 130 -19 28 -82 101
-141 161 -58 61 -130 146 -160 190 -74 112 -320 359 -445 448 -55 39 -140 110
-190 157 -49 47 -126 112 -170 145 -44 32 -125 102 -180 155 -55 53 -128 115
-162 138 -34 23 -88 66 -120 95 -32 30 -96 82 -143 115 -90 65 -147 108 -297
223 -50 39 -144 106 -207 149 -64 44 -141 99 -173 124 -160 124 -282 211 -342
244 -36 19 -106 63 -156 97 -49 34 -160 104 -245 155 -85 52 -240 150 -345
220 -104 70 -224 146 -265 170 -41 24 -166 103 -276 175 -111 73 -251 161
-310 195 -60 34 -163 99 -229 145 -66 45 -151 99 -190 120 -38 21 -170 105
-292 186 -122 82 -257 167 -300 190 -43 24 -163 100 -268 169 -104 70 -235
153 -290 185 -55 32 -152 93 -215 135 -64 43 -163 104 -220 137 -237 134 -428
299 -465 399 -26 70 -32 304 -11 399 8 39 29 133 45 210 17 77 38 163 47 190
54 165 281 675 348 779 19 29 60 82 93 117 33 35 86 100 118 144 32 44 81 105
110 135 28 30 71 84 95 120 56 84 316 344 400 400 36 24 130 107 210 185 109
106 182 166 295 243 83 57 209 145 280 197 72 52 157 109 190 126 33 18 107
62 165 99 58 37 152 91 210 120 57 29 136 74 175 100 91 61 403 217 520 260
50 18 133 54 185 80 52 26 127 59 165 73 39 14 117 44 175 67 176 70 387 139
478 155 48 9 132 26 187 38 142 30 429 30 595 0 63 -12 171 -24 240 -27 69 -3
173 -14 230 -25 58 -11 146 -25 195 -31 171 -22 305 -82 378 -172 80 -99 79
-231 -8 -678 -40 -206 -37 -200 -107 -315 -30 -49 -80 -142 -110 -205 -31 -63
-76 -144 -99 -180 -27 -41 -169 -192 -389 -415 -203 -205 -365 -376 -390 -414
-63 -95 -173 -205 -280 -282 -68 -48 -179 -152 -391 -366 -271 -273 -300 -306
-346 -388 -27 -49 -75 -130 -106 -178 -68 -107 -90 -163 -123 -315 -44 -207
-46 -224 -42 -377 l4 -150 67 -200 c85 -257 225 -609 281 -706 25 -41 65 -106
91 -143 59 -84 105 -109 318 -171 85 -25 187 -58 227 -75 93 -38 344 -121 475
-155 55 -15 192 -58 305 -95 113 -38 251 -80 307 -94 56 -14 229 -69 385 -121
156 -52 360 -115 454 -139 94 -25 225 -65 290 -89 147 -55 259 -89 397 -122
59 -14 171 -48 249 -76 193 -70 294 -99 339 -99 55 0 477 105 744 185 44 13
126 35 182 49 157 38 220 75 344 203 58 59 124 135 147 168 22 33 61 85 87
115 33 39 98 160 226 418 l181 363 284 857 c157 471 296 902 310 957 14 55 41
147 59 205 19 58 41 134 50 170 9 36 41 143 71 239 32 105 59 216 69 282 8 60
23 148 34 196 10 48 22 133 25 188 4 55 15 150 25 210 11 61 22 159 26 218 4
60 15 151 25 203 17 91 17 97 -1 191 -10 53 -21 144 -25 202 -11 185 -57 391
-154 698 -50 155 -112 334 -140 398 -27 63 -62 157 -78 208 -42 131 -129 362
-164 431 -17 33 -58 105 -93 160 -34 56 -95 157 -135 226 -137 235 -321 538
-373 615 -22 33 -118 139 -212 235 -94 96 -194 209 -222 250 -30 43 -117 140
-205 227 -118 117 -183 172 -288 244 -74 50 -155 109 -180 129 -25 20 -144
104 -265 185 -121 81 -249 171 -285 200 -160 129 -291 197 -549 281 -223 73
-643 163 -880 189 -75 8 -161 22 -191 30 -30 9 -127 20 -215 25 -88 6 -207 19
-265 29 -92 17 -163 20 -590 23 -267 2 -597 1 -735 -2z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -1,130 +0,0 @@
<nav class="relative px-4 py-4 flex justify-between items-center border-b-2 border-light-secondary dark:border-dark-secondary-secondary">
<a class="text-3xl font-bold leading-none" href="{{path('home_index')}}">
{% include "base/banner-svg.html.twig" with {'classes': 'h-12 fill-gray-700 dark:fill-light-font'} %}
</a>
<div class="lg:hidden">
<button class="navbar-burger flex items-center text-light-primary dark:text-dark-primary p-3">
<svg class="block h-4 w-4 fill-current" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
<title>Mobile menu</title>
<path d="M0 3h20v2H0V3zm0 6h20v2H0V9zm0 6h20v2H0v-2z"></path>
</svg>
</button>
</div>
<ul class="hidden absolute top-1/2 left-1/2 transform -translate-y-1/2 -translate-x-1/2 lg:mx-auto lg:flex lg:items-center lg:w-auto lg:space-x-6">
<li><a class="text-sm {% if app.request.get('_route') == 'home_index' %} font-bold text-light-primary dark:text-dark-primary {% else %} dark:text-light-font {% endif %}" href="{{path('home_index')}}">Accueil</a></li>
<li class="text-light-primary dark:text-dark-primary">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" class="w-4 h-4 current-fill"
viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M12 5v0m0 7v0m0 7v0m0-13a1 1 0 110-2 1 1 0 010 2zm0 7a1 1 0 110-2 1 1 0 010 2zm0 7a1 1 0 110-2 1 1 0 010 2z"></path>
</svg>
</li>
<li><a class="text-sm text-gray-700 {% if app.request.get('_route') == 'outing_index' %} font-bold text-light-primary dark:text-dark-primary {% else %} dark:text-light-font {% endif %}" href="{{path('outing_index')}}">Sorties</a></li>
<li class="text-light-primary dark:text-dark-primary">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" class="w-4 h-4 current-fill"
viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M12 5v0m0 7v0m0 7v0m0-13a1 1 0 110-2 1 1 0 010 2zm0 7a1 1 0 110-2 1 1 0 010 2zm0 7a1 1 0 110-2 1 1 0 010 2z"></path>
</svg>
</li>
<li><a class="text-sm text-gray-700 {% if app.request.get('_route') == 'outing_create' %} font-bold text-light-primary dark:text-dark-primary {% else %} dark:text-light-font {% endif %}" href="{{ path('outing_create')}}">Nouvelle sortie</a></li>
<li class="text-light-primary dark:text-dark-primary">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" class="w-4 h-4 current-fill"
viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M12 5v0m0 7v0m0 7v0m0-13a1 1 0 110-2 1 1 0 010 2zm0 7a1 1 0 110-2 1 1 0 010 2zm0 7a1 1 0 110-2 1 1 0 010 2z"></path>
</svg>
</li>
<li><a class="text-sm text-gray-700 {% if app.request.get('_route') == 'group_index' %} font-bold text-light-primary dark:text-dark-primary {% else %} dark:text-light-font {% endif %}" href="{{ path('group_index') }}">Mes groupes</a></li>
{% if is_granted('ROLE_ADMIN') %}
<li class="text-light-primary dark:text-dark-primary">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" class="w-4 h-4 current-fill"
viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M12 5v0m0 7v0m0 7v0m0-13a1 1 0 110-2 1 1 0 010 2zm0 7a1 1 0 110-2 1 1 0 010 2zm0 7a1 1 0 110-2 1 1 0 010 2z"></path>
</svg>
</li>
<li><a class="text-sm text-gray-700 dark:text-light-font" href="{{ path('admin') }}">Administration</a></li>
{% endif %}
</ul>
{% if app.user %}
<div class="hidden lg:inline-block lg:ml-auto lg:mr-3 py-2 transition duration-200">
<a href="{{ path('user_index')}}">
<img class= "object-cover rounded-full border
border-gray-100 shadow-sm
h-full cursor-pointer dark:border-dark-primary" src="{{ app.user.getProfilePicture() ? asset('uploads/' ~ app.user.getProfilePicture()) | imagine_filter('profile_navbar') : asset('profilDefault.png') | imagine_filter('profile_navbar') }}" alt=""/>
</a>
</div>
{% else %}
<a class="hidden lg:inline-block lg:ml-auto lg:mr-3 py-2 px-6 bg-light-primary dark:bg-dark-primary hover:bg-light-primary/75 dark:hover:bg-dark-primary/75 text-sm text-white rounded-xl transition duration-200"
href="{{ path('app_login') }}">Se connecter</a>
{% endif %}
<button id="theme-toggle" type="button"
class="hidden lg:inline-block text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5">
<svg id="theme-toggle-dark-icon" class="hidden w-5 h-5" fill="currentColor" viewBox="0 0 20 20"
xmlns="http://www.w3.org/2000/svg">
<path d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"></path>
</svg>
<svg id="theme-toggle-light-icon" class="hidden w-5 h-5" fill="currentColor" viewBox="0 0 20 20"
xmlns="http://www.w3.org/2000/svg">
<path d="M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z"
fill-rule="evenodd" clip-rule="evenodd"></path>
</svg>
</button>
</nav>
<div class="navbar-menu relative z-50 hidden">
<div class="navbar-backdrop fixed inset-0 bg-gray-800 opacity-25"></div>
<nav class="fixed top-0 left-0 bottom-0 flex flex-col w-5/6 max-w-sm py-6 px-6 bg-light-font dark:bg-dark-font border-r overflow-y-auto">
<div class="flex items-center mb-8">
<a class="mr-auto text-3xl font-bold leading-none" href="{{ path('home_index') }}">
{% include "base/banner-svg.html.twig" with {'classes': 'h-12 fill-gray-700 dark:fill-light-font'} %}
</a>
<button class="navbar-close">
<svg class="h-6 w-6 text-gray-400 cursor-pointer hover:text-gray-500" xmlns="http://www.w3.org/2000/svg"
fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M6 18L18 6M6 6l12 12"></path>
</svg>
</button>
</div>
<div>
<ul>
<li class="mb-1">
<a class="block p-4 text-sm font-semibold text-gray-700 dark:text-light-font dark:hover:text-gray-700 hover:bg-light-secondary dark:hover:bg-dark-secondary rounded"
href="{{ path('home_index') }}">Accueil</a>
</li>
<li class="mb-1">
<a class="block p-4 text-sm font-semibold text-gray-700 dark:text-light-font dark:hover:text-gray-700 hover:bg-light-secondary dark:hover:bg-dark-secondary rounded"
href="{{ path('outing_index') }}">Sorties</a>
</li>
<li class="mb-1">
<a class="block p-4 text-sm font-semibold text-gray-700 dark:text-light-font dark:hover:text-gray-700 hover:bg-light-secondary dark:hover:bg-dark-secondary rounded"
href="{{ path('outing_create') }}">Nouvelle sortie</a>
</li>
<li class="mb-1">
<a class="block p-4 text-sm font-semibold text-gray-700 dark:text-light-font dark:hover:text-gray-700 hover:bg-light-secondary dark:hover:bg-dark-secondary rounded"
href="{{ path('group_index') }}">Mes groupes</a>
</li>
</ul>
</div>
<div class="mt-auto mb-5">
<div class="pt-6 mx-auto">
{% if app.user %}
<a href="{{ path('user_index')}}">
<img class= "flex object-cover rounded-full border
border-gray-100 shadow-sm
h-full cursor-pointer dark:border-dark-primary" src="{{ app.user.getProfilePicture() ? asset('uploads/' ~ app.user.getProfilePicture()) | imagine_filter('profile_navbar') : asset('profilDefault.png') | imagine_filter('profile_navbar') }}" alt=""/>
<p class="text-light-primary dark:text-light-font font-bold">{{ app.user.pseudo }}</p>
</a>
{% else %}
<a class="block px-4 py-3 mb-2 leading-loose text-center bg-light-primary dark:bg-dark-primary hover:bg-light-primary/75 dark:hover:bg-dark-primary/75 text-sm text-white rounded-xl"
href="{{ path('app_login') }}">Se connecter</a>
{% endif %}
</div>
</div>
</nav>
</div>

View File

@@ -1,19 +0,0 @@
{% extends 'base.html.twig' %}
{% block body %}
<section class="flex items-center h-full p-16 dark:bg-gray-900 dark:text-gray-100">
<div class="container flex flex-col items-center justify-center px-5 mx-auto my-8">
<div class="max-w-md text-center">
<h2 class="mb-8 font-extrabold text-9xl dark:text-gray-600">
😭
</h2>
<p class="text-2xl font-semibold md:text-3xl"><span class="font-bold">Oups !</span> Tu sembles perdu 🥲
</p>
<p class="mt-4 mb-8 dark:text-gray-400">{{ exception.message }}</p>
<a rel="noopener noreferrer" href="{{ path('home_index') }}"
class="px-8 py-3 font-semibold rounded dark:bg-violet-400 dark:text-gray-900">Retour à la page
d'accueil</a>
</div>
</div>
</section>
{% endblock %}

View File

@@ -1,21 +0,0 @@
{% extends 'base.html.twig' %}
{% block body %}
<section class="flex items-center h-full p-16 dark:bg-gray-900 dark:text-gray-100">
<div class="container flex flex-col items-center justify-center px-5 mx-auto my-8">
<div class="max-w-md text-center">
<h2 class="mb-8 font-extrabold text-9xl dark:text-gray-600">
403
</h2>
<p class="text-2xl font-semibold md:text-3xl"><span class="font-bold">Oups !</span> Tu sembles perdu 🥲
</p>
<p class="mt-4 mb-8 dark:text-gray-400">
Vous n'avez pas les droits nécessaires pour accéder à cette page.
</p>
<a rel="noopener noreferrer" href="{{ path('home_index') }}"
class="px-8 py-3 font-semibold rounded dark:bg-violet-400 dark:text-gray-900">Retour à la page
d'accueil</a>
</div>
</div>
</section>
{% endblock %}

View File

@@ -1,21 +0,0 @@
{% extends 'base.html.twig' %}
{% block body %}
<section class="flex items-center h-full p-16 dark:bg-gray-900 dark:text-gray-100">
<div class="container flex flex-col items-center justify-center px-5 mx-auto my-8">
<div class="max-w-md text-center">
<h2 class="mb-8 font-extrabold text-9xl dark:text-gray-600">
404
</h2>
<p class="text-2xl font-semibold md:text-3xl"><span class="font-bold">Oups !</span> Tu sembles perdu 🥲
</p>
<p class="mt-4 mb-8 dark:text-gray-400">
Cette page n'existe pas !
</p>
<a rel="noopener noreferrer" href="{{ path('home_index') }}"
class="px-8 py-3 font-semibold rounded dark:bg-violet-400 dark:text-gray-900">Retour à la page
d'accueil</a>
</div>
</div>
</section>
{% endblock %}

View File

@@ -1,101 +0,0 @@
{% extends 'base.html.twig' %}
{% block title %}
{% endblock %}
{% block body %}
<h2 class="my-5 text-center align-items-center light:text-light-primary dark:text-light-font">
{% if consultMode == 'create' %}
Créer une sortie
{% elseif consultMode == 'modif' %}
Modifier la sortie
{% else %}
Sortie
{% endif %}
</h2>
<form class="container row mx-auto">
<div class="col-lg-6 col-12">
<div class="col-12 mb-3">
<label for="name" class="form-label">Nom de la sortie :</label>
<input type="text" class="form-control" id="name" placeholder="Sortie au bar...">
</div>
<div class="col-12 mb-3">
<label for="outingDate" class="form-label">Date et heure de la sortie :</label>
<input type="date" class="form-control" id="outingDate" style="width:fit-content">
</div>
<div class="col-12 mb-3">
<label for="limit-date" class="form-label">Date limite d'inscription :</label>
<input type="date" class="form-control" id="limit-date" style="width:fit-content">
</div>
<div class="col-12 mb-3">
<label for="size" class="form-label">Nombre de places :</label>
<input type="number" class="form-control" id="size" min="0" style="width:fit-content">
</div>
<div class="col-12 mb-3">
<label for="duration" class="form-label">Durée (en minutes) :</label>
<input type="number" class="form-control" id="duration" min="0" style="width:fit-content">
</div>
<div class="col-12 mb-3">
<label for="description" class="form-label">Description et infos :</label>
<textarea name="description" id="description" rows="8" class="form-control"></textarea>
</div>
</div>
<div class="col-lg-6 col-12">
<div class="col-12 mb-3">
<label for="organizingCity" class="form-label">Ville organisatrice :</label>
<p>Nantes</p>
</div>
<div class="col-12 mb-3">
<label for="city" class="form-label">Ville : </label>
<select id="city" class="form-select">
<!-- TODO METTRE VILLES EN TWIG -->
<option selected=""></option>
<option>Nantes</option>
<option>Rennes</option>
<option>Perpignan</option>
</select>
</div>
<div class="col-12 mb-3">
<label for="place" class="form-label">Lieu : </label>
<select id="place" class="form-select">
<!-- TODO METTRE LIEUX EN TWIG -->
<option selected=""></option>
<option>Berlin 1989</option>
<option>Le Warehouse</option>
<option>Parc de Procé</option>
</select>
</div>
<div class="col-12 mb-3">
<label for="name" class="form-label">Rue :</label>
<input type="text" class="form-control" id="name" placeholder="Rue">
</div>
<div class="col-12 mb-3">
<label for="name" class="form-label">Code postal :</label>
<input type="text" class="form-control" id="name" placeholder="Code postal">
</div>
<div class="col-12 mb-3">
<label for="latitude" class="form-label">Latitude :</label>
<input type="text" class="form-control" id="latitude" placeholder="Latitude">
</div>
<div class="col-12 mb-3">
<label for="longitude" class="form-label">Longitude :</label>
<input type="text" class="form-control" id="longitude" placeholder="Longitude">
</div>
<div class="col-12 mb-3">
<label for="maPhoto" class="form-label">Photo pour la sortie</label>
<input class="form-control" type="file" id="maPhoto">
</div>
</div>
<div class="button-container d-flex justify-content-center">
<button type="submit" class="btn btn-lg btn-primary m-2">Enregistrer</button>
<button type="submit" class="btn btn-lg btn-warning m-2">Publier la sortie</button>
<button class="btn btn-lg btn-danger m-2">Annuler</button>
</div>
</form>
{% endblock %}

View File

@@ -1,152 +0,0 @@
{% extends 'base.html.twig' %}
{% block title %}{{ parent() }} | Sorties{% endblock %}
{% block body %}
<div class="container mt-5">
<div class="row d-flex justify-content-center">
<!-- Partie formulaire -->
<div class="col-md-10">
<form class="card p-3 bg-light py-4 shadow-sm">
<h5>Filtrez les sorties :</h5>
<div class="col-lg-11 col-12 mx-auto">
<div class="my-3">
<label for="main-search" class="form-label">Le nom de la sortie contient</label>
<input type="text" class="form-control" id="main-search" placeholder="Sortie au bar...">
</div>
<div class="row">
<div class="col-12 col-lg-7">
<div class="col-12">
<label for="site" class="form-label">Site</label>
<select id="site" class="form-select">
<!-- TODO METTRE SITES EN TWIG -->
<option selected=""></option>
<option>ENI Nantes</option>
<option>ENI Rennes</option>
<option>ENI Perpignan</option>
</select>
</div>
<div class="col-12">
<div class="row mt-3">
<div class="col-6">
<label for="begin-date" class="form-label">Entre le</label>
<!-- TODO METTRE LE MINIMUM DATE AUJOURD'HUI -->
<input type="date" id="begin-date" class="form-control">
</div>
<div class="col-6">
<label for="end-date" class="form-label">Et le</label>
<input type="date" id="end-date" class="form-control">
</div>
</div>
</div>
</div>
<div class="col-12 col-lg-5 my-lg-auto my-sm-3">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="check-1">
<label class="form-check-label" for="check-1">Sortie dont je suis l'organisateur/trice</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" id="check-2">
<label class="form-check-label" for="check-2">Sorties auxquelles je suis inscrit/e</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" id="check-3">
<label class="form-check-label" for="check-3">Sorties auxquelles je ne suis pas inscrit/e</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" id="check-4">
<label class="form-check-label" for="check-4">Sorties passées</label>
</div>
</div>
</div>
<div class="col-12 mx-auto mt-4">
<button type="submit" class="btn btn-lg btn-primary">Rechercher</button>
</div>
</div>
</form>
</div>
<!-- Partie résultat -->
<div class="col-12 mt-5 d-flex justify-content-center flex-wrap">
<!-- TODO foreach sorties -->
<div class="card col-lg-3 col-5 m-1">
<!-- TODO FAIRE UN IF SI INSCRIT -->
<div class="card-header">
<p class="text-success mx-auto my-0">Vous êtes inscrit</p>
</div>
<div class="card-body">
<h5 class="card-title">NOM DE LA SORTIE (BLABLABLA JE RAJOUTE DU TEXTE SI CEST LONG)</h5>
<h6 class="card-subtitle mb-2 text-muted">Le 30/01/2024 à 18h30</h6>
<p class="card-text">Description, s'il y en a une</p>
<hr>
<h6 class="card-subtitle mb-1 text-muted">Nombre d'inscrits : 7/8</h6>
<h6 class="card-subtitle mb-2 text-danger">Clôture le 29/01/2024 à 18h30</h6>
<p class="mb-2">Organisateur : <a class="card-link">totodu43</a></p> <!-- TODO REDIRIGER VERS L'UTILISATEUR -->
<div class="mx-auto">
<a href="#" class="btn btn-primary">Plus d'infos</a>
<a href="#" class="btn btn-danger">Se désister</a>
</div>
</div>
</div>
<div class="card col-lg-3 col-5 m-1">
<div class="card-body">
<h5 class="card-title">NOM DE LA SORTIE (BLABLABLA JE RAJOUTE DU TEXTE SI CEST LONG)</h5>
<h6 class="card-subtitle mb-2 text-muted">Le 30/01/2024 à 18h30</h6>
<p class="card-text">Description, s'il y en a une (longue description longue description longue description)</p>
<hr>
<h6 class="card-subtitle mb-1 text-muted">Nombre d'inscrits : 7/8</h6>
<h6 class="card-subtitle mb-2 text-danger">Clôture le 29/01/2024 à 18h30</h6>
<p class="mb-2">Organisateur : <a class="card-link">totodu43</a></p> <!-- TODO REDIRIGER VERS L'UTILISATEUR -->
<div class="mx-auto">
<a href="#" class="btn btn-primary">Plus d'infos</a>
<a href="#" class="btn btn-success">S'inscrire</a>
</div>
</div>
</div>
<div class="card col-lg-3 col-5 m-1">
<div class="card-body">
<h5 class="card-title">NOM DE LA SORTIE (BLABLABLA JE RAJOUTE DU TEXTE SI CEST LONG)</h5>
<h6 class="card-subtitle mb-2 text-muted">Le 30/01/2024 à 18h30</h6>
<p class="card-text">Description, s'il y en a une (longue description longue description longue description)</p>
<hr>
<h6 class="card-subtitle mb-1 text-muted">Nombre d'inscrits : 7/8</h6>
<h6 class="card-subtitle mb-2 text-danger">Clôture le 29/01/2024 à 18h30</h6>
<p class="mb-2">Organisateur : <a class="card-link">totodu43</a></p> <!-- TODO REDIRIGER VERS L'UTILISATEUR -->
<div class="mx-auto">
<a href="#" class="btn btn-primary">Plus d'infos</a>
<a href="#" class="btn btn-success">S'inscrire</a>
</div>
</div>
</div>
<div class="card col-lg-3 col-5 m-1">
<div class="card-body">
<h5 class="card-title">NOM DE LA SORTIE (BLABLABLA JE RAJOUTE DU TEXTE SI CEST LONG)</h5>
<h6 class="card-subtitle mb-2 text-muted">Le 30/01/2024 à 18h30</h6>
<p class="card-text">Description, s'il y en a une (longue description longue description longue description)</p>
<hr>
<h6 class="card-subtitle mb-1 text-muted">Nombre d'inscrits : 7/8</h6>
<h6 class="card-subtitle mb-2 text-danger">Clôture le 29/01/2024 à 18h30</h6>
<p class="mb-2">Organisateur : <a class="card-link">totodu43</a></p> <!-- TODO REDIRIGER VERS L'UTILISATEUR -->
<div class="mx-auto">
<a href="#" class="btn btn-primary">Plus d'infos</a>
<a href="#" class="btn btn-success">S'inscrire</a>
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@@ -1,56 +0,0 @@
{% extends 'base.html.twig' %}
{% block title %}
Mon Profil
{% endblock %}
{% block body %}
<div class="container mt-5 d-flex flex-column justify-content-center align-items-center profile-page">
<div class="col-12 col-lg-6 mx-auto mb-3 bg-light p-4 card shadow-sm">
<div class="d-flex flex-column align-items-center">
<h2 class="mb-4 text-center">ShrekDu44</h2>
<img src="{{ asset('placeholder.jpg') }}" class="profile-picture rounded-circle mb-5" alt="">
</div>
<div class="form-group row mb-3">
<label for="prenom" class="col-sm-4 col-form-label">Prénom</label>
<div class="col-sm-8">
<p class="form-control-plaintext" id="prenom">Shrek</p>
</div>
</div>
<div class="form-group row mb-3">
<label for="nom" class="col-sm-4 col-form-label">Nom</label>
<div class="col-sm-8">
<p class="form-control-plaintext" id="nom">Placeholder</p>
</div>
</div>
<div class="form-group row mb-3">
<label for="telephone" class="col-sm-4 col-form-label">Téléphone</label>
<div class="col-sm-8">
<p class="form-control-plaintext" id="telephone">0780078007</p>
</div>
</div>
<div class="form-group row mb-3">
<label for="email" class="col-sm-4 col-form-label">Email</label>
<div class="col-sm-8">
<p class="form-control-plaintext" id="email">shrek@romainpourquoiencorecetteimage.fr</p>
</div>
</div>
<div class="form-group row mb-3">
<label for="ville" class="col-sm-4 col-form-label">Ville de rattachement</label>
<div class="col-sm-8">
<p class="form-control-plaintext" id="ville">ENI Nantes</p>
</div>
</div>
<div class="form-group row mb-3">
<div class="col-sm-10 mx-auto text-center">
<a href="#" class="btn btn-lg btn-danger mt-3 mx-2">Retour</a>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@@ -1,87 +0,0 @@
{% extends 'base.html.twig' %}
{% block title %}
Mon Profil
{% endblock %}
{% block body %}
<div class="container mt-5 d-flex flex-column justify-content-center align-items-center profile-page">
<h2 class="mb-4 text-center align-items-center">Mon profil</h2>
<img src="{{ asset('placeholder.jpg') }}" class="rounded-circle mb-5 profile-picture" alt="">
<form class="col-12 col-lg-6 mx-auto mb-3 bg-light p-4 card shadow-sm">
<div class="form-group row mb-3">
<label for="pseudo" class="col-sm-4 col-form-label">Pseudo</label>
<div class="col-sm-8">
<input type="text" class="form-control" id="pseudo" placeholder="Votre pseudo">
</div>
</div>
<div class="form-group row mb-3">
<label for="prenom" class="col-sm-4 col-form-label">Prénom</label>
<div class="col-sm-8">
<input type="text" class="form-control" id="prenom" placeholder="Votre prénom">
</div>
</div>
<div class="form-group row mb-3">
<label for="nom" class="col-sm-4 col-form-label">Nom</label>
<div class="col-sm-8">
<input type="text" class="form-control" id="nom" placeholder="Votre nom">
</div>
</div>
<div class="form-group row mb-3">
<label for="telephone" class="col-sm-4 col-form-label">Téléphone</label>
<div class="col-sm-8">
<input type="tel" class="form-control" id="telephone" placeholder="Votre numéro de téléphone">
</div>
</div>
<div class="form-group row mb-3">
<label for="email" class="col-sm-4 col-form-label">Email</label>
<div class="col-sm-8">
<input type="email" class="form-control" id="email" placeholder="Votre adresse email">
</div>
</div>
<div class="form-group row mb-3">
<label for="motDePasse" class="col-sm-4 col-form-label">Mot de passe</label>
<div class="col-sm-8">
<input type="password" class="form-control" id="motDePasse" placeholder="Votre mot de passe">
</div>
</div>
<div class="form-group row mb-3">
<label for="confirmation" class="col-sm-4 col-form-label">Confirmation</label>
<div class="col-sm-8">
<input type="password" class="form-control" id="confirmation" placeholder="Confirmez votre mot de passe">
</div>
</div>
<div class="form-group row mb-3">
<label for="ville" class="col-sm-4 col-form-label">Ville de rattachement</label>
<div class="col-sm-8">
<select class="form-control" id="ville">
<option value="ville1">Ville 1</option>
<option value="ville2">Ville 2</option>
<option value="ville3">Ville 3</option>
</select>
</div>
</div>
<div class="form-group row mb-3">
<label for="maPhoto" class="col-sm-4 col-form-label">Ma photo</label>
<div class="col-sm-8">
<input class="form-control" type="file" id="maPhoto">
</div>
</div>
<div class="form-group row mb-3">
<div class="col-sm-10 mx-auto text-center">
<button type="submit" class="btn btn-lg btn-primary mt-3 mx-2">Enregistrer</button>
<button type="submit" class="btn btn-lg btn-danger mt-3 mx-2">Annuler</button>
</div>
</div>
</form>
</div>
{% endblock %}

View File

@@ -1,56 +0,0 @@
{% extends 'base.html.twig' %}
{% block title %}Nouveau groupe | {{ parent() }}{% endblock %}
{% block body %}
<section class="p-5">
<h1 class="font-semibold text-center text-3xl"></h1>
{{ form_start(form) }}
<div class="grid gap-6 mb-6 md:grid-cols-2 py-8">
<div class="relative">
{{ form_row(form.groupName, {
'attr': {
'class': 'block rounded-t-lg px-2.5 pb-2.5 pt-5 w-full text-sm text-light-primary dark:text-dark-primary bg-light-secondary/50 dark:bg-dark-secondary border-0 border-b-2 border-light-primary/75 dark:border-dark-primary/75 appearance-none dark:border-dark-primary focus:outline-none focus:ring-0 focus:border-light-primary dark:focus:border-dark-primary peer',
'id': 'groupeName',
'placeholder': ''
}
}) }}
{{ form_label(form.groupName, 'Nom du groupe', {
'label_attr': {
'class': 'absolute text-sm text-light-primary dark:text-dark-primary duration-300 transform -translate-y-4 scale-75 top-4 z-10 origin-[0] start-2.5 peer-focus:text-light-primary dark:peer-focus:text-dark-primary peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-4 rtl:peer-focus:translate-x-1/4 rtl:peer-focus:left-auto'
}
}) }}
</div>
<div class="relative">
{{ form_widget(form.Guests, {
'attr': {
'class': 'block rousnded-t-lg px-2.5 pb-2.5 pt-5 w-full text-sm text-light-primary dark:text-dark-primary bg-light-secondary/50 dark:bg-dark-secondary border-0 border-b-2 border-light-primary/75 dark:border-dark-primary/75 appearance-none dark:border-dark-primary focus:outline-none focus:ring-0 focus:border-light-primary dark:focus:border-dark-primary peer',
'id': 'guests',
'placeholder': ''
}
}) }}
{{ form_label(form.Guests, 'Participants', {
'label_attr': {
'class': 'absolute text-sm text-light-primary dark:text-dark-primary duration-300 transform -translate-y-4 scale-75 top-4 z-10 origin-[0] start-2.5 peer-focus:text-light-primary dark:peer-focus:text-dark-primary peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-4 rtl:peer-focus:translate-x-1/4 rtl:peer-focus:left-auto'
}
}) }}
</div>
</div>
<div class="mt-6 grid w-full grid-cols-2 justify-end space-x-4 md:flex">
<div class="flex w-full justify-center">
<button type="submit"
class="px-4 py-2 mx-4 text-white dark:text-light-font dark:hover:text-dark-primary uppercase bg-light-primary dark:bg-dark-primary border-2 border-transparent rounded-lg text-md hover:bg-light-secondary dark:hover:bg-dark-secondary">
Valider
</button>
<button class="px-4 py-2 mx-4 text-light-primary dark:text-dark-primary dark:hover:text-dark-primary hover:text-light-font uppercase bg-transparent rounded-lg hover:bg-light-secondary dark:hover:bg-dark-secondary cursor-pointer"
onclick="window.history.back()">
Retour
</button>
</div>
</div>
{{ form_end(form) }}
</section>
{% endblock %}

View File

@@ -1,92 +0,0 @@
{% extends 'base.html.twig' %}
{% block title %}Mes groupes | {{ parent() }}{% endblock %}
{% block body %}
<section class="p-5">
<h1 class="text-3xl font-bold text-light-primary dark:text-light-font text-center p-3 mb-5">Mes groupes</h1>
{% if groups %}
<div id="accordion-collapse" data-accordion="collapse">
{% for group in groups %}
<h2 id="accordion-collapse-heading-{{ loop.index }}">
<button type="button"
class="flex items-center justify-between w-full p-5 font-medium rtl:text-right text-gray-500 border border-b-0 border-gray-200 rounded-t-xl focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-800 dark:border-gray-700 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800 bg-light-card dark:bg-dark-card gap-3"
data-accordion-target="#accordion-collapse-body-{{ loop.index }}" aria-expanded="false"
aria-controls="accordion-collapse-body-{{ loop.index }}">
<span>{{ group.groupName }} ({{ group.guests|length + 1 }} membres)</span>
<svg data-accordion-icon class="w-3 h-3 rotate-180 shrink-0" aria-hidden="true"
xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 10 6">
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"
stroke-width="2"
d="M9 5 5 1 1 5"></path>
</svg>
</button>
</h2>
<div id="accordion-collapse-body-{{ loop.index }}" class="hidden"
aria-labelledby="accordion-collapse-heading-{{ loop.index }}">
<div class="p-5 border border-b-0 border-gray-200 dark:border-gray-700 bg-light-card dark:bg-dark-card">
<p class="font-semibold text-xl text-light-primary dark:text-light-font">Participants :</p>
{% if group.guests %}
<ul class="divide-y divide-gray-200 dark:divide-gray-700">
<li class="py-2 sm:py-4">
<div class="flex items-center space-x-4">
<div class="flex-shrink-0">
<img class="w-8 h-8 rounded-full"
src="{{ group.createdBy.getProfilePicture() ? asset('uploads/' ~ group.createdBy.getProfilePicture()) | imagine_filter('profile_navbar') : asset('profilDefault.png') | imagine_filter('profile_navbar') }}"
alt="Photo de {{ group.createdBy }}">
</div>
<div class="flex-1 grow">
<p class="text-sm font-medium text-gray-900 truncate dark:text-white">
@{{ group.createdBy.pseudo }}
</p>
<p class="text-sm text-gray-500 truncate dark:text-gray-400">
{{ group.createdBy.site.name }}
</p>
</div>
</div>
</li>
{% for guest in group.guests %}
<li class="py-2 sm:py-4">
<div class="flex items-center space-x-4">
<div class="flex-shrink-0">
<img class="w-8 h-8 rounded-full"
src="{{ guest.getProfilePicture() ? asset('uploads/' ~ guest.getProfilePicture()) | imagine_filter('profile_navbar') : asset('profilDefault.png') | imagine_filter('profile_navbar') }}"
alt="Photo de {{ guest.pseudo }}">
</div>
<div class="flex-1 grow">
<p class="text-sm font-medium text-gray-900 truncate dark:text-white">
@{{ guest.pseudo }}
</p>
<p class="text-sm text-gray-500 truncate dark:text-gray-400">
{{ guest.site.name }}
</p>
</div>
</div>
</li>
{% endfor %}
</ul>
{% else %}
<p class="text-center text-light-primary dark:text-dark-primary">Aucun participant pour
le
moment</p>
{% endif %}
</div>
</div>
{% endfor %}
</div>
{# <div class="flex justify-center mt-5">#}
{# <a href="#"#}
{# class="bg-light-secondary dark:bg-dark-secondary hover:bg-gray-200 text-light-primary dark:text-dark-primary font-bold py-2 px-6 rounded-xl transition duration-200">Créer#}
{# un groupe</a>#}
{# </div>#}
{% else %}
<p class="text-center text-light-primary dark:text-dark-primary">Vous n'avez pas encore rejoint de
groupe</p>
{# <a href="{{ path('group_create') }}" class="flex justify-center mt-5">#}
{# <button class="bg-light-secondary dark:bg-dark-secondary hover:bg-gray-200 text-light-primary dark:text-dark-primary font-bold py-2 px-6 rounded-xl transition duration-200">#}
{# Créer un groupe#}
{# </button>#}
{# </a>#}
{% endif %}
</section>
{% endblock %}

View File

@@ -1,36 +1,20 @@
{% extends 'base.html.twig' %}
<!DOCTYPE html>
{% block title %}{{ parent() }}{% endblock %}
<title>Hello HomeController!</title>
{% block body %}
<div class="relative z-20 flex items-center overflow-hidden">
<div class="container relative flex px-6 py-16 mx-auto">
<div class="relative z-20 flex flex-col sm:w-2/3 lg:w-2/5">
<span class="w-20 h-2 mb-12 bg-light-primary dark:bg-dark-primary">
</span>
<h1 class="flex flex-col text-6xl font-black leading-none text-light-primary uppercase font-bebas-neue sm:text-8xl dark:text-dark-primary">
Envie
<span class="text-5xl sm:text-7xl">
d'une sortie ?
</span>
</h1>
<p class="text-sm text-light-primary sm:text-base dark:text-white">
Rejoignez des milliers de personnes pour sortir et faire de nouvelles rencontres
</p>
<div class="flex mt-8">
<a href="{{ path('outing_index') }}"
class="px-4 py-2 mr-4 text-white dark:text-light-font uppercase bg-light-primary dark:bg-dark-primary border-2 border-transparent rounded-lg text-md hover:bg-light-primary/75 dark:hover:bg-dark-primary/75 transition duration-200">
Trouver une sortie
</a>
<a href="{{ path('outing_create') }}"
class="px-4 py-2 text-light-primary dark:text-dark-primary dark:hover:text-dark-primary hover:text-light-font uppercase bg-transparent rounded-lg hover:bg-light-secondary dark:hover:bg-dark-secondary text-md transition duration-200">
Créer une sortie
</a>
</div>
</div>
<div class="relative hidden sm:block sm:w-1/3 lg:w-3/5">
{% include "base/icon-svg.html.twig" with {'classes': 'max-w-xs m-auto md:max-w-sm fill-light-primary dark:fill-dark-primary'} %}
</div>
</div>
</div>
<style>
.example-wrapper { margin: 1em auto; max-width: 800px; width: 95%; font: 18px/1.5 sans-serif; }
.example-wrapper code { background: #F5F5F5; padding: 2px 6px; }
</style>
<div class="example-wrapper">
<h1>Hello {{ controller_name }}! ✅</h1>
This friendly message is coming from:
<ul>
<li>Your controller at <code>C:/Users/jleroy2023/PhpstormProjects/sortir/src/Controller/HomeController.php</code></li>
<li>Your template at <code>C:/Users/jleroy2023/PhpstormProjects/sortir/templates/home/index.html.twig</code></li>
</ul>
</div>
{% endblock %}

View File

@@ -1,90 +0,0 @@
<div class="transition-all duration-150 flex px-4 py-6 w-80 ">
<div class="flex flex-col items-stretch min-h-full min-w-full pb-4 mb-6 transition-all duration-150 rounded-lg shadow-xl hover:shadow-2xl overflow-hidden bg-light-card dark:bg-dark-card">
<div class="md:flex-shrink-0">
<img src="{{ outing.getPoster() ? asset('uploads/' ~ outing.getPoster()) | imagine_filter('outings') : asset('placeholder.png') | imagine_filter('outings') }}" alt="" class="object-cover w-full rounded-lg rounded-b-none md:h-56"/>
</div>
<div class="flex items-center justify-between px-4 py-2 overflow-hidden">
<div>
{% if outing.status.label == 'Annulée' %}
<span class="text-xs font-medium text-light-danger dark:text-dark-danger uppercase">
Sortie annulée
</span>
{% elseif outing.organizer == app.user %}
<span class="text-xs font-medium text-light-success dark:text-dark-success uppercase">
Je suis l'organisateur
</span>
{% elseif outing.isUserRegistered(app.user) %}
<span class="text-xs font-medium text-light-success dark:text-dark-success uppercase">
Je suis inscrit
</span>
{% elseif outing.canRegister() %}
<span class="text-xs font-medium text-light-info dark:text-dark-success uppercase">
Inscriptions ouvertes
</span>
{% elseif outing.registrations.count == outing.registrationsMax %}
<span class="text-xs font-medium text-light-danger dark:text-dark-danger uppercase">
Sortie complète
</span>
{% elseif outing.status.label == 'Activité en cours'%}
<span class="text-xs font-medium text-light-warning dark:text-dark-warning uppercase">
Activité en cours
</span>
{% elseif outing.status.label == 'Passée' or outing.startDate|date("Y-m-d H:i:s") > "now"|date("Y-m-d H:i:s") %}
<span class="text-xs font-medium text-light-warning dark:text-dark-warning uppercase">
Sortie passée
</span>
{% else %}
<span class="text-xs font-medium text-light-danger dark:text-dark-danger uppercase">
Inscriptions fermées
</span>
{% endif %}
{% if outing.canRegister() %}
<div class="flex flex-row items-center text-light-primary dark:text-dark-primary">
<span class="text-xs font-medium uppercase">
Inscription : {{ outing.registrations.count }}/{{ outing.registrationsMax }}
</span>
</div>
{% endif %}
</div>
<div class="flex items-center">
<span class="text-xs font-medium text-light-primary dark:text-light-font uppercase">
{{ outing.startDate|date("d/m/Y") }} à {{ outing.startDate|date("H:i") }}
</span>
</div>
</div>
<hr class="border-light-primary dark:border-dark-primary"/>
<div class="flex flex-wrap items-center flex-1 px-4 py-1 text-center mx-auto overflow-hidden">
<a href="{{ path('outing_preview', {'id': outing.id}) }}" class="hover:underline">
<h2 class="text-2xl font-bold tracking-normal text-light-primary dark:text-dark-primary line-clamp-3 truncate">
{{ outing.title }}
</h2>
</a>
</div>
<hr class="border-light-primary dark:border-dark-primary"/>
<p class="line-clamp-3 w-full px-4 my-2 overflow-hidden text-sm text-justify text-light-primary dark:text-light-font">
{{ outing.description }}
</p>
<hr class="border-light-primary dark:border-dark-primary"/>
<section class="px-4 py-2 mt-2">
<div class="flex items-center justify-between">
<div class="flex items-center flex-1 overflow-hidden">
<a href="{{ path('user_show', {'pseudo':outing.organizer.pseudo}) }}" class="w-10 h-10 min-w-fit">
<img
class="object-cover rounded-full min-w-full min-h-full w-10 h-10"
src="{{ outing.organizer.getProfilePicture() ? asset('uploads/' ~ outing.organizer.getProfilePicture()) | imagine_filter('profile_navbar') : asset('profilDefault.png') | imagine_filter('profile_navbar') }}"
alt="Avatar"
/>
</a>
<div class="flex flex-col mx-2 overflow-hidden">
<a href="{{ path('user_show', {'pseudo':outing.organizer.pseudo}) }}" class="font-semibold text-light-primary dark:text-light-font hover:underline truncate" title="{{ outing.organizer.pseudo }} ({{ outing.organizer.site.name }})">
{{ outing.organizer.pseudo }}
</a>
</div>
</div>
<a href="{{ path('outing_preview', {'id':outing.id}) }}" class="font-medium text-light-primary dark:text-dark-primary hover:underline">En savoir
plus</a>
</div>
</section>
</div>
</div>

View File

@@ -1,273 +0,0 @@
{% extends 'base.html.twig' %}
{% set isModif = outing is defined and outing.id is not null %}
{% block title %}{% if isModif %}Modifier la sortie "{{ outing.title }}"{% else %}Créer une sortie{% endif %} | {{ parent() }}{% endblock %}
{% block body %}
<section class="p-5">
<h1 class="font-semibold text-3xl my-5 text-center align-items-center light:text-light-primary dark:text-light-font">Créer une sortie</h1>
{{ form_start(form) }}
<div class="py-8 p-5 dark:bg-dark-card bg-light-card rounded-lg lg:w-2/3 mx-auto shadow-md">
<div class="relative mb-5">
{{ form_widget(form.title, {
'attr': {
'class': 'block rounded-lg px-2.5 pb-2.5 pt-5 w-full text-sm dark:bg-dark-font dark:text-white dark:border-dark-primary focus:ring-light-primary dark:focus:ring-dark-primary focus:border-light-primary dark:focus:border-dark-primary dark:placeholder-gray-300 peer',
'id': 'title',
'placeholder': ''
}
}) }}
{{ form_label(form.title, 'Nom de la sortie', {
'label_attr': {
'class': 'absolute text-sm text-light-primary dark:text-gray-300 duration-300 transform -translate-y-4 scale-75 top-4 z-10 origin-[0] start-2.5 peer-focus:text-light-primary dark:peer-focus:text-dark-primary peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-4 rtl:peer-focus:translate-x-1/4 rtl:peer-focus:left-auto'
}
}) }}
</div>
<div class="grid gap-6 mb-6 md:grid-cols-2">
<div class="relative">
<input type="text" id="school"
class="block rounded-lg px-2.5 pb-2.5 pt-5 w-full text-sm dark:bg-dark-font dark:text-white dark:border-dark-primary focus:ring-light-primary dark:focus:ring-dark-primary focus:border-light-primary dark:focus:border-dark-primary dark:placeholder-gray-300 peer"
placeholder="" readonly value="{{ app.user.site.name }}"/>
<label for="school"
class="absolute text-sm text-light-primary dark:text-gray-300 duration-300 transform -translate-y-4 scale-75 top-4 z-10 origin-[0] start-2.5 peer-focus:text-light-primary dark:peer-focus:text-dark-primary peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-4 rtl:peer-focus:translate-x-1/4 rtl:peer-focus:left-auto">Campus d'accueil</label>
</div>
<div class="relative">
{{ form_widget(form.startDate, {
'attr': {
'class': 'block rounded-lg px-2.5 pb-2.5 pt-5 w-full text-sm dark:bg-dark-font dark:text-white dark:border-dark-primary focus:ring-light-primary dark:focus:ring-dark-primary focus:border-light-primary dark:focus:border-dark-primary dark:placeholder-gray-300 peer',
'id': 'startDate',
'placeholder': ''
}
}) }}
{{ form_label(form.startDate, 'Date et heure de la sortie', {
'label_attr': {
'class': 'absolute text-sm text-light-primary dark:text-gray-300 duration-300 transform -translate-y-4 scale-75 top-4 z-10 origin-[0] start-2.5 peer-focus:text-light-primary dark:peer-focus:text-dark-primary peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-4 rtl:peer-focus:translate-x-1/4 rtl:peer-focus:left-auto'
}
}) }}
</div>
<div class="relative">
{{ form_widget(form.closingDate, {
'attr': {
'class': 'block rounded-lg px-2.5 pb-2.5 pt-5 w-full text-sm dark:bg-dark-font dark:text-white dark:border-dark-primary focus:ring-light-primary dark:focus:ring-dark-primary focus:border-light-primary dark:focus:border-dark-primary dark:placeholder-gray-300 peer',
'id': 'closingDate',
'placeholder': ''
}
}) }}
{{ form_label(form.closingDate, 'Date limite d\'inscription', {
'label_attr': {
'class': 'absolute text-sm text-light-primary dark:text-gray-300 duration-300 transform -translate-y-4 scale-75 top-4 z-10 origin-[0] start-2.5 peer-focus:text-light-primary dark:peer-focus:text-dark-primary peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-4 rtl:peer-focus:translate-x-1/4 rtl:peer-focus:left-auto'
}
}) }}
</div>
<div class="relative">
{{ form_widget(form.registrationsMax, {
'attr': {
'class': 'block rounded-lg px-2.5 pb-2.5 pt-5 w-full text-sm dark:bg-dark-font dark:text-white dark:border-dark-primary focus:ring-light-primary dark:focus:ring-dark-primary focus:border-light-primary dark:focus:border-dark-primary dark:placeholder-gray-300 peer',
'id': 'registrationsMax',
'placeholder': ''
}
}) }}
{{ form_label(form.registrationsMax, 'Nombre de place', {
'label_attr': {
'class': 'absolute text-sm text-light-primary dark:text-gray-300 duration-300 transform -translate-y-4 scale-75 top-4 z-10 origin-[0] start-2.5 peer-focus:text-light-primary dark:peer-focus:text-dark-primary peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-4 rtl:peer-focus:translate-x-1/4 rtl:peer-focus:left-auto'
}
}) }}
</div>
<div class="relative">
{{ form_widget(form.duration, {
'attr': {
'class': 'block rounded-lg px-2.5 pb-2.5 pt-5 w-full text-sm dark:bg-dark-font dark:text-white dark:border-dark-primary focus:ring-light-primary dark:focus:ring-dark-primary focus:border-light-primary dark:focus:border-dark-primary dark:placeholder-gray-300 peer',
'id': 'duration',
'placeholder': ''
}
}) }}
{{ form_label(form.duration, 'Durée (en minutes)', {
'label_attr': {
'class': 'absolute text-sm text-light-primary dark:text-gray-300 duration-300 transform -translate-y-4 scale-75 top-4 z-10 origin-[0] start-2.5 peer-focus:text-light-primary dark:peer-focus:text-dark-primary peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-4 rtl:peer-focus:translate-x-1/4 rtl:peer-focus:left-auto'
}
}) }}
</div>
<div class="relative">
{{ form_widget(form.place.city, {
'attr': {
'class': 'block rounded-t-lg px-2.5 pb-2.5 pt-5 w-full text-sm dark:bg-dark-font dark:text-white dark:border-dark-primary focus:ring-light-primary dark:focus:ring-dark-primary focus:border-light-primary dark:focus:border-dark-primary dark:placeholder-gray-300 peer',
'id': 'city',
'placeholder': ''
}
}) }}
{{ form_label(form.place.city, 'Ville', {
'label_attr': {
'class': 'absolute text-sm text-light-primary dark:text-gray-300 duration-300 transform -translate-y-4 scale-75 top-4 z-10 origin-[0] start-2.5 peer-focus:text-light-primary dark:peer-focus:text-dark-primary peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-4 rtl:peer-focus:translate-x-1/4 rtl:peer-focus:left-auto'
}
}) }}
</div>
<div class="relative">
{{ form_widget(form.place.name, {
'attr': {
'class': 'block rounded-lg px-2.5 pb-2.5 pt-5 w-full text-sm dark:bg-dark-font dark:text-white dark:border-dark-primary focus:ring-light-primary dark:focus:ring-dark-primary focus:border-light-primary dark:focus:border-dark-primary dark:placeholder-gray-300 peer',
'id': 'placeName',
'placeholder': ''
}
}) }}
{{ form_label(form.place.name, 'Lieu', {
'label_attr': {
'class': 'absolute text-sm text-light-primary dark:text-gray-300 duration-300 transform -translate-y-4 scale-75 top-4 z-10 origin-[0] start-2.5 peer-focus:text-light-primary dark:peer-focus:text-dark-primary peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-4 rtl:peer-focus:translate-x-1/4 rtl:peer-focus:left-auto'
}
}) }}
</div>
<div class="relative">
{{ form_widget(form.place.address, {
'attr': {
'class': 'block rounded-lg px-2.5 pb-2.5 pt-5 w-full text-sm dark:bg-dark-font dark:text-white dark:border-dark-primary focus:ring-light-primary dark:focus:ring-dark-primary focus:border-light-primary dark:focus:border-dark-primary dark:placeholder-gray-300 peer',
'id': 'placeAddress',
'placeholder': ''
}
}) }}
{{ form_label(form.place.address, 'Adresse', {
'label_attr': {
'class': 'absolute text-sm text-light-primary dark:text-gray-300 duration-300 transform -translate-y-4 scale-75 top-4 z-10 origin-[0] start-2.5 peer-focus:text-light-primary dark:peer-focus:text-dark-primary peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-4 rtl:peer-focus:translate-x-1/4 rtl:peer-focus:left-auto'
}
}) }}
</div>
<div class="relative">
{{ form_widget(form.place.latitude, {
'attr': {
'class': 'block rounded-lg px-2.5 pb-2.5 pt-5 w-full text-sm dark:bg-dark-font dark:text-white dark:border-dark-primary focus:ring-light-primary dark:focus:ring-dark-primary focus:border-light-primary dark:focus:border-dark-primary dark:placeholder-gray-300 peer',
'id': 'placeLatitude',
'placeholder': ''
}
}) }}
{{ form_label(form.place.latitude, 'Latitude', {
'label_attr': {
'class': 'absolute text-sm text-light-primary dark:text-gray-300 duration-300 transform -translate-y-4 scale-75 top-4 z-10 origin-[0] start-2.5 peer-focus:text-light-primary dark:peer-focus:text-dark-primary peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-4 rtl:peer-focus:translate-x-1/4 rtl:peer-focus:left-auto'
}
}) }}
</div>
<div class="relative">
{{ form_widget(form.place.longitude, {
'attr': {
'class': 'block rounded-lg px-2.5 pb-2.5 pt-5 w-full text-sm dark:bg-dark-font dark:text-white dark:border-dark-primary focus:ring-light-primary dark:focus:ring-dark-primary focus:border-light-primary dark:focus:border-dark-primary dark:placeholder-gray-300 peer',
'id': 'placeLongitude',
'placeholder': ''
}
}) }}
{{ form_label(form.place.longitude, 'Longitude', {
'label_attr': {
'class': 'absolute text-sm text-light-primary dark:text-gray-300 duration-300 transform -translate-y-4 scale-75 top-4 z-10 origin-[0] start-2.5 peer-focus:text-light-primary dark:peer-focus:text-dark-primary peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-4 rtl:peer-focus:translate-x-1/4 rtl:peer-focus:left-auto'
}
}) }}
</div>
</div>
<div class="relative w-full pb-5">
{{ form_widget(form.description, {
'attr': {
'class': 'block rounded-lg px-2.5 pb-2.5 pt-5 w-full text-sm dark:bg-dark-font dark:text-white dark:border-dark-primary focus:ring-light-primary dark:focus:ring-dark-primary focus:border-light-primary dark:focus:border-dark-primary dark:placeholder-gray-300 peer columns-2',
'id': 'description',
'placeholder': ''
}
}) }}
{{ form_label(form.description, 'Description', {
'label_attr': {
'class': 'absolute text-sm text-light-primary dark:text-gray-300 duration-300 transform -translate-y-4 scale-75 top-4 z-10 origin-[0] start-2.5 peer-focus:text-light-primary dark:peer-focus:text-dark-primary peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-4 rtl:peer-focus:translate-x-1/4 rtl:peer-focus:left-auto'
},
}) }}
</div>
<div class="relative">
<div class="flex items-center justify-center w-full">
<label for="create_outing_poster" class="flex flex-col items-center justify-center w-full h-64 border-2 border-gray-300 border-dashed rounded-lg cursor-pointer bg-gray-50 dark:hover:bg-bray-800 dark:bg-dark-font hover:bg-gray-100 dark:border-dark-primary dark:hover:border-dark-primary/75 dark:hover:bg-dark-font/75">
<div class="flex flex-col items-center justify-center pt-5 pb-6">
<svg class="w-8 h-8 mb-4 text-gray-500 dark:text-gray-400" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 20 16">
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 13h3a3 3 0 0 0 0-6h-.025A5.56 5.56 0 0 0 16 6.5 5.5 5.5 0 0 0 5.207 5.021C5.137 5.017 5.071 5 5 5a4 4 0 0 0 0 8h2.167M10 15V6m0 0L8 8m2-2 2 2"></path>
</svg>
<p class="mb-2 text-sm text-gray-500 dark:text-gray-400"><span class="font-semibold">Cliquez pour insérer</span> une image</p>
<p class="text-xs text-gray-500 dark:text-gray-400">SVG, PNG ou JPG</p>
</div>
{{ form_widget(form.poster, {'attr': {'class': 'hidden', 'enctype': 'multipart/form-data'}}) }}
<span id="file-name" class="flex items-center justify-center cursor-pointer text-gray-500 dark:text-gray-400 font-semibold">
{% if outing is defined and outing.poster is not null %}
{{ outing.poster }}
{% endif %}
</span>
</label>
</div>
</div>
<script>
const fileInput = document.getElementById('create_outing_poster');
const fileNameDisplay = document.getElementById('file-name');
fileInput.addEventListener('change', function() {
if (fileInput.files.length > 0) {
fileNameDisplay.textContent = fileInput.files[0].name;
} else {
fileNameDisplay.textContent = 'Aucun fichier choisi';
}
});
</script>
</div>
<div class="mt-6 grid w-full grid-cols-2 justify-end space-x-4 md:flex">
<div class="flex w-full justify-center">
<button type="submit"
class="px-4 py-2 mx-4 text-white dark:text-light-font uppercase bg-light-primary dark:bg-dark-primary border-2 border-transparent rounded-lg text-md hover:bg-light-secondary dark:hover:bg-dark-primary/75 transition duration-300">
{% if isModif %}
Modifier
{% else %}
Publier
{% endif %}
</button>
{% if isModif %}
<button data-modal-target="popup-cancel" data-modal-toggle="popup-cancel" class="px-4 py-2 mx-4 text-white dark:text-light-font uppercase bg-light-danger dark:bg-dark-danger border-2 border-transparent rounded-lg text-md hover:bg-light-danger/75 dark:hover:bg-dark-danger/75 transition duration-300" type="button">
Annuler la sortie
</button>
<a href="{{ path('outing_preview', {'id': outing.id}) }}" class="px-4 py-2 mx-4 text-light-primary dark:text-dark-primary dark:hover:text-dark-primary hover:text-light-font uppercase bg-transparent rounded-lg hover:bg-light-secondary dark:hover:bg-dark-secondary cursor-pointer transition duration-300">
Retour
</a>
<div id="popup-cancel" tabindex="-1" class="hidden overflow-y-auto overflow-x-hidden fixed top-0 right-0 left-0 z-50 justify-center items-center w-full md:inset-0 h-[calc(100%-1rem)] max-h-full">
<div class="relative p-4 w-full max-w-md max-h-full">
<div class="relative bg-white rounded-lg shadow dark:bg-gray-700">
<button type="button" class="absolute top-3 end-2.5 text-gray-400 bg-transparent hover:bg-gray-200 hover:text-gray-900 rounded-lg text-sm w-8 h-8 ms-auto inline-flex justify-center items-center dark:hover:bg-gray-600 dark:hover:text-white" data-modal-hide="popup-cancel">
<svg class="w-3 h-3" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 14 14">
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 6 6m0 0 6 6M7 7l6-6M7 7l-6 6"></path>
</svg>
<span class="sr-only">Fermer la popup</span>
</button>
<div class="p-4 md:p-5 text-center">
<svg class="mx-auto mb-4 text-gray-400 w-12 h-12 dark:text-gray-200" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 20 20">
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 11V6m0 8h.01M19 10a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"></path>
</svg>
<h3 class="mb-5 text-lg font-normal text-gray-500 dark:text-gray-400">Êtes-vous sûr de vouloir annuler la sortie ?</h3>
<a href="{{ path('outing_cancel', {'id': outing.id}) }}" data-modal-hide="popup-cancel" type="button" class="text-white bg-red-600 hover:bg-red-800 focus:ring-4 focus:outline-none focus:ring-red-300 dark:focus:ring-red-800 font-medium rounded-lg text-sm inline-flex items-center px-5 py-2.5 text-center me-2">
Oui, annuler
</a>
<button data-modal-hide="popup-cancel" type="button" class="text-gray-500 bg-white hover:bg-gray-100 focus:ring-4 focus:outline-none focus:ring-gray-200 rounded-lg border border-gray-200 text-sm font-medium px-5 py-2.5 hover:text-gray-900 focus:z-10 dark:bg-gray-700 dark:text-gray-300 dark:border-gray-500 dark:hover:text-white dark:hover:bg-gray-600 dark:focus:ring-gray-600">Non</button>
</div>
</div>
</div>
</div>
{% else %}
<button class="px-4 py-2 mx-4 text-light-primary dark:text-dark-primary dark:hover:text-dark-primary hover:text-light-font uppercase bg-transparent rounded-lg hover:bg-light-secondary dark:hover:bg-dark-secondary cursor-pointer" onclick="window.history.back()">
Retour
</button>
{% endif %}
</div>
</div>
{{ form_end(form) }}
</section>
{% endblock %}

View File

@@ -1,25 +0,0 @@
{% extends 'base.html.twig' %}
{% block title %}Liste des sorties | {{ parent() }}{% endblock %}
{% block body %}
<section class="flex flex-row justify-center flex-wrap mx-auto p-6">
<div class="m-2 w-full lg:w-5/6 sm:w-full">
{% include 'outing/search.html.twig' with {'formSearch':formSearch} only %}
</div>
{% if outings|length == 0 %}
<h2 class="w-full text-3xl mt-5 text-center font-extrabold text-black sm:text-4xl">Aucune sortie ne correspond à
votre
recherche</h2>
{% else %}
<section class="flex flex-row justify-center flex-wrap mx-auto p-6 lg:px-32">
{% for outing in outings %}
{% include 'outing/card.html.twig' with {'outing': outing} %}
{% endfor %}
</section>
{% endif %}
</section>
{% endblock %}

View File

@@ -1,176 +0,0 @@
{% extends 'base.html.twig' %}
{% block title %}{{ outing.title }} | {{ parent() }}{% endblock %}
{% block body %}
<main class="mt-10 px-8">
<div class="flex flex-col-reverse lg:flex-row">
<div class="flex flex-col lg:flex-row lg:space-x-12 lg:w-1/3">
<div class="w-full mx-3 m-auto">
{% if weather is not null %}
<div class="p-4 border-t border-b md:border rounded-2xl shadow-xl dark:border-dark-primary bg-light-card dark:bg-dark-card flex flex-col items-center m-auto mb-5">
<div class="text-center">
<h2 class="text-xl font-semibold p-2 text-gray-700 dark:text-light-card">{{ outing.place.city.name }}</h2>
</div>
{% if weather.weather == 0 %}
<img src="{{ asset('weather/day.svg') }}" alt="Météo"
class="w-48 h-48 rounded-full">
{% elseif weather.weather > 0 and weather.weather < 10 %}
<img src="{{ asset('weather/cloudy-day-2.svg') }}" alt="Météo"
class="w-48 h-48 rounded-full">
{% elseif weather.weather >= 10 and weather.weather < 60 %}
<img src="{{ asset('weather/rainy-2.svg') }}" alt="Météo"
class="w-48 h-48 rounded-full">
{% elseif weather.weather >= 60 and weather.weather < 79 %}
<img src="{{ asset('weather/snowy-4.svg') }}" alt="Météo"
class="w-48 h-48 rounded-full">
{% elseif weather.weather >= 78 and weather.weather < 138 %}
<img src="{{ asset('weather/thunder.svg') }}" alt="Météo"
class="w-48 h-48 rounded-full">
{% else %}
<img src="{{ asset('weather/day.svg') }}" alt="Météo"
class="w-48 h-48 rounded-full">
{% endif %}
<div class="mb-2 text-3xl font-semibold p-2 text-gray-700 dark:text-light-card">{{ weather.tmin }}°C / {{ weather.tmax }}°C
</div>
</div>
{% endif %}
<div class="p-4 border-t border-b md:border rounded-2xl shadow-xl dark:border-dark-primary bg-light-card dark:bg-dark-card">
<p class="font-semibold text-gray-700 dark:text-light-card text-lg">Publié par :</p>
<a href="{{ path('user_show', {'pseudo': outing.organizer.pseudo}) }}" class="flex py-2 w-fit">
{% if outing.organizer.profilePicture %}
<img src="{{ asset('uploads/' ~ outing.organizer.profilePicture) | imagine_filter('profile') }}"
class="h-10 w-10 rounded-full mr-2 object-cover"
alt="Photo de profil de {{ outing.organizer.pseudo }}"/>
{% else %}
<img src="{{ asset('profilDefault.png') }}"
class="h-10 w-10 rounded-full mr-2 object-cover"
alt="Photo de profil de {{ outing.organizer.pseudo }}"/>
{% endif %}
<div>
<p class="font-semibold text-gray-700 text-sm dark:text-light-card">
{% if outing.organizer == app.user %}
Vous
{% else %}
{{ outing.organizer.firstname|capitalize }} {{ outing.organizer.lastname|upper }}
{% endif %}
</p>
<p class="font-semibold text-gray-400 text-xs">@{{ outing.organizer.pseudo }}</p>
<p class="font-semibold text-gray-600 text-xs dark:text-dark-primary">{{ outing.organizer.site.name }}</p>
</div>
</a>
<div class="flex flex-col items-center justify-center text-center">
{% if outing.status.label == "Annulée" %}
<button class="px-4 py-2 m-2 mt-4 w-full text-white dark:text-light-font uppercase bg-light-danger/75 dark:bg-dark-danger/75 border-2 border-transparent rounded-lg text-md"
disabled>
Sortie annulée
</button>
{% else %}
{% if outing.isUserRegistered(app.user) and outing.organizer != app.user %}
<a href="{{ path('outing_unregister', {'id':outing.id}) }}"
class="px-4 py-2 m-2 mt-4 w-full text-white dark:text-light-font uppercase bg-light-danger dark:bg-dark-danger border-2 border-transparent rounded-lg text-md hover:bg-light-danger/75 dark:hover:bg-dark-danger/75">
Se désister
</a>
{% elseif outing.canUserRegister(app.user) %}
<a href="{{ path('outing_register', {'id':outing.id}) }}"
class="px-4 py-2 m-2 w-full text-white dark:text-light-font uppercase bg-light-success dark:bg-dark-success border-2 border-transparent rounded-lg text-md hover:bg-light-success/75 dark:hover:bg-dark-success/75">
S'inscrire
</a>
{% elseif outing.organizer != app.user %}
<button class="px-4 py-2 m-2 mt-4 w-full text-white dark:text-light-font uppercase bg-light-danger/75 dark:bg-dark-danger/75 border-2 border-transparent rounded-lg text-md"
disabled>
Inscriptions fermées
</button>
{% endif %}
{% if outing.organizer == app.user %}
<a href="{{ path('outing_edit', {'id':outing.id}) }}"
class="px-4 py-2 m-2 w-full text-white dark:text-dark-primary uppercase bg-light-secondary dark:bg-dark-secondary hover:bg-light-secondary/75 dark:hover:bg-dark-secondary/75 rounded-lg text-md">
Modifier
</a>
{% endif %}
{% endif %}
</div>
</div>
</div>
</div>
<div class="mb-4 md:mb-0 mx-3 w-full mx-auto relative">
<div class="px-4 lg:px-0 my-3 text-center text-gray-600">
<h2 class="text-4xl font-semibold text-gray-800 dark:text-light-font leading-tight overflow-hidden truncate">
{{ outing.title }}
</h2>
<div class="pt-2 flex-col items-center justify-center">
{# On regarde le label du statut de l'outing, si c'est créée ou ouverte on met le texte en success, si c'est activité en cours on met text-warning, sinon on met text-danger #}
{% set labelColor = outing.status.label == 'Créée' or outing.status.label == 'Ouverte' ? 'text-dark-success text-light-success' : outing.status.label == 'Activité en cours' ? 'text-dark-warning text-light-warning' : 'text-dark-danger text-light-danger' %}
<h2 class="{{ labelColor }}">
{{ outing.status.label }}
</h2>
</div>
{% if outing.poster %}
<img src="{{ asset('uploads/' ~ outing.poster) | imagine_filter('outings') }}"
class="h-auto max-w-full md:max-w-md lg:max-w-lg mx-auto rounded-lg shadow-xl my-3"
alt="poster"/>
{% endif %}
{% if app.user %}
<h2 class="dark:text-light-font"><span
class="font-bold dark:text-dark-primary">Lieu</span> : {{ outing.place.name }}</h2>
<h2 class="dark:text-light-font"><span class="font-bold dark:text-dark-primary">Adresse</span>
: {{ outing.place.address }}, {{ outing.place.city.name }} ({{ outing.place.city.postcode }}
)</h2>
<h2 class="dark:text-light-font"><span class="font-bold dark:text-dark-primary">Date</span>
: {{ outing.startDate|format_datetime('long', 'short', locale='fr') }}</h2>
{% if outing.closingDate > date('now') %}
<h3 class="dark:text-light-font"><span class="font-bold dark:text-dark-primary">Clôture des inscriptions</span>
:
<span class="text-dark-danger text-light-danger">{{ outing.closingDate|format_datetime('long', 'short', locale='fr') }}</span>
</h3>
{% endif %}
{% endif %}
<h3 class="dark:text-light-font"><span class="font-bold dark:text-dark-primary">Nombre de participants inscrits </span>
:
<span class="font-bold {% if (outing.registrationsMax - outing.registrations|length) > outing.registrations|length / 2 %}text-dark-success text-light-success{% elseif (outing.registrationsMax - outing.registrations|length) > outing.registrations|length %}text-dark-warning text-light-warning{% else %}text-dark-danger text-light-danger{% endif %}">
{{ outing.registrations|length }} / {{ outing.registrationsMax }}
</span>
</h3>
</div>
<div class="px-4 lg:px-0 mt-12 text-gray-700 text-lg leading-relaxed w-full lg:w-3/4 order-first lg:order-last">
<p class="pb-6 dark:text-light-font">{{ outing.description }}</p>
</div>
</div>
</div>
{% if outing.registrations|length > 0 %}
<section class="mt-8 px-8">
<h2 class="text-2xl font-semibold text-center mb-4 dark:text-light-font">Liste des participants</h2>
<div class="flex flex-wrap justify-center">
{% for registration in outing.registrations %}
<div class="max-w-xs mx-4 mb-8">
<a href="{{ path('user_show', {'pseudo': registration.participant.pseudo}) }}">
<div class="bg-light-card dark:bg-dark-card rounded-lg shadow-md hover:shadow-xl transition overflow-hidden cursor-pointer w-44">
<img src="{{ registration.participant.profilePicture ? asset('uploads/' ~ registration.participant.profilePicture) | imagine_filter('profile') : asset('profilDefault.png') }}"
class="w-full h-40 object-cover"
alt="Photo de profil de {{ registration.participant.pseudo }}">
<div class="p-4 text-center">
<p class="text-lg font-semibold dark:text-light-font">
@{{ registration.participant.pseudo }}</p>
<p class="text-gray-500 text-sm dark:text-dark-primary">{{ registration.participant.site.name }}</p>
</div>
</div>
</a>
</div>
{% endfor %}
</div>
</section>
{% endif %}
</main>
{% endblock %}

View File

@@ -1,108 +0,0 @@
{% if formSearch %}
{{ form_start(formSearch) }}
<div class="rounded-xl bg-light-card dark:bg-dark-card p-6 shadow-md">
<h2 class="text-light-primary dark:text-light-font text-xl font-bold">Rechercher une sortie</h2>
<div class="flex items-center my-5 relative w-full">
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg class="w-5 h-5 text-gray-500 dark:text-gray-400" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" d="M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z" clip-rule="evenodd"></path>
</svg>
</div>
{{ form_widget(formSearch.name, {
'attr': {
'class': 'block w-full pl-10 p-2.5 text-sm rounded-lg dark:bg-dark-font dark:text-white dark:border-dark-primary focus:ring-light-primary dark:focus:ring-dark-primary focus:border-light-primary dark:focus:border-dark-primary dark:placeholder-gray-300',
'id': 'simple-search',
'placeholder': 'Recherche'
}
}) }}
</div>
<div class="my-5 grid grid-flow-row-dense grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4">
<div class="flex flex-col col-span-4 md:col-span-2">
<label for="campus" class="text-light-primary dark:text-light-font text-sm font-medium">Campus</label>
{{ form_widget(formSearch.site, {
'attr': {
'id': 'campus',
'class': 'text-sm rounded-lg my-2 block w-full border-gray-200 dark:bg-dark-font dark:text-white dark:border-dark-primary focus:ring-light-primary dark:focus:ring-dark-primary focus:border-light-primary dark:focus:border-dark-primary dark:placeholder-gray-300'
}
}) }}
</div>
<div class="flex flex-col col-span-4 md:col-span-1">
<label for="startDate" class="text-light-primary dark:text-light-font text-sm font-medium">Date de début</label>
{{ form_widget(formSearch.startDate, {
'attr': {
'id': 'startDate',
'class': 'text-sm rounded-lg my-2 block w-full border-gray-200 dark:bg-dark-font dark:text-white dark:border-dark-primary focus:ring-light-primary dark:focus:ring-dark-primary focus:border-light-primary dark:focus:border-dark-primary dark:placeholder-gray-300'
}
}) }}
</div>
<div class="flex flex-col col-span-4 md:col-span-1">
<label for="endDate" class="text-light-primary dark:text-light-font text-sm font-medium">Date de fin</label>
{{ form_widget(formSearch.endDate, {
'attr': {
'id': 'endDate',
'class': 'text-sm rounded-lg my-2 block w-full border-gray-200 dark:bg-dark-font dark:text-white dark:border-dark-primary focus:ring-light-primary dark:focus:ring-dark-primary focus:border-light-primary dark:focus:border-dark-primary dark:placeholder-gray-300'
}
}) }}
</div>
<div class="flex flex-col col-span-4">
<ul class="items-center w-full text-sm font-medium rounded-lg sm:flex bg-white dark:bg-dark-font border border-gray-300 dark:border-dark-primary text-light-primary dark:text-light-font">
<li class="w-full border-b border-gray-200 dark:border-dark-primary sm:border-b-0 sm:border-r">
<div class="flex items-center ps-3">
{{ form_widget(formSearch.isOrganizer, {
'id': 'author',
'attr': {
'class': 'text-sm rounded-lg cursor-pointer w-4 h-4 bg-white dark:bg-dark-font border border-gray-300 text-light-primary dark:text-dark-primary focus:ring-0 dark:focus:ring-dark-primary'
}
}) }}
<label for="author" class="w-full py-3 ms-2 text-sm font-medium text-light-primary dark:text-light-font">Sorties dont je suis l'organisateur/trice</label>
</div>
</li>
<li class="w-full border-b border-gray-200 dark:border-dark-primary sm:border-b-0 sm:border-r">
<div class="flex items-center ps-3">
{{ form_widget(formSearch.isRegistered, {
'id': 'register',
'attr': {
'class': 'text-sm rounded-lg cursor-pointer w-4 h-4 bg-white dark:bg-dark-font border border-gray-300 text-light-primary dark:text-dark-primary focus:ring-0 dark:focus:ring-dark-primary'
}
}) }}
<label for="register" class="w-full py-3 ms-2 text-sm font-medium text-light-primary dark:text-light-font">Sorties auxquelles je suis inscrit/e</label>
</div>
</li>
<li class="w-full border-b border-gray-200 dark:border-dark-primary sm:border-b-0 sm:border-r">
<div class="flex items-center ps-3">
{{ form_widget(formSearch.isNotRegistered, {
'id': 'notResgister',
'attr': {
'class': 'text-sm rounded-lg cursor-pointer w-4 h-4 bg-white dark:bg-dark-font border border-gray-300 text-light-primary dark:text-dark-primary focus:ring-0 dark:focus:ring-dark-primary'
}
}) }}
<label for="notResgister" class="w-full py-3 ms-2 text-sm font-medium text-light-primary dark:text-light-font">Sorties auxquelles je ne suis pas inscrit/e</label>
</div>
</li>
<li class="w-full border-b border-gray-200 dark:border-dark-primary sm:border-b-0 sm:border-r">
<div class="flex items-center ps-3">
{{ form_widget(formSearch.isFinished, {
'id': 'endOuting',
'attr': {
'class': 'text-sm rounded-lg cursor-pointer w-4 h-4 bg-white dark:bg-dark-font border border-gray-300 text-light-primary dark:text-dark-primary focus:ring-0 dark:focus:ring-dark-primary'
}
}) }}
<label for="endOuting" class="w-full py-3 ms-2 text-sm font-medium text-light-primary dark:text-light-font">Sorties passées</label>
</div>
</li>
</ul>
</div>
</div>
<div class="mt-6 grid w-full grid-cols-2 justify-end space-x-4 md:flex">
<button type="reset" class="px-4 py-2 text-light-primary dark:text-dark-primary dark:hover:text-dark-primary hover:text-light-font uppercase bg-transparent rounded-lg hover:bg-light-secondary dark:hover:bg-dark-secondary text-md transition duration-300">
Annuler les filtres
</button>
<button type="submit" class="px-4 py-2 mr-4 text-white dark:text-light-font uppercase bg-light-primary dark:bg-dark-primary border-2 border-transparent rounded-lg text-md hover:bg-light-secondary dark:hover:bg-dark-primary/75 transition duration-300">
Rechercher
</button>
</div>
</div>
{{ form_end(formSearch) }}
{% endif %}

View File

@@ -1,9 +0,0 @@
<h1>Salut l'ami 👋</h1>
<p>Alors on a oublié son mot de passe, pas de problème tu peux le réinitialiser avec le lien suivant : <a
href="{{ url('app_reset_password', {token: resetToken.token}) }}">Réinitialiser mon mot de passe</a>
</p>
<p>Attention ce lien expirera dans {{ resetToken.expirationMessageKey|trans(resetToken.expirationMessageData, 'ResetPasswordBundle') }}</p>
<p>À tout de suite 😉</p>

View File

@@ -1,46 +0,0 @@
{% extends 'base.html.twig' %}
{% block title %}Mot de passe oublié | {{ parent() }}{% endblock %}
{% block body %}
<div class="mx-auto max-w-screen-xl px-4 py-16 sm:px-6 lg:px-8">
<div class="mx-auto max-w-lg">
<h1 class="text-center text-2xl font-bold text-light-primary dark:text-light-font sm:text-3xl">Tu as
oublié ton mot de passe 😓</h1>
<p class="mx-auto mt-4 max-w-md text-center dark:text-light-font">
Pas de problème, on s'occupe de tout 😉
</p>
{{ form_start(requestForm) }}
<div class="mb-0 mt-6 space-y-4 rounded-lg p-4 dark:bg-dark-card bg-light-card shadow-lg sm:p-6 lg:p-8">
<p class="text-center text-lg font-medium text-light-primary dark:text-light-font">C'est quoi ton
email ?</p>
<div>
<label for="email" class="sr-only">Email</label>
<div class="relative">
{{ form_widget(requestForm.email, { id:'email', attr: { class: 'w-full rounded-lg p-4 pe-12 text-sm shadow-sm border-gray-200 dark:bg-dark-font dark:text-white dark:border-dark-primary focus:ring-light-primary dark:focus:ring-dark-primary focus:border-light-primary dark:focus:border-dark-primary dark:placeholder-gray-300', placeholder: 'Entrer votre email' } } ) }}
<span class="absolute inset-y-0 end-0 grid place-content-center px-4">
<svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 text-gray-400" fill="none" viewBox="0 0 24 24"
stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M16 12a4 4 0 10-8 0 4 4 0 008 0zm0 0v1.5a2.5 2.5 0 005 0V12a9 9 0 10-9 9m4.5-1.206a8.959 8.959 0 01-4.5 1.207"></path>
</svg>
</span>
</div>
</div>
<button type="submit"
class="block w-full rounded-lg bg-light-primary dark:bg-dark-primary hover:bg-light-secondary dark:hover:bg-dark-primary/75 transition duration-300 px-5 py-3 text-sm font-medium text-white">
Se connecter
</button>
<p class="text-center text-sm text-light-primary dark:text-light-font">
Tu as retrouvé ton mot de passe ?
<a class="underline" href="{{ path('app_login') }}">Se connecter</a>
</p>
</div>
{{ form_end(requestForm) }}
</div>
</div>
{% endblock %}

View File

@@ -1,53 +0,0 @@
{% extends 'base.html.twig' %}
{% block title %}Nouveau mot de passe | {{ parent() }}{% endblock %}
{% block body %}
<div class="mx-auto max-w-screen-xl px-4 py-16 sm:px-6 lg:px-8">
<div class="mx-auto max-w-lg">
<h1 class="text-center text-2xl font-bold text-light-primary dark:text-light-font sm:text-3xl">Nouveau mot
de passe 😊</h1>
{{ form_start(resetForm) }}
<div class="mb-0 mt-6 space-y-4 rounded-lg p-4 shadow-lg sm:p-6 lg:p-8">
<p class="text-center text-lg font-medium text-light-primary dark:text-light-font">Votre nouveau mot
de passe</p>
<div>
<label for="firstPassword" class="sr-only">Nouveau mot de passe</label>
<div class="relative">
{{ form_widget(resetForm.plainPassword.first, { id:'firstPassword', attr: { class: 'w-full rounded-lg border-gray-200 p-4 pe-12 text-sm shadow-sm focus:ring-light-primary dark:focus:ring-dark-primary focus:border-light-primary dark:focus:border-dark-primary', placeholder: 'Entrer votre nouveau mot de passe' } } ) }}
<span class="absolute inset-y-0 end-0 grid place-content-center px-4">
<svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 text-gray-400" fill="none" viewBox="0 0 24 24"
stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"></path>
</svg>
</span>
</div>
</div>
<div>
<label for="secondPassword" class="sr-only">Confirmation du mot de passe</label>
<div class="relative">
{{ form_widget(resetForm.plainPassword.second, { id:'secondPassword', attr: { class: 'w-full rounded-lg border-gray-200 p-4 pe-12 text-sm shadow-sm focus:ring-light-primary dark:focus:ring-dark-primary focus:border-light-primary dark:focus:border-dark-primary', placeholder: 'Confirmer votre nouveau mot de passe' } } ) }}
<span class="absolute inset-y-0 end-0 grid place-content-center px-4">
<svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 text-gray-400" fill="none" viewBox="0 0 24 24"
stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"></path>
</svg>
</span>
</div>
</div>
<div>
<button type="submit"
class="block w-full rounded-lg bg-light-primary dark:bg-dark-primary px-5 py-3 text-sm font-medium text-white">
Valider
</button>
</div>
{{ form_end(resetForm) }}
</div>
</div>
{% endblock %}

View File

@@ -1,71 +0,0 @@
{% extends 'base.html.twig' %}
{% block title %}Connexion | {{ parent() }}{% endblock %}
{% block body %}
{% if error %}
<div class="alert alert-danger">{{ error.messageKey|trans(error.messageData, 'security') }}</div>
{% endif %}
<div class="mx-auto max-w-screen-xl px-4 py-16 sm:px-6 lg:px-8">
<div class="mx-auto max-w-lg">
<h1 class="text-center text-2xl font-bold text-light-primary dark:text-white sm:text-3xl">Salut à toi
👋</h1>
<p class="mx-auto mt-4 max-w-md text-center dark:text-white">
Connecte-toi pour accéder aux sorties et rencontrer de nouvelles personnes
</p>
<form method="post" class="mb-0 mt-6 space-y-4 rounded-lg p-4 dark:bg-dark-card bg-light-card shadow-lg sm:p-6 lg:p-8">
<p class="text-center text-lg font-medium text-light-primary dark:text-white">Connexion à votre
compte</p>
<div>
<label for="login" class="sr-only">Email ou Pseudo</label>
<div class="relative">
<input id="login" name="login" value="" type="text"
class="w-full rounded-lg p-4 pe-12 text-sm shadow-sm border-gray-200 dark:bg-dark-font dark:text-white dark:border-dark-primary focus:ring-light-primary dark:focus:ring-dark-primary focus:border-light-primary dark:focus:border-dark-primary dark:placeholder-gray-300"
placeholder="Entrer votre email ou pseudo"/>
<span class="absolute inset-y-0 end-0 grid place-content-center px-4">
<svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 text-gray-400" fill="none" viewBox="0 0 24 24"
stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M16 12a4 4 0 10-8 0 4 4 0 008 0zm0 0v1.5a2.5 2.5 0 005 0V12a9 9 0 10-9 9m4.5-1.206a8.959 8.959 0 01-4.5 1.207"></path>
</svg>
</span>
</div>
</div>
<div>
<label for="password" class="sr-only">Mot de passe</label>
<div class="relative">
<input id="password" name="password" type="password"
class="w-full rounded-lg p-4 pe-12 text-sm shadow-sm border-gray-200 dark:bg-dark-font dark:text-white dark:border-dark-primary focus:ring-light-primary dark:focus:ring-dark-primary focus:border-light-primary dark:focus:border-dark-primary dark:placeholder-gray-300"
placeholder="Entrer votre mot de passe"/>
<span class="absolute inset-y-0 end-0 grid place-content-center px-4">
<svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 text-gray-400" fill="none" viewBox="0 0 24 24"
stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"></path>
</svg>
</span>
</div>
</div>
<div>
<label for="rememberCheck" class="flex items-center">
<input id="rememberCheck" name="rememberCheck" type="checkbox"
class="rounded light:border-gray-200 dark:border-dark-primary dark:bg-dark-font shadow-sm"/>
<span class="ml-2 text-sm text-light-primary dark:text-white">Se souvenir de moi</span>
</label>
</div>
<input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}">
<button type="submit"
class="block w-full rounded-lg bg-light-primary dark:bg-dark-primary hover:bg-light-primary/75 dark:hover:bg-dark-primary/75 px-5 py-3 text-sm font-medium text-white transition duration-200">
Se connecter
</button>
<p class="text-center text-sm text-light-primary dark:text-white">
Tu as oublié ton mot de passe ?
<a class="underline" href="{{ path('app_forgot_password_request') }}">Réinitialise ton mot de
passe</a>
</p>
</form>
</div>
</div>
{% endblock %}

View File

@@ -1,73 +0,0 @@
{% extends 'base.html.twig' %}
{% block title %}Modifier son profil | {{ parent() }}{% endblock %}
{% block javascripts %}
{{ parent() }}
<script src="{{ asset('js/dynamicPicture.js') }}" defer></script>
{% endblock %}
{% block body %}
<div class="max-w-xl mx-auto my-10 rounded-lg shadow-md p-5 text-light-primary dark:text-light-font dynamic-picture-container bg-light-card dark:bg-dark-card">
<img src="{{ asset((user.profilePicture) ? 'uploads/' ~ user.profilePicture : 'profilDefault.png') | imagine_filter('profile') }}"
class="w-56 h-56 rounded-full mx-auto" id="profilePicture"
alt="Photo de profil de {{ user.pseudo }}">
<p class="text-center my-2 text-2xl">@{{ user.pseudo }}</p>
{{ form_start(form) }}
<div class="my-2">
<label for="UserSchool"
class="block overflow-hidden rounded-md border border-light-secondary/50 px-3 py-2 shadow-sm border-gray-200 dark:bg-dark-font dark:text-white dark:border-dark-primary focus:ring-light-primary dark:focus:ring-dark-primary focus:border-light-primary dark:focus:border-dark-primary dark:placeholder-gray-300">
<span class="text-xs font-medium">Campus</span>
{{ form_widget(form.site, { id:'UserSchool', attr: { class: 'mt-1 w-full border-none p-0 bg-transparent focus:border-transparent focus:outline-none focus:ring-0 sm:text-sm'}}) }}
</label>
</div>
<div class="my-2">
<label for="firstname"
class="block overflow-hidden rounded-md border border-light-secondary/50 px-3 py-2 shadow-sm border-gray-200 dark:bg-dark-font dark:text-white dark:border-dark-primary focus:ring-light-primary dark:focus:ring-dark-primary focus:border-light-primary dark:focus:border-dark-primary dark:placeholder-gray-300">
<span class="text-xs font-medium">Prénom</span>
{{ form_widget(form.firstname, { id:'firstname', attr: { class: 'mt-1 w-full border-none p-0 bg-transparent focus:border-transparent focus:outline-none focus:ring-0 sm:text-sm'}}) }}
</label>
</div>
<div class="my-2">
<label for="lastname"
class="block overflow-hidden rounded-md border border-light-secondary/50 px-3 py-2 shadow-sm border-gray-200 dark:bg-dark-font dark:text-white dark:border-dark-primary focus:ring-light-primary dark:focus:ring-dark-primary focus:border-light-primary dark:focus:border-dark-primary dark:placeholder-gray-300">
<span class="text-xs font-medium">Nom</span>
{{ form_widget(form.lastname, { id:'lastname', attr: { class: 'mt-1 w-full border-none p-0 bg-transparent focus:border-transparent focus:outline-none focus:ring-0 sm:text-sm'}}) }}
</label>
</div>
<div class="my-2">
<label for="UserEmail"
class="block overflow-hidden rounded-md border border-light-secondary/50 px-3 py-2 shadow-sm border-gray-200 dark:bg-dark-font dark:text-white dark:border-dark-primary focus:ring-light-primary dark:focus:ring-dark-primary focus:border-light-primary dark:focus:border-dark-primary dark:placeholder-gray-300">
<span class="text-xs font-medium">Email</span>
{{ form_widget(form.email, { id:'UserEmail', attr: { class: 'mt-1 w-full border-none p-0 bg-transparent focus:border-transparent focus:outline-none focus:ring-0 sm:text-sm'}}) }}
</label>
</div>
<div class="my-2">
<label for="UserTel"
class="block overflow-hidden rounded-md border border-light-secondary/50 px-3 py-2 shadow-sm border-gray-200 dark:bg-dark-font dark:text-white dark:border-dark-primary focus:ring-light-primary dark:focus:ring-dark-primary focus:border-light-primary dark:focus:border-dark-primary dark:placeholder-gray-300">
<span class="text-xs font-medium">Téléphone</span>
{{ form_widget(form.phone, { id:'UserTel', attr: { class: 'mt-1 w-full border-none p-0 bg-transparent focus:border-transparent focus:outline-none focus:ring-0 sm:text-sm'}}) }}
</label>
</div>
<div class="my-2">
<div class="relative h-32 rounded-md border border-light-secondary/50 px-3 py-2 shadow-sm border-gray-200 dark:bg-dark-font dark:text-white dark:border-dark-primary focus:ring-light-primary dark:focus:ring-dark-primary focus:border-light-primary dark:focus:border-dark-primary dark:placeholder-gray-300">
{{ form_widget(form.profilePicture, { id:'file-upload', attr: { class: 'hidden'}}) }}
<label for="file-upload"
class="z-20 flex flex-col-reverse items-center justify-center w-full h-full cursor-pointer">
<p class="z-10 text-m font-light text-center text-light-primary dark:text-light-font">Glisser
déposer votre photo de profil</p>
<svg class="z-10 w-8 h-8 text-light-primary dark:text-dark-primary" fill="currentColor"
viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
<path d="M2 6a2 2 0 012-2h5l2 2h5a2 2 0 012 2v6a2 2 0 01-2 2H4a2 2 0 01-2-2V6z"></path>
</svg>
</label>
</div>
</div>
<div class="my-5 flex justify-center text-center">
<button type="submit"
class="px-4 py-2 mx-4 text-white dark:text-light-font dark:hover:text-dark-primary uppercase bg-light-primary dark:bg-dark-primary border-2 border-transparent rounded-lg text-md hover:bg-light-secondary dark:hover:bg-dark-secondary">
Valider
</button>
</div>
{{ form_end(form) }}
</div>
{% endblock %}

View File

@@ -1,56 +0,0 @@
{% extends 'base.html.twig' %}
{% block title %}{% if user == app.user %}Mon profil{% else %}Profil de {{ user.pseudo }}{% endif %} | {{ parent() }}{% endblock %}
{% block body %}
<div class="max-w-xl mx-auto my-10 rounded-lg shadow-md p-5 text-light-primary dark:text-light-font bg-light-card dark:bg-dark-card">
<img src="{{ asset((user.profilePicture) ? 'uploads/' ~ user.profilePicture : 'profilDefault.png') | imagine_filter('profile') }}"
class="w-56 h-56 rounded-full mx-auto dark:border-4 dark:border-dark-primary shadow-sm"
alt="Photo de profil de {{ user.pseudo }}">
<h2 class="text-center text-2xl font-semibold mt-3">{{ user.firstname|capitalize }} {{ user.lastname|upper }}</h2>
<p class="text-center mt-1">@{{ user.pseudo }}</p>
<div class="my-2">
<label for="UserSchool"
class="block overflow-hidden rounded-md border px-3 py-2 shadow-sm border-gray-200 dark:bg-dark-font dark:text-white dark:border-dark-primary focus:ring-light-primary dark:focus:ring-dark-primary focus:border-light-primary dark:focus:border-dark-primary dark:placeholder-gray-300">
<span class="text-xs font-medium">Campus</span>
<input type="text" id="UserSchool" value="{{ user.site }}"
class="mt-1 w-full border-none p-0 bg-transparent focus:border-transparent focus:outline-none focus:ring-0 sm:text-sm"
disabled/>
</label>
</div>
{% if user == app.user %}
<div class="my-2">
<label for="UserTel"
class="block overflow-hidden rounded-md border px-3 py-2 shadow-sm border-gray-200 dark:bg-dark-font dark:text-white dark:border-dark-primary focus:ring-light-primary dark:focus:ring-dark-primary focus:border-light-primary dark:focus:border-dark-primary dark:placeholder-gray-300">
<span class="text-xs font-medium">Téléphone</span>
<input type="tel" id="UserTel" value="{{ user.phone }}"
class="mt-1 w-full border-none p-0 bg-transparent focus:border-transparent focus:outline-none focus:ring-0 sm:text-sm"
disabled/>
</label>
</div>
<div class="my-2">
<label for="UserEmail"
class="block overflow-hidden rounded-md border px-3 py-2 shadow-sm border-gray-200 dark:bg-dark-font dark:text-white dark:border-dark-primary focus:ring-light-primary dark:focus:ring-dark-primary focus:border-light-primary dark:focus:border-dark-primary dark:placeholder-gray-300">
<span class="text-xs font-medium">Email</span>
<input type="email" id="UserEmail" value="{{ user.email }}"
class="mt-1 w-full border-none p-0 bg-transparent focus:border-transparent focus:outline-none focus:ring-0 sm:text-sm"
disabled/>
</label>
</div>
<div class="my-5 flex justify-center text-center align-content-center align-middle">
<a href="{{ path('app_logout') }}"
class="px-4 py-2 mx-4 text-white uppercase rounded-lg hover:bg-light-danger/75 dark:hover:bg-dark-danger/75 bg-light-danger dark:bg-dark-danger text-md flex items-center">
Déconnexion
</a>
<a href="{{ path('user_change_password') }}"
class="px-4 py-2 mx-4 text-light-primary dark:text-white hover:text-light-font uppercase rounded-lg hover:bg-light-info/75 dark:hover:bg-dark-info/75 bg-light-info dark:bg-dark-info text-md flex items-center">
Modifier mon mot de passe
</a>
<a href="{{ path('user_edit') }}"
class="px-4 py-2 mx-4 text-white dark:text-light-font dark:hover:text-dark-primary uppercase bg-light-primary dark:bg-dark-primary border-2 border-transparent rounded-lg text-md hover:bg-light-secondary dark:hover:bg-dark-secondary flex items-center">
Modifier mon profil
</a>
</div>
{% endif %}
</div>
{% endblock %}

View File

@@ -1,67 +0,0 @@
{% extends 'base.html.twig' %}
{% block title %}Nouveau mot de passe | {{ parent() }}{% endblock %}
{% block body %}
<div class="mx-auto max-w-screen-xl px-4 py-16 sm:px-6 lg:px-8">
<div class="mx-auto max-w-lg">
<h1 class="text-center text-2xl font-bold text-light-primary dark:text-light-font sm:text-3xl">Nouveau mot
de passe 😊</h1>
{{ form_start(form) }}
<div class="mb-0 mt-6 space-y-4 rounded-lg p-4 shadow-lg sm:p-6 lg:p-8 bg-light-card dark:bg-dark-card">
<p class="text-center text-lg font-medium text-light-primary dark:text-light-font">Votre nouveau mot
de passe</p>
<div>
<label for="oldPassword" class="sr-only">Mot de passe actuel</label>
<div class="relative">
{{ form_widget(form.oldPassword, { id:'firstPassword', attr: { class: 'w-full rounded-lg border-gray-200 p-4 pe-12 text-sm shadow-sm focus:ring-light-primary dark:focus:ring-dark-primary focus:border-light-primary dark:focus:border-dark-primary', placeholder: 'Mot de passe actuel' } } ) }}
<span class="absolute inset-y-0 end-0 grid place-content-center px-4">
<svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 text-gray-400" fill="none" viewBox="0 0 24 24"
stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"></path>
</svg>
</span>
</div>
</div>
<div>
<label for="firstPassword" class="sr-only">Nouveau mot de passe</label>
<div class="relative">
{{ form_widget(form.plainPassword.first, { id:'firstPassword', attr: { class: 'w-full rounded-lg border-gray-200 p-4 pe-12 text-sm shadow-sm focus:ring-light-primary dark:focus:ring-dark-primary focus:border-light-primary dark:focus:border-dark-primary', placeholder: 'Entrer votre nouveau mot de passe' } } ) }}
<span class="absolute inset-y-0 end-0 grid place-content-center px-4">
<svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 text-gray-400" fill="none" viewBox="0 0 24 24"
stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"></path>
</svg>
</span>
</div>
</div>
<div>
<label for="secondPassword" class="sr-only">Confirmation du mot de passe</label>
<div class="relative">
{{ form_widget(form.plainPassword.second, { id:'secondPassword', attr: { class: 'w-full rounded-lg border-gray-200 p-4 pe-12 text-sm shadow-sm focus:ring-light-primary dark:focus:ring-dark-primary focus:border-light-primary dark:focus:border-dark-primary', placeholder: 'Confirmer votre nouveau mot de passe' } } ) }}
<span class="absolute inset-y-0 end-0 grid place-content-center px-4">
<svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 text-gray-400" fill="none" viewBox="0 0 24 24"
stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"></path>
</svg>
</span>
</div>
</div>
<button type="submit"
class="block w-full rounded-lg bg-light-primary dark:bg-dark-primary px-5 py-3 text-sm font-medium text-white">
Valider
</button>
</div>
{{ form_end(form) }}
</div>
</div>
{% endblock %}