mirror of
https://github.com/we-promise/sure.git
synced 2026-05-24 04:54:56 +00:00
fix(review): add type: :submit to DS::Button submitters inside forms
CI test_system on #1840 surfaced 6 failures (confirm-dialog close,
property create/edit, transaction filter apply) caused by the same
gap that db563f3d started addressing: the default-type-button policy
on DS::Button means every \`render DS::Button.new(...)\` inside a
\`<form>\` (or \`styled_form_with\`) that relies on the HTML default to
submit is now an inert \`type="button"\`.
Audited every \`render DS::Button.new(\` callsite repo-wide for the
combination (no \`type:\`, no \`href:\`, inside a form context) and
pinned \`type: :submit\` explicitly on the 12 forms that need it:
- layouts/shared/_confirm_dialog.html.erb: Confirm button inside the
global \`<form method=\"dialog\">\` — fixes
test_should_allow_revoking_API_key_with_confirmation.
- properties/{new,edit,balances}.html.erb: Save/Next submitter inside
\`styled_form_with\` — fixes test_can_create_property_account,
test_can_persist_property_subtype.
- transactions/searches/_menu.html.erb: Apply inside the filter form —
fixes test_can_filter_uncategorized_transactions,
test_all_filters_work_and_empty_state_shows_if_no_match,
test_can_open_filters_and_apply_one_or_more.
- transactions/bulk_updates/new.html.erb: Save in bulk-edit drawer.
- account_sharings/show.html.erb: Save in account-sharing form.
- category/deletions/new.html.erb, tag/deletions/new.html.erb:
destructive + safe submit buttons in deletion dialog forms.
- family_merchants/merge.html.erb: Submit in merge form.
- subscriptions/upgrade.html.erb: contribute_and_support_sure submit.
- rules/_category_rule_cta.html.erb: Dismiss inside the
rule_prompts_disabled form.
Cancel/close DS::Button instances inside these same forms intentionally
keep the \`type=button\` default since they drive JS-only actions
(\`DS--dialog#close\`, \`DS--menu#close\`).
This commit is contained in:
@@ -83,7 +83,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex justify-end">
|
||||
<%= render DS::Button.new(text: t(".save"), class: "md:w-auto w-full justify-center") %>
|
||||
<%= render DS::Button.new(text: t(".save"), type: :submit, class: "md:w-auto w-full justify-center") %>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
<%= render DS::Button.new(
|
||||
variant: "destructive",
|
||||
type: :submit,
|
||||
text: t(".delete_and_leave_uncategorized", category_name: @category.name),
|
||||
full_width: true,
|
||||
data: { deletion_target: "destructiveSubmitButton" }
|
||||
@@ -23,6 +24,7 @@
|
||||
|
||||
<%= render DS::Button.new(
|
||||
text: t(".delete_and_recategorize", category_name: @category.name),
|
||||
type: :submit,
|
||||
data: { deletion_target: "safeSubmitButton" },
|
||||
hidden: true,
|
||||
full_width: true
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
|
||||
<%= render DS::Button.new(
|
||||
text: t(".submit"),
|
||||
type: :submit,
|
||||
full_width: true
|
||||
) %>
|
||||
<% end %>
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
<%= render DS::Button.new(
|
||||
text: t(".confirm"),
|
||||
variant: variant,
|
||||
type: :submit,
|
||||
autofocus: true,
|
||||
full_width: true,
|
||||
value: "confirm",
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
<%= render DS::Button.new(
|
||||
text: @account.active? ? t(".save") : t(".next"),
|
||||
variant: "primary",
|
||||
type: :submit,
|
||||
) %>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
<%= render DS::Button.new(
|
||||
text: @account.active? ? "Save" : "Next",
|
||||
variant: "primary",
|
||||
type: :submit,
|
||||
) %>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
<%= render DS::Button.new(
|
||||
text: t(".next"),
|
||||
variant: "primary",
|
||||
type: :submit,
|
||||
) %>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<%= f.hidden_field :rule_prompt_dismissed_at, value: Time.current %>
|
||||
|
||||
<%= tag.div class:"flex gap-2 justify-end" do %>
|
||||
<%= render DS::Button.new(text: "Dismiss", variant: "secondary") %>
|
||||
<%= render DS::Button.new(text: "Dismiss", variant: "secondary", type: :submit) %>
|
||||
<% rule_href = new_rule_path(resource_type: "transaction", action_type: "set_transaction_category", action_value: cta[:category_id], name: cta[:merchant_name]) %>
|
||||
<%= render DS::Link.new(text: "Create rule", variant: "primary", href: rule_href, frame: :modal) %>
|
||||
<% end %>
|
||||
|
||||
@@ -48,6 +48,7 @@
|
||||
<%= render DS::Button.new(
|
||||
text: t("subscriptions.upgrade.contribute_and_support_sure"),
|
||||
variant: "primary",
|
||||
type: :submit,
|
||||
full_width: true
|
||||
) %>
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
<%= render DS::Button.new(
|
||||
variant: "destructive",
|
||||
type: :submit,
|
||||
text: t(".delete_and_leave_uncategorized", tag_name: @tag.name),
|
||||
full_width: true,
|
||||
data: { deletion_target: "destructiveSubmitButton" }
|
||||
@@ -23,6 +24,7 @@
|
||||
|
||||
<%= render DS::Button.new(
|
||||
text: t(".delete_and_reassign"),
|
||||
type: :submit,
|
||||
data: { deletion_target: "safeSubmitButton" },
|
||||
hidden: true,
|
||||
full_width: true
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
<div class="flex justify-end gap-2 mt-auto">
|
||||
<%= render DS::Button.new(text: t(".cancel"), variant: "ghost", data: { action: "click->DS--dialog#close" }) %>
|
||||
<%= render DS::Button.new(text: t(".save"), data: { bulk_select_scope_param: "bulk_update", action: "bulk-select#submitBulkRequest" }) %>
|
||||
<%= render DS::Button.new(text: t(".save"), type: :submit, data: { bulk_select_scope_param: "bulk_update", action: "bulk-select#submitBulkRequest" }) %>
|
||||
</div>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
|
||||
<div>
|
||||
<%= render DS::Button.new(text: t(".cancel"), type: "button", variant: "ghost", data: { action: "DS--menu#close" }) %>
|
||||
<%= render DS::Button.new(text: t(".apply")) %>
|
||||
<%= render DS::Button.new(text: t(".apply"), type: :submit) %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user