mirror of
https://github.com/rjNemo/rentease.git
synced 2026-06-10 12:46:53 +00:00
102 lines
2.2 KiB
Text
102 lines
2.2 KiB
Text
package view
|
|
|
|
type RequestBookingViewModel struct {
|
|
Item string
|
|
From string
|
|
To string
|
|
Name string
|
|
PhoneNumber string
|
|
Email string
|
|
Errors []string
|
|
}
|
|
|
|
func (rbvm RequestBookingViewModel) invalidTimeRange() bool {
|
|
for _, e := range rbvm.Errors {
|
|
if e == "invalid_time_range" {
|
|
return true
|
|
}
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (rbvm RequestBookingViewModel) missingCommunicationMethod() bool {
|
|
for _, e := range rbvm.Errors {
|
|
if e == "missing_communication_method" {
|
|
return true
|
|
}
|
|
}
|
|
return false
|
|
}
|
|
|
|
templ RequestBookingForm(rbvm *RequestBookingViewModel) {
|
|
<form id="booking-request-form" hx-post="/request-booking">
|
|
<fieldset class="grid">
|
|
<label for="item">
|
|
Logement
|
|
<select name="item" id="item" required>
|
|
for _,i := range items {
|
|
<option value={ i }>{ i }</option>
|
|
}
|
|
</select>
|
|
</label>
|
|
<label for="from">
|
|
Du
|
|
<input type="date" id="from" name="from" value={ rbvm.From } required/>
|
|
</label>
|
|
<label for="to">
|
|
Au
|
|
<input
|
|
type="date"
|
|
id="to"
|
|
name="to"
|
|
value={ rbvm.To }
|
|
required
|
|
if rbvm.invalidTimeRange() {
|
|
aria-invalid="true"
|
|
}
|
|
/>
|
|
if rbvm.invalidTimeRange() {
|
|
<small>La date de depart doit etre apres celle d'arrivee</small>
|
|
}
|
|
</label>
|
|
</fieldset>
|
|
<fieldset class="grid">
|
|
<label for="name">
|
|
Nom *
|
|
<input type="text" id="name" name="name" value={ rbvm.Name } required/>
|
|
</label>
|
|
<label for="phone">
|
|
Telephone
|
|
<input
|
|
type="tel"
|
|
id="phone"
|
|
name="phone"
|
|
value={ rbvm.PhoneNumber }
|
|
if rbvm.missingCommunicationMethod() {
|
|
aria-invalid="true"
|
|
}
|
|
/>
|
|
if rbvm.missingCommunicationMethod() {
|
|
<small>Veuillez renseigner votre numéro de télephone ou votre adresse email</small>
|
|
}
|
|
</label>
|
|
<label for="email">
|
|
Email
|
|
<input
|
|
type="email"
|
|
id="email"
|
|
name="email"
|
|
value={ rbvm.Email }
|
|
if rbvm.missingCommunicationMethod() {
|
|
aria-invalid="true"
|
|
}
|
|
/>
|
|
</label>
|
|
</fieldset>
|
|
<label for="message">
|
|
Message
|
|
<textarea name="message" id="message"></textarea>
|
|
</label>
|
|
<button type="submit">Book</button>
|
|
</form>
|
|
}
|