Initial commit

This commit is contained in:
2022-11-06 18:19:13 +01:00
commit 7512f2e5ee
69 changed files with 11111 additions and 0 deletions

View File

@@ -0,0 +1,4 @@
{{define "beneficiary_events"}}
<div class="px-4 py-6 sm:px-6">
</div>
{{end}}

View File

@@ -0,0 +1,135 @@
{{define "beneficiary_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/beneficiaries/{{$.ViewState.beneficiary.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}}
<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">
<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.beneficiaries_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>
</div>
{{end}}

View File

@@ -0,0 +1,38 @@
{{define "beneficiary_journeys"}}
<div class="px-4 py-6 sm:px-6">
<form action="/app/journeys/" method="GET">
{{ $departureField := "departure" }}
{{ $departureLabel := "Départ" }}
{{ template "address_autocomplete" dict "FieldName" $departureField "FieldLabel" $departureLabel }}
{{ $destinationField := "destination" }}
{{ $destinationLabel := "Destination" }}
{{ template "address_autocomplete" dict "FieldName" $destinationField "FieldLabel" $destinationLabel }}
<div class="py-4 grid grid-cols-2">
<div class="lg:col-span-1">
<label for="departuredate" class="block text-sm font-medium text-gray-700">Le</label>
<div class="mt-1">
<input type="date" id="departuredate" name="departuredate" value="{{.ViewState.departuredate}}"
class="shadow-sm focus:ring-co-blue focus:border-co-blue block w-full sm:text-sm border-gray-300 rounded-l-2xl border-r-1">
</div>
</div>
<div class="lg:col-span-1">
<label for="departuretime" class="block text-sm font-medium text-gray-700">A</label>
<div class="mt-1">
<input type="time" id="departuretime" name="departuretime" value="{{.ViewState.departuretime}}"
class="shadow-sm focus:ring-co-blue focus:border-co-blue block w-full sm:text-sm border-gray-300 rounded-r-2xl border-l-0">
</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">
Chercher
</button>
</form>
</div>
{{end}}

View File

@@ -0,0 +1,108 @@
{{define "beneficiary_notes"}}
<div class="px-4 py-6 sm:px-6">
<ul role="list" class="space-y-8">
<!-- <li>
<div class="flex space-x-3">
<div class="flex-shrink-0">
<img class="h-10 w-10 rounded-full"
src="https://images.unsplash.com/photo-1494790108377-be9c29b29330?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
alt="">
</div>
<div>
<div class="text-sm">
<a href="#" class="font-medium text-gray-900">Leslie Alexander</a>
</div>
<div class="mt-1 text-sm text-gray-700">
<p>Ducimus quas delectus ad maxime totam doloribus reiciendis ex.
Tempore dolorem maiores. Similique voluptatibus tempore non ut.</p>
</div>
<div class="mt-2 text-sm space-x-2">
<span class="text-gray-500 font-medium">4d ago</span>
<span class="text-gray-500 font-medium">&middot;</span>
<button type="button" class="text-gray-900 font-medium">Reply</button>
</div>
</div>
</div>
</li>
<li>
<div class="flex space-x-3">
<div class="flex-shrink-0">
<img class="h-10 w-10 rounded-full"
src="https://images.unsplash.com/photo-1519244703995-f4e0f30006d5?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
alt="">
</div>
<div>
<div class="text-sm">
<a href="#" class="font-medium text-gray-900">Michael Foster</a>
</div>
<div class="mt-1 text-sm text-gray-700">
<p>Et ut autem. Voluptatem eum dolores sint necessitatibus quos. Quis
eum qui dolorem accusantium voluptas voluptatem ipsum. Quo facere
iusto quia accusamus veniam id explicabo et aut.</p>
</div>
<div class="mt-2 text-sm space-x-2">
<span class="text-gray-500 font-medium">4d ago</span>
<span class="text-gray-500 font-medium">&middot;</span>
<button type="button" class="text-gray-900 font-medium">Reply</button>
</div>
</div>
</div>
</li>
<li>
<div class="flex space-x-3">
<div class="flex-shrink-0">
<img class="h-10 w-10 rounded-full"
src="https://images.unsplash.com/photo-1506794778202-cad84cf45f1d?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
alt="">
</div>
<div>
<div class="text-sm">
<a href="#" class="font-medium text-gray-900">Dries Vincent</a>
</div>
<div class="mt-1 text-sm text-gray-700">
<p>Expedita consequatur sit ea voluptas quo ipsam recusandae. Ab sint et
voluptatem repudiandae voluptatem et eveniet. Nihil quas consequatur
autem. Perferendis rerum et.</p>
</div>
<div class="mt-2 text-sm space-x-2">
<span class="text-gray-500 font-medium">4d ago</span>
<span class="text-gray-500 font-medium">&middot;</span>
<button type="button" class="text-gray-900 font-medium">Reply</button>
</div>
</div>
</div>
</li> -->
</ul>
</div>
<div class="bg-gray-50 px-4 py-6 sm:px-6">
<div class="flex space-x-3">
<div class="flex-shrink-0">
<img class="h-10 w-10 rounded-co"
src="https://images.unsplash.com/photo-1517365830460-955ce3ccd263?ixlib=rb-=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=8&w=256&h=256&q=80"
alt="">
</div>
<div class="min-w-0 flex-1">
<form action="#">
<div>
<label for="comment" class="sr-only">Note</label>
<textarea id="comment" name="comment" rows="3"
class="shadow-sm block w-full focus:ring-blue-500 focus:border-blue-500 sm:text-sm border border-gray-300 rounded-md"
placeholder="Ajouter une note"></textarea>
</div>
<div class="mt-3 flex items-center justify-between">
<a href="#"
class="group inline-flex items-start text-sm space-x-2 text-gray-500 hover:text-gray-900">
<!-- Heroicon name: solid/question-mark-circle -->
{{.IconSet.Icon "hero:solid/question-mark-icon" "flex-shrink-0 h-5 w-5 text-gray-400 group-hover:text-gray-500" }}
<span> Accepte le "markdown". </span>
</a>
<button type="submit"
class="inline-flex items-center justify-center px-4 py-2 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-co-blue hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-co-blue">Ajouter la note</button>
</div>
</form>
</div>
</div>
</div>
{{end}}

View File

@@ -0,0 +1,39 @@
{{define "beneficiary_vehicles"}}
<div class="px-4 py-6 sm:px-6">
{{if .ViewState.bookings}}
<h3 class="text-lg">Mises à disposition réalisées</h3>
<ul class="my-8">
{{range .ViewState.bookings}}
<li class="text-sm">Du {{(timeFrom .Startdate).Format "02/01/2006"}} au {{(timeFrom .Enddate).Format "02/01/2006"}}</li>
{{end}}
</ul>
{{end}}
<h3 class="text-lg">Réserver un véhicule</h3>
<form method="GET" action="/app/vehicles/">
<input type="hidden" name="beneficiaryid" value="{{.ViewState.beneficiary.ID}}">
<div class="py-4 grid grid-cols-2">
<div class="lg:col-span-1">
<label for="startdate" class="block text-sm font-medium text-gray-700">Du</label>
<div class="mt-1">
<input type="date" id="startdate" name="startdate"
class="shadow-sm focus:ring-co-blue focus:border-co-blue block w-full sm:text-sm border-gray-300 rounded-l-2xl border-r-1">
</div>
</div>
<div class="lg:col-span-1">
<label for="enddate" class="block text-sm font-medium text-gray-700">Au</label>
<div class="mt-1">
<input type="date" id="enddate" name="enddate"
class="shadow-sm focus:ring-co-blue focus:border-co-blue block w-full sm:text-sm border-gray-300 rounded-r-2xl border-l-0">
</div>
</div>
</div>
{{template "vehicle_type_select" .}}
<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">
Chercher
</button>
</form>
</div>
{{end}}