servers on backend
This commit is contained in:
Generated
+1
@@ -3643,6 +3643,7 @@ dependencies = [
|
|||||||
"dioxus",
|
"dioxus",
|
||||||
"js-sys",
|
"js-sys",
|
||||||
"lucide-dioxus",
|
"lucide-dioxus",
|
||||||
|
"serde",
|
||||||
"wasm-bindgen",
|
"wasm-bindgen",
|
||||||
"web-sys",
|
"web-sys",
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ js-sys = "0.3.77"
|
|||||||
lucide-dioxus = { version = "2.15.0", features = ["all-icons"] }
|
lucide-dioxus = { version = "2.15.0", features = ["all-icons"] }
|
||||||
wasm-bindgen = "0.2.100"
|
wasm-bindgen = "0.2.100"
|
||||||
web-sys = "0.3.77"
|
web-sys = "0.3.77"
|
||||||
|
serde = { version = "1.0.61", features = ["derive"]}
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = ["web"]
|
default = ["web"]
|
||||||
|
|||||||
@@ -1,6 +1,50 @@
|
|||||||
use dioxus::prelude::*;
|
use dioxus::prelude::*;
|
||||||
|
|
||||||
|
use crate::components::server::Server;
|
||||||
|
|
||||||
#[server]
|
#[server]
|
||||||
pub async fn log_in(username: String, password: String) -> Result<String, ServerFnError> {
|
pub async fn log_in(username: String, password: String) -> Result<String, ServerFnError> {
|
||||||
Ok(format!("{username}@{password}"))
|
Ok(format!("{username}@{password}"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[server]
|
||||||
|
pub async fn get_servers() -> Result<Vec<Server>, ServerFnError> {
|
||||||
|
Ok(vec![
|
||||||
|
Server {
|
||||||
|
name: "Main Server".to_string(),
|
||||||
|
status: crate::components::server::Status::Online,
|
||||||
|
ip: "10.0.0.5".to_string(),
|
||||||
|
cpu: 95,
|
||||||
|
memory: 60,
|
||||||
|
storage: 43,
|
||||||
|
network: 88,
|
||||||
|
},
|
||||||
|
Server {
|
||||||
|
name: "Cache Node".to_string(),
|
||||||
|
status: crate::components::server::Status::Warning,
|
||||||
|
ip: "192.168.1.12".to_string(),
|
||||||
|
cpu: 47,
|
||||||
|
memory: 72,
|
||||||
|
storage: 81,
|
||||||
|
network: 34,
|
||||||
|
},
|
||||||
|
Server {
|
||||||
|
name: "Database".to_string(),
|
||||||
|
status: crate::components::server::Status::Offline,
|
||||||
|
ip: "172.16.254.3".to_string(),
|
||||||
|
cpu: 12,
|
||||||
|
memory: 90,
|
||||||
|
storage: 22,
|
||||||
|
network: 10,
|
||||||
|
},
|
||||||
|
Server {
|
||||||
|
name: "Backup Node".to_string(),
|
||||||
|
status: crate::components::server::Status::Maintenance,
|
||||||
|
ip: "192.168.100.22".to_string(),
|
||||||
|
cpu: 83,
|
||||||
|
memory: 41,
|
||||||
|
storage: 96,
|
||||||
|
network: 70,
|
||||||
|
},
|
||||||
|
])
|
||||||
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ use dioxus::prelude::*;
|
|||||||
|
|
||||||
const SERVER_CSS: Asset = asset!("/assets/styles/server.css");
|
const SERVER_CSS: Asset = asset!("/assets/styles/server.css");
|
||||||
|
|
||||||
#[derive(Debug, Clone, PartialEq, Eq)]
|
#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
|
||||||
pub enum Status {
|
pub enum Status {
|
||||||
Online,
|
Online,
|
||||||
Offline,
|
Offline,
|
||||||
@@ -11,7 +11,7 @@ pub enum Status {
|
|||||||
Maintenance,
|
Maintenance,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, PartialEq, Eq)]
|
#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
|
||||||
pub struct Server {
|
pub struct Server {
|
||||||
pub name: String,
|
pub name: String,
|
||||||
pub status: Status,
|
pub status: Status,
|
||||||
|
|||||||
+16
-43
@@ -1,9 +1,8 @@
|
|||||||
use dioxus::prelude::*;
|
use dioxus::prelude::*;
|
||||||
|
|
||||||
use crate::components::{
|
use crate::{
|
||||||
server::{Server, ServerComponent},
|
backend,
|
||||||
sidebar::SideBar,
|
components::{server::ServerComponent, sidebar::SideBar, LineChart, ProgressBar},
|
||||||
LineChart, ProgressBar,
|
|
||||||
};
|
};
|
||||||
use lucide_dioxus;
|
use lucide_dioxus;
|
||||||
|
|
||||||
@@ -11,6 +10,14 @@ const DASHBOARD_CSS: Asset = asset!("/assets/styles/dashboard.css");
|
|||||||
|
|
||||||
#[component]
|
#[component]
|
||||||
pub fn Dashboard() -> Element {
|
pub fn Dashboard() -> Element {
|
||||||
|
let servers = use_resource(move || async move {
|
||||||
|
if let Ok(v) = backend::get_servers().await {
|
||||||
|
v
|
||||||
|
} else {
|
||||||
|
Vec::new()
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
rsx! {
|
rsx! {
|
||||||
document::Link { rel: "stylesheet", href: DASHBOARD_CSS }
|
document::Link { rel: "stylesheet", href: DASHBOARD_CSS }
|
||||||
|
|
||||||
@@ -104,45 +111,11 @@ pub fn Dashboard() -> Element {
|
|||||||
}
|
}
|
||||||
|
|
||||||
div { class: "server-container",
|
div { class: "server-container",
|
||||||
ServerComponent { server: Server {
|
if let Some(ss) = servers.read().clone() {
|
||||||
name: "Main Server".to_string(),
|
for s in ss {
|
||||||
status: crate::components::server::Status::Online,
|
ServerComponent { server: s }
|
||||||
ip: "10.0.0.5".to_string(),
|
}
|
||||||
cpu: 95,
|
}
|
||||||
memory: 60,
|
|
||||||
storage: 43,
|
|
||||||
network: 88,
|
|
||||||
} }
|
|
||||||
|
|
||||||
ServerComponent { server: Server {
|
|
||||||
name: "Cache Node".to_string(),
|
|
||||||
status: crate::components::server::Status::Warning,
|
|
||||||
ip: "192.168.1.12".to_string(),
|
|
||||||
cpu: 47,
|
|
||||||
memory: 72,
|
|
||||||
storage: 81,
|
|
||||||
network: 34,
|
|
||||||
} }
|
|
||||||
|
|
||||||
ServerComponent { server: Server {
|
|
||||||
name: "Database".to_string(),
|
|
||||||
status: crate::components::server::Status::Offline,
|
|
||||||
ip: "172.16.254.3".to_string(),
|
|
||||||
cpu: 12,
|
|
||||||
memory: 90,
|
|
||||||
storage: 22,
|
|
||||||
network: 10,
|
|
||||||
} }
|
|
||||||
|
|
||||||
ServerComponent { server: Server {
|
|
||||||
name: "Backup Node".to_string(),
|
|
||||||
status: crate::components::server::Status::Maintenance,
|
|
||||||
ip: "192.168.100.22".to_string(),
|
|
||||||
cpu: 83,
|
|
||||||
memory: 41,
|
|
||||||
storage: 96,
|
|
||||||
network: 70,
|
|
||||||
} }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user