You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.7 KiB
Rust
73 lines
2.7 KiB
Rust
use chrono::Local;
|
|
use leptos::*;
|
|
use crate::backend::data::WeekHours;
|
|
use crate::backend::opening_hours::{DeleteClosingTime, UpdateClosingTime, UpdateHours};
|
|
use crate::components::data_form::{DataForm, QuestionDialog};
|
|
use crate::components::modal_box::DialogOpener;
|
|
use crate::locales::trl;
|
|
|
|
#[component]
|
|
pub fn EditHours(opener: DialogOpener, hours: ReadSignal<WeekHours>) -> impl IntoView {
|
|
let update_hours = create_server_action::<UpdateHours>();
|
|
|
|
view! {
|
|
<DataForm opener=opener action=update_hours title="Edit hours">
|
|
<input type="hidden" value={move || hours.get().day().to_string()} name="hours[day]"/>
|
|
<div class="row">
|
|
<div class="col mb-3">
|
|
<label for="hours" class="form-label">{trl("Hours")}</label>
|
|
<input
|
|
type="text"
|
|
id="hours"
|
|
class="form-control"
|
|
placeholder="12:00 - 15:00, 17:00 - 21:00"
|
|
prop:value={move || hours.get().hours().to_string()}
|
|
name="hours[hours]"
|
|
/>
|
|
</div>
|
|
</div>
|
|
</DataForm>
|
|
}
|
|
}
|
|
|
|
#[component]
|
|
pub fn closing_days(opener: DialogOpener) -> impl IntoView {
|
|
let update_days = create_server_action::<UpdateClosingTime>();
|
|
|
|
view! {
|
|
<DataForm opener=opener action=update_days title="Closing days">
|
|
<input type="hidden" value=0 name="time[id]"/>
|
|
<div class="row">
|
|
<div class="col mb-3">
|
|
<label for="from_day" class="form-label">{trl("From")}</label>
|
|
<input
|
|
type="date"
|
|
id="from_day"
|
|
class="form-control"
|
|
prop:value={move || Local::now().date_naive().format("%Y-%m-%d").to_string()}
|
|
name="time[from_date]"
|
|
/>
|
|
<label for="to_day" class="form-label">{trl("To")}</label>
|
|
<input
|
|
type="date"
|
|
id="to_day"
|
|
class="form-control"
|
|
prop:value={move || Local::now().date_naive().format("%Y-%m-%d").to_string()}
|
|
name="time[to_date]"
|
|
/>
|
|
</div>
|
|
</div>
|
|
</DataForm>
|
|
}
|
|
}
|
|
|
|
#[component]
|
|
pub fn del_closing_days(opener: DialogOpener) -> impl IntoView {
|
|
let delete = create_server_action::<DeleteClosingTime>();
|
|
|
|
view! {
|
|
<QuestionDialog opener=opener action=delete title="Delete closing days">
|
|
<div>{trl("Are you sure you want to delete closing days?")}</div>
|
|
</QuestionDialog>
|
|
}
|
|
} |