diff --git a/frontend/src/auth.rs b/frontend/src/auth.rs index 77fc817..8ff46a1 100644 --- a/frontend/src/auth.rs +++ b/frontend/src/auth.rs @@ -109,7 +109,7 @@ pub fn protected_route(props: &ProtectedRouteProps) -> Html { AuthState { is_authenticated: None, .. - } => html! {
{ "Loading..." }
}, + } => html! {
{ "Wird geladen..." }
}, AuthState { is_authenticated: Some(false), .. @@ -126,7 +126,7 @@ pub fn protected_route(props: &ProtectedRouteProps) -> Html { Some(false) => { html! { to={crate::Route::PermissionDenied}/> } } - None => html! {
{ "Checking permissions..." }
}, + None => html! {
{ "Überprüfe Berechtigungen..." }
}, } } else { props.children.clone().into() diff --git a/frontend/src/lib.rs b/frontend/src/lib.rs index e609e9a..f1d663a 100644 --- a/frontend/src/lib.rs +++ b/frontend/src/lib.rs @@ -193,10 +193,10 @@ fn admin_check_wrapper(props: &AdminCheckWrapperProps) -> Html { } match *admin_exists { - None => html! {
{ "Loading..." }
}, + None => html! {
{ "Wird geladen..." }
}, Some(false) => { navigator.push(&Route::Setup); - html! {
{ "Redirecting to setup..." }
} + html! {
{ "Wird weitergeleitet zur Einrichtung..." }
} } Some(true) => props.children.clone().into(), } diff --git a/frontend/src/pages/basic_pages.rs b/frontend/src/pages/basic_pages.rs index e16c55f..42a286a 100644 --- a/frontend/src/pages/basic_pages.rs +++ b/frontend/src/pages/basic_pages.rs @@ -82,7 +82,7 @@ pub fn home_component() -> Html {
- +

{ &*name }

} @@ -101,7 +101,7 @@ pub fn home_component() -> Html { /// ``` #[component(NotFound)] pub fn not_found_component() -> Html { - let message = "404 Not found"; + let message = "404 Nicht gefunden"; html! {

{&message}

diff --git a/frontend/src/pages/setup.rs b/frontend/src/pages/setup.rs index d63a294..9aa86ab 100644 --- a/frontend/src/pages/setup.rs +++ b/frontend/src/pages/setup.rs @@ -103,7 +103,7 @@ pub fn initial_admin_setup() -> Html { } if !*admin_check_done { - return html! {
{ "Checking..." }
}; + return html! {
{ "Wird überprüft..." }
}; } let onsubmit = { @@ -121,17 +121,17 @@ pub fn initial_admin_setup() -> Html { e.prevent_default(); if (*pwd).is_empty() || (*pwd_confirm).is_empty() { - error.set("Password fields cannot be empty".to_string()); + error.set("Passwortfelder dürfen nicht leer sein".to_string()); return; } if *pwd != *pwd_confirm { - error.set("Passwords do not match".to_string()); + error.set("Passwörter stimmen nicht überein".to_string()); return; } if (*username).is_empty() { - error.set("Username cannot be empty".to_string()); + error.set("Benutzername darf nicht leer sein".to_string()); return; } @@ -172,10 +172,10 @@ pub fn initial_admin_setup() -> Html { navigator.push(&crate::Route::Login); } Ok(r) => { - let text = r.text().await.unwrap_or_else(|_| "unknown".into()); - error.set(format!("HTTP {}: {}", r.status(), text)); + let text = r.text().await.unwrap_or_else(|_| "Unbekannt".into()); + error.set(text); } - Err(err) => error.set(format!("Network error: {}", err)), + Err(err) => error.set(format!("Netzwerkfehler: {}", err)), } }); }) @@ -184,16 +184,16 @@ pub fn initial_admin_setup() -> Html { html! {
-

{ "Initial Admin Setup" }

-

{ "Create your first administrator account" }

+

{ "Admin-Einrichtung" }

+

{ "Erstellen Sie Ihr erstes Administratorkonto" }

-
-
-
-
-
if !error.is_empty() { @@ -272,7 +272,7 @@ pub fn initial_admin_setup() -> Html { } if *success { -

{ "Admin account created successfully! Redirecting to login..." }

+

{ "Administratorkonto erfolgreich erstellt! Wird weitergeleitet zum Login..." }

}
diff --git a/frontend/src/pages/sidebar.rs b/frontend/src/pages/sidebar.rs index 6ca4578..cc53b72 100644 --- a/frontend/src/pages/sidebar.rs +++ b/frontend/src/pages/sidebar.rs @@ -234,10 +234,10 @@ pub fn ticket_menu() -> Html { html! { } @@ -289,7 +289,7 @@ pub fn users_menu() -> Html { onclick={on_toggle} aria-expanded={open.to_string()} > - { "Users" } + { "Benutzer" } { if open { " ▾" } else { " ▸" } } @@ -298,10 +298,10 @@ pub fn users_menu() -> Html { html! { } @@ -398,7 +398,7 @@ pub fn sidebar(props: &SidebarComponentProps) -> Html { }; match *is_admin { - None => html! { }, + None => html! { }, // Non-admin: render a condensed user sidebar (no diagnostics, limited links) Some(false) => { @@ -423,6 +423,7 @@ pub fn sidebar(props: &SidebarComponentProps) -> Html {
  • + + to={crate::Route::AllTickets}>{ "Tickets ansehen" }> @@ -448,9 +451,12 @@ pub fn ticket_by_id_component(props: &TicketProps) -> Html { .expect("Failed to construct request"); match request.send().await { - Ok(response) if response.status() == 200 => error.set(Some("Success".into())), - Ok(response) => error.set(Some(format!("Error: {}", response.status()))), - Err(err) => error.set(Some(format!("Network error: {}", err))), + Ok(response) if response.status() == 200 => error.set(Some("Erfolg".into())), + Ok(response) => { + let text = response.text().await.unwrap_or_else(|_| "Unbekannt".into()); + error.set(Some(text)); + }, + Err(err) => error.set(Some(format!("Netzwerkfehler: {}", err))), } }); }) @@ -488,14 +494,13 @@ pub fn ticket_by_id_component(props: &TicketProps) -> Html { match request.send().await { Ok(resp) if resp.status() == 200 || resp.status() == 204 => { - // remove local state or navigate away - ticket_state.set(None); // clears the shown item + ticket_state.set(None); } Ok(resp) => { - let txt = resp.text().await.unwrap_or_else(|_| "Unknown".into()); - delete_error.set(Some(format!("HTTP {}: {}", resp.status(), txt))); + let txt = resp.text().await.unwrap_or_else(|_| "Unbekannt".into()); + delete_error.set(Some(txt)); } - Err(err) => delete_error.set(Some(format!("Network error: {}", err))), + Err(err) => delete_error.set(Some(format!("Netzwerkfehler: {}", err))), } deleting.set(false); }); @@ -503,9 +508,9 @@ pub fn ticket_by_id_component(props: &TicketProps) -> Html { }; if *loading { - html! {

    { "Loading" }

    } + html! {

    { "Wird geladen" }

    } } else if let Some(e) = &*error { - html! {

    { format!("Error: {}", e) }

    } + html! {

    { format!("Fehler: {}", e) }

    } } else if let Some(t) = &*ticket { html! {
    @@ -549,7 +554,7 @@ pub fn ticket_by_id_component(props: &TicketProps) -> Html {
    } } else { - html! {

    { "No ticket found." }

    } + html! {

    { "Kein Ticket gefunden." }

    } } } @@ -659,9 +664,9 @@ pub fn all_tickets_component() -> Html { } if *loading { - html! {

    { "Loading" }

    } + html! {

    { "Wird geladen" }

    } } else if let Some(e) = &*error { - html! {

    { format!("Error: {}", e) }

    } + html! {

    { format!("Fehler: {}", e) }

    } } else { html! {
      @@ -742,17 +747,17 @@ pub fn archived_tickets_component() -> Html { Ok(response) if response.status() == 200 => { match response.json::>().await { Ok(t) => tickets.set(t), - Err(e) => error.set(Some(format!("parse error: {}", e))), + Err(e) => error.set(Some(format!("Parsefehler: {}", e))), } } Ok(response) => { if let Ok(text) = response.text().await { error.set(Some(text)); } else { - error.set(Some(format!("status {}", response.status()))); + error.set(Some(format!("Status {}", response.status()))); } } - Err(err) => error.set(Some(format!("Network error: {}", err))), + Err(err) => error.set(Some(format!("Netzwerkfehler: {}", err))), } loading.set(false); }); @@ -792,9 +797,9 @@ pub fn archived_tickets_component() -> Html { } if *loading { - html! {

      { "Loading" }

      } + html! {

      { "Wird geladen" }

      } } else if let Some(e) = &*error { - html! {

      { format!("Error: {}", e) }

      } + html! {

      { format!("Fehler: {}", e) }

      } } else { html! {
        diff --git a/frontend/src/pages/user.rs b/frontend/src/pages/user.rs index 93130fe..87b7f08 100644 --- a/frontend/src/pages/user.rs +++ b/frontend/src/pages/user.rs @@ -181,9 +181,12 @@ pub fn register_component() -> Html { .expect("Error building request"); match request.send().await { - Ok(response) if response.status() == 200 => status.set(Some("Success".into())), - Ok(response) => status.set(Some(format!("Error: {}", response.status()))), - Err(err) => status.set(Some(format!("Network error: {}", err))), + Ok(response) if response.status() == 200 => status.set(Some("Erfolg".into())), + Ok(response) => { + let text = response.text().await.unwrap_or_else(|_| "Unbekannt".into()); + status.set(Some(text)); + }, + Err(err) => status.set(Some(format!("Netzwerkfehler: {}", err))), } }); }) @@ -326,10 +329,10 @@ pub fn login_component() -> Html { navigator.push(&crate::Route::Home); } Ok(r) => { - let text = r.text().await.unwrap_or_else(|_| "unknown".into()); - error.set(format!("HTTP {}: {}", r.status(), text)); + let text = r.text().await.unwrap_or_else(|_| "Unbekannt".into()); + error.set(text); } - Err(err) => error.set(format!("Network error: {}", err)), + Err(err) => error.set(format!("Netzwerkfehler: {}", err)), } }); }) @@ -340,7 +343,7 @@ pub fn login_component() -> Html {

        { "Anmeldung" }

  • @@ -428,9 +431,9 @@ pub fn all_users_component() -> Html { } if *loading { - html! {

    { "Loading" }

    } + html! {

    { "Wird geladen" }

    } } else if let Some(e) = &*error { - html! {

    { format!("Error: {}", e) }

    } + html! {

    { format!("Fehler: {}", e) }

    } } else { html! {