|
|
@ -3,6 +3,7 @@ use crate::backend::data::{ResProperty, SlotType};
|
|
|
|
use crate::backend::property::{CreateProperty, EditProperty};
|
|
|
|
use crate::backend::property::{CreateProperty, EditProperty};
|
|
|
|
use crate::components::data_form::DataForm;
|
|
|
|
use crate::components::data_form::DataForm;
|
|
|
|
use crate::components::modal_box::DialogOpener;
|
|
|
|
use crate::components::modal_box::DialogOpener;
|
|
|
|
|
|
|
|
use crate::locales::trl;
|
|
|
|
|
|
|
|
|
|
|
|
#[component]
|
|
|
|
#[component]
|
|
|
|
fn form_inner(property: ReadSignal<ResProperty>) -> impl IntoView {
|
|
|
|
fn form_inner(property: ReadSignal<ResProperty>) -> impl IntoView {
|
|
|
@ -11,12 +12,12 @@ fn form_inner(property: ReadSignal<ResProperty>) -> impl IntoView {
|
|
|
|
<input type="hidden" prop:value={move || property.get().id()} name="property[id]"/>
|
|
|
|
<input type="hidden" prop:value={move || property.get().id()} name="property[id]"/>
|
|
|
|
<div class="row">
|
|
|
|
<div class="row">
|
|
|
|
<div class="col mb-3">
|
|
|
|
<div class="col mb-3">
|
|
|
|
<label for="name" class="form-label">"Name"</label>
|
|
|
|
<label for="name" class="form-label">{trl("Name")}</label>
|
|
|
|
<input
|
|
|
|
<input
|
|
|
|
type="text"
|
|
|
|
type="text"
|
|
|
|
id="name"
|
|
|
|
id="name"
|
|
|
|
class="form-control"
|
|
|
|
class="form-control"
|
|
|
|
placeholder="Enter name"
|
|
|
|
placeholder={trl("Enter name")}
|
|
|
|
prop:value={move || property.get().name}
|
|
|
|
prop:value={move || property.get().name}
|
|
|
|
name="property[name]"
|
|
|
|
name="property[name]"
|
|
|
|
/>
|
|
|
|
/>
|
|
|
@ -24,12 +25,12 @@ fn form_inner(property: ReadSignal<ResProperty>) -> impl IntoView {
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="row">
|
|
|
|
<div class="row">
|
|
|
|
<div class="col mb-3">
|
|
|
|
<div class="col mb-3">
|
|
|
|
<label for="description" class="form-label">"Description"</label>
|
|
|
|
<label for="description" class="form-label">{trl("Description")}</label>
|
|
|
|
<input
|
|
|
|
<input
|
|
|
|
type="text"
|
|
|
|
type="text"
|
|
|
|
id="name"
|
|
|
|
id="name"
|
|
|
|
class="form-control"
|
|
|
|
class="form-control"
|
|
|
|
placeholder="Enter description"
|
|
|
|
placeholder={trl("Enter description")}
|
|
|
|
prop:value={move || property.get().description}
|
|
|
|
prop:value={move || property.get().description}
|
|
|
|
name="property[description]"
|
|
|
|
name="property[description]"
|
|
|
|
/>
|
|
|
|
/>
|
|
|
@ -37,7 +38,7 @@ fn form_inner(property: ReadSignal<ResProperty>) -> impl IntoView {
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="row">
|
|
|
|
<div class="row">
|
|
|
|
<div class="col mb-3">
|
|
|
|
<div class="col mb-3">
|
|
|
|
<label for="price" class="form-label">"Price"</label>
|
|
|
|
<label for="price" class="form-label">{trl("Price")}</label>
|
|
|
|
<input
|
|
|
|
<input
|
|
|
|
type="text"
|
|
|
|
type="text"
|
|
|
|
id="name"
|
|
|
|
id="name"
|
|
|
@ -50,13 +51,13 @@ fn form_inner(property: ReadSignal<ResProperty>) -> impl IntoView {
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="row">
|
|
|
|
<div class="row">
|
|
|
|
<div class="col mb-3">
|
|
|
|
<div class="col mb-3">
|
|
|
|
<label for="slot" class="form-label">{move || format!("Time slot {:?}", property.get().slot)}</label>
|
|
|
|
<label for="slot" class="form-label">{trl("Time slot")}</label>
|
|
|
|
<select id="slot" name="property[slot]" class="form-select">
|
|
|
|
<select id="slot" name="property[slot]" class="form-select">
|
|
|
|
<option prop:value={move || format!("{:?}", property.get().slot)}>{move || format!("{:?}", property.get().slot)}</option>
|
|
|
|
<option prop:value={move || format!("{:?}", property.get().slot)}>{trl(&property.get().slot.to_string())}</option>
|
|
|
|
<option value="Quarter" selected=move || property.get().slot == SlotType::Quarter>"Quarter an hour"</option>
|
|
|
|
<option value="Quarter" selected=move || property.get().slot == SlotType::Quarter>{trl("Quarter an hour")}</option>
|
|
|
|
<option value="Half" selected=move || property.get().slot == SlotType::Half>"Half an hour"</option>
|
|
|
|
<option value="Half" selected=move || property.get().slot == SlotType::Half>{trl("Half an hour")}</option>
|
|
|
|
<option value="Hour" selected=move || property.get().slot == SlotType::Hour>"Hour"</option>
|
|
|
|
<option value="Hour" selected=move || property.get().slot == SlotType::Hour>{trl("Hour")}</option>
|
|
|
|
<option value="Day" selected=move || property.get().slot == SlotType::Day>"Day"</option>
|
|
|
|
<option value="Day" selected=move || property.get().slot == SlotType::Day>{trl("Day")}</option>
|
|
|
|
</select>
|
|
|
|
</select>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
@ -74,7 +75,7 @@ fn form_inner(property: ReadSignal<ResProperty>) -> impl IntoView {
|
|
|
|
on:change=move |ev| active_str.set(if event_target_checked(&ev)
|
|
|
|
on:change=move |ev| active_str.set(if event_target_checked(&ev)
|
|
|
|
{ "true".to_string() } else { "false".to_string() })
|
|
|
|
{ "true".to_string() } else { "false".to_string() })
|
|
|
|
/>
|
|
|
|
/>
|
|
|
|
<label for="active" class="form-label">"Active"</label>
|
|
|
|
<label for="active" class="form-label">{trl("Active")}</label>
|
|
|
|
<input type="hidden" prop:value=active_str name="property[active]"/>
|
|
|
|
<input type="hidden" prop:value=active_str name="property[active]"/>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|