55 Commits

Author SHA1 Message Date
672fdb98fd Merge branch 'main' into spie06 2023-11-27 08:32:29 +01:00
929385d5e0 merge and fix 2023-11-27 08:31:13 +01:00
soukainna
cbc77f1615 Merge branch 'fixMultipleReservationV' into dev 2023-06-22 14:24:17 +02:00
soukainna
fc8b325865 merge branch FixAddressBeneficiary into dev 2023-06-22 12:29:54 +02:00
89adcc69a2 Merge branch 'dev' of https://git.coopgo.io/coopgo-apps/parcoursmob-default-theme into dev 2023-06-02 14:59:24 +02:00
da3c37699e edit template vehicle_stats and booking-list to add export button 2023-06-02 14:57:18 +02:00
019569155a add export agenda by Salim 2023-06-01 14:11:30 +02:00
db4c22699e agenda event export button 2023-05-30 09:09:53 +02:00
soukainna
bd71a36cd3 fix duplicate group 2023-05-19 11:23:18 +02:00
soukainna
8778f88fbd fix the type of vehicle 2023-05-19 11:16:00 +02:00
soukainna
3aba9e0071 fix the group settings 2023-05-19 11:16:00 +02:00
soukainna
560af60f32 allow modification for owners 2023-05-19 11:16:00 +02:00
soukainna
4789c5a49e allow modify option just for owners 2023-05-19 11:16:00 +02:00
soukainna
b480747b86 add the update file 2023-05-19 11:16:00 +02:00
soukainna
5617646bdb add the update file 2023-05-19 11:16:00 +02:00
soukainna
4c05d570f7 add modify button 2023-05-19 11:16:00 +02:00
soukainna
11e377ddb3 fix config file 2023-05-19 11:16:00 +02:00
18e2517805 edit template fleet-display and delete-booking template 2023-05-17 12:50:59 +02:00
bad991c3bc edit bookings-list, booking-display and delete-booking template 2023-05-12 11:06:55 +02:00
cf7b78e64e add icone 'Annulé' and update 'Réservations à venir' on fleet-display template 2023-05-10 12:04:17 +02:00
soukainna
eec5afdf39 fix the modify address 2023-05-09 12:13:14 +02:00
soukainna
0bf315596b add hidden button to block multiple reservation 2023-05-03 16:51:01 +02:00
61e9285a2b edit config.yaml to add delete_booking route 2023-05-03 14:30:15 +02:00
eb8859ca67 add button Annuler in booking-display and create delete-booking 2023-05-03 14:15:44 +02:00
03b9044ffc Merge branch 'main' into spie06 2023-04-12 22:21:43 +02:00
d6de19d8e2 Add exports 2023-04-12 22:21:25 +02:00
0ecee50d1c Merge branch 'main' into spie06 2023-04-12 10:55:41 +02:00
39e770bb09 Bookings list in admin 2023-04-12 10:52:29 +02:00
96205b81df Merge branch 'main' into spie06 2023-03-15 16:48:27 +01:00
a11ed1c595 Fix document update issue 2023-03-15 16:48:09 +01:00
ea71e44837 Merge branch 'main' into spie06 2023-03-13 16:58:35 +01:00
9f4d331959 small fix 2023-03-13 16:58:13 +01:00
1da9c68690 Merge branch 'main' into spie06 2023-03-13 16:31:26 +01:00
2f49d003ee small fix 2023-03-13 16:31:03 +01:00
a548f50234 Merge branch 'main' into spie06 2023-03-13 16:22:58 +01:00
2248bd8425 add group management 2023-03-13 16:22:44 +01:00
2ea7cf99f6 Merge branch 'main' into spie06 2023-03-10 15:44:01 +01:00
139b4c9c14 Add licence plate 2023-03-10 15:43:46 +01:00
2056bc72e2 Merge branch 'main' into spie06 2023-03-10 14:52:58 +01:00
072eb62d63 Remove Voitures disponibles 2023-03-10 14:52:30 +01:00
dbeac9bec7 Merge branch 'spie06' of https://git.coopgo.io/coopgo-apps/parcoursmob-default-theme into spie06 2023-03-10 13:20:42 +01:00
388b6366df Merge branch 'main' into spie06 2023-03-10 13:20:22 +01:00
0c77e5054a small updates after merge 2023-03-10 13:20:03 +01:00
soukainna
7c620ba09a Merge branch 'dev' into spie06 2023-03-08 10:35:39 +01:00
29060f8ab3 Merge branch 'main' into spie06 2023-01-17 08:57:53 +01:00
21d6e27e0c Merge branch 'main' into spie06 2023-01-17 08:27:06 +01:00
cf780cb9c8 Merge branch 'main' into spie06 2022-12-05 20:27:22 +01:00
a3a48d3882 Fix profile picture issue 2022-12-05 20:25:56 +01:00
0278e4b97f Merge branch 'main' into spie06 2022-12-05 20:05:16 +01:00
aa97b97f22 Merge branch 'main' into spie06 2022-12-05 19:17:01 +01:00
f6e3ba11db Merge 2022-12-05 18:00:32 +01:00
2cb8d7e1a9 Fix new email URL issue 2022-11-07 01:32:15 +01:00
0b5ea8cb05 Rebuild tailwind css after merge 2022-11-07 01:30:27 +01:00
8f4e9a1170 Merge branch 'main' into spie06 2022-11-07 01:28:13 +01:00
d4fc469f49 Updates for SPIE06 2022-11-06 18:38:49 +01:00
38 changed files with 599 additions and 92 deletions

View File

@@ -32,6 +32,7 @@ views:
update: update:
files: files:
- web/layouts/_partials/address_autocomplete.html - web/layouts/_partials/address_autocomplete.html
- web/layouts/agenda/_partials/address.html
- web/layouts/beneficiaries/update.html - web/layouts/beneficiaries/update.html
members: members:
display: display:
@@ -90,10 +91,16 @@ views:
booking_display: booking_display:
files: files:
- web/layouts/vehicles_management/booking-display.html - web/layouts/vehicles_management/booking-display.html
delete_booking:
files:
- web/layouts/vehicles_management/delete-booking.html
agenda: agenda:
list: list:
files: files:
- web/layouts/agenda/home.html - web/layouts/agenda/home.html
history:
files:
- web/layouts/agenda/history.html
display_event: display_event:
files: files:
- web/layouts/agenda/_partials/subscribers-table.html - web/layouts/agenda/_partials/subscribers-table.html
@@ -182,6 +189,10 @@ views:
vehicles_list: vehicles_list:
files: files:
- web/layouts/administration/vehicles_stats.html - web/layouts/administration/vehicles_stats.html
bookings_list:
files:
- web/layouts/administration/_partials/bookings_list.html
- web/layouts/administration/bookings_stats.html
settings: settings:
files: files:
- web/layouts/administration/_partials/groups_admins.html - web/layouts/administration/_partials/groups_admins.html
@@ -209,7 +220,6 @@ views:
ko: ko:
files: files:
- web/layouts/auth/onboarding-ko.html - web/layouts/auth/onboarding-ko.html
icons: icons:
svg: svg:
coopgo:parcoursmob/monogram: <svg xmlns="http://www.w3.org/2000/svg" class="%s" viewBox="0 0 61.85 33.58"><defs><style>.cls-1{fill:#ff1300;}.cls-2{fill:#243887;}</style></defs><g id="Calque_2" data-name="Calque 2"><g id="Calque_1-2" data-name="Calque 1"><path class="cls-1" d="M44.978,0C31.337,0,28.1,6.824,27.875,15.505H39.536V9.434a.727.727,0,0,1,1.123-.607L52.6,16.453,40.659,24.08a.729.729,0,0,1-1.123-.608v-6.1H27.865c.075,8.427,1.527,16.213,17.113,16.213,14.867,0,16.872-7.764,16.872-17.032C61.85,7.91,59.894,0,44.978,0Z"/><polygon class="cls-1" points="41.412 21.385 49.133 16.453 41.412 11.521 41.412 21.385"/><path class="cls-2" d="M14.175,11.4l-.019,4.151H26.311a14.781,14.781,0,0,0,.819-5.141C27.046,3.767,22.545,0,14.764,0H1.052A1.147,1.147,0,0,0,0,1.24V31.87a1.149,1.149,0,0,0,1.094,1.239H11.525a1.145,1.145,0,0,0,1.051-1.239V10.41h.758C13.88,10.41,14.175,10.756,14.175,11.4Z"/><path class="cls-2" d="M14.148,17.3l-.015,3.514H18.97A7.521,7.521,0,0,0,25.458,17.3Z"/></g></g></svg> coopgo:parcoursmob/monogram: <svg xmlns="http://www.w3.org/2000/svg" class="%s" viewBox="0 0 61.85 33.58"><defs><style>.cls-1{fill:#ff1300;}.cls-2{fill:#243887;}</style></defs><g id="Calque_2" data-name="Calque 2"><g id="Calque_1-2" data-name="Calque 1"><path class="cls-1" d="M44.978,0C31.337,0,28.1,6.824,27.875,15.505H39.536V9.434a.727.727,0,0,1,1.123-.607L52.6,16.453,40.659,24.08a.729.729,0,0,1-1.123-.608v-6.1H27.865c.075,8.427,1.527,16.213,17.113,16.213,14.867,0,16.872-7.764,16.872-17.032C61.85,7.91,59.894,0,44.978,0Z"/><polygon class="cls-1" points="41.412 21.385 49.133 16.453 41.412 11.521 41.412 21.385"/><path class="cls-2" d="M14.175,11.4l-.019,4.151H26.311a14.781,14.781,0,0,0,.819-5.141C27.046,3.767,22.545,0,14.764,0H1.052A1.147,1.147,0,0,0,0,1.24V31.87a1.149,1.149,0,0,0,1.094,1.239H11.525a1.145,1.145,0,0,0,1.051-1.239V10.41h.758C13.88,10.41,14.175,10.756,14.175,11.4Z"/><path class="cls-2" d="M14.148,17.3l-.015,3.514H18.97A7.521,7.521,0,0,0,25.458,17.3Z"/></g></g></svg>
@@ -287,4 +297,4 @@ emails:
subject: PARCOURSMOB - Un bénéficiaire a été retiré d'un dispositif subject: PARCOURSMOB - Un bénéficiaire a été retiré d'un dispositif
files: files:
- emails/layout.html - emails/layout.html
- emails/onboarding/delete-subscriber.html - emails/onboarding/delete-subscriber.html

View File

@@ -1,5 +1,5 @@
{{define "content"}} {{define "content"}}
<p>Bonjour,</p> <p>Bonjour,</p>
<p>Vous avez demandé à réinitialiser votre mot de passe pour <b>{{.username}}</b></p> <p>Vous avez demandé à réinitialiser votre mot de passe pour <b>{{.username}}</b></p>
<p>Pour créer votre nouveau mot de passe, cliquez sur le lien suivant : <a href="http://localhost:9000/auth/lost-password/recover?key={{.key}}">http://localhost:9000/auth/lost-password/recover?key={{.key}}</a></p> <p>Pour créer votre nouveau mot de passe, cliquez sur le lien suivant : <a href="https://spie06.parcoursmob.fr/auth/lost-password/recover?key={{.key}}">https://spie06.parcoursmob.fr/auth/lost-password/recover?key={{.key}}</a></p>
{{end}} {{end}}

View File

@@ -1,4 +1,4 @@
{{define "content"}} {{define "content"}}
<p>Vous avez une nouvelle réservation e véhicule sur PARCOURSMOB.</p> <p>Vous avez une nouvelle réservation e véhicule sur PARCOURSMOB.</p>
<p>Connectez vous sur <a href="http://localhost:9000/app/vehicles-management/bookings/{{.bookingid}}">http://localhost:9000/app/vehicles-management/bookings/{{.bookingid}}</a> pour y accéder</p> <p>Connectez vous sur <a href="https://spie06.parcoursmob.fr/app/vehicles-management/bookings/{{.bookingid}}">https://spie06.parcoursmob.fr/app/vehicles-management/bookings/{{.bookingid}}</a> pour y accéder</p>
{{end}} {{end}}

View File

@@ -1,4 +1,4 @@
{{define "content"}} {{define "content"}}
<p>Vous avez été ajouté comme administrateur de l'organisation {{.group}} sur PARCOURSMOB.</p> <p>Vous avez été ajouté comme administrateur de l'organisation {{.group}} sur PARCOURSMOB.</p>
<p>Connectez vous sur <a href="http://localhost:9000">http://localhost:9000</a> pour y accéder</p> <p>Connectez vous sur <a href="https://spie06.parcoursmob.fr">https://spie06.parcoursmob.fr</a> pour y accéder</p>
{{end}} {{end}}

View File

@@ -1,4 +1,4 @@
{{define "content"}} {{define "content"}}
<p>Vous avez été ajouté à l'organisation {{.group}} sur PARCOURSMOB.</p> <p>Vous avez été ajouté à l'organisation {{.group}} sur PARCOURSMOB.</p>
<p>Connectez vous sur <a href="http://localhost:9000">http://localhost:9000</a> pour y accéder</p> <p>Connectez vous sur <a href="https://spie06.parcoursmob.fr">https://spie06.parcoursmob.fr</a> pour y accéder</p>
{{end}} {{end}}

View File

@@ -1,5 +1,5 @@
{{define "content"}} {{define "content"}}
<p>Vous avez été ajouté comme administrateur de l'organisation {{.group}} sur PARCOURSMOB.</p> <p>Vous avez été ajouté comme administrateur de l'organisation {{.group}} sur PARCOURSMOB.</p>
<p>Vous devez créer votre compte pour y accéder.</p> <p>Vous devez créer votre compte pour y accéder.</p>
<p>Pour créer votre compte PARCOURSMOB, cliquez sur : <a href="http://localhost:9000/auth/onboarding?key={{.key}}">http://localhost:9000/auth/onboarding?key={{.key}}</a></p> <p>Pour créer votre compte PARCOURSMOB, cliquez sur : <a href="https://spie06.parcoursmob.fr/auth/onboarding?key={{.key}}">https://spie06.parcoursmob.fr/auth/onboarding?key={{.key}}</a></p>
{{end}} {{end}}

View File

@@ -1,5 +1,5 @@
{{define "content"}} {{define "content"}}
<p>Vous avez été ajouté à l'organisation {{.group}} sur PARCOURSMOB.</p> <p>Vous avez été ajouté à l'organisation {{.group}} sur PARCOURSMOB.</p>
<p>Vous devez créer votre compte pour y accéder.</p> <p>Vous devez créer votre compte pour y accéder.</p>
<p>Pour créer votre compte PARCOURSMOB, cliquez sur : <a href="http://localhost:9000/auth/onboarding?key={{.key}}">http://localhost:9000/auth/onboarding?key={{.key}}</a></p> <p>Pour créer votre compte PARCOURSMOB, cliquez sur : <a href="https://spie06.parcoursmob.fr/auth/onboarding?key={{.key}}">https://spie06.parcoursmob.fr/auth/onboarding?key={{.key}}</a></p>
{{end}} {{end}}

View File

@@ -1,4 +1,4 @@
{{define "content"}} {{define "content"}}
<p>Vous avez reçu un commentaire sur PARCOURSMOB de la part de <b>{{.user}}</b></p> <p>Vous avez reçu un message sur le support PARCOURSMOB de la part de <b>{{.user}}</b></p>
<p>{{.key}}</p> <p>{{.key}}</p>
{{end}} {{end}}

View File

@@ -0,0 +1,115 @@
{{define "bookings_list"}}
<div class="max-w-7xl mx-auto px-4 sm:px-6 md:px-8">
<div class="mt-8 flex flex-col">
<div class="-my-2 -mx-4 overflow-x-auto sm:-mx-6 lg:-mx-8">
<div class="inline-block min-w-full py-2 align-middle md:px-6 lg:px-8">
<div class="overflow-hidden shadow ring-1 ring-black ring-opacity-5 md:rounded-lg">
<table class="min-w-full divide-y divide-gray-300">
<thead class="bg-gray-50">
<tr>
<th scope="col"
class="py-3.5 pl-4 pr-3 text-left text-sm font-semibold text-gray-900 sm:pl-6 text-center">
Statut
</th>
<th scope="col" class="px-3 py-3.5 text-left text-sm font-semibold text-gray-900 sm:pl-6">
Type
</th>
<th scope="col" class="px-3 py-3.5 text-left text-sm font-semibold text-gray-900 sm:pl-6">
Numéro
</th>
<th scope="col" class="px-3 py-3.5 text-left text-sm font-semibold text-gray-900 sm:pl-6">
Gestionnaire véhicule
</th>
<th scope="col" class="px-3 py-3.5 text-left text-sm font-semibold text-gray-900 sm:pl-6">
Prescripteur
</th>
<th scope="col" class="px-3 py-3.5 text-left text-sm font-semibold text-gray-900 sm:pl-6">
Beneficiaire
</th>
<th scope="col" class="px-3 py-3.5 text-left text-sm font-semibold text-gray-900 sm:pl-6">
Dates
</th>
<th scope="col" class="px-3 py-3.5 text-left text-sm font-semibold text-gray-900 sm:pl-6">
Commentaire
</th>
<th scope="col" class="relative py-3.5 pl-3 pr-4 sm:pr-6">
<span class="sr-only">Actions</span>
</th>
</tr>
</thead>
<tbody class="divide-y divide-gray-200 bg-white">
{{range .ViewState.bookings}}
<tr>
<td class="flex-col py-4 pl-4 pr-3 text-sm sm:pl-6 text-center">
{{if .Data.administrator_unavailability}}
<span class="p-1 bg-black text-white text-xs font-bold rounded-xl" >
Retiré
</span>
{{else}}
{{if eq .Status 1 }}
<span class="p-1 bg-co-blue text-white text-xs font-bold rounded-xl" >
A&nbsp;venir
</span>
{{end}}
{{if eq .Status 0 }}
<span class="p-1 bg-co-green text-white text-xs font-bold rounded-xl" >
En&nbsp;cours
</span>
{{end}}
{{if eq .Status -1 }}
<span class="p-1 bg-co-red text-white text-xs font-bold rounded-xl" >
Terminé
</span>
{{end}}
{{end}}
</td>
<td class="whitespace-nowrap py-4 pl-4 pr-3 text-sm sm:pl-6">
<div class="text-gray-900" >{{ (index $.ViewState.vehicles_map .Vehicleid).Type }}</div>
</td>
<td class="whitespace-nowrap py-4 pl-4 pr-3 text-sm sm:pl-6">
<div class="text-gray-900" >{{ (index $.ViewState.vehicles_map .Vehicleid).Data.licence_plate }}</div>
</td>
<td class="whitespace-nowrap py-4 pl-4 pr-3 text-sm sm:pl-6">
<div class="text-gray-900" >{{ (index $.ViewState.admingroups (index (index $.ViewState.vehicles_map .Vehicleid).Administrators 0)).Data.name }}</div>
</td>
<td class="whitespace-nowrap py-4 pl-4 pr-3 text-sm sm:pl-6">
<div class="text-gray-900" >{{ .Data.booked_by.group.name }}<br />({{ .Data.booked_by.user.display_name }})</div>
</td>
<td class="whitespace-nowrap py-4 pl-4 pr-3 text-sm sm:pl-6">
{{if .Data.administrator_unavailability}}
<div class="text-gray-900" ></div>
{{else}}
<div class="text-gray-900" >
<!-- <img class="h-6 w-6 rounded-co" src="/app/beneficiaries/{{.Driver}}/picture" alt=""> -->
{{$b := (index $.ViewState.beneficiaries_map .Driver)}}
{{$b.Data.first_name}} {{$b.Data.last_name}} <br />
{{$b.Data.file_number}}
</div>
{{end}}
</td>
<td class="whitespace-nowrap py-4 pl-4 pr-3 text-sm sm:pl-6">
{{if .Data.administrator_unavailability}}
<div class="text-gray-900" >Retiré du {{(timeFrom .Unavailablefrom).Format "02/01/2006"}} <br />
au {{(timeFrom .Unavailableto).Format "02/01/2006"}}</div>
{{else}}
<div class="text-gray-900" >Du {{(timeFrom .Startdate).Format "02/01/2006"}} <br />
au {{(timeFrom .Enddate).Format "02/01/2006"}}</div>
{{end}}
</td>
<td class="whitespace-nowrap py-4 pl-4 pr-3 text-sm sm:pl-6">
<div class="text-gray-900" >{{ .Data.comment }}</div>
</td>
<td class="whitespace-nowrap py-4 pl-4 pr-3 text-sm sm:pl-6">
<a href="/app/vehicles-management/bookings/{{.ID}}"
class="text-co-blue hover:text-co-blue">Voir</a>
</td>
</tr>
{{end}}
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
{{end}}

View File

@@ -0,0 +1,37 @@
{{define "content"}}
<div class="max-w-7xl mx-auto px-4 sm:px-6 md:px-8">
<h1 class="text-2xl font-semibold text-gray-900">Historique des réservations de véhicules</h1>
<div class="sm:flex sm:items-center">
<div class="sm:flex-auto">
</div>
<div class="mt-4 sm:mt-0 sm:ml-16 sm:flex-none">
<a href="/exports/fleets/bookings">
<button type="button"
class="inline-flex items-center justify-center bg-white hover:bg-gray-50 border-gray-300 border px-4 py-2 text-gray-700 flex items-center text-sm rounded-2xl focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-co-blue">
Export
</button>
</a>
<a href="/app/administration/stats/vehicles">
<button type="button"
class="inline-flex items-center justify-center bg-white hover:bg-gray-50 border-gray-300 border px-4 py-2 text-gray-700 flex items-center text-sm rounded-2xl focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-co-blue">
{{$.IconSet.Icon "hero:outline/document-arrow-left" "h-5 w-5 mr-3"}}
Liste des véhicules
</button>
</a>
<!-- <a href="/api/cache/{{.ViewState.cacheid}}/export">
<button type="button"
class="inline-flex items-center justify-center bg-white hover:bg-gray-50 border-gray-300 border px-4 py-2 text-gray-700 flex items-center text-sm rounded-2xl focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-co-blue">
{{$.IconSet.Icon "hero:outline/document-arrow-down" "h-5 w-5 mr-3"}}
Exporter
</button>
</a> -->
</div>
</div>
</div>
{{template "bookings_list" .}}
{{end}}

View File

@@ -6,6 +6,12 @@
<h1 class="text-2xl font-semibold text-gray-900">La liste des événements</h1> <h1 class="text-2xl font-semibold text-gray-900">La liste des événements</h1>
</div> </div>
<div class="mt-4 sm:mt-0 sm:ml-16 sm:flex-none"> <div class="mt-4 sm:mt-0 sm:ml-16 sm:flex-none">
<a href="/exports/agenda/subscriptions">
<button type="button"
class="inline-flex items-center justify-center bg-white hover:bg-gray-50 border-gray-300 border px-4 py-2 text-gray-700 flex items-center text-sm rounded-2xl focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-co-blue">
Export
</button>
</a>
<a href="/app/administration/"> <a href="/app/administration/">
<button type="button" <button type="button"
class="inline-flex items-center justify-center rounded-2xl border border-transparent bg-co-blue px-4 py-2 text-sm font-medium text-white shadow-sm focus:outline-none focus:ring-2 focus:ring-co-blue focus:ring-offset-2 sm:w-auto"> class="inline-flex items-center justify-center rounded-2xl border border-transparent bg-co-blue px-4 py-2 text-sm font-medium text-white shadow-sm focus:outline-none focus:ring-2 focus:ring-co-blue focus:ring-offset-2 sm:w-auto">

View File

@@ -2,15 +2,26 @@
<div class="max-w-7xl mx-auto px-4 sm:px-6 md:px-8"> <div class="max-w-7xl mx-auto px-4 sm:px-6 md:px-8">
<div class="sm:flex sm:items-center"> <div class="sm:flex sm:items-center">
<div class="sm:flex-auto"> <div class="sm:flex-auto">
<h1 class="text-2xl font-semibold text-gray-900">La liste des voitures</h1> <h1 class="text-2xl font-semibold text-gray-900">Liste des véhicules</h1>
</div> </div>
<div class="mt-4 sm:mt-0 sm:ml-16 sm:flex-none"> <div class="mt-4 sm:mt-0 sm:ml-16 sm:flex-none">
<a href="/app/administration/"> <a href="/exports/fleets/bookings">
<button type="button" <button type="button"
class="inline-flex items-center justify-center rounded-2xl border border-transparent bg-co-blue px-4 py-2 text-sm font-medium text-white shadow-sm focus:outline-none focus:ring-2 focus:ring-co-blue focus:ring-offset-2 sm:w-auto"> class="inline-flex items-center justify-center bg-white hover:bg-gray-50 border-gray-300 border px-4 py-2 text-gray-700 flex items-center text-sm rounded-2xl focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-co-blue">
Retour {{$.IconSet.Icon "hero:outline/document-arrow-down" "h-5 w-5 mr-3"}}
Exporter
</button> </button>
</a> </a>
<a href="/app/administration/">
<a href="/app/administration/stats/bookings">
<button type="button"
class="inline-flex items-center justify-center bg-white hover:bg-gray-50 border-gray-300 border px-4 py-2 text-gray-700 flex items-center text-sm rounded-2xl focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-co-blue">
{{$.IconSet.Icon "hero:outline/document-arrow-left" "h-5 w-5 mr-3"}}
Liste des réservations
</button>
</a>
</a>
</div> </div>
</div> </div>
</div> </div>

View File

@@ -27,8 +27,9 @@
<a href="/app/agenda/{{$event}}/delete" class="inline-flex"><button type="button" <a href="/app/agenda/{{$event}}/delete" class="inline-flex"><button type="button"
class="w-full px-4 py-2 border border-transparent text-sm font-medium rounded-2xl shadow-sm text-white bg-co-red hover:bg-co-red focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-100 focus:ring-co-blue">Retirer</button></a> class="w-full px-4 py-2 border border-transparent text-sm font-medium rounded-2xl shadow-sm text-white bg-co-red hover:bg-co-red focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-100 focus:ring-co-blue">Retirer</button></a>
</div>
</div>
{{end}} {{end}}
{{end}} {{end}}
@@ -89,13 +90,21 @@
<div class="bg-white shadow sm:rounded-lg"> <div class="bg-white shadow sm:rounded-lg">
<div class="flex justify-between px-4 py-5 sm:px-6"> <div class="flex justify-between px-4 py-5 sm:px-6">
<h2 id="event-information-title" class="text-lg leading-6 font-medium text-gray-900">Tous les inscrits</h2> <h2 id="event-information-title" class="text-lg leading-6 font-medium text-gray-900">Tous les inscrits</h2>
<a href="/exports/agenda/{{$event}}">
<button type="button"
class="inline-flex items-center justify-center bg-white hover:bg-gray-50 border-gray-300 border px-4 py-2 text-gray-700 flex items-center text-sm rounded-2xl focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-co-blue">
{{$.IconSet.Icon "hero:outline/document-arrow-down" "h-5 w-5 mr-3"}}
Exporter
</button>
</a>
<a href="/app/agenda/{{.ViewState.event.ID}}/history"> <a href="/app/agenda/{{.ViewState.event.ID}}/history">
<button type="submit"class="rounded-2xl border border-transparent bg-co-blue px-4 py-2 w-full text-sm font-medium text-white shadow-sm focus:outline-none focus:ring-2 focus:ring-co-blue focus:ring-offset-2 sm:w-auto"> <button type="submit"class="rounded-2xl border border-transparent bg-co-blue px-4 py-2 w-full text-sm font-medium text-white shadow-sm focus:outline-none focus:ring-2 focus:ring-co-blue focus:ring-offset-2 sm:w-auto">
Bénéficiaires désinscrits Bénéficiaires désinscrits
</button> </button>
</a> </a>
</div> </div>
{{template "subscribers_table" .}} {{template "subscribers_table" .}}
</div> </div>
</section> </section>
{{end}} {{end}}

View File

@@ -0,0 +1,105 @@
{{define "content"}}
<div class="max-w-7xl mx-auto px-4 sm:px-6 md:px-8">
<h1 class="text-2xl font-semibold text-gray-900">Anciens dispositifs</h1>
<div class="sm:flex sm:items-center">
<div class="sm:flex-auto">
<p class="mt-2 text-sm text-gray-700"></p>
</div>
<div class="mt-4 sm:mt-0 sm:ml-16 sm:flex-none">
</div>
</div>
</div>
<div class="max-w-7xl mx-auto px-4 sm:px-6 md:px-8">
<div class="mt-8 flex flex-col">
<div class="-my-2 -mx-4 overflow-x-auto sm:-mx-6 lg:-mx-8">
<div class="inline-block min-w-full py-2 align-middle md:px-6 lg:px-8">
<div class="overflow-hidden shadow ring-1 ring-black ring-opacity-5 md:rounded-lg">
<table class="min-w-full divide-y divide-gray-300">
<thead class="bg-gray-50">
<tr>
<th scope="col" class="px-3 py-3.5 text-left text-sm font-semibold text-gray-900 sm:pl-6">
Dispositif
</th>
<th scope="col" class="px-3 py-3.5 text-left text-sm font-semibold text-gray-900 sm:pl-6">
Structure
</th>
<th scope="col" class="px-3 py-3.5 text-left text-sm font-semibold text-gray-900 sm:pl-6">
Lieu
</th>
<th scope="col" class="px-3 py-3.5 text-left text-sm font-semibold text-gray-900 sm:pl-6">
Dates
</th>
<th scope="col" class="px-3 py-3.5 text-left text-sm font-semibold text-gray-900 sm:pl-6">
Places disponibles
</th>
<th scope="col" class="px-3 py-3.5 text-left text-sm font-semibold text-gray-900 sm:pl-6">
Bénéficiaires positionnés
</th>
<th scope="col" class="relative py-3.5 pl-3 pr-4 sm:pr-6">
<span class="sr-only">Actions</span>
</th>
</tr>
<tbody class="divide-y divide-gray-200 bg-white">
{{range .ViewState.events}}
{{if eq .Deleted false}}
<a href="/app/agenda/{{.ID}}">
<tr>
<td class="whitespace-nowrap py-4 pl-4 pr-3 text-sm sm:pl-6">
<div class="font-medium text-gray-900">{{.Name}}</div>
<div class="text-gray-500">{{.Type}}</div>
</td>
<td class="whitespace-nowrap py-4 pl-4 pr-3 text-sm sm:pl-6">
<div class="text-gray-900" >
{{range .Owners}}
{{if (index $.ViewState.groups .)}}
{{(index $.ViewState.groups .).Data.name}}
{{end}}
{{end}}
</div>
</td>
<td class="whitespace-nowrap py-4 pl-4 pr-3 text-sm sm:pl-6">
<div class="text-gray-900" >{{if .Data.address}}{{.Data.address.properties.label}}{{end}}</div>
</td>
<td class="whitespace-nowrap py-4 pl-4 pr-3 text-sm sm:pl-6">
<div class="text-gray-900" >
{{if eq .Startdate .Enddate}}
Le {{(timeFrom .Startdate).Format "02/01/2006"}}
{{else}}
Du {{(timeFrom .Startdate).Format "02/01/2006"}} <br />Au {{(timeFrom .Enddate).Format "02/01/2006"}}
{{end}}
</div>
</td>
<td class="whitespace-nowrap py-4 pl-4 pr-3 text-sm sm:pl-6">
{{if ne .RemainingSubscriptions 999}}
<div class="text-gray-900" >{{.RemainingSubscriptions}}</div>
{{end}}
</td>
<td class="whitespace-nowrap py-4 pl-4 pr-3 text-sm sm:pl-6">
<div class="flex -space-x-1 overflow-hidden" >
{{range .Subscriptions}}
<img class="inline-block h-6 w-6 rounded-co ring-2 ring-white" src="/app/beneficiaries/{{.Subscriber}}/picture" >
{{end}}
</div>
</td>
<td class="whitespace-nowrap py-4 pl-4 pr-3 text-sm sm:pl-6">
<a href="/app/agenda/{{.ID}}" class="text-co-blue hover:text-co-blue">Voir</a>
</td>
</tr>
</a>
{{end}}
{{end}}
</tbody>
</thead>
</table>
</div>
</div>
</div>
</div>
</div>
{{end}}

View File

@@ -7,6 +7,13 @@
<p class="mt-2 text-sm text-gray-700"></p> <p class="mt-2 text-sm text-gray-700"></p>
</div> </div>
<div class="mt-4 sm:mt-0 sm:ml-16 sm:flex-none"> <div class="mt-4 sm:mt-0 sm:ml-16 sm:flex-none">
<a href="/app/agenda/history">
<button type="button"
class="inline-flex items-center justify-center mr-3 bg-white hover:bg-gray-50 border-gray-300 border px-4 py-2 text-gray-700 flex items-center text-sm rounded-2xl focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-co-blue">
{{$.IconSet.Icon "hero:outline/calendar" "h-5 w-5 mr-3"}}
Historique
</button>
</a>
<a href="/app/agenda/create-event"> <a href="/app/agenda/create-event">
<button type="button" <button type="button"
class="inline-flex items-center justify-center rounded-2xl border border-transparent bg-co-blue px-4 py-2 text-sm font-medium text-white shadow-sm focus:outline-none focus:ring-2 focus:ring-ci-blue focus:ring-offset-2 sm:w-auto"> class="inline-flex items-center justify-center rounded-2xl border border-transparent bg-co-blue px-4 py-2 text-sm font-medium text-white shadow-sm focus:outline-none focus:ring-2 focus:ring-ci-blue focus:ring-offset-2 sm:w-auto">

View File

@@ -2,7 +2,7 @@
<html class="h-full bg-gray-50"> <html class="h-full bg-gray-50">
<head> <head>
<title>PARCOURSMOB - Identification</title> <title>PARCOURSMOB - Identification</title>
<link rel="stylesheet" href="http://localhost:9000/public/css/main.css" /> <link rel="stylesheet" href="/public/css/main.css" />
</head> </head>
<body class="h-full"> <body class="h-full">
<form method="post"> <form method="post">

View File

@@ -2,7 +2,7 @@
<html class="h-full bg-gray-50"> <html class="h-full bg-gray-50">
<head> <head>
<title>PARCOURSMOB - Identification</title> <title>PARCOURSMOB - Identification</title>
<link rel="stylesheet" href="http://localhost:9000/public/css/main.css" /> <link rel="stylesheet" href="/public/css/main.css" />
</head> </head>
<body class="h-full"> <body class="h-full">

View File

@@ -2,7 +2,7 @@
<html class="h-full bg-gray-50"> <html class="h-full bg-gray-50">
<head> <head>
<title>PARCOURSMOB - Identification</title> <title>PARCOURSMOB - Identification</title>
<link rel="stylesheet" href="http://localhost:9000/public/css/main.css" /> <link rel="stylesheet" href="/public/css/main.css" />
</head> </head>
<body class="h-full"> <body class="h-full">
<form method="post"> <form method="post">

View File

@@ -2,7 +2,7 @@
<html class="h-full bg-gray-50"> <html class="h-full bg-gray-50">
<head> <head>
<title>PARCOURSMOB - Identification</title> <title>PARCOURSMOB - Identification</title>
<link rel="stylesheet" href="http://localhost:9000/public/css/main.css" /> <link rel="stylesheet" href="/public/css/main.css" />
</head> </head>
<body class="h-full"> <body class="h-full">

View File

@@ -2,7 +2,7 @@
<html class="h-full bg-gray-50"> <html class="h-full bg-gray-50">
<head> <head>
<title>PARCOURSMOB - Identification</title> <title>PARCOURSMOB - Identification</title>
<link rel="stylesheet" href="http://localhost:9000/public/css/main.css" /> <link rel="stylesheet" href="/public/css/main.css" />
</head> </head>
<body class="h-full"> <body class="h-full">
<form method="post"> <form method="post">

View File

@@ -81,7 +81,7 @@ x-data="{
{{end}} {{end}}
<h3 class="text-lg">Ajouter un document</h3> <h3 class="text-lg">Ajouter un document</h3>
<form method="POST" action="/app/beneficiaries/e7616eac-4a87-4396-a505-23e0421b9c4c/documents" @submit="submit" enctype="multipart/form-data"> <form method="POST" action="/app/beneficiaries/{{.ViewState.beneficiary.ID}}/documents" @submit="submit" enctype="multipart/form-data">
<div class="md:grid md:grid-cols-6 p-2"> <div class="md:grid md:grid-cols-6 p-2">
<div class="sm:col-span-2"> <div class="sm:col-span-2">
<label for="type" class="block text-sm font-medium text-gray-700">Type</label> <label for="type" class="block text-sm font-medium text-gray-700">Type</label>
@@ -132,4 +132,4 @@ x-data="{
</form> </form>
</div> </div>
{{end}} {{end}}

View File

@@ -20,7 +20,7 @@
email: ['required', 'email'], email: ['required', 'email'],
phone_number: ['required', 'regexMatch:^((\\+)33|0)[1-9](\\d{2}){4}$'], phone_number: ['required', 'regexMatch:^((\\+)33|0)[1-9](\\d{2}){4}$'],
birthdate: ['required'], birthdate: ['required'],
file_number: ['optional'], file_number: ['required'],
}, },
formValidation: { formValidation: {
valid: false, valid: false,
@@ -100,6 +100,13 @@
x-model="fields.birthdate" @blur="validateField('birthdate')" x-model="fields.birthdate" @blur="validateField('birthdate')"
:class="formValidation.fields.birthdate.valid == false ? 'border-co-red border-2' : 'border-gray-300'"> :class="formValidation.fields.birthdate.valid == false ? 'border-co-red border-2' : 'border-gray-300'">
</div> </div>
<div class="col-span-6 sm:col-span-3">
<label for="file_number" class="block text-sm font-medium text-gray-700">Numéro de dossier (CAF / Pole Emploi ...)</label>
<input type="text" name="file_number" id="file_number" placeholder=""
class="mt-1 focus:ring-co-blue focus:border-co-blue block w-full shadow-sm sm:text-sm rounded-2xl"
x-model="fields.file_number" @blur="validateField('file_number')"
:class="formValidation.fields.file_number.valid == false ? 'border-co-red border-2' : 'border-gray-300'">
</div>
</div> </div>
</div> </div>
</div> </div>
@@ -114,14 +121,6 @@
<div class="mt-5 space-y-6 md:mt-0 md:col-span-2"> <div class="mt-5 space-y-6 md:mt-0 md:col-span-2">
<div class="grid grid-cols-6 gap-6"> <div class="grid grid-cols-6 gap-6">
<div class="col-span-6 sm:col-span-3">
<label for="file_number" class="block text-sm font-medium text-gray-700">Numéro de dossier (allocataire, ...)</label>
<input type="text" name="file_number" id="file_number" placeholder=""
class="mt-1 focus:ring-co-blue focus:border-co-blue block w-full shadow-sm sm:text-sm rounded-2xl"
x-model="fields.file_number" @blur="validateField('file_number')"
:class="formValidation.fields.file_number.valid == false ? 'border-co-red border-2' : 'border-gray-300'">
</div>
<div class="col-span-6 sm:col-span-3"> <div class="col-span-6 sm:col-span-3">
<label for="gender" class="block text-sm font-medium text-gray-700">Genre</label> <label for="gender" class="block text-sm font-medium text-gray-700">Genre</label>
<div class="sm:mt-0 sm:col-span-2"> <div class="sm:mt-0 sm:col-span-2">

View File

@@ -69,6 +69,12 @@
<dd class="mt-1 text-sm text-gray-900">{{.ViewState.beneficiary.Data.address.properties.label}}</dd> <dd class="mt-1 text-sm text-gray-900">{{.ViewState.beneficiary.Data.address.properties.label}}</dd>
</div> </div>
{{end}} {{end}}
{{if .ViewState.beneficiary.Data.file_number}}
<div class="sm:col-span-1">
<dt class="text-sm font-medium text-gray-500">Numéro de dossier (CAF / Pole emploi)</dt>
<dd class="mt-1 text-sm text-gray-900">{{.ViewState.beneficiary.Data.file_number}}</dd>
</div>
{{end}}
</dl> </dl>
</div> </div>
</div> </div>

View File

@@ -21,7 +21,7 @@
email: ['required', 'email'], email: ['required', 'email'],
phone_number: ['required', 'regexMatch:^((\\+)33|0)[1-9](\\d{2}){4}$'], phone_number: ['required', 'regexMatch:^((\\+)33|0)[1-9](\\d{2}){4}$'],
birthdate: ['required'], birthdate: ['required'],
file_number: ['optional'], file_number: ['required'],
}, },
formValidation: { formValidation: {
valid: false, valid: false,
@@ -101,6 +101,15 @@
x-model="fields.birthdate" @blur="validateField('birthdate')" x-model="fields.birthdate" @blur="validateField('birthdate')"
:class="formValidation.fields.birthdate.valid == false ? 'border-co-red border-2' : 'border-gray-300'"> :class="formValidation.fields.birthdate.valid == false ? 'border-co-red border-2' : 'border-gray-300'">
</div> </div>
<div class="col-span-6 sm:col-span-3">
<label for="file_number" class="block text-sm font-medium text-gray-700">Numéro de dossier (CAF / Pole Emploi ...)</label>
<input type="text" name="file_number" id="file_number"
class="mt-1 focus:ring-co-blue focus:border-co-blue block w-full shadow-sm sm:text-sm rounded-2xl"
x-model="fields.file_number" @blur="validateField('file_number')"
:class="formValidation.fields.file_number.valid == false ? 'border-co-red border-2' : 'border-gray-300'">
</div>
</div> </div>
</div> </div>
</div> </div>
@@ -114,15 +123,6 @@
</div> </div>
<div class="mt-5 space-y-6 md:mt-0 md:col-span-2"> <div class="mt-5 space-y-6 md:mt-0 md:col-span-2">
<div class="grid grid-cols-6 gap-6"> <div class="grid grid-cols-6 gap-6">
<div class="col-span-6 sm:col-span-3">
<label for="file_number" class="block text-sm font-medium text-gray-700">Numéro de dossier (allocataire, ...)</label>
<input type="text" name="file_number" id="file_number"
class="mt-1 focus:ring-co-blue focus:border-co-blue block w-full shadow-sm sm:text-sm rounded-2xl"
x-model="fields.file_number" @blur="validateField('file_number')"
:class="formValidation.fields.file_number.valid == false ? 'border-co-red border-2' : 'border-gray-300'">
</div>
<div class="col-span-6 sm:col-span-3"> <div class="col-span-6 sm:col-span-3">
<label for="gender" class="block text-sm font-medium text-gray-700">Genre</label> <label for="gender" class="block text-sm font-medium text-gray-700">Genre</label>
<div class="sm:mt-0 sm:col-span-2"> <div class="sm:mt-0 sm:col-span-2">
@@ -162,9 +162,13 @@
</div> </div>
<div class="mt-5 space-y-6 md:mt-0 md:col-span-2"> <div class="mt-5 space-y-6 md:mt-0 md:col-span-2">
{{ $fieldName := "address" }} {{ $fieldName := "address" }}
{{ template "address_autocomplete" (dict "FieldName" $fieldName "Address" .ViewState.Data.address) }} {{if .ViewState.Data.address}}
<!-- will dolater : tags, groups, ... --> {{$default := .ViewState.Data.address}}
{{ template "address" dict "FieldName" $fieldName "Default" $default}}
{{else}}
{{ template "address_autocomplete" dict "FieldName" $fieldName}}
{{end}}
</div> </div>
</div> </div>

View File

@@ -10,6 +10,7 @@
</div> </div>
<ul role="list" class="divide-y divide-gray-200 flex-1"> <ul role="list" class="divide-y divide-gray-200 flex-1">
{{range .}} {{range .}}
{{if eq .Deleted false}}
<li class="py-2 px-4 flex"> <li class="py-2 px-4 flex">
<a href="/app/agenda/{{.ID}}" class="flex w-full"> <a href="/app/agenda/{{.ID}}" class="flex w-full">
<div class="ml-3"> <div class="ml-3">
@@ -18,6 +19,7 @@
</a> </a>
</li> </li>
{{end}} {{end}}
{{end}}
</ul> </ul>
<a href="/app/agenda/"> <a href="/app/agenda/">

View File

@@ -22,7 +22,7 @@
x-transition:enter="transition ease-in-out duration-300 transform" x-transition:enter-start="-translate-x-full" x-transition:enter="transition ease-in-out duration-300 transform" x-transition:enter-start="-translate-x-full"
x-transition:enter-end="translate-x-0" x-transition:leave="transition ease-in-out duration-300 transform" x-transition:enter-end="translate-x-0" x-transition:leave="transition ease-in-out duration-300 transform"
x-transition:leave-start="translate-x-0" x-transition:leave-end="-translate-x-full"> x-transition:leave-start="translate-x-0" x-transition:leave-end="-translate-x-full">
<div class="relative flex-1 flex flex-col max-w-xs w-full pt-5 pb-4 bg-co-blue"> <div class="relative flex-1 flex flex-col max-w-xs w-full pb-4 bg-co-blue">
<div class="absolute top-0 right-0 -mr-12 pt-2" @click="offCanvasMenu = false"> <div class="absolute top-0 right-0 -mr-12 pt-2" @click="offCanvasMenu = false">
<button type="button" <button type="button"
class="ml-1 flex items-center justify-center h-10 w-10 rounded-full focus:outline-none focus:ring-2 focus:ring-inset focus:ring-white"> class="ml-1 flex items-center justify-center h-10 w-10 rounded-full focus:outline-none focus:ring-2 focus:ring-inset focus:ring-white">
@@ -31,7 +31,8 @@
</button> </button>
</div> </div>
<div class="flex-shrink-0 flex items-center px-4"> <div class="bg-white flex items-center shadow"><img class="h-16 w-auto m-auto" src="/public/images/departement06.png"></div>
<div class="flex-shrink-0 flex items-center px-4 pt-5">
<img class="h-8 w-auto" src="/public/images/main_logo.svg" alt="PARCOURSMOB"> <img class="h-8 w-auto" src="/public/images/main_logo.svg" alt="PARCOURSMOB">
</div> </div>
<div class="mt-5 flex-1 h-0 overflow-y-auto"> <div class="mt-5 flex-1 h-0 overflow-y-auto">
@@ -50,9 +51,10 @@
<!-- Static sidebar for desktop --> <!-- Static sidebar for desktop -->
<div class="hidden md:flex md:w-64 md:flex-col md:fixed md:inset-y-0"> <div class="hidden md:flex md:w-64 md:flex-col md:fixed md:inset-y-0">
<!-- Sidebar component, swap this element with another sidebar if you like --> <!-- Sidebar component, swap this element with another sidebar if you like -->
<div class="flex flex-col flex-grow pt-5 bg-co-blue overflow-y-auto"> <div class="flex flex-col flex-grow bg-co-blue overflow-y-auto">
<div class="flex items-center flex-shrink-0 px-4"> <div class="bg-white flex items-center shadow"><img class="h-16 w-auto m-auto" src="/public/images/departement06.png"></div>
<img class="h-8 w-auto" src="/public/images/parcoursmob_logo_whitered.svg" alt="PARCOURSMOB"> <div class="flex items-center flex-shrink-0 px-4 pt-5">
<img class="h-8 w-auto m-auto" src="/public/images/main_logo.svg" alt="PARCOURSMOB">
</div> </div>
<div class="mt-5 flex-1 flex flex-col"> <div class="mt-5 flex-1 flex flex-col">
{{ template "mainmenu" . }} {{ template "mainmenu" . }}

View File

@@ -5,12 +5,12 @@
<h1 class="text-2xl font-semibold text-gray-900">Réservations</h1> <h1 class="text-2xl font-semibold text-gray-900">Réservations</h1>
</div> </div>
<div class="mt-4 sm:mt-0 sm:ml-16 sm:flex-none"> <div class="mt-4 sm:mt-0 sm:ml-16 sm:flex-none">
<a href="/app/administration/stats/vehicles/available"> <!-- <a href="/app/administration/stats/vehicles/available">
<button type="button" <button type="button"
class="inline-flex items-center justify-center rounded-2xl border border-transparent bg-co-blue px-4 py-2 text-sm font-medium text-white shadow-sm focus:outline-none focus:ring-2 focus:ring-co-blue focus:ring-offset-2 sm:w-auto"> class="inline-flex items-center justify-center rounded-2xl border border-transparent bg-co-blue px-4 py-2 text-sm font-medium text-white shadow-sm focus:outline-none focus:ring-2 focus:ring-co-blue focus:ring-offset-2 sm:w-auto">
Voitures disponibles Voitures disponibles
</button> </button>
</a> </a> -->
</div> </div>
</div> </div>
</div> </div>

View File

@@ -223,11 +223,13 @@
</div> </div>
</div> </div>
{{end}} {{end}}
<div class="mt-5 sm:mt-6"> <div x-data="{
<button type="submit" class="inline-flex w-full justify-center rounded-2xl border border-transparent bg-co-blue px-4 py-2 text-base font-medium text-white shadow-sm hover:bg-co-blue focus:outline-none focus:ring-2 focus:ring-co-blue focus:ring-offset-2 sm:text-sm">Réserver</button> buttondialog: false
}"class="mt-5 sm:mt-6" x-show="!buttondialog">
<button @click="buttondialog = !buttondialog" type="submit" class="inline-flex w-full justify-center rounded-2xl border border-transparent bg-co-blue px-4 py-2 text-base font-medium text-white shadow-sm hover:bg-co-blue focus:outline-none focus:ring-2 focus:ring-co-blue focus:ring-offset-2 sm:text-sm">Réserver</button>
</div> </div>
</form> </form>
<div class="mt-5 sm:mt-6"> <div class="mt-5 sm:mt-6" >
<button @click="documentsdialog=false" type="button" class="inline-flex w-full justify-center max-w-xs bg-white hover:bg-gray-50 border-gray-300 border px-4 py-2 text-gray-700 items-center text-sm rounded-2xl focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-co-blue">Annuler</button> <button @click="documentsdialog=false" type="button" class="inline-flex w-full justify-center max-w-xs bg-white hover:bg-gray-50 border-gray-300 border px-4 py-2 text-gray-700 items-center text-sm rounded-2xl focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-co-blue">Annuler</button>
</div> </div>
</div> </div>

View File

@@ -39,6 +39,10 @@
<span class="p-1 bg-black text-white text-xs font-bold rounded-xl" > <span class="p-1 bg-black text-white text-xs font-bold rounded-xl" >
Retiré Retiré
</span> </span>
{{else if or .Deleted .Data.Deleted}}
<span class="p-1 bg-black text-white text-xs font-bold rounded-xl" >
Annulé
</span>
{{else}} {{else}}
{{if eq .Status 1 }} {{if eq .Status 1 }}
<span class="p-1 bg-co-blue text-white text-xs font-bold rounded-xl" > <span class="p-1 bg-co-blue text-white text-xs font-bold rounded-xl" >

View File

@@ -11,17 +11,18 @@
changeVehicle: false, changeVehicle: false,
selectedvehicle: '' selectedvehicle: ''
}"> }">
{{if and (ne .ViewState.booking.Status -1) (not (or .ViewState.booking.Deleted .ViewState.booking.Data.Deleted))}}
<button type="button" @click="changeVehicle = ! changeVehicle" <button type="button" @click="changeVehicle = ! changeVehicle"
class="inline-flex items-center justify-center px-4 py-2 border border-gray-300 shadow-sm text-sm font-medium rounded-2xl text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-100 focus:ring-co-blue"> class="inline-flex items-center justify-center px-4 py-2 border border-gray-300 shadow-sm text-sm font-medium rounded-2xl text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-100 focus:ring-co-blue">
Changer de véhicule Changer de véhicule
</button> </button>
<!-- <a href="/app/vehicles-management/bookings/{{.ViewState.booking.ID}}/delete"> <a href="/app/vehicles-management/bookings/{{.ViewState.booking.ID}}/delete">
<button type="button" <button type="button"
class="inline-flex items-center justify-center rounded-2xl border border-transparent bg-co-red px-4 py-2 text-sm font-medium text-white shadow-sm focus:outline-none focus:ring-2 focus:ring-co-red focus:ring-offset-2 sm:w-auto"> class="inline-flex items-center justify-center rounded-2xl border border-transparent bg-co-red px-4 py-2 text-sm font-medium text-white shadow-sm focus:outline-none focus:ring-2 focus:ring-co-red focus:ring-offset-2 sm:w-auto">
Annuler Annuler
</button> </button>
</a> --> </a>
{{end}}
<div class="relative z-10" aria-labelledby="modal-title" role="dialog" aria-modal="true" x-show="changeVehicle"> <div class="relative z-10" aria-labelledby="modal-title" role="dialog" aria-modal="true" x-show="changeVehicle">
<div class="fixed inset-0 bg-gray-900 bg-opacity-30 transition-opacity"></div> <div class="fixed inset-0 bg-gray-900 bg-opacity-30 transition-opacity"></div>
@@ -35,7 +36,7 @@
<select x-model="selectedvehicle" id="vehicle" name="vehicle" class="mt-1 block w-full rounded-2xl border-gray-300 py-2 pl-3 pr-10 text-base focus:border-co-blue focus:outline-none focus:ring-co-blue sm:text-sm"> <select x-model="selectedvehicle" id="vehicle" name="vehicle" class="mt-1 block w-full rounded-2xl border-gray-300 py-2 pl-3 pr-10 text-base focus:border-co-blue focus:outline-none focus:ring-co-blue sm:text-sm">
<option value=""></option> <option value=""></option>
{{range .ViewState.alternative_vehicles }} {{range .ViewState.alternative_vehicles }}
<option value="{{.ID}}">{{.Data.name}} ({{.Type}})</option> <option value="{{.ID}}">{{.Data.licence_plate}} - {{.Data.name}} ({{.Type}})</option>
{{end}} {{end}}
</select> </select>
<div class="mt-5 sm:mt-6"> <div class="mt-5 sm:mt-6">
@@ -109,8 +110,13 @@
<div class="bg-white px-4 py-5 border-b border-gray-200 sm:px-6"> <div class="bg-white px-4 py-5 border-b border-gray-200 sm:px-6">
<div class="-ml-4 -mt-4 flex justify-between items-center flex-wrap sm:flex-nowrap"> <div class="-ml-4 -mt-4 flex justify-between items-center flex-wrap sm:flex-nowrap">
<div class="ml-4 mt-4"> <div class="ml-4 mt-4">
{{if or .ViewState.booking.Data.Deleted .ViewState.booking.Deleted}}
<h3 class="text-lg leading-6 font-medium text-gray-900">Réservation annulée le {{(timeFrom .ViewState.booking.Unavailableto).Format "02/01/2006"}}</h3>
<p class="mt-1 text-sm text-gray-500">Motif : {{.ViewState.booking.Data.motif}}</p>
{{else}}
<h3 class="text-lg leading-6 font-medium text-gray-900">Réservation</h3> <h3 class="text-lg leading-6 font-medium text-gray-900">Réservation</h3>
<p class="mt-1 text-sm text-gray-500">Informations utiles sur la réservation.</p> <p class="mt-1 text-sm text-gray-500">Informations utiles sur la réservation.</p>
{{end}}
</div> </div>
<div class="ml-4 mt-4 flex-shrink-0"> <div class="ml-4 mt-4 flex-shrink-0">
<!-- <button type="button" <!-- <button type="button"
@@ -175,7 +181,9 @@
x-data="{ updateOpen: false }"> x-data="{ updateOpen: false }">
<div class="w-full inline-flex" x-show="!updateOpen"> <div class="w-full inline-flex" x-show="!updateOpen">
<div class="flex-1">{{(timeFrom .ViewState.booking.Startdate).Format "02/01/2006"}}</div> <div class="flex-1">{{(timeFrom .ViewState.booking.Startdate).Format "02/01/2006"}}</div>
{{if and (ne .ViewState.booking.Status -1) (not (or .ViewState.booking.Deleted .ViewState.booking.Data.Deleted))}}
<a href="#" class="text-co-blue hover:text-co-blue ml-5" @click="updateOpen = ! updateOpen">Modifier</a> <a href="#" class="text-co-blue hover:text-co-blue ml-5" @click="updateOpen = ! updateOpen">Modifier</a>
{{end}}
</div> </div>
<form method="POST" class="inline-flex" x-show="updateOpen"> <form method="POST" class="inline-flex" x-show="updateOpen">
<div class="flex-1"> <div class="flex-1">
@@ -195,7 +203,9 @@
x-data="{ updateOpen: false }"> x-data="{ updateOpen: false }">
<div class="w-full inline-flex" x-show="!updateOpen"> <div class="w-full inline-flex" x-show="!updateOpen">
<div class="flex-1">{{(timeFrom .ViewState.booking.Enddate).Format "02/01/2006"}}</div> <div class="flex-1">{{(timeFrom .ViewState.booking.Enddate).Format "02/01/2006"}}</div>
{{if and (ne .ViewState.booking.Status -1) (not (or .ViewState.booking.Deleted .ViewState.booking.Data.Deleted))}}
<a href="#" class="text-co-blue hover:text-co-blue ml-5" @click="updateOpen = ! updateOpen">Modifier</a> <a href="#" class="text-co-blue hover:text-co-blue ml-5" @click="updateOpen = ! updateOpen">Modifier</a>
{{end}}
</div> </div>
<form method="POST" class="inline-flex" x-show="updateOpen"> <form method="POST" class="inline-flex" x-show="updateOpen">
<div class="flex-1"> <div class="flex-1">
@@ -215,7 +225,9 @@
x-data="{ updateOpen: false }"> x-data="{ updateOpen: false }">
<div class="w-full inline-flex" x-show="!updateOpen"> <div class="w-full inline-flex" x-show="!updateOpen">
<div class="flex-1">{{(timeFrom .ViewState.booking.Unavailablefrom).Format "02/01/2006"}}</div> <div class="flex-1">{{(timeFrom .ViewState.booking.Unavailablefrom).Format "02/01/2006"}}</div>
{{if and (ne .ViewState.booking.Status -1) (not (or .ViewState.booking.Deleted .ViewState.booking.Data.Deleted))}}
<a href="#" class="text-co-blue hover:text-co-blue ml-5" @click="updateOpen = ! updateOpen">Modifier</a> <a href="#" class="text-co-blue hover:text-co-blue ml-5" @click="updateOpen = ! updateOpen">Modifier</a>
{{end}}
</div> </div>
<form method="POST" class="inline-flex" x-show="updateOpen"> <form method="POST" class="inline-flex" x-show="updateOpen">
<div class="flex-1"> <div class="flex-1">
@@ -235,7 +247,9 @@
x-data="{ updateOpen: false }"> x-data="{ updateOpen: false }">
<div class="w-full inline-flex" x-show="!updateOpen"> <div class="w-full inline-flex" x-show="!updateOpen">
<div class="flex-1">{{(timeFrom .ViewState.booking.Unavailableto).Format "02/01/2006"}}</div> <div class="flex-1">{{(timeFrom .ViewState.booking.Unavailableto).Format "02/01/2006"}}</div>
{{if and (ne .ViewState.booking.Status -1) (not (or .ViewState.booking.Deleted .ViewState.booking.Data.Deleted))}}
<a href="#" class="text-co-blue hover:text-co-blue ml-5" @click="updateOpen = ! updateOpen">Modifier</a> <a href="#" class="text-co-blue hover:text-co-blue ml-5" @click="updateOpen = ! updateOpen">Modifier</a>
{{end}}
</div> </div>
<form method="POST" class="inline-flex" x-show="updateOpen"> <form method="POST" class="inline-flex" x-show="updateOpen">
<div class="flex-1"> <div class="flex-1">

View File

@@ -9,9 +9,9 @@
</div> </div>
<div class="mt-4 sm:mt-0 sm:ml-16 sm:flex-none"> <div class="mt-4 sm:mt-0 sm:ml-16 sm:flex-none">
<a href="/api/cache/{{.ViewState.cacheid}}/export"> <a href="/exports/fleets/bookings">
<button type="button" <button type="button"
class="inline-flex items-center justify-center bg-white hover:bg-gray-50 border-gray-300 border px-4 py-2 text-gray-700 flex items-center text-sm rounded-2xl focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-co-blue"> class="inline-flex items-center justify-center bg-white hover:bg-gray-50 border-gray-300 border px-4 py-2 text-gray-700 flex items-center text-sm rounded-2xl focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-co-blue">
{{$.IconSet.Icon "hero:outline/document-arrow-down" "h-5 w-5 mr-3"}} {{$.IconSet.Icon "hero:outline/document-arrow-down" "h-5 w-5 mr-3"}}
Exporter Exporter
</button> </button>

View File

@@ -0,0 +1,39 @@
{{define "content"}}
<div>
<form method="POST" >
<div class="fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity"></div>
<div class="fixed inset-0 z-10 overflow-y-auto">
<div class="flex min-h-full items-end justify-center p-4 text-center sm:items-center sm:p-0">
<div class="relative transform overflow-hidden rounded-lg bg-white px-4 pt-5 pb-4 text-left shadow-xl transition-all sm:my-8 sm:w-full max-w-lg sm:p-6">
<div>
<div class="mx-auto flex h-12 w-12 items-center justify-center rounded-co bg-co-blue text-white">
{{.IconSet.Icon "hero:outline/information-circle" "h-6 w-6"}}
</div>
<div class="mt-3 text-center sm:mt-5">
<h3 class="text-lg font-medium leading-6 text-gray-900" id="modal-title">Confirmation d'annulation</h3>
<div class="mt-2">
<p class="text-sm text-gray-500">Souhaitez-vous vraiment annuler cette réservaton ?</p>
</div>
<div class="col-span-6">
<label for="motif" class="block text-sm font-medium text-gray-700">Motif</label>
<div class="mt-1">
<textarea rows="4" name="motif" id="motif"
class="shadow-sm focus:ring-co-blue focus:border-co-blue block w-full sm:text-sm border-gray-300 rounded-2xl"></textarea>
</div>
</div>
</div>
</div>
<div class="mt-5 sm:mt-6 sm:grid sm:grid-flow-row-dense sm:grid-cols-2">
<a href="/app/vehicles-management/bookings/{{.ViewState.booking.ID}}" class="mt-3 inline-flex w-full justify-center rounded-l-2xl border border-gray-300 bg-white px-4 py-2 text-base font-medium text-gray-700 shadow-sm hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-co-blue focus:ring-offset-2 sm:col-start-1 sm:mt-0 sm:text-sm">Annuler</a>
<button type="submit" class="inline-flex w-full justify-center rounded-r-2xl border border-transparent bg-co-blue px-4 py-2 text-base font-medium text-white shadow-sm hover:bg-co-blue focus:outline-none focus:ring-2 focus:ring-co-blue focus:ring-offset-2 sm:col-start-2 sm:text-sm">Confirmation</button>
</div>
</div>
</div>
</div>
</form>
</div>
{{end}}

View File

@@ -106,6 +106,10 @@
<span class="p-1 bg-black text-white text-xs font-bold rounded-xl" > <span class="p-1 bg-black text-white text-xs font-bold rounded-xl" >
Retiré Retiré
</span> </span>
{{else if .Data.Deleted}}
<span class="p-1 bg-co-red text-white text-xs font-bold rounded-xl" >
Annulé
</span>
{{else}} {{else}}
{{if eq .Status 1 }} {{if eq .Status 1 }}
<span class="p-1 bg-co-blue text-white text-xs font-bold rounded-xl" > <span class="p-1 bg-co-blue text-white text-xs font-bold rounded-xl" >
@@ -167,13 +171,19 @@
<p class="p-12 text-gray-500 text-center text-md">Aucune réservation à venir</p> <p class="p-12 text-gray-500 text-center text-md">Aucune réservation à venir</p>
{{end}} {{end}}
<ul role="list" class="divide-y divide-gray-200"> <ul role="list" class="divide-y divide-gray-200">
{{$noReservation := true}}
{{range .ViewState.vehicle.Bookings}} {{range .ViewState.vehicle.Bookings}}
<li class="py-4 flex"> <li class="py-4 flex">
<div class="ml-3"> <div class="ml-3">
{{if eq .Status 1 }}
<a href="/app/vehicles-management/bookings/{{.ID}}" class="hover:bg-gray-200"> <a href="/app/vehicles-management/bookings/{{.ID}}" class="hover:bg-gray-200">
<p class="text-sm font-medium text-gray-900">Du {{(timeFrom .Startdate).Format "02/01/2006"}} au {{(timeFrom .Enddate).Format "02/01/2006"}}</p> <p class="text-sm font-medium text-gray-900">Du {{(timeFrom .Startdate).Format "02/01/2006"}} au {{(timeFrom .Enddate).Format "02/01/2006"}}</p>
<p class="text-sm text-gray-500"></p> <p class="text-sm text-gray-500"></p>
</a> </a>
{{else if $noReservation}}
{{$noReservation = false}}
<p class="p-12 text-gray-500 text-center text-md">Aucune réservation à venir</p>
{{end}}
</div> </div>
</li> </li>
{{end}} {{end}}

View File

@@ -3,23 +3,26 @@
{{ if eq (index .ViewState.vehicle.Administrators 0) .Group.ID }} {{ if eq (index .ViewState.vehicle.Administrators 0) .Group.ID }}
<div class="max-w-7xl mx-auto px-4 sm:px-6 md:px-8"> <div class="max-w-7xl mx-auto px-4 sm:px-6 md:px-8">
<h1 class="text-2xl font-semibold text-gray-900">Modifier un véhicule</h1> <h1 class="text-2xl font-semibold text-gray-900">Modifier le véhicule</h1>
</div> </div>
<div class="max-w-7xl mx-auto px-4 sm:px-6 md:px-8 mt-8" x-data="{ <div class="max-w-7xl mx-auto px-4 sm:px-6 md:px-8 mt-8" x-data="{
fields: { fields: {
licence_plate: '{{ .ViewState.vehicle.Data.licence_plate }}', licence_plate: '{{ .ViewState.vehicle.Data.licence_plate }}',
name: '{{ .ViewState.vehicle.Data.name }}', name: '{{ .ViewState.vehicle.Data.name }}',
type: '{{ .ViewState.vehicle.Type }}',
}, },
rules: { rules: {
licence_plate: ['required', 'regexMatch:^[A-Z]{1,2}-[0-9]{1,3}-[A-Z]{1,2}$'], licence_plate: ['required'], // 'regexMatch:^[A-Z]{1,2}-[0-9]{1,3}-[A-Z]{1,2}$'
name: ['required'], name: ['required'],
type: ['required'],
}, },
formValidation: { formValidation: {
valid: false, valid: false,
fields: { fields: {
name: {valid: null}, name: {valid: null},
licence_plate: {valid: null}, licence_plate: {valid: null},
type: {valid: null},
} }
}, },
isFormValid: true, isFormValid: true,
@@ -36,6 +39,10 @@
event.preventDefault() event.preventDefault()
} }
return this.formValidation.valid return this.formValidation.valid
},
displayAutomatic(type) {
return type == 'Voiture'
} }
}"> }">
<form class="space-y-6" method="POST" @submit="submit"> <form class="space-y-6" method="POST" @submit="submit">
@@ -48,19 +55,44 @@
<div class="mt-5 md:mt-0 md:col-span-2"> <div class="mt-5 md:mt-0 md:col-span-2">
<div class="grid grid-cols-3 md:grid-cols-6 gap-6"> <div class="grid grid-cols-3 md:grid-cols-6 gap-6">
<div class="col-span-5"> <div class="col-span-5">
<label for="name" class="block text-sm font-medium text-gray-700">Modèle (ou nom donné au <label for="name" class="block text-sm font-medium text-gray-700">Modèle (ou nom donné au véhicule)</label>
véhicule)</label>
<input type="text" name="name" id="name" <input type="text" name="name" id="name"
class="mt-1 focus:ring-co-blue focus:border-co-blue block w-full shadow-sm sm:text-sm rounded-2xl" class="mt-1 focus:ring-co-blue focus:border-co-blue block w-full shadow-sm sm:text-sm rounded-2xl"
x-model="fields.name" @blur="validateField('name')" x-model="fields.name" @blur="validateField('name')"
:class="formValidation.fields.name.valid == false ? 'border-co-red border-2' : 'border-gray-300'"> :class="formValidation.fields.name.valid == false ? 'border-co-red border-2' : 'border-gray-300'">
</div> </div>
<div class="col-span-3"> <div class="col-span-3">
{{template "vehicle_type_select" .}} <label for="type" class="block text-sm font-medium text-gray-700">Type de véhicule</label>
<select id="type" name="type"
x-model="fields.type" @blur="validateField('type')"
class="max-w-lg mt-1 block focus:ring-co-blue focus:border-co-blue w-full shadow-sm sm:max-w-xs sm:text-sm rounded-2xl"
:class="formValidation.fields.type.valid == false ? 'border-co-red border-2' : 'border-gray-300'">
<option value="" selected></option>
{{range .ViewState.vehicle_types}}
<option value="{{.}}">{{.}}</option>
{{end}}
</select>
<div class="m-4" x-show="displayAutomatic(fields.type)">
<legend class="sr-only">Automatique</legend>
<div class="relative flex items-start">
<div class="flex h-5 items-center">
{{if .ViewState.vehicle.Data.automatic}}
<input id="automatic" aria-describedby="automatic-description" name="automatic" type="checkbox" checked class="h-4 w-4 rounded border-gray-300 text-co-blue focus:ring-co-blue">
{{else}}
<input id="automatic" aria-describedby="automatic-description" name="automatic" type="checkbox" class="h-4 w-4 rounded border-gray-300 text-co-blue focus:ring-co-blue">
{{end}}
</div>
<div class="ml-3 text-sm">
<label for="automatic" class="font-medium text-gray-700">Automatique</label>
<p id="automatic-description" class="text-gray-500">Ce véhicule a une boite automatique.</p>
</div>
</div>
</div>
</div> </div>
<div class="col-span-3"> <div class="col-span-3">
<label for="licence_plate" <label for="licence_plate"
class="block text-sm font-medium text-gray-700">Immatriculation</label> class="block text-sm font-medium text-gray-700">Numéro (Immat, Bicycode, ...)</label>
<input type="text" name="licence_plate" id="licence_plate" placeholder="XX-123-YY" <input type="text" name="licence_plate" id="licence_plate" placeholder="XX-123-YY"
class="mt-1 focus:ring-co-blue focus:border-co-blue block w-full shadow-sm sm:text-sm rounded-2xl" class="mt-1 focus:ring-co-blue focus:border-co-blue block w-full shadow-sm sm:text-sm rounded-2xl"
x-model="fields.licence_plate" x-model="fields.licence_plate"
@@ -86,7 +118,7 @@
{{ template "address_autocomplete" dict "FieldName" $fieldName}} {{ template "address_autocomplete" dict "FieldName" $fieldName}}
{{end}} {{end}}
<div class="mt-5"> <div class="mt-5">
<label for="informations" class="block text-sm font-medium text-gray-700">Informations pratiques pour le bénéficiaire</label> <label for="informations" class="block text-sm font-medium text-gray-700">Informations pratiques</label>
<div class="mt-1"> <div class="mt-1">
<textarea rows="4" name="informations" id="informations" value="{{.ViewState.vehicle.Data.informations}}" <textarea rows="4" name="informations" id="informations" value="{{.ViewState.vehicle.Data.informations}}"
class="shadow-sm focus:ring-co-blue focus:border-co-blue block w-full sm:text-sm border-gray-300 rounded-2xl">{{ if .ViewState.vehicle.Data.informations}} {{.ViewState.vehicle.Data.informations}} {{end}}</textarea> class="shadow-sm focus:ring-co-blue focus:border-co-blue block w-full sm:text-sm border-gray-300 rounded-2xl">{{ if .ViewState.vehicle.Data.informations}} {{.ViewState.vehicle.Data.informations}} {{end}}</textarea>
@@ -108,7 +140,6 @@
</div> </div>
</form> </form>
</div> </div>
{{else}} {{else}}
<div class="fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity"></div> <div class="fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity"></div>

View File

@@ -834,6 +834,10 @@ html {
grid-column: span 5 / span 5; grid-column: span 5 / span 5;
} }
.m-auto {
margin: auto;
}
.m-4 { .m-4 {
margin: 1rem; margin: 1rem;
} }
@@ -1057,6 +1061,10 @@ html {
height: 1.5rem; height: 1.5rem;
} }
.h-16 {
height: 4rem;
}
.h-8 { .h-8 {
height: 2rem; height: 2rem;
} }
@@ -1065,10 +1073,6 @@ html {
height: 0px; height: 0px;
} }
.h-16 {
height: 4rem;
}
.h-5 { .h-5 {
height: 1.25rem; height: 1.25rem;
} }
@@ -1591,7 +1595,7 @@ html {
.border-co-red { .border-co-red {
--tw-border-opacity: 1; --tw-border-opacity: 1;
border-color: rgb(255 19 0 / var(--tw-border-opacity)); border-color: rgb(222 21 129 / var(--tw-border-opacity));
} }
.border-indigo-500 { .border-indigo-500 {
@@ -1601,7 +1605,7 @@ html {
.border-co-blue { .border-co-blue {
--tw-border-opacity: 1; --tw-border-opacity: 1;
border-color: rgb(36 56 135 / var(--tw-border-opacity)); border-color: rgb(0 114 126 / var(--tw-border-opacity));
} }
.bg-gray-100 { .bg-gray-100 {
@@ -1616,7 +1620,7 @@ html {
.bg-co-blue { .bg-co-blue {
--tw-bg-opacity: 1; --tw-bg-opacity: 1;
background-color: rgb(36 56 135 / var(--tw-bg-opacity)); background-color: rgb(0 114 126 / var(--tw-bg-opacity));
} }
.bg-white { .bg-white {
@@ -1631,7 +1635,7 @@ html {
.bg-co-red { .bg-co-red {
--tw-bg-opacity: 1; --tw-bg-opacity: 1;
background-color: rgb(255 19 0 / var(--tw-bg-opacity)); background-color: rgb(222 21 129 / var(--tw-bg-opacity));
} }
.bg-co-yellow { .bg-co-yellow {
@@ -1794,10 +1798,6 @@ html {
padding-right: 1.5rem; padding-right: 1.5rem;
} }
.pt-5 {
padding-top: 1.25rem;
}
.pb-4 { .pb-4 {
padding-bottom: 1rem; padding-bottom: 1rem;
} }
@@ -1806,6 +1806,10 @@ html {
padding-top: 0.5rem; padding-top: 0.5rem;
} }
.pt-5 {
padding-top: 1.25rem;
}
.pl-8 { .pl-8 {
padding-left: 2rem; padding-left: 2rem;
} }
@@ -2008,12 +2012,12 @@ html {
.text-co-blue { .text-co-blue {
--tw-text-opacity: 1; --tw-text-opacity: 1;
color: rgb(36 56 135 / var(--tw-text-opacity)); color: rgb(0 114 126 / var(--tw-text-opacity));
} }
.text-co-red { .text-co-red {
--tw-text-opacity: 1; --tw-text-opacity: 1;
color: rgb(255 19 0 / var(--tw-text-opacity)); color: rgb(222 21 129 / var(--tw-text-opacity));
} }
.text-indigo-600 { .text-indigo-600 {
@@ -2253,7 +2257,7 @@ html {
.focus-within\:ring-co-blue:focus-within { .focus-within\:ring-co-blue:focus-within {
--tw-ring-opacity: 1; --tw-ring-opacity: 1;
--tw-ring-color: rgb(36 56 135 / var(--tw-ring-opacity)); --tw-ring-color: rgb(0 114 126 / var(--tw-ring-opacity));
} }
.focus-within\:ring-offset-2:focus-within { .focus-within\:ring-offset-2:focus-within {
@@ -2282,7 +2286,7 @@ html {
.hover\:bg-co-blue:hover { .hover\:bg-co-blue:hover {
--tw-bg-opacity: 1; --tw-bg-opacity: 1;
background-color: rgb(36 56 135 / var(--tw-bg-opacity)); background-color: rgb(0 114 126 / var(--tw-bg-opacity));
} }
.hover\:bg-gray-100:hover { .hover\:bg-gray-100:hover {
@@ -2306,7 +2310,7 @@ html {
.hover\:text-co-blue:hover { .hover\:text-co-blue:hover {
--tw-text-opacity: 1; --tw-text-opacity: 1;
color: rgb(36 56 135 / var(--tw-text-opacity)); color: rgb(0 114 126 / var(--tw-text-opacity));
} }
.hover\:text-white:hover { .hover\:text-white:hover {
@@ -2339,7 +2343,7 @@ html {
.focus\:border-co-blue:focus { .focus\:border-co-blue:focus {
--tw-border-opacity: 1; --tw-border-opacity: 1;
border-color: rgb(36 56 135 / var(--tw-border-opacity)); border-color: rgb(0 114 126 / var(--tw-border-opacity));
} }
.focus\:border-indigo-500:focus { .focus\:border-indigo-500:focus {
@@ -2401,7 +2405,7 @@ html {
.focus\:ring-co-blue:focus { .focus\:ring-co-blue:focus {
--tw-ring-opacity: 1; --tw-ring-opacity: 1;
--tw-ring-color: rgb(36 56 135 / var(--tw-ring-opacity)); --tw-ring-color: rgb(0 114 126 / var(--tw-ring-opacity));
} }
.focus\:ring-indigo-500:focus { .focus\:ring-indigo-500:focus {
@@ -2411,7 +2415,7 @@ html {
.focus\:ring-co-red:focus { .focus\:ring-co-red:focus {
--tw-ring-opacity: 1; --tw-ring-opacity: 1;
--tw-ring-color: rgb(255 19 0 / var(--tw-ring-opacity)); --tw-ring-color: rgb(222 21 129 / var(--tw-ring-opacity));
} }
.focus\:ring-blue-500:focus { .focus\:ring-blue-500:focus {

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

View File

@@ -1 +1,91 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 374.2 33.2"><defs><style>.cls-1{fill:#ff1300;}.cls-2{fill:#fff;}</style></defs><g id="Calque_2" data-name="Calque 2"><g id="Calque_1-2" data-name="Calque 1"><path class="cls-1" d="M300.9.6a4.7,4.7,0,0,1,4.9,4.9V32.6h-8.6a4.7,4.7,0,0,1-4.9-4.9V14.1h-.9c-.6,0-1,.6-1,1.5v17H282a4.7,4.7,0,0,1-4.9-4.9V14.1h-1a1.4,1.4,0,0,0-.9,1.5v17H263a1.2,1.2,0,0,1-1.2-1.2V5.5A4.7,4.7,0,0,1,266.7.6h17.9l-.7,5a.9.9,0,0,0,.7,1.1.9.9,0,0,0,1-.8l.8-4.6a.9.9,0,0,1,.9-.7Z"/><path class="cls-1" d="M341.1,16.4c0,9.1-1.9,16.8-16.5,16.8S307.8,25,307.8,16.4,310.6,0,324.6,0,341.1,7.8,341.1,16.4Z"/><path class="cls-1" d="M344.3,32.6a1.2,1.2,0,0,1-1.2-1.2V1.8A1.2,1.2,0,0,1,344.3.6h18.8c6.9,0,10.4,2.9,10.4,8.1s-1.6,6.9-4.5,7.5h0c2.9.6,5.2,3.2,5.2,7.7s-3.5,8.6-10.4,8.6Z"/><path class="cls-2" d="M16.2,11.6c0-.6-.4-.9-1-.9h-.8V31.4a1.2,1.2,0,0,1-1.2,1.2H1.2A1.2,1.2,0,0,1,0,31.4V1.8A1.2,1.2,0,0,1,1.2.6H16.8C25.7.6,30.9,4.2,31,10.7s-4.1,9.9-9.4,10H16.1Z"/><path class="cls-2" d="M44.9,23.1H43.2L40,31.9a1.1,1.1,0,0,1-1.2.7H26.9a1.3,1.3,0,0,1-1.3-1.9L37,3.4A4.5,4.5,0,0,1,41.3.6h5.8a4.1,4.1,0,0,1,4,2.6L62.6,30.8c.5,1-.2,1.8-1.3,1.8H41.7Z"/><path class="cls-2" d="M66.1,32.6a1.2,1.2,0,0,1-1.2-1.2V1.8A1.2,1.2,0,0,1,66.1.6H83.2C92.7.6,95.5,7,95.6,12.3c0,3.3-.8,6.9-3.4,8.3l3.4,12H84.4c-2.3,0-5.2-.7-5.9-2.7L71.9,10.7a1,1,0,0,0-1.2-.7,1,1,0,0,0-.5,1.3l7.2,21.3Z"/><path class="cls-2" d="M129.6,17.1c.8,0,1.3.5,1.2,1.2-.2,8.3-2.9,14.9-16.4,14.9-15.8.1-16.8-8.2-16.8-16.8S100.5,0,114.4,0c15.7,0,16.5,8,16.5,15.4H115.3V11.3c0-.8-.4-1.2-1-1.2s-.9.4-.9,1.2V21.9c0,.9.4,1.2.9,1.2s1-.3,1-1.2V17.1Z"/><path class="cls-2" d="M166.2,16.4c0,9.1-2,16.8-16.6,16.8S132.8,25,132.8,16.4,135.7,0,149.6,0,166.2,7.8,166.2,16.4Z"/><path class="cls-2" d="M200.5,1.8V12.2c0,12.7-1.4,21-16.3,21s-16-8.4-16-20.9V1.8A1.2,1.2,0,0,1,169.4.6h13a.9.9,0,0,1,.9.9V21.8c0,.9.4,1.2,1,1.2s.9-.3.9-1.2V1.5a.9.9,0,0,1,.9-.9h13.1A1.2,1.2,0,0,1,200.5,1.8Z"/><path class="cls-2" d="M203.9,32.6a1.2,1.2,0,0,1-1.3-1.2V1.8A1.2,1.2,0,0,1,203.8.6h17.1c9.5,0,12.3,6.4,12.4,11.7,0,3.3-.8,6.9-3.4,8.3l3.4,12H222.1c-2.3,0-5.2-.7-5.9-2.7l-6.6-19.2a1,1,0,0,0-1.2-.7,1,1,0,0,0-.5,1.3l7.2,21.3Z"/><path class="cls-2" d="M235.8,29.2v-10a1,1,0,0,1,1.5-1l11.1,5.1a1,1,0,0,0,1.2-.4.9.9,0,0,0-.6-1.2l-9.3-4.4c-4.5-2.2-4.4-5.5-4.4-8.2,0-7.6,7.4-9.1,14.6-9.1,5.4,0,12.1,1.8,14.3,4.4v9.2a1,1,0,0,1-1.5,1L252.3,9.8a1,1,0,0,0-1.3.4q-.3.8.6,1.2l8.5,4.1c5.3,2.6,4.7,4.9,4.7,9.2s-6.3,8.5-14.9,8.5C244.7,33.2,238,31.6,235.8,29.2Z"/></g></g></svg> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 374.2 33.2"
version="1.1"
id="svg30"
sodipodi:docname="main_logo.svg"
inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview32"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="4.0700159"
inkscape:cx="317.93488"
inkscape:cy="16.707551"
inkscape:window-width="1920"
inkscape:window-height="1011"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="Calque_1-2" />
<defs
id="defs4">
<style
id="style2">.cls-1{fill:#ff1300;}.cls-2{fill:#fff;}</style>
</defs>
<g
id="Calque_2"
data-name="Calque 2">
<g
id="Calque_1-2"
data-name="Calque 1">
<path
class="cls-1"
d="M300.9.6a4.7,4.7,0,0,1,4.9,4.9V32.6h-8.6a4.7,4.7,0,0,1-4.9-4.9V14.1h-.9c-.6,0-1,.6-1,1.5v17H282a4.7,4.7,0,0,1-4.9-4.9V14.1h-1a1.4,1.4,0,0,0-.9,1.5v17H263a1.2,1.2,0,0,1-1.2-1.2V5.5A4.7,4.7,0,0,1,266.7.6h17.9l-.7,5a.9.9,0,0,0,.7,1.1.9.9,0,0,0,1-.8l.8-4.6a.9.9,0,0,1,.9-.7Z"
id="path6"
style="fill:#ffffff;fill-opacity:1" />
<path
class="cls-1"
d="M341.1,16.4c0,9.1-1.9,16.8-16.5,16.8S307.8,25,307.8,16.4,310.6,0,324.6,0,341.1,7.8,341.1,16.4Z"
id="path8"
style="fill:#ffffff;fill-opacity:1" />
<path
class="cls-1"
d="M344.3,32.6a1.2,1.2,0,0,1-1.2-1.2V1.8A1.2,1.2,0,0,1,344.3.6h18.8c6.9,0,10.4,2.9,10.4,8.1s-1.6,6.9-4.5,7.5h0c2.9.6,5.2,3.2,5.2,7.7s-3.5,8.6-10.4,8.6Z"
id="path10"
style="fill:#ffffff;fill-opacity:1" />
<path
class="cls-2"
d="M16.2,11.6c0-.6-.4-.9-1-.9h-.8V31.4a1.2,1.2,0,0,1-1.2,1.2H1.2A1.2,1.2,0,0,1,0,31.4V1.8A1.2,1.2,0,0,1,1.2.6H16.8C25.7.6,30.9,4.2,31,10.7s-4.1,9.9-9.4,10H16.1Z"
id="path12" />
<path
class="cls-2"
d="M44.9,23.1H43.2L40,31.9a1.1,1.1,0,0,1-1.2.7H26.9a1.3,1.3,0,0,1-1.3-1.9L37,3.4A4.5,4.5,0,0,1,41.3.6h5.8a4.1,4.1,0,0,1,4,2.6L62.6,30.8c.5,1-.2,1.8-1.3,1.8H41.7Z"
id="path14" />
<path
class="cls-2"
d="M66.1,32.6a1.2,1.2,0,0,1-1.2-1.2V1.8A1.2,1.2,0,0,1,66.1.6H83.2C92.7.6,95.5,7,95.6,12.3c0,3.3-.8,6.9-3.4,8.3l3.4,12H84.4c-2.3,0-5.2-.7-5.9-2.7L71.9,10.7a1,1,0,0,0-1.2-.7,1,1,0,0,0-.5,1.3l7.2,21.3Z"
id="path16" />
<path
class="cls-2"
d="M129.6,17.1c.8,0,1.3.5,1.2,1.2-.2,8.3-2.9,14.9-16.4,14.9-15.8.1-16.8-8.2-16.8-16.8S100.5,0,114.4,0c15.7,0,16.5,8,16.5,15.4H115.3V11.3c0-.8-.4-1.2-1-1.2s-.9.4-.9,1.2V21.9c0,.9.4,1.2.9,1.2s1-.3,1-1.2V17.1Z"
id="path18" />
<path
class="cls-2"
d="M166.2,16.4c0,9.1-2,16.8-16.6,16.8S132.8,25,132.8,16.4,135.7,0,149.6,0,166.2,7.8,166.2,16.4Z"
id="path20" />
<path
class="cls-2"
d="M200.5,1.8V12.2c0,12.7-1.4,21-16.3,21s-16-8.4-16-20.9V1.8A1.2,1.2,0,0,1,169.4.6h13a.9.9,0,0,1,.9.9V21.8c0,.9.4,1.2,1,1.2s.9-.3.9-1.2V1.5a.9.9,0,0,1,.9-.9h13.1A1.2,1.2,0,0,1,200.5,1.8Z"
id="path22" />
<path
class="cls-2"
d="M203.9,32.6a1.2,1.2,0,0,1-1.3-1.2V1.8A1.2,1.2,0,0,1,203.8.6h17.1c9.5,0,12.3,6.4,12.4,11.7,0,3.3-.8,6.9-3.4,8.3l3.4,12H222.1c-2.3,0-5.2-.7-5.9-2.7l-6.6-19.2a1,1,0,0,0-1.2-.7,1,1,0,0,0-.5,1.3l7.2,21.3Z"
id="path24" />
<path
class="cls-2"
d="M235.8,29.2v-10a1,1,0,0,1,1.5-1l11.1,5.1a1,1,0,0,0,1.2-.4.9.9,0,0,0-.6-1.2l-9.3-4.4c-4.5-2.2-4.4-5.5-4.4-8.2,0-7.6,7.4-9.1,14.6-9.1,5.4,0,12.1,1.8,14.3,4.4v9.2a1,1,0,0,1-1.5,1L252.3,9.8a1,1,0,0,0-1.3.4q-.3.8.6,1.2l8.5,4.1c5.3,2.6,4.7,4.9,4.7,9.2s-6.3,8.5-14.9,8.5C244.7,33.2,238,31.6,235.8,29.2Z"
id="path26" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@@ -4,9 +4,9 @@ module.exports = {
theme: { theme: {
extend: { extend: {
colors: { colors: {
'co-blue': '#243887', 'co-blue': '#00727e',
'co-lightblue': '#907eff', 'co-lightblue': '#907eff',
'co-red': '#ff1300', 'co-red': '#de1581',
'co-green': '#6cc11f', 'co-green': '#6cc11f',
'co-yellow': '#ffdd00', 'co-yellow': '#ffdd00',
'co-orange': 'ff5300', 'co-orange': 'ff5300',