19 Commits

Author SHA1 Message Date
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
34 changed files with 214 additions and 611 deletions

View File

@@ -43,12 +43,6 @@ views:
list: list:
files: files:
- web/layouts/members/membersList.html - web/layouts/members/membersList.html
group:
settings:
files:
- web/layouts/administration/_partials/groups_admins.html
- web/layouts/administration/_partials/group_members.html
- web/layouts/group/settings.html
vehicles: vehicles:
search: search:
files: files:
@@ -100,12 +94,10 @@ views:
files: files:
- web/layouts/agenda/_partials/subscribers-table.html - web/layouts/agenda/_partials/subscribers-table.html
- web/layouts/agenda/display-event.html - web/layouts/agenda/display-event.html
- web/layouts/agenda/_partials/event-files.html
create_event: create_event:
files: files:
- web/layouts/_partials/address_autocomplete.html - web/layouts/_partials/address_autocomplete.html
- web/layouts/agenda/create-event.html - web/layouts/agenda/create-event.html
- web/layouts/agenda/_partials/event-files.html
delete_subscriber: delete_subscriber:
files: files:
- web/layouts/agenda/delete-subscriber.html - web/layouts/agenda/delete-subscriber.html
@@ -186,10 +178,6 @@ 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

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}}

0
emails/layout.html Executable file → Normal file
View File

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

@@ -1,115 +0,0 @@
{{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

@@ -1,37 +0,0 @@
{{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,12 +6,6 @@
<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,19 +2,15 @@
<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">Liste des véhicules</h1> <h1 class="text-2xl font-semibold text-gray-900">La liste des voitures</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="/app/administration/">
<a href="/app/administration/stats/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 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">
{{$.IconSet.Icon "hero:outline/document-arrow-left" "h-5 w-5 mr-3"}} Retour
Liste des réservations
</button> </button>
</a> </a>
</a>
</div> </div>
</div> </div>
</div> </div>

View File

@@ -1,134 +0,0 @@
{{define "event_files"}}
<div class="px-4 py-6 sm:px-6"
x-data="{
fields: {
name: null,
type: null,
file: null,
},
rules: {
name: ['required'],
type: ['required'],
file: ['required'],
},
formValidation: {
valid: false,
fields: {
name: {valid: null},
type: {valid: null},
file: {valid: null},
}
},
isFormValid: true,
validate() {
this.formValidation = Iodine.assert(this.fields, this.rules)
},
validateField(field) {
this.formValidation.fields[field] = Iodine.assert(this.fields[field], this.rules[field])
},
submit(event) {
this.validate()
if(!this.formValidation.valid) {
this.isFormValid = false
event.preventDefault()
}
return this.formValidation.valid
}
}">
{{if eq (len .ViewState.documents) 0}}
<p class="p-12 text-gray-500 text-center text-md">Aucun document</p>
{{end}}
{{if gt (len .ViewState.documents) 0}}
<div class="-mx-4 mb-10 ring-1 ring-gray-300 sm:-mx-6 md:mx-0 md:rounded-lg">
<table class="min-w-full divide-y divide-gray-300">
<thead>
<tr>
<th scope="col" class="py-3.5 pl-4 pr-3 text-left text-sm font-semibold text-gray-900 sm:pl-6">Type</th>
<th scope="col" class="hidden px-3 py-3.5 text-left text-sm font-semibold text-gray-900 lg:table-cell">Nom du document</th>
<th scope="col" class="hidden px-3 py-3.5 text-left text-sm font-semibold text-gray-900 lg:table-cell">Ajouté le</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>
{{range .ViewState.documents}}
<tr>
<td class="relative py-4 pl-4 sm:pl-6 pr-3 text-sm">
<div class="font-medium text-gray-900">
<span class="bg-co-blue text-xs text-white rounded-xl p-1 mr-2">{{index $.ViewState.file_types_map .Metadata.Type}}</span>
</div>
</td>
<td class="px-3 py-3.5 text-sm text-gray-900 lg:table-cell">{{.Metadata.Name}}</td>
<td class="px-3 py-3.5 text-sm text-gray-500 lg:table-cell">{{.LastModified.Format "02/01/2006"}}</td>
<td class="relative py-3.5 pl-3 pr-4 sm:pr-6 text-right text-sm font-medium">
<a href="/app/agenda/{{$.ViewState.event.ID}}/documents/{{.FileName}}" target="_blank">
<button type="button" class="inline-flex items-center rounded-md border border-gray-300 bg-white px-3 py-2 text-sm font-medium leading-4 text-gray-700 shadow-sm hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-co-blue focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-30">Voir<span class="sr-only"> le document</span></button>
</a>
</td>
</tr>
{{end}}
<!-- More plans... -->
</tbody>
</table>
</div>
{{end}}
{{ if eq (index .ViewState.event.Owners 0) .Group.ID }}
<h3 class="text-lg">Ajouter un document</h3>
<form method="POST" action="/app/agenda/{{.ViewState.event.ID}}/documents" @submit="submit" enctype="multipart/form-data">
<div class="md:grid md:grid-cols-6 p-2">
<div class="sm:col-span-2">
<label for="type" class="block text-sm font-medium text-gray-700">Type</label>
<select id="type" name="type" class="mt-1 block w-full rounded-l-2xl border-gray-300 py-2 pl-3 pr-10 text-base focus:border-indigo-500 focus:outline-none focus:ring-indigo-500 sm:text-sm"
x-model="fields.type" @blur="validateField('type')"
:class="formValidation.fields.type.valid == false ? 'border-co-red border-2' : 'border-gray-300'">
<option value="" selected>Sélectionner un type</option>
{{range .ViewState.events_file_types}}
<option value="{{.}}">{{index $.ViewState.file_types_map .}}</option>
{{end}}
</select>
</div>
<div class="sm:col-span-4">
<label for="name" class="block text-sm font-medium text-gray-700">Nom</label>
<input type="text" name="name" id="name"
placeholder="Nom du fichier"
class="mt-1 focus:ring-co-blue focus:border-co-blue block w-full shadow-sm sm:text-sm rounded-r-2xl"
x-model="fields.name" @blur="validateField('name')"
:class="formValidation.fields.name.valid == false ? 'border-co-red border-2' : 'border-gray-300'" />
</div>
<div class="sm:col-span-6 mt-4">
<label for="cover-photo" class="block text-sm font-medium text-gray-700">Téléchargement</label>
<div class="mt-1 flex justify-center rounded-md border-2 border-dashed px-6 pt-5 pb-6"
x-on:drop="console.log('toto')"
:class="formValidation.fields.file.valid == false ? 'border-co-red border-2' : 'border-gray-300'">
<div class="space-y-1 text-center">
{{.IconSet.Icon "hero:outline/folder-plus" "mx-auto h-12 w-12 text-gray-400"}}
<div class="flex text-sm text-gray-600">
<label for="file-upload" class="relative cursor-pointer rounded-md bg-white font-medium text-co-blue focus-within:outline-none focus-within:ring-2 focus-within:ring-co-blue focus-within:ring-offset-2 hover:text-co-blue">
<span>Sélectionnez un fichier </span>
<input id="file-upload" name="file-upload" type="file" class="sr-only"
x-model="fields.file" @blur="validateField('file')">
</label>
<!-- <p class="pl-1">ou glissez-déposez</p> -->
</div>
<p class="text-xs text-gray-500">Jusqu'à 10MB</p>
<p class="text-co-blue p-2" x-text="fields.file" x-if="fields.file"></p>
</div>
</div>
</div>
</div>
<button type="submit"
class="rounded-2xl border border-transparent bg-co-blue px-4 py-2 my-4 mt-8 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">
Ajouter le document
</button>
</form>
{{end}}
</div>
{{end}}

View File

@@ -4,7 +4,8 @@
<h1 class="text-2xl font-semibold text-gray-900">Ajouter à l'agenda</h1> <h1 class="text-2xl font-semibold text-gray-900">Ajouter à l'agenda</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: {
name: null, name: null,
type: null, type: null,
@@ -15,9 +16,6 @@
starttime: null, starttime: null,
endtime: null, endtime: null,
max_subscribers: 0, max_subscribers: 0,
file_name: null,
file_type: null,
file: null,
}, },
rules: { rules: {
name: ['required'], name: ['required'],
@@ -27,10 +25,7 @@
starttime: ['optional'], starttime: ['optional'],
endtime: ['optional'], endtime: ['optional'],
description: ['optional'], description: ['optional'],
max_subscribers: ['required', 'min:0'], max_subscribers: ['required', 'min:0']
file_name: ['optional'],
file_type: ['optional'],
file: ['optional'],
}, },
formValidation: { formValidation: {
valid: false, valid: false,
@@ -44,9 +39,6 @@
endtime: {valid: null}, endtime: {valid: null},
allday: {valid: null}, allday: {valid: null},
max_subscribers: {valid: null}, max_subscribers: {valid: null},
file_name: {valid: null},
file_type: {valid: null},
file: {valid: null},
} }
}, },
isFormValid: true, isFormValid: true,
@@ -70,14 +62,12 @@
return this.formValidation.valid return this.formValidation.valid
} }
}"> }">
<form class="space-y-6" method="POST" @submit="submit">
<form id="eventForm" class="space-y-6" method="POST" @submit="submit">
<div class="bg-white shadow px-4 py-5 sm:rounded-lg sm:p-6"> <div class="bg-white shadow px-4 py-5 sm:rounded-lg sm:p-6">
<div class="md:grid md:grid-cols-3 md:gap-6"> <div class="md:grid md:grid-cols-3 md:gap-6">
<div class="md:col-span-1"> <div class="md:col-span-1">
<h3 class="text-lg font-medium leading-6 text-gray-900">Informations sur le dispositif</h3> <h3 class="text-lg font-medium leading-6 text-gray-900">Informations sur le dispositif</h3>
<p class="mt-1 text-sm text-gray-500">Informations générales sur le dispositif d'accompagnement à <p class="mt-1 text-sm text-gray-500">Informations générales sur le dispositif d'accompagnement à ajouter à l'agenda</p>
ajouter à l'agenda</p>
</div> </div>
<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-6 gap-6"> <div class="grid grid-cols-6 gap-6">
@@ -90,7 +80,8 @@
</div> </div>
<div class="sm:col-span-3"> <div class="sm:col-span-3">
<label for="type" class="block text-sm font-medium text-gray-700">Type de dispositif</label> <label for="type" class="block text-sm font-medium text-gray-700">Type de dispositif</label>
<select id="type" name="type" x-model="fields.type" @blur="validateField('type')" <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="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'"> :class="formValidation.fields.type.valid == false ? 'border-co-red border-2' : 'border-gray-300'">
<option></option> <option></option>
@@ -103,8 +94,8 @@
<div class="col-span-6"> <div class="col-span-6">
<label for="description" class="block text-sm font-medium text-gray-700">Description</label> <label for="description" class="block text-sm font-medium text-gray-700">Description</label>
<div class="mt-1"> <div class="mt-1">
<textarea rows="4" name="description" id="descrpition" x-model="fields.description" <textarea rows="4" name="description" id="descrpition"
@blur="validateField('description')" x-model="fields.description" @blur="validateField('description')"
:class="formValidation.fields.description.valid == false ? 'border-co-red border-2' : 'border-gray-300'" :class="formValidation.fields.description.valid == false ? 'border-co-red border-2' : 'border-gray-300'"
class="shadow-sm focus:ring-co-blue focus:border-co-blue block w-full sm:text-sm border-gray-300 rounded-2xl"></textarea> 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>
@@ -128,14 +119,12 @@
<div class="col-span-6"> <div class="col-span-6">
<button type="button" <button type="button" class="relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-co-blue focus:ring-offset-2" role="switch" aria-checked="false"
class="relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-co-blue focus:ring-offset-2" :class="fields.allday ? 'bg-co-blue' : 'bg-gray-200'"
role="switch" aria-checked="false" :class="fields.allday ? 'bg-co-blue' : 'bg-gray-200'"
@click="fields.allday = ! fields.allday"> @click="fields.allday = ! fields.allday">
<span class="sr-only">Use setting</span> <span class="sr-only">Use setting</span>
<!-- Enabled: "translate-x-5", Not Enabled: "translate-x-0" --> <!-- Enabled: "translate-x-5", Not Enabled: "translate-x-0" -->
<span aria-hidden="true" <span aria-hidden="true" class="pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out"
class="pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out"
:class="fields.allday ? 'translate-x-5' : 'translate-x-0'"></span> :class="fields.allday ? 'translate-x-5' : 'translate-x-0'"></span>
</button> <span class="text-md font-medium text-gray-700 ml-2">Toute la journée</span> </button> <span class="text-md font-medium text-gray-700 ml-2">Toute la journée</span>
<input type="hidden" name="allday" x-model="fields.allday"> <input type="hidden" name="allday" x-model="fields.allday">
@@ -145,16 +134,14 @@
<div class="sm:col-span-6"> <div class="sm:col-span-6">
<div class="inline-flex w-full"> <div class="inline-flex w-full">
<div class="flex-1"> <div class="flex-1">
<label for="startdate" class="block text-sm font-medium text-gray-700">Date de <label for="startdate" class="block text-sm font-medium text-gray-700">Date de début</label>
début</label>
<input type="date" name="startdate" id="startdate" placeholder="JJ/MM/AAAA" <input type="date" name="startdate" id="startdate" placeholder="JJ/MM/AAAA"
class="mt-1 focus:ring-co-blue focus:border-co-blue block w-full shadow-sm sm:text-sm rounded-l-2xl" class="mt-1 focus:ring-co-blue focus:border-co-blue block w-full shadow-sm sm:text-sm rounded-l-2xl"
x-model="fields.startdate" @blur="validateField('startdate')" x-model="fields.startdate" @blur="validateField('startdate')"
:class="formValidation.fields.startdate.valid == false ? 'border-co-red border-2' : 'border-gray-300'"> :class="formValidation.fields.startdate.valid == false ? 'border-co-red border-2' : 'border-gray-300'">
</div> </div>
<div class="flex-1"> <div class="flex-1">
<label for="enddate" class="block text-sm font-medium text-gray-700">Date de <label for="enddate" class="block text-sm font-medium text-gray-700">Date de fin</label>
fin</label>
<input type="date" name="enddate" id="enddate" placeholder="JJ/MM/AAAA" <input type="date" name="enddate" id="enddate" placeholder="JJ/MM/AAAA"
class="mt-1 focus:ring-co-blue focus:border-co-blue block w-full shadow-sm sm:text-sm rounded-r-2xl" class="mt-1 focus:ring-co-blue focus:border-co-blue block w-full shadow-sm sm:text-sm rounded-r-2xl"
x-model="fields.enddate" @blur="validateField('enddate')" x-model="fields.enddate" @blur="validateField('enddate')"
@@ -168,16 +155,14 @@
<div class="sm:col-span-6" x-show="!fields.allday"> <div class="sm:col-span-6" x-show="!fields.allday">
<div class="inline-flex w-full"> <div class="inline-flex w-full">
<div class="flex-1"> <div class="flex-1">
<label for="startdate" class="block text-sm font-medium text-gray-700">Horaire de <label for="startdate" class="block text-sm font-medium text-gray-700">Horaire de début</label>
début</label>
<input type="time" name="starttime" id="starttime" placeholder="00:00" <input type="time" name="starttime" id="starttime" placeholder="00:00"
class="mt-1 focus:ring-co-blue focus:border-co-blue block w-full shadow-sm sm:text-sm rounded-l-2xl" class="mt-1 focus:ring-co-blue focus:border-co-blue block w-full shadow-sm sm:text-sm rounded-l-2xl"
x-model="fields.starttime" @blur="validateField('starttime')" x-model="fields.starttime" @blur="validateField('starttime')"
:class="formValidation.fields.starttime.valid == false ? 'border-co-red border-2' : 'border-gray-300'"> :class="formValidation.fields.starttime.valid == false ? 'border-co-red border-2' : 'border-gray-300'">
</div> </div>
<div class="flex-1"> <div class="flex-1">
<label for="endtime" class="block text-sm font-medium text-gray-700">Horaire de <label for="endtime" class="block text-sm font-medium text-gray-700">Horaire de fin</label>
fin</label>
<input type="time" name="endtime" id="endtime" placeholder="00:00" <input type="time" name="endtime" id="endtime" placeholder="00:00"
class="mt-1 focus:ring-co-blue focus:border-co-blue block w-full shadow-sm sm:text-sm rounded-r-2xl" class="mt-1 focus:ring-co-blue focus:border-co-blue block w-full shadow-sm sm:text-sm rounded-r-2xl"
x-model="fields.endtime" @blur="validateField('endtime')" x-model="fields.endtime" @blur="validateField('endtime')"
@@ -199,14 +184,12 @@
<div class="md:grid md:grid-cols-3 md:gap-6"> <div class="md:grid md:grid-cols-3 md:gap-6">
<div class="md:col-span-1"> <div class="md:col-span-1">
<h3 class="text-lg font-medium leading-6 text-gray-900">Paramètres</h3> <h3 class="text-lg font-medium leading-6 text-gray-900">Paramètres</h3>
<p class="mt-1 text-sm text-gray-500">Paramètres du dispositif (nombre de places disponibles, <p class="mt-1 text-sm text-gray-500">Paramètres du dispositift (nombre de places disponibles, etc...)</p>
etc...)</p>
</div> </div>
<div class="mt-5 space-y-6 md:mt-0 md:col-span-2 align-middle"> <div class="mt-5 space-y-6 md:mt-0 md:col-span-2 align-middle">
<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"> <div class="col-span-6 sm:col-span-3">
<label for="max_subscribers" class="block text-sm font-medium text-gray-700">Places <label for="max_subscribers" class="block text-sm font-medium text-gray-700">Places disponibles (0 = illimité)</label>
disponibles (0 = illimité)</label>
<input type="number" name="max_subscribers" id="max_subscribers" <input type="number" name="max_subscribers" id="max_subscribers"
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.max_subscribers" @blur="validateField('max_subscribers')" x-model="fields.max_subscribers" @blur="validateField('max_subscribers')"
@@ -216,54 +199,8 @@
</div> </div>
</div> </div>
</div> </div>
<!-- <div class="bg-white shadow px-4 py-5 sm:rounded-lg sm:p-6 mt-8">
<div class="md:grid md:grid-cols-3 md:gap-6">
<div class="md:col-span-1">
<h3 class="text-lg font-medium leading-6 text-gray-900">Ajouter un document</h3>
<p class="mt-1 text-sm text-gray-500">Téléchargez un document lié à cet événement</p>
</div>
<div class="md:grid md:grid-cols-6 p-2">
<div class="sm:col-span-2">
<label for="file_type" class="block text-sm font-medium text-gray-700">Type</label>
<select id="file_type" name="file_type" class="mt-1 block w-full rounded-l-2xl border-gray-300 py-2 pl-3 pr-10 text-base focus:border-indigo-500 focus:outline-none focus:ring-indigo-500 sm:text-sm"
x-model="fields.file_type" @blur="validateField('file_type')"
:class="formValidation.fields.file_type.valid == false ? 'border-co-red border-2' : 'border-gray-300'">
<option value="" selected>Sélectionner un type</option>
{{range .ViewState.events_file_types}}
<option value="{{.}}">{{index $.ViewState.file_types_map .}}</option>
{{end}}
</select>
</div>
<div class="sm:col-span-4">
<label for="file_name" class="block text-sm font-medium text-gray-700">Nom</label>
<input type="text" name="file_name" id="file_name"
placeholder="Nom du fichier"
class="mt-1 focus:ring-co-blue focus:border-co-blue block w-full shadow-sm sm:text-sm rounded-r-2xl"
x-model="fields.file_name" @blur="validateField('file_name')"
:class="formValidation.fields.file_name.valid == false ? 'border-co-red border-2' : 'border-gray-300'" />
</div>
<div class="sm:col-span-6 mt-4">
<label for="cover-photo" class="block text-sm font-medium text-gray-700">Téléchargement</label>
<div class="mt-1 flex justify-center rounded-md border-2 border-dashed px-6 pt-5 pb-6"
x-on:drop="console.log('toto')"
:class="formValidation.fields.file.valid == false ? 'border-co-red border-2' : 'border-gray-300'">
<div class="space-y-1 text-center">
{{.IconSet.Icon "hero:outline/folder-plus" "mx-auto h-12 w-12 text-gray-400"}}
<div class="flex text-sm text-gray-600">
<label for="file-upload" class="relative cursor-pointer rounded-md bg-white font-medium text-co-blue focus-within:outline-none focus-within:ring-2 focus-within:ring-co-blue focus-within:ring-offset-2 hover:text-co-blue">
<span>Sélectionnez un fichier </span>
<input id="file-upload" name="file-upload" type="file" class="sr-only"
x-model="fields.file" @blur="validateField('file')">
</label>
</div>
<p class="text-xs text-gray-500">Jusqu'à 10MB</p>
<p class="text-co-blue p-2" x-text="fields.file" x-if="fields.file"></p>
</div>
</div>
</div>
</div>
</div>
</div> -->
<div class="flex justify-end"> <div class="flex justify-end">
<p x-show="! isFormValid" class="px-4 py-2 text-sm text-co-red">Certains champs de sont pas valides.</p> <p x-show="! isFormValid" class="px-4 py-2 text-sm text-co-red">Certains champs de sont pas valides.</p>

View File

@@ -28,7 +28,6 @@
<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}}
@@ -85,28 +84,17 @@
</div> </div>
</div> </div>
</section> </section>
{{ if eq (index .ViewState.event.Owners 0) .Group.ID }} {{ if eq (index .ViewState.event.Owners 0) .Group.ID }}
<section aria-labelledby="subscribers-table"></section> <section aria-labelledby="subscribers-table"></section>
<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>
@@ -206,17 +194,5 @@
</div> </div>
</section> </section>
</div> </div>
<div class="mt-8 max-w-3xl mx-auto grid grid-cols-1 gap-6 sm:px-6 lg:max-w-7xl lg:grid-flow-col-dense lg:grid-cols-3">
<div class="space-y-6 lg:col-start-1 lg:col-span-2">
<section aria-labelledby="event-documents">
<div class="bg-white mt-4 px-4 py-5 shadow sm:rounded-lg sm:px-6">
<h2 id="documents-title" class="text-lg font-medium text-gray-900">Documents</h2>
<div class="flex justify-between items-center">
<div>{{template "event_files" .}}</div>
</div>
</div>
</section>
</div>
</div>
</main> </main>
{{ end }} {{ end }}

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

@@ -1,63 +1,4 @@
{{define "beneficiary_events"}} {{define "beneficiary_events"}}
{{ $calendarIcon := .IconSet.Icon "hero:outline/calendar" "h-6 w-6" }} <div class="px-4 py-6 sm:px-6">
{{ $carIcon := .IconSet.Icon "tabler-icons:car" "h-6 w-6"}}
<div class="bg-white shadow sm:rounded-lg">
<div class="px-4 py-5 sm:px-6">
<h2 id="timeline-title" class="text-lg font-medium text-gray-900">Actions réalisées</h2>
</div>
<div class="border-t border-gray-200">
{{ $eventCount := len .ViewState.event }}
<ul role="list" class="divide-y divide-gray-200 flex-1">
{{if eq $eventCount 0}}
<li class="py-2 px-4">
<p class="py-5 mt-1 max-w-2xl text-sm text-gray-500">Aucun dispositif n'est prévu pour le moment.</p>
</li>
{{else}}
{{range .ViewState.event}}
{{if eq .Deleted false}}
<li class="py-5 px-4 flex">
<a href="{{.Db}}{{.ID}}" class="flex w-full">
<div class="flex-1 ml-3">
<div class="flex items-center">
{{if eq .Status 2}}
{{if eq .Icons "vehicle"}}
<span class="bg-co-green text-white rounded-full h-8 w-10 flex items-center justify-center">{{$carIcon}}</span>
{{else}}
<span class="bg-co-green text-white rounded-full h-8 w-10 flex items-center justify-center">{{$calendarIcon}}</span>
{{end}}
{{end}}
{{if eq .Status 1}}
{{if eq .Icons "vehicle"}}
<span class="bg-co-blue text-white rounded-full h-8 w-10 flex items-center justify-center">{{$carIcon}}</span>
{{else}}
<span class="bg-co-blue text-white rounded-full h-8 w-10 flex items-center justify-center">{{$calendarIcon}}</span>
{{end}}
{{end}}
{{if eq .Status 3}}
{{if eq .Icons "vehicle"}}
<span class="bg-gray-500 text-white rounded-full h-8 w-10 flex items-center justify-center">{{$carIcon}}</span>
{{else}}
<span class="bg-gray-500 text-white rounded-full h-8 w-10 flex items-center justify-center">{{$calendarIcon}}</span>
{{end}}
{{end}}
{{if eq .Date .DateEnd}}
<p class="text-sm font-medium text-gray-500"> &ensp;le {{(timeFrom .Date).Format "02/01/2006"}}</p>
{{else}}
<p class="text-sm font-medium text-gray-500">&ensp;du {{(timeFrom .Date).Format "02/01/2006"}} au {{(timeFrom .DateEnd).Format "02/01/2006"}}</p>
{{end}}
</div>
<p class="mt-1 text-sm text-gray-900">{{.Type}} - {{.Name}}</p>
</div>
</a>
</li>
{{end}}
{{end}}
{{end}}
</ul>
</div>
</div> </div>
{{end}} {{end}}

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/{{.ViewState.beneficiary.ID}}/documents" @submit="submit" enctype="multipart/form-data"> <form method="POST" action="/app/beneficiaries/e7616eac-4a87-4396-a505-23e0421b9c4c/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>

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: ['required'], file_number: ['optional'],
}, },
formValidation: { formValidation: {
valid: false, valid: false,
@@ -100,13 +100,6 @@
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>
@@ -121,6 +114,14 @@
<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,12 +69,6 @@
<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>
@@ -151,7 +145,10 @@
</div> </div>
<section aria-labelledby="timeline-title" class="lg:col-start-3 lg:col-span-1"> <section aria-labelledby="timeline-title" class="lg:col-start-3 lg:col-span-1">
{{template "beneficiary_events" .}} <div class="bg-white px-4 py-5 shadow sm:rounded-lg sm:px-6">
<h2 id="timeline-title" class="text-lg font-medium text-gray-900">Actions réalisées</h2>
<p class="p-12 text-gray-500 text-center text-md">Aucune action réalisée pour le moment</p>
</div>
</section> </section>
</div> </div>
</main> </main>

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: ['required'], file_number: ['optional'],
}, },
formValidation: { formValidation: {
valid: false, valid: false,
@@ -101,15 +101,6 @@
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>
@@ -123,6 +114,15 @@
</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">

View File

@@ -10,7 +10,6 @@
</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">
@@ -19,7 +18,6 @@
</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

@@ -54,7 +54,7 @@
{{range .ViewState.bookings}} {{range .ViewState.bookings}}
<tr> <tr>
<td class="flex-col py-4 pl-4 pr-3 text-sm sm:pl-6 text-center"> <td class="whitespace-nowrap py-4 pl-4 pr-3 text-sm sm:pl-6 text-center">
{{if .Data.administrator_unavailability}} {{if .Data.administrator_unavailability}}
<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é
@@ -76,11 +76,15 @@
</span> </span>
{{end}} {{end}}
{{end}} {{end}}
{{if not .bookings}}
<span class="p-1 bg-black text-white text-xs font-bold rounded-xl" >
Disponible
</span>
{{end}}
</td> </td>
<td class="whitespace-nowrap py-4 pl-4 pr-3 text-sm sm:pl-6"> <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> <div class="text-gray-900" >{{(index $.ViewState.vehicles_map .Vehicleid).Type}}</div>
</td> </td>
<td class="whitespace-nowrap py-4 pl-4 pr-3 text-sm sm:pl-6"> <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> <div class="text-gray-900" >{{(index $.ViewState.vehicles_map .Vehicleid).Data.licence_plate}}</div>
</td> </td>

View File

@@ -1,39 +0,0 @@
{{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

@@ -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

4
web/tailwind.config.js Executable file → Normal file
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',