Files
ubicloud/views/layouts/sidebar/content.erb
Jeremy Evans a108a9f08e Replace remaining use of @project_data with @project_permissions
In these cases @project_data was just used as a flag for whether
we are in the project-specific area of the routing tree. You cannot
use @project, as there are routes in other areas that set @project.
2025-08-08 11:41:02 -07:00

160 lines
6.2 KiB
Plaintext

<div class="flex grow flex-col gap-y-5 overflow-y-auto bg-orange-600 px-6">
<div class="flex h-16 shrink-0 items-center">
<a href="<%= @project_permissions ? "#{@project.path}/dashboard" : "/project" %>">
<img class="h-6 w-auto" src="/logo-white.png" alt="Ubicloud">
</a>
</div>
<nav class="flex flex-1 flex-col">
<ul role="list" class="flex flex-1 flex-col gap-y-7">
<li>
<ul role="list" class="-mx-2 space-y-1">
<% if @project_permissions %>
<%== part(
"layouts/sidebar/item",
name: "Dashboard",
url: "#{@project.path}/dashboard",
is_active: request.path.start_with?("#{@project.path}/dashboard"),
icon: "hero-home"
) %>
<%== part(
"layouts/sidebar/item",
name: "Compute",
url: "#{@project.path}/vm",
is_active: request.path.start_with?("#{@project.path}/vm"),
icon: "hero-server-stack"
) %>
<%== part(
"layouts/sidebar/item",
name: "Networking",
url: "#{@project.path}/private-subnet",
is_active:
request.path.start_with?("#{@project.path}/private-subnet") ||
request.path.start_with?("#{@project.path}/firewall") ||
request.path.start_with?("#{@project.path}/load-balancer"),
icon: "hero-globe-alt"
) %>
<%== part(
"layouts/sidebar/item",
name: "PostgreSQL",
url: "#{@project.path}/postgres",
is_active: request.path.start_with?("#{@project.path}/postgres"),
icon: "hero-circle-stack"
) %>
<%== part(
"layouts/sidebar/item",
name: "AI Inference",
url: "#{@project.path}/inference-endpoint",
is_active: request.path.start_with?("#{@project.path}/inference"),
icon: "tabler-robot"
) %>
<%== part(
"layouts/sidebar/item",
name: "Kubernetes",
url: "#{@project.path}/kubernetes-cluster",
is_active: request.path.start_with?("#{@project.path}/kubernetes-cluster"),
icon: "kubernetes"
) %>
<% else %>
<%== part(
"layouts/sidebar/item",
name: "My Account",
url: "/account",
is_active: request.path.start_with?("/account"),
icon: "hero-user"
) %>
<%== part(
"layouts/sidebar/item",
name: "Projects",
url: "/project",
is_active: request.path.start_with?("/project"),
icon: "hero-folder-open"
) %>
<% end %>
</ul>
</li>
<% if @project_permissions && has_project_permission(["Project:user", "Project:billing", "Project:view", "Project:viewaccess", "Project:token"]) %>
<li>
<div class="text-xs font-semibold leading-6 text-orange-200">Project Details</div>
<ul role="list" class="-mx-2 mt-2 space-y-1">
<%== if has_project_permission("Project:user")
users_url = "#{@project.path}/user"
users_label = "Users"
elsif has_project_permission("Project:viewaccess")
users_url = "#{@project.path}/user/access-control"
users_label = "Access Control"
end
if users_url
part(
"layouts/sidebar/item",
name: users_label,
url: users_url,
is_active: request.path.start_with?("#{@project.path}/user"),
icon: "hero-users",
)
end %>
<%== part(
"layouts/sidebar/item",
name: "Tokens",
url: "#{@project.path}/token",
is_active: request.path.start_with?("#{@project.path}/token"),
icon: "hero-key",
has_permission: has_project_permission("Project:token")
) %>
<% if Config.stripe_secret_key %>
<%== part(
"layouts/sidebar/item",
name: "Billing",
url: "#{@project.path}/billing",
is_active: request.path.start_with?("#{@project.path}/billing"),
icon: "hero-banknotes",
html_id: "billing-icon",
has_permission: has_project_permission("Project:billing")
) %>
<% end %>
<%== part(
"layouts/sidebar/item",
name: "Settings",
url: @project.path,
is_active: request.path == @project.path,
icon: "hero-cog-6-tooth",
has_permission: has_project_permission("Project:view")
) %>
<% if @project.get_ff_private_locations %>
<%== part(
"layouts/sidebar/item",
name: "AWS Regions",
url: "#{@project.path}/private-location",
is_active: request.path.start_with?("#{@project.path}/private-location"),
icon: "hero-map-pin",
has_permission: true
) %>
<% end %>
</ul>
</li>
<% end %>
<% if @project_permissions && has_project_permission("Project:github") %>
<li>
<div class="text-xs font-semibold leading-6 text-orange-200">Integrations</div>
<ul role="list" class="-mx-2 mt-2 space-y-1">
<% if Config.github_app_name %>
<%== part(
"layouts/sidebar/item",
name: "GitHub Runners",
url: "#{@project.path}/github",
is_active: request.path.start_with?("#{@project.path}/github"),
icon: "github",
has_permission: has_project_permission("Project:github")
) %>
<% end %>
</ul>
</li>
<% end %>
<li class="-mx-6 mt-auto">
<%== render("layouts/sidebar/project_switcher") %>
</li>
</ul>
</nav>
</div>