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