Skip to content

Commit e95e7fc

Browse files
committed
Make sure dropdown works
1 parent af48386 commit e95e7fc

File tree

5 files changed

+46
-6
lines changed

5 files changed

+46
-6
lines changed

pgml-dashboard/src/components/dropdown/dropdown.scss

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,13 @@
2020
width: 100%;
2121
}
2222

23+
&.expandable {
24+
.dropdown-menu {
25+
width: auto;
26+
min-width: 100%;
27+
}
28+
}
29+
2330
.dropdown-item {
2431
overflow: hidden;
2532
text-overflow: ellipsis;

pgml-dashboard/src/components/dropdown/mod.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ pub struct Dropdown {
3333

3434
/// Where the dropdown menu should appear
3535
menu_position: String,
36+
expandable: bool,
3637
}
3738

3839
impl Dropdown {
@@ -91,6 +92,11 @@ impl Dropdown {
9192
self.offset_collapsed = offset.to_owned();
9293
self
9394
}
95+
96+
pub fn expandable(mut self) -> Self {
97+
self.expandable = true;
98+
self
99+
}
94100
}
95101

96102
component!(Dropdown);

pgml-dashboard/src/components/dropdown/template.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
<% use crate::components::dropdown::DropdownValue; %>
33

44
<!-- Dropdown component -->
5-
<div class="dropdown">
5+
<div class="dropdown <% if expandable { %>expandable<% } %>">
66
<% if let DropdownValue::Icon(icon) = value { %>
77
<a
8-
class="horizontal-hide topnav-controlls dropdown-toggle expanded"
8+
class="topnav-controlls dropdown-toggle"
99
role="button"
1010
data-bs-toggle="dropdown"
1111
data-bs-offset="<%= offset %>"
@@ -15,7 +15,7 @@
1515
</a>
1616
<% } else if let DropdownValue::Text(text) = value { %>
1717
<button
18-
class="horizontal-hide btn btn-dropdown dropdown-toggle expanded <% if collapsable { %> leftnav-collapse-affect <% } %>"
18+
class="horizontal-hide btn btn-dropdown dropdown-toggle <% if collapsable { %> leftnav-collapse-affect <% } %>"
1919
role="button"
2020
data-bs-toggle="dropdown"
2121
data-bs-offset="<%= offset %>"

pgml-dashboard/src/components/navbar_web_app/template.html

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,11 @@
5959

6060
<% if !account_management_nav.links.is_empty() { %>
6161
<li class="d-none d-lg-flex nav-item align-items-center">
62-
<%+ Dropdown::new(account_management_nav.links.clone())
63-
.icon(ProfileIcon::new().into()) %>
62+
<%+
63+
Dropdown::new(account_management_nav.links.clone())
64+
.icon(ProfileIcon::new().into())
65+
.expandable()
66+
%>
6467
</li>
6568
<li class="nav-item d-flex d-lg-none align-items-center">
6669
<a class="nav-link p-lg-0" data-bs-toggle="collapse" data-bs-target=".horizontal-collapse">Account Management</a>

pgml-dashboard/src/guards.rs

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,31 @@ impl Default for Cluster {
5959
.active(true),
6060
],
6161
},
62-
account_management_nav: StaticNav::default(),
62+
account_management_nav: StaticNav {
63+
links: vec![
64+
StaticNavLink::new("Notebooks".to_string(), "/dashboard".to_string()),
65+
StaticNavLink::new(
66+
"Projects".to_string(),
67+
"/dashboard?tab=Projects".to_string(),
68+
),
69+
StaticNavLink::new(
70+
"Models".to_string(),
71+
"/dashboard?tab=Models".to_string(),
72+
),
73+
StaticNavLink::new(
74+
"Snapshots".to_string(),
75+
"/dashboard?tab=Snapshots".to_string(),
76+
),
77+
StaticNavLink::new(
78+
"Upload data".to_string(),
79+
"/dashboard?tab=Upload_Data".to_string(),
80+
),
81+
StaticNavLink::new(
82+
"PostgresML.org".to_string(),
83+
"https://postgresml.org".to_string(),
84+
),
85+
],
86+
},
6387
upper_left_nav: StaticNav {
6488
links: vec![
6589
StaticNavLink::new(

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy