diff --git a/src/pages/all_reservations.rs b/src/pages/all_reservations.rs index ba685ad..fa131d0 100644 --- a/src/pages/all_reservations.rs +++ b/src/pages/all_reservations.rs @@ -1,18 +1,25 @@ use chrono::{Datelike, Local}; use leptos::*; -use crate::backend::data::{ApiResponse, ResSumWithItems}; +use crate::backend::data::{ApiResponse, ReservationState, ResSumWithItems}; use crate::backend::reservation::{month_chart, reservations_in_month, year_chart, years}; use crate::components::modal_box::{DialogOpener, ModalBody, ModalDialog}; +use crate::components::user_menu::MenuOpener; use crate::locales::{loc_date, show_day, trl}; +use crate::pages::new_reservations::CancelDialog; #[component] fn booking_detail(reservation: ReadSignal, opener: DialogOpener) -> impl IntoView { + let menu = MenuOpener::new(); + let cancel_opener = DialogOpener::new(); + let menu_visible = create_rw_signal(false); view! { +

{move || { let detail = reservation.get(); + menu_visible.set(detail.summary.state != ReservationState::Canceled); view! { {show_day(&detail.summary.date.weekday())}" - "{loc_date(detail.summary.date)}
, opener: DialogOpener } } - {trl("Price: ")}{detail.summary.price.to_string()}
+ {trl("Price: ")}{detail.summary.price.to_string()} } }}

+ + + + + + +
+ +
+
} @@ -46,10 +76,10 @@ pub fn bookings() -> impl IntoView { let year = create_rw_signal(Local::now().year()); let month = create_rw_signal(Local::now().month()); let chart = create_blocking_resource(move || year.get(),move |y| month_chart(y)); - let reservations = create_blocking_resource(move || (year.get(), month.get()), move |p| reservations_in_month(p.0, p.1)); + let detail_dlg = DialogOpener::new(); + let reservations = create_blocking_resource(move || (year.get(), month.get(), detail_dlg.visible()), move |p| reservations_in_month(p.0, p.1)); let all_months: Vec = vec![1,2,3,4,5,6,7,8,9,10,11,12]; let res_detail = create_rw_signal(ResSumWithItems::default()); - let detail_dlg = DialogOpener::new(); view! {

{trl("Booking overview")}

diff --git a/src/pages/new_reservations.rs b/src/pages/new_reservations.rs index 14a1404..f14c3fa 100644 --- a/src/pages/new_reservations.rs +++ b/src/pages/new_reservations.rs @@ -26,7 +26,7 @@ fn approve_dialog(reservation: ReadSignal, opener: DialogOpener } #[component] -fn cancel_dialog(reservation: ReadSignal, opener: DialogOpener) -> impl IntoView { +pub fn cancel_dialog(reservation: ReadSignal, opener: DialogOpener) -> impl IntoView { let cancel = create_server_action::(); view! { diff --git a/src/pages/today_reservations.rs b/src/pages/today_reservations.rs index 3f810b6..1cdfca8 100644 --- a/src/pages/today_reservations.rs +++ b/src/pages/today_reservations.rs @@ -1,15 +1,20 @@ use leptos::*; -use crate::backend::data::ApiResponse; +use crate::backend::data::{ApiResponse, ResSumWithItems}; use crate::backend::reservation::get_next_reservations; use crate::components::modal_box::DialogOpener; use crate::locales::{loc_date, show_day, trl}; use chrono::Datelike; +use crate::components::user_menu::MenuOpener; +use crate::pages::new_reservations::CancelDialog; #[component] pub fn next_reservations(app_opener: DialogOpener, cancel_opener: DialogOpener) -> impl IntoView { let res = create_blocking_resource( move || app_opener.visible() || cancel_opener.visible(), move |_| get_next_reservations()); + let menu = MenuOpener::new(); + let reservation = create_rw_signal(ResSumWithItems::default()); view! { +
" "{trl("Next approved bookings")}
@@ -27,6 +32,7 @@ pub fn next_reservations(app_opener: DialogOpener, cancel_opener: DialogOpener) let:data> {move || { let data = data.clone(); + let cancel_data = data.clone(); view! { {show_day(&data.summary.date.weekday())}" - "{loc_date(data.summary.date)}
+ + + + + +
+ +

} }}