Added settings for company info. Added code for entity validation.

This commit is contained in:
2023-09-08 11:53:08 +02:00
parent 44b8b21426
commit 9dd0993204
18 changed files with 488 additions and 20 deletions
+2
View File
@@ -1,2 +1,4 @@
pub mod modal_box;
pub mod server_err;
pub mod validation_err;
+16
View File
@@ -75,3 +75,19 @@ pub fn ModalFooter(cx: Scope, children: Children) -> impl IntoView {
</div>
}
}
#[component]
pub fn DlgNotLoaded(cx: Scope, opener: DialogOpener, title: &'static str) -> impl IntoView {
view! {cx,
<ModalDialog opener=opener title=title>
<ModalBody>
<div>{trl(cx, "Entity not loaded")}</div>
</ModalBody>
<ModalFooter>
<button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal" on:click=move |_| opener.hide()>
{trl(cx, "Close")}
</button>
</ModalFooter>
</ModalDialog>
}
}
+27
View File
@@ -0,0 +1,27 @@
use crate::components::modal_box::DialogOpener;
use leptos::*;
#[component]
pub fn ServerErr(
cx: Scope,
result: RwSignal<Option<Result<(), ServerFnError>>>,
opener: DialogOpener,
) -> impl IntoView {
view! {cx, {move || {
if let Some(val) = result.get() {
if let Err(e) = val {
view! {cx,
<div class="alert alert-danger">
"Server error: " {e.to_string()}
</div>
}
} else {
opener.hide();
view! {cx, <div></div>}
}
} else {
view! {cx, <div></div>}
}
}}
}
}
+37
View File
@@ -0,0 +1,37 @@
use leptos::*;
use crate::locales::trl;
use crate::validator::Validator;
#[component]
pub fn ValidationErr(
cx: Scope,
validator: Validator,
) -> impl IntoView {
view! {cx, {move || {
if !validator.is_valid() {
if let Some(msgs) = validator.messages() {
let out_msgs = msgs.into_iter().map(move |e| {
view! {cx,
<div class="alert alert-danger">
{trl(cx, &e)}
</div>
}
}).collect_view(cx);
view! {cx,
<div>
{out_msgs}
</div>
}
} else {
view! {cx,
<div class="alert alert-danger">
"Validation error"
</div>
}
}
} else {
view! {cx, <div></div>}
}
}}
}
}