Compare commits
6 Commits
addDocsInE
...
03f389825e
| Author | SHA1 | Date | |
|---|---|---|---|
| 03f389825e | |||
| fc0739ab57 | |||
| 9b76cb143d | |||
| c6f40f2aa2 | |||
| 3526ee8700 | |||
| d8369bad3d |
@@ -9,6 +9,7 @@ views:
|
||||
files:
|
||||
- web/layouts/dashboard/_partials/agenda-widget.html
|
||||
- web/layouts/dashboard/_partials/beneficiaries-widget.html
|
||||
- web/layouts/dashboard/_partials/bookings-widget.html
|
||||
- web/layouts/dashboard/dashboard.html
|
||||
beneficiaries:
|
||||
list:
|
||||
@@ -89,6 +90,9 @@ views:
|
||||
booking_display:
|
||||
files:
|
||||
- web/layouts/vehicles_management/booking-display.html
|
||||
delete_booking:
|
||||
files:
|
||||
- web/layouts/vehicles_management/delete-booking.html
|
||||
agenda:
|
||||
list:
|
||||
files:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{{define "content"}}
|
||||
<p>Vous avez reçu un commentaire sur PARCOURSMOB de la part de <b>{{.user}}</b></p>
|
||||
<p>{{.key}}</p>
|
||||
{{end}}
|
||||
<p>{{unescapeHTML .key}}</p>
|
||||
{{end}}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
fields: {
|
||||
name: null,
|
||||
type: null,
|
||||
description: null,
|
||||
description: '',
|
||||
allday: false,
|
||||
startdate: null,
|
||||
enddate: null,
|
||||
@@ -50,6 +50,16 @@
|
||||
}
|
||||
},
|
||||
isFormValid: true,
|
||||
init() {
|
||||
let quill = new Quill(this.$refs.quill, { theme: 'snow' })
|
||||
|
||||
quill.root.innerHTML = this.fields.description
|
||||
|
||||
quill.on('text-change', () => {
|
||||
this.fields.description = quill.root.innerHTML
|
||||
})
|
||||
|
||||
},
|
||||
validate() {
|
||||
this.formValidation = Iodine.assert(this.fields, this.rules)
|
||||
|
||||
@@ -103,10 +113,12 @@
|
||||
<div class="col-span-6">
|
||||
<label for="description" class="block text-sm font-medium text-gray-700">Description</label>
|
||||
<div class="mt-1">
|
||||
<textarea rows="4" name="description" id="descrpition" x-model="fields.description"
|
||||
<!-- <textarea rows="4" name="description" id="descrpition" x-model="fields.description"
|
||||
@blur="validateField('description')"
|
||||
: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> -->
|
||||
<input type="hidden" name="description" x-model="fields.description" />
|
||||
<div x-ref="quill" class="shadow-sm focus:ring-co-blue focus:border-co-blue block w-full sm:text-sm border-gray-300 rounded-b-2xl">></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -277,4 +289,4 @@
|
||||
</form>
|
||||
</div>
|
||||
|
||||
{{end}}
|
||||
{{end}}
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
{{if .ViewState.event.Description}}
|
||||
<div class="sm:col-span-2">
|
||||
<dt class="text-sm font-medium text-gray-500">Description</dt>
|
||||
<dd class="mt-1 text-sm text-gray-900">{{.ViewState.event.Description}}</dd>
|
||||
<dd class="mt-1 text-sm text-gray-900">{{ unescapeHTML .ViewState.event.Description}}</dd>
|
||||
</div>
|
||||
{{end}}
|
||||
</dl>
|
||||
@@ -219,4 +219,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
@@ -44,6 +44,16 @@
|
||||
}
|
||||
},
|
||||
isFormValid: true,
|
||||
init() {
|
||||
let quill = new Quill(this.$refs.quill, { theme: 'snow' })
|
||||
|
||||
quill.root.innerHTML = this.fields.description
|
||||
|
||||
quill.on('text-change', () => {
|
||||
this.fields.description = quill.root.innerHTML
|
||||
})
|
||||
|
||||
},
|
||||
validate() {
|
||||
this.formValidation = Iodine.assert(this.fields, this.rules)
|
||||
|
||||
@@ -99,10 +109,12 @@
|
||||
<label for="description" class="block text-sm font-medium text-gray-700">Description</label>
|
||||
<div class="mt-1">
|
||||
|
||||
<textarea rows="4" name="description" id="descrpition" value="{{.ViewState.event.Description}}"
|
||||
<!--<textarea rows="4" name="description" id="descrpition" value="{{.ViewState.event.Description}}"
|
||||
x-model="fields.description" @blur="validateField('description')"
|
||||
: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>-->
|
||||
<input type="hidden" name="description" x-model="fields.description" />
|
||||
<div x-ref="quill" class="shadow-sm focus:ring-co-blue focus:border-co-blue block w-full sm:text-sm border-gray-300 rounded-b-2xl">></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -252,4 +264,4 @@
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
|
||||
32
web/layouts/dashboard/_partials/bookings-widget.html
Normal file
32
web/layouts/dashboard/_partials/bookings-widget.html
Normal file
@@ -0,0 +1,32 @@
|
||||
{{define "bookings_widget"}}
|
||||
<div class="col-span-1 bg-white rounded-2xl shadow divide-y divide-gray-200 flex flex-col">
|
||||
<div class="-ml-4 -mt-2 px-4 py-2 flex items-center justify-between flex-wrap sm:flex-nowrap">
|
||||
<div class="ml-4 mt-2">
|
||||
<h3 class="text-lg leading-6 font-medium text-gray-900">Prochaines réservations</h3>
|
||||
</div>
|
||||
<!-- <div class="ml-4 mt-2 flex-shrink-0">
|
||||
<button type="button" class="relative inline-flex items-center px-4 py-2 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-co-blue hover:bg-co-blue focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-co-blue">Voir</button>
|
||||
</div> -->
|
||||
</div>
|
||||
<ul role="list" class="divide-y divide-gray-200 flex-1">
|
||||
{{range .}}
|
||||
{{if or (eq .Data.Deleted nil) (eq .Data.Deleted false)}}
|
||||
<li class="py-2 px-4 flex">
|
||||
<a href="/app/vehicles-management/bookings/{{.ID}}" class="flex w-full">
|
||||
<div class="ml-3">
|
||||
|
||||
<p class="text-sm font-medium text-gray-900">Du {{(timeFrom .Startdate).Format "02/01"}} au {{(timeFrom .Enddate).Format "02/01"}}</p>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
{{end}}
|
||||
{{end}}
|
||||
</ul>
|
||||
|
||||
<a href="/app/vehicles-management/">
|
||||
<button class="w-full p-2 text-center bg-co-blue text-white rounded-b-2xl text-sm">
|
||||
Reservation des véhicules
|
||||
</button>
|
||||
</a>
|
||||
</div>
|
||||
{{end}}
|
||||
@@ -70,7 +70,7 @@
|
||||
|
||||
{{template "beneficiaries_widget" .ViewState.beneficiaries}}
|
||||
{{template "agenda_widget" .ViewState.events}}
|
||||
|
||||
{{template "bookings_widget" .ViewState.fleets}}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -5,9 +5,11 @@
|
||||
<head>
|
||||
<title>PARCOURSMOB</title>
|
||||
<link rel="stylesheet" href="/public/css/main.css" />
|
||||
<link href="https://cdn.jsdelivr.net/npm/quill@2.0.2/dist/quill.snow.css" rel="stylesheet" />
|
||||
<!-- <script defer type="text/javascript" src="/public/js/main.js" defer></script> -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/@kingshott/iodine@8.1.0/dist/iodine.min.umd.js" defer></script>
|
||||
<script defer src="https://unpkg.com/alpinejs@3.x.x/dist/cdn.min.js" defer></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/quill@2.0.2/dist/quill.js"></script>
|
||||
</head>
|
||||
|
||||
<body class="h-full" x-data="{ offCanvasMenu: false }">
|
||||
@@ -175,4 +177,4 @@
|
||||
</body>
|
||||
|
||||
</html>
|
||||
{{end}}
|
||||
{{end}}
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
<dd class="mt-1 text-sm text-gray-900">{{.ViewState.admins.Data.first_name}}</dd>
|
||||
</div>
|
||||
<div class="sm:col-span-1">
|
||||
<dt class="text-sm font-medium text-gray-500">Prénon</dt>
|
||||
<dt class="text-sm font-medium text-gray-500">Prénom</dt>
|
||||
<dd class="mt-1 text-sm text-gray-900">{{.ViewState.admins.Data.last_name}}
|
||||
</dd>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,17 @@
|
||||
{{define "content"}}
|
||||
|
||||
<div class="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8 space-y-6">
|
||||
<div class="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8 space-y-6" x-data="{
|
||||
comment: '',
|
||||
init() {
|
||||
let quill = new Quill(this.$refs.quill, { theme: 'snow', modules: { toolbar: [[{ 'header': [1, 2, 3, 4, 5, 6, false] }], ['bold', 'italic', 'underline'], ['link', 'image']] } })
|
||||
|
||||
quill.root.innerHTML = this.comment
|
||||
|
||||
quill.on('text-change', () => {
|
||||
this.comment = quill.root.innerHTML
|
||||
})
|
||||
},
|
||||
}">
|
||||
<h1 class="text-2xl font-semibold text-gray-900">Demande de support technique</h1>
|
||||
<div class="bg-white py-2 px-4 shadow sm:rounded-lg sm:px-10">
|
||||
<p class="text-sm text-gray-600 p-4">
|
||||
@@ -10,9 +21,11 @@
|
||||
|
||||
<div class="mb-4 w-full bg-gray-50 rounded-3xl border border-gray-200 dark:bg-gray-700 dark:border-gray-600">
|
||||
<div class="py-2 px-4 rounded-3xl bg-white dark:bg-gray-800">
|
||||
<label class="sr-only">Votre message</label>
|
||||
<label class="sr-only">Votre message</label>
|
||||
|
||||
<textarea name="comment" rows="4" class="block w-full resize-none border-0 border-b border-transparent p-0 pb-2 focus:border-co-blue focus:ring-0 sm:text-sm" placeholder="Votre message..." required></textarea>
|
||||
<div x-ref="quill" class="block w-full resize-none border-0 border-b border-transparent p-0 pb-2 focus:border-co-blue focus:ring-0 sm:text-sm"></div>
|
||||
<input type="hidden" name="comment" x-model="comment" />
|
||||
|
||||
</div>
|
||||
<div class="flex justify-center items-center py-2 px-3 border-t dark:border-gray-600">
|
||||
<button type="submit" value="send message" class="px-2 py-2 border border-transparent text-sm font-medium rounded-2xl shadow-sm text-white bg-co-blue hover:bg-co-blue focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-100 focus:ring-co-blue">
|
||||
|
||||
@@ -147,6 +147,20 @@
|
||||
<div class="lg:col-start-2 lg:col-span-2">
|
||||
{{if .ViewState.searched}}
|
||||
<div class="bg-white px-4 py-5 shadow sm:rounded-2xl sm:px-6">
|
||||
<h2 id="timeline-title" class="text-lg font-medium text-gray-900">Documents demandés</h2>
|
||||
<table>
|
||||
<tbody>
|
||||
{{range .ViewState.search.mandatory_documents}}
|
||||
<tr>
|
||||
<td class="whitespace-nowrap py-4 px-3 text-sm text-gray-500">
|
||||
{{index $.ViewState.search.file_types_map .}}
|
||||
</td>
|
||||
</tr>
|
||||
{{end}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="bg-white mt-8 px-4 py-5 shadow sm:rounded-2xl sm:px-6">
|
||||
<h2 id="timeline-title" class="text-lg font-medium text-gray-900">Véhicules disponibles</h2>
|
||||
<div class="mt-8 flex flex-col">
|
||||
<div class="-my-2 -mx-4 overflow-x-auto sm:-mx-6 lg:-mx-8">
|
||||
|
||||
@@ -15,12 +15,12 @@
|
||||
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
|
||||
</button>
|
||||
<!-- <a href="/app/vehicles-management/bookings/{{.ViewState.booking.ID}}/delete">
|
||||
<a href="/app/vehicles-management/bookings/{{.ViewState.booking.ID}}/delete">
|
||||
<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">
|
||||
Annuler
|
||||
</button>
|
||||
</a> -->
|
||||
</a>
|
||||
|
||||
<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>
|
||||
@@ -158,6 +158,11 @@
|
||||
<dd class="mt-1 text-sm text-gray-900 sm:mt-0 sm:col-span-2">
|
||||
{{.ViewState.vehicle.Data.licence_plate}}</dd>
|
||||
</div>
|
||||
<div class="py-4 sm:py-5 sm:grid sm:grid-cols-3 sm:gap-4">
|
||||
<dt class="text-sm font-medium text-gray-500">Kilométrage</dt>
|
||||
<dd class="mt-1 text-sm text-gray-900 sm:mt-0 sm:col-span-2">
|
||||
{{.ViewState.vehicle.Data.kilometers}} km</dd>
|
||||
</div>
|
||||
<div class="py-4 sm:py-5 sm:grid sm:grid-cols-3 sm:gap-4">
|
||||
<dt class="text-sm font-medium text-gray-500">Type</dt>
|
||||
<dd class="mt-1 text-sm text-gray-900 sm:mt-0 sm:col-span-2">
|
||||
|
||||
@@ -10,11 +10,13 @@
|
||||
licence_plate: null,
|
||||
name: null,
|
||||
type: null,
|
||||
informations: '',
|
||||
},
|
||||
rules: {
|
||||
licence_plate: ['required'], // 'regexMatch:^[A-Z]{1,2}-[0-9]{1,3}-[A-Z]{1,2}$'
|
||||
name: ['required'],
|
||||
type: ['required'],
|
||||
informations: ['optional']
|
||||
},
|
||||
formValidation: {
|
||||
valid: false,
|
||||
@@ -22,9 +24,19 @@
|
||||
name: {valid: null},
|
||||
licence_plate: {valid: null},
|
||||
type: {valid: null},
|
||||
informations: {valid: null},
|
||||
}
|
||||
},
|
||||
isFormValid: true,
|
||||
init() {
|
||||
let quill = new Quill(this.$refs.quill, { theme: 'snow', modules: { toolbar: [[{ 'header': [1, 2, 3, 4, 5, 6, false] }], ['bold', 'italic', 'underline'], ['link', 'image']] } })
|
||||
|
||||
quill.root.innerHTML = this.fields.informations
|
||||
|
||||
quill.on('text-change', () => {
|
||||
this.fields.informations = quill.root.innerHTML
|
||||
})
|
||||
},
|
||||
validate() {
|
||||
this.formValidation = Iodine.assert(this.fields, this.rules)
|
||||
},
|
||||
@@ -94,6 +106,13 @@
|
||||
@blur="fields.licence_plate = fields.licence_plate.toUpperCase(); validateField('licence_plate')"
|
||||
:class="formValidation.fields.licence_plate.valid == false ? 'border-co-red border-2' : 'border-gray-300'">
|
||||
</div>
|
||||
<!--<div class="col-span-3">
|
||||
<label for="kilometers"
|
||||
class="block text-sm font-medium text-gray-700">Kilométrage</label>
|
||||
<input type="text" name="kilometers" id="kilometers" placeholder="1 km"
|
||||
class="mt-1 focus:ring-co-blue focus:border-co-blue block w-full shadow-sm sm:text-sm rounded-2xl"
|
||||
x-model="fields.kilometers">
|
||||
</div>-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -111,8 +130,8 @@
|
||||
<div class="mt-5">
|
||||
<label for="informations" class="block text-sm font-medium text-gray-700">Informations pratiques</label>
|
||||
<div class="mt-1">
|
||||
<textarea rows="4" name="informations" id="informations"
|
||||
class="shadow-sm focus:ring-co-blue focus:border-co-blue block w-full sm:text-sm border-gray-300 rounded-2xl"></textarea>
|
||||
<div x-ref="quill" class="shadow-sm focus:ring-co-blue focus:border-co-blue block w-full sm:text-sm border-gray-300 rounded-b-2xl"></div>
|
||||
<input type="hidden" name="informations" x-model="fields.informations" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -131,4 +150,4 @@
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
{{end}}
|
||||
{{end}}
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
<div class="mt-6 flex flex-col-reverse justify-stretch space-y-4 space-y-reverse sm:flex-row-reverse sm:justify-end sm:space-x-reverse sm:space-y-0 sm:space-x-3 md:mt-0 md:flex-row md:space-x-3">
|
||||
<button type="button" @click="dialog = !dialog"
|
||||
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">Retirer de la flotte</button>
|
||||
<!-- <a href="/app/vehicles-management/fleet/{{.ViewState.vehicle.ID}}/update" 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-blue hover:bg-co-blue focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-100 focus:ring-co-blue">Modifier</button></a> -->
|
||||
<a href="/app/vehicles-management/fleet/{{.ViewState.vehicle.ID}}/update" 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-blue hover:bg-co-blue focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-100 focus:ring-co-blue">Modifier</button></a>
|
||||
</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">
|
||||
@@ -54,6 +54,12 @@
|
||||
<dd class="mt-1 text-sm text-gray-900">{{.ViewState.vehicle.Data.licence_plate}}</dd>
|
||||
</div>
|
||||
{{end}}
|
||||
{{if .ViewState.vehicle.Data.kilometers}}
|
||||
<div class="sm:col-span-1">
|
||||
<dt class="text-sm font-medium text-gray-500">Kilométrage</dt>
|
||||
<dd class="mt-1 text-sm text-gray-900">{{.ViewState.vehicle.Data.kilometers}} km</dd>
|
||||
</div>
|
||||
{{end}}
|
||||
{{if .ViewState.vehicle.Data.address}}
|
||||
<div class="sm:col-span-1">
|
||||
<dt class="text-sm font-medium text-gray-500">Lieu</dt>
|
||||
@@ -63,7 +69,7 @@
|
||||
{{if .ViewState.vehicle.Data.informations}}
|
||||
<div class="sm:col-span-2">
|
||||
<dt class="text-sm font-medium text-gray-500">Informations pratiques pour le bénéficiaire</dt>
|
||||
<dd class="mt-1 text-sm text-gray-900">{{.ViewState.vehicle.Data.informations}}</dd>
|
||||
<dd class="mt-1 text-sm text-gray-900">{{unescapeHTML .ViewState.vehicle.Data.informations}}</dd>
|
||||
</div>
|
||||
{{end}}
|
||||
|
||||
@@ -234,4 +240,4 @@
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
{{end}}
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
fields: {
|
||||
licence_plate: '{{ .ViewState.vehicle.Data.licence_plate }}',
|
||||
name: '{{ .ViewState.vehicle.Data.name }}',
|
||||
kilometers: '{{ .ViewState.vehicle.Data.kilometers }}',
|
||||
informations: '{{ .ViewState.vahicle.Data.informations}}',
|
||||
},
|
||||
rules: {
|
||||
licence_plate: ['required', 'regexMatch:^[A-Z]{1,2}-[0-9]{1,3}-[A-Z]{1,2}$'],
|
||||
@@ -22,6 +24,15 @@
|
||||
}
|
||||
},
|
||||
isFormValid: true,
|
||||
init() {
|
||||
let quill = new Quill(this.$refs.quill, { theme: 'snow', modules: { toolbar: [[{ 'header': [1, 2, 3, 4, 5, 6, false] }], ['bold', 'italic', 'underline'], ['link', 'image']] } })
|
||||
|
||||
quill.root.innerHTML = this.fields.informations
|
||||
|
||||
quill.on('text-change', () => {
|
||||
this.fields.informations = quill.root.innerHTML
|
||||
})
|
||||
},
|
||||
validate() {
|
||||
this.formValidation = Iodine.assert(this.fields, this.rules)
|
||||
},
|
||||
@@ -35,7 +46,12 @@
|
||||
event.preventDefault()
|
||||
}
|
||||
return this.formValidation.valid
|
||||
},
|
||||
|
||||
displayAutomatic(type) {
|
||||
return type == 'Voiture'
|
||||
}
|
||||
|
||||
}">
|
||||
<form class="space-y-6" method="POST" @submit="submit">
|
||||
<div class="bg-white shadow px-4 py-5 sm:rounded-lg sm:p-6">
|
||||
@@ -55,7 +71,30 @@
|
||||
:class="formValidation.fields.name.valid == false ? 'border-co-red border-2' : 'border-gray-300'">
|
||||
</div>
|
||||
<div class="col-span-3">
|
||||
{{template "vehicle_type_select" .}}
|
||||
<div class="col-span-3">
|
||||
<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">
|
||||
<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">
|
||||
</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">
|
||||
<label for="licence_plate"
|
||||
@@ -66,6 +105,15 @@
|
||||
@blur="fields.licence_plate = fields.licence_plate.toUpperCase(); validateField('licence_plate')"
|
||||
:class="formValidation.fields.licence_plate.valid == false ? 'border-co-red border-2' : 'border-gray-300'">
|
||||
</div>
|
||||
<!--<div class="col-span-3">
|
||||
<label for="kilometers"
|
||||
class="block text-sm font-medium text-gray-700">Kilométrage</label>
|
||||
<input type="text" name="kilometers" id="kilometers" placeholder="1200 km"
|
||||
class="mt-1 focus:ring-co-blue focus:border-co-blue block w-full shadow-sm sm:text-sm rounded-2xl"
|
||||
x-model="fields.kilometers"
|
||||
@blur="fields.kilometers; validateField('kilometers')"
|
||||
:class="formValidation.fields.kilometers.valid == false ? 'border-co-red border-2' : 'border-gray-300'">
|
||||
</div>-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -83,8 +131,8 @@
|
||||
<div class="mt-5">
|
||||
<label for="informations" class="block text-sm font-medium text-gray-700">Informations pratiques pour le bénéficiaire</label>
|
||||
<div class="mt-1">
|
||||
<textarea rows="4" name="informations" id="informations"
|
||||
class="shadow-sm focus:ring-co-blue focus:border-co-blue block w-full sm:text-sm border-gray-300 rounded-2xl"></textarea>
|
||||
<div x-ref="quill" class="shadow-sm focus:ring-co-blue focus:border-co-blue block w-full sm:text-sm border-gray-300 rounded-b-2xl"></div>
|
||||
<input type="hidden" name="informations" x-model="fields.informations" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -103,4 +151,4 @@
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
{{end}}
|
||||
{{end}}
|
||||
|
||||
Reference in New Issue
Block a user