Simple Fix Popup
There is a popup that tells the user simple ways to fix things and also increments a counter if it worked
This commit is contained in:
@@ -170,10 +170,25 @@ pub fn submit_ticket_component() -> Html {
|
||||
let valid_rooms: HashSet<i16> = VALID_ROOMS.iter().copied().collect();
|
||||
|
||||
{
|
||||
let message = "Bevor sie zum Support weitergeleitet werden prüfen sie ob: \r\n - Ob das Problem durch Neustarten gelößt wird \r\n - Ob sie die richtigen Anmeldedaten genutzt habem \r\n - Alle notwendigen Kabel eingesteckt sind".to_string();
|
||||
let message = "Bevor sie zum Support weitergeleitet werden prüfen sie ob:
|
||||
- Ob das Problem durch Neustarten gelößt wird
|
||||
- Ob sie die richtigen Anmeldedaten genutzt habem
|
||||
- Alle notwendigen Kabel eingesteckt sind
|
||||
|
||||
Wenn es funktioniert hat klicken sie bitte \"Abbrechen\""
|
||||
.to_string();
|
||||
use_effect(move || {
|
||||
if let Some(win) = web_sys::window() {
|
||||
let _ = win.alert_with_message(&message);
|
||||
let _ = if win.confirm_with_message(&message).unwrap() {
|
||||
} else {
|
||||
spawn_local(async move {
|
||||
let _ = Request::post("/api/count")
|
||||
.credentials(web_sys::RequestCredentials::Include)
|
||||
.send()
|
||||
.await;
|
||||
});
|
||||
let _ = win.location().set_href("/");
|
||||
};
|
||||
}
|
||||
|| ()
|
||||
});
|
||||
|
||||
@@ -17,6 +17,11 @@ use crate::pages::ticket::{ActiveUser, Ticket};
|
||||
/// # Fields
|
||||
/// - `date`: The creation date and time of the ticket in UTC.
|
||||
/// - `room`: The room number associated with the ticket.
|
||||
#[derive(Deserialize)]
|
||||
struct CountResponse {
|
||||
value: i64,
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize, Clone, PartialEq)]
|
||||
struct TicketPartial {
|
||||
date: DateTime<Utc>,
|
||||
@@ -186,6 +191,7 @@ pub fn diagnostics_component() -> Html {
|
||||
html! {
|
||||
<div>
|
||||
<TicketCount/>
|
||||
<EasyFixCount/>
|
||||
<SubmitStats/>
|
||||
</div>
|
||||
}
|
||||
@@ -575,3 +581,45 @@ fn user_total_component(props: &UserTotalProps) -> Html {
|
||||
</div>
|
||||
}
|
||||
}
|
||||
|
||||
#[component(EasyFixCount)]
|
||||
fn easy_fix_component() -> Html {
|
||||
let count = use_state(|| 0);
|
||||
let error = use_state(|| None::<String>);
|
||||
|
||||
{
|
||||
let count = count.clone();
|
||||
let error = error.clone();
|
||||
|
||||
use_effect_with((), move |_| {
|
||||
spawn_local(async move {
|
||||
match Request::get("/api/count").send().await {
|
||||
Ok(resp) if resp.status() == 200 => match resp.json::<CountResponse>().await {
|
||||
Ok(r) => count.set(r.value),
|
||||
Err(e) => error.set(Some(format!("parse error: {}", e))),
|
||||
},
|
||||
Ok(resp) => error.set(Some(
|
||||
resp.text()
|
||||
.await
|
||||
.unwrap_or_else(|_| format!("status {}", resp.status())),
|
||||
)),
|
||||
Err(e) => error.set(Some(format!("Network error: {}", e))),
|
||||
}
|
||||
});
|
||||
|| ()
|
||||
});
|
||||
}
|
||||
html! {
|
||||
<div>
|
||||
<h2>{ "Probleme ohne Ticket gelößt" }</h2>
|
||||
<h4>{ *count }</h4>
|
||||
{
|
||||
if let Some(e) = &*error {
|
||||
html!{ <p style="color: red;">{ e.clone() }</p> }
|
||||
} else {
|
||||
html!{}
|
||||
}
|
||||
}
|
||||
</div>
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user