ubicloud/views/project/show.erb
Jeremy Evans 1b8f49d507 Handle csrf tags implicitly using form method in Clover
This switches Clover to use the form method for forms, which
automatically handles adding the appropriate csrf tag, so you
don't need to duplicate the path in a separate csrf_tag call.
The form method comes from the forme_route_csrf plugin, which
is what CloverAdmin already uses.

While here, change some rodauth forms to use *_path
instead of "/" + *_route. Also, change some
"#{@project.path}#{@pg.path}" to path(@pg).
2025-09-06 01:06:18 +09:00

88 lines
2.9 KiB
Text

<% @page_title = @project.name
@quotas = ["VmVCpu", "PostgresVCpu"].map {
{
resource_type: it,
current_resource_usage: @project.current_resource_usage(it),
quota: @project.effective_quota_value(it)
}
} %>
<%== part(
"components/page_header",
title: "Project Settings",
back: "/project",
breadcrumbs: [%w[Projects /project], [@project.name, @project.path], %w[Settings #]]
) %>
<div class="grid gap-6">
<!-- Detail Card -->
<% form(action: @project.path, method: :post) do %>
<%== part(
"components/kv_data_card",
data: [
["ID", @project.ubid],
(
if has_permission?("Project:edit", @project.ubid)
[
"Name",
part(
"components/form/text",
name: "name",
value: @project.name,
button_title: "Save",
attributes: {
required: true
}
),
{ escape: false }
]
else
["Name", @project.name]
end
)
]
) %>
<% end %>
<!-- Quota Card -->
<div class="overflow-hidden rounded-lg shadow ring-1 ring-black ring-opacity-5 bg-white divide-y divide-gray-200">
<div class="px-4 py-5 sm:p-6">
<h3 class="text-base font-semibold leading-6 text-gray-900">Quotas</h3>
<div class="mt-2 text-sm text-gray-500">
<p>If you want to increase your quota, please get in touch at
<a href="mailto:support@ubicloud.com" class="font-semibold leading-6 text-orange-500 hover:text-orange-700">support@ubicloud.com</a>.</p>
</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-6">
<% @quotas.each do |quota| %>
<div class="p-6">
<%== part(
"components/progress_bar",
title: quota[:resource_type],
numerator: quota[:current_resource_usage],
denominator: quota[:quota]
) %>
</div>
<% end %>
</div>
</div>
<!-- Delete Card -->
<% if has_permission?("Project:delete", @project.ubid) %>
<div class="overflow-hidden rounded-lg shadow ring-1 ring-black ring-opacity-5 bg-white divide-y divide-gray-200">
<div class="px-4 py-5 sm:p-6">
<div class="sm:flex sm:items-center sm:justify-between">
<div>
<h3 class="text-base font-semibold leading-6 text-gray-900">Delete project</h3>
<div class="mt-2 text-sm text-gray-500">
<p>This action will permanently delete this project. Deleted data cannot be recovered. Use it carefully.</p>
</div>
</div>
<div class="mt-5 sm:ml-6 sm:mt-0 sm:flex sm:flex-shrink-0 sm:items-center">
<%== part("components/delete_button", confirmation: @project.name, redirect: "/project") %>
</div>
</div>
</div>
</div>
<% end %>
</div>