Server container
This commit is contained in:
@@ -153,9 +153,14 @@ pub fn RadialChart(percent: f64) -> Element {
|
||||
}
|
||||
|
||||
#[component]
|
||||
pub fn ProgressBar(percent: u8, id: Option<String>) -> Element {
|
||||
pub fn ProgressBar(percent: u8, class: Option<String>) -> Element {
|
||||
let class_attr = match class {
|
||||
Some(c) => format!("progress-bar {}", c),
|
||||
None => "progress-bar".to_string(),
|
||||
};
|
||||
|
||||
rsx! {
|
||||
span { class: "progress-bar", id: id,
|
||||
span { class: "{class_attr}",
|
||||
span { class: "progress", style: format!("width: {}%; background-color: currentColor;", percent.clamp(0, 100)) }
|
||||
}
|
||||
}
|
||||
|
||||
+58
-19
@@ -15,7 +15,7 @@ pub fn Dashboard() -> Element {
|
||||
|
||||
div { class: "dashboard-container",
|
||||
div { class: "summary-container",
|
||||
div { class: "summary-card", id: "online",
|
||||
div { class: "summary-card", class: "online",
|
||||
div {
|
||||
p { "Online Servers" }
|
||||
h3 { "3" }
|
||||
@@ -23,7 +23,7 @@ pub fn Dashboard() -> Element {
|
||||
lucide_dioxus::CircleCheckBig { size: 32, color: "currentColor" }
|
||||
}
|
||||
|
||||
div { class: "summary-card", id: "issues",
|
||||
div { class: "summary-card", class: "issues",
|
||||
div {
|
||||
p { "Issues" }
|
||||
h3 { "2" }
|
||||
@@ -31,7 +31,7 @@ pub fn Dashboard() -> Element {
|
||||
lucide_dioxus::TriangleAlert { size: 32, color: "currentColor" }
|
||||
}
|
||||
|
||||
div { class: "summary-card", id: "cpu",
|
||||
div { class: "summary-card", class: "cpu",
|
||||
div {
|
||||
p { "Avg CPU Usage" }
|
||||
h3 { "42%" }
|
||||
@@ -39,7 +39,7 @@ pub fn Dashboard() -> Element {
|
||||
lucide_dioxus::Cpu { size: 32, color: "currentColor" }
|
||||
}
|
||||
|
||||
div { class: "summary-card", id: "ram",
|
||||
div { class: "summary-card", class: "ram",
|
||||
div {
|
||||
p { "Avg Memory" }
|
||||
h3 { "42%" }
|
||||
@@ -59,13 +59,16 @@ pub fn Dashboard() -> Element {
|
||||
"System Overview"
|
||||
}
|
||||
div { p { "Average CPU" } p { "10%" } }
|
||||
ProgressBar { percent: 10, id: "cpu" }
|
||||
ProgressBar { percent: 10, class: "cpu" }
|
||||
|
||||
div { p { "Average Memory" } p { "24%" } }
|
||||
ProgressBar { percent: 10, id: "ram" }
|
||||
ProgressBar { percent: 10, class: "ram" }
|
||||
|
||||
div { p { "Average Storage" } p { "24%" } }
|
||||
ProgressBar { percent: 10, id: "issues" }
|
||||
ProgressBar { percent: 10, class: "storage" }
|
||||
|
||||
div { p { "Average Network" } p { "24%" } }
|
||||
ProgressBar { percent: 10, class: "network" }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,23 +78,59 @@ pub fn Dashboard() -> Element {
|
||||
input { placeholder: "Search servers by name, location, or IP..." }
|
||||
}
|
||||
button { "All (4)" }
|
||||
button { id: "online", "Online (3)" }
|
||||
button { id: "issues", "Warning (1)" }
|
||||
button { id: "ram", "Offline (1)" }
|
||||
button { id: "cpu", "Maintenance (1)" }
|
||||
button { class: "online", "Online (3)" }
|
||||
button { class: "issues", "Warning (1)" }
|
||||
button { class: "ram", "Offline (1)" }
|
||||
button { class: "cpu", "Maintenance (1)" }
|
||||
}
|
||||
|
||||
div { class: "server-container",
|
||||
div {
|
||||
h3 { "Web server 01" }
|
||||
}
|
||||
div { class: "server",
|
||||
div { class: "server-heading",
|
||||
div { class: "server-heading-inner",
|
||||
div { class: "server-icon",
|
||||
lucide_dioxus::Server { size: 20, color: "currentColor" }
|
||||
}
|
||||
div { class: "server-heading-info",
|
||||
h3 { "Web server 01" }
|
||||
div {
|
||||
div {
|
||||
lucide_dioxus::CircleCheckBig { size: 12, color: "currentColor" }
|
||||
p { "Online" }
|
||||
}
|
||||
p { "10.7.1.21" }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
div {
|
||||
h3 { "Web server 01" }
|
||||
}
|
||||
button { lucide_dioxus::EllipsisVertical { size: 16, color: "currentColor" } }
|
||||
}
|
||||
|
||||
div {
|
||||
h3 { "Web server 01" }
|
||||
div { class: "server-monitor",
|
||||
div { p {
|
||||
lucide_dioxus::Cpu { size: 16, color: "currentColor", class: "cpu" }
|
||||
"CPU"
|
||||
} p { "10%" } }
|
||||
ProgressBar { percent: 10, class: "low" }
|
||||
|
||||
div { p {
|
||||
lucide_dioxus::MemoryStick { size: 16, color: "currentColor", class: "ram" }
|
||||
"Memory"
|
||||
} p { "34%" } }
|
||||
ProgressBar { percent: 60, class: "medium" }
|
||||
|
||||
div { p {
|
||||
lucide_dioxus::HardDrive { size: 16, color: "currentColor", class: "storage" }
|
||||
"Storage"
|
||||
} p { "80%" } }
|
||||
ProgressBar { percent: 80, class: "high" }
|
||||
|
||||
div { p {
|
||||
lucide_dioxus::Wifi { size: 16, color: "currentColor", class: "network" }
|
||||
"Network"
|
||||
} p { "34%" } }
|
||||
ProgressBar { percent: 34, class: "low" }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user