We are adding a new tab under Project Details for listing private locations. We keep it behind a feature flag. The create view simply gets the AWS region, ubicloud region name, access and secret keys. We list the locations and give chance to customer to be able to update the name.
162 lines
6.4 KiB
Plaintext
162 lines
6.4 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_data ? "#{@project_data[: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_data %>
|
|
<%== part(
|
|
"layouts/sidebar/item",
|
|
name: "Dashboard",
|
|
url: "#{@project_data[:path]}/dashboard",
|
|
is_active: request.path.start_with?("#{@project_data[:path]}/dashboard"),
|
|
icon: "hero-home"
|
|
) %>
|
|
<%== part(
|
|
"layouts/sidebar/item",
|
|
name: "Compute",
|
|
url: "#{@project_data[:path]}/vm",
|
|
is_active: request.path.start_with?("#{@project_data[:path]}/vm"),
|
|
icon: "hero-server-stack"
|
|
) %>
|
|
<%== part(
|
|
"layouts/sidebar/item",
|
|
name: "Networking",
|
|
url: "#{@project_data[:path]}/private-subnet",
|
|
is_active:
|
|
request.path.start_with?("#{@project_data[:path]}/private-subnet") ||
|
|
request.path.start_with?("#{@project_data[:path]}/firewall") ||
|
|
request.path.start_with?("#{@project_data[:path]}/load-balancer"),
|
|
icon: "hero-globe-alt"
|
|
) %>
|
|
<%== part(
|
|
"layouts/sidebar/item",
|
|
name: "PostgreSQL",
|
|
url: "#{@project_data[:path]}/postgres",
|
|
is_active: request.path.start_with?("#{@project_data[:path]}/postgres"),
|
|
icon: "hero-circle-stack"
|
|
) %>
|
|
<%== part(
|
|
"layouts/sidebar/item",
|
|
name: "AI Inference",
|
|
url: "#{@project_data[:path]}/inference-endpoint",
|
|
is_active: request.path.start_with?("#{@project_data[:path]}/inference"),
|
|
icon: "tabler-robot"
|
|
) %>
|
|
<% if @project.get_ff_kubernetes %>
|
|
<%== part(
|
|
"layouts/sidebar/item",
|
|
name: "Kubernetes",
|
|
url: "#{@project_data[:path]}/kubernetes-cluster",
|
|
is_active: request.path.start_with?("#{@project_data[:path]}/kubernetes-cluster"),
|
|
icon: "kubernetes"
|
|
) %>
|
|
<% end %>
|
|
<% 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_data && 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_data[:path]}/user"
|
|
users_label = "Users"
|
|
elsif has_project_permission("Project:viewaccess")
|
|
users_url = "#{@project_data[: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_data[:path]}/user"),
|
|
icon: "hero-users",
|
|
)
|
|
end %>
|
|
<%== part(
|
|
"layouts/sidebar/item",
|
|
name: "Tokens",
|
|
url: "#{@project_data[:path]}/token",
|
|
is_active: request.path.start_with?("#{@project_data[: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_data[:path]}/billing",
|
|
is_active: request.path.start_with?("#{@project_data[: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_data[:path],
|
|
is_active: request.path == @project_data[: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_data[:path]}/private-location",
|
|
is_active: request.path.start_with?("#{@project_data[:path]}/private-location"),
|
|
icon: "hero-map-pin",
|
|
has_permission: true
|
|
) %>
|
|
<% end %>
|
|
</ul>
|
|
</li>
|
|
<% end %>
|
|
<% if @project_data && 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_data[:path]}/github",
|
|
is_active: request.path.start_with?("#{@project_data[: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>
|