Adding a new selector for `family` to create pages and using it to list VM sizes specific to each family. The visibility of Burstable family, or any other in the future that requires slics support, is guarded by the project feature flag. Also updated the logic in generate_vm_options to fully use what is set in Options::VmSize and Options::PostgresSize structures. This should make it easier to add more Vm sizes in the future.
44 lines
2.3 KiB
Plaintext
44 lines
2.3 KiB
Plaintext
<%
|
|
@page_title, logo = if @flavor == PostgresResource::Flavor::PARADEDB
|
|
["Create ParadeDB PostgreSQL Database", "logo-paradedb.png"]
|
|
elsif @flavor == PostgresResource::Flavor::LANTERN
|
|
["Create Lantern PostgreSQL Database", "logo-lantern.png"]
|
|
else
|
|
["Create PostgreSQL Database", nil]
|
|
end
|
|
%>
|
|
|
|
<%== render("components/billing_warning") %>
|
|
|
|
<%== part(
|
|
"components/page_header",
|
|
breadcrumbs: [
|
|
%w[Projects /project],
|
|
[@project_data[:name], @project_data[:path]],
|
|
["PostgreSQL Databases", "#{@project_data[:path]}/postgres"],
|
|
%w[Create #]
|
|
],
|
|
right_items: [logo ? "<img src=\"/#{logo}\" class=\"h-6 object-contain\"/>" : nil]
|
|
) %>
|
|
|
|
<%
|
|
form_elements = [
|
|
{name: "flavor", type: "hidden", value: @flavor},
|
|
{name: "name", type: "text", label: "Name", required: "required", placeholder: "Enter name", opening_tag: "<div class='sm:col-span-3'>"},
|
|
{name: "location", type: "radio_small_cards", label: "Location", required: "required", content_generator: ContentGenerator::Postgres.method(:location)},
|
|
{name: "family", type: "radio_small_cards", label: "Server family", required: "required", content_generator: ContentGenerator::Postgres.method(:family)},
|
|
{name: "size", type: "radio_small_cards", label: "Server size", required: "required", content_generator: ContentGenerator::Postgres.method(:size)},
|
|
{name: "storage_size", type: "radio_small_cards", label: "Storage size", required: "required", content_generator: ContentGenerator::Postgres.method(:storage_size)},
|
|
{name: "version", type: "radio_small_cards", label: "Version", required: "required", content_generator: ContentGenerator::Postgres.method(:version)},
|
|
{name: "ha_type", type: "radio_small_cards", label: "High Availability", required: "required", content_generator: ContentGenerator::Postgres.method(:ha_type)},
|
|
]
|
|
|
|
if [PostgresResource::Flavor::PARADEDB, PostgresResource::Flavor::LANTERN].include?(@flavor)
|
|
form_elements << {name: "partnership_notice", type: "partnership_notice", label: "Partnership Notice", required: "required", content_generator: ContentGenerator::Postgres.method(:partnership_notice)}
|
|
end
|
|
|
|
action = "#{@project_data[:path]}/postgres"
|
|
%>
|
|
|
|
<%== part("components/form/resource_creation_form", action:, form_elements:, option_tree: @option_tree, option_parents: @option_parents) %>
|