forked from fixin.me/fixin.me
Add cancel() method to form_controller that handles all close cases: - tabular forms (<tr>): removes inner form, re-enables link, shows hidden row - measurements create form: removes self, enables trigger link, shows no-items Data attributes already present on controller elements (data-form, data-link, data-hidden-row) drive the behaviour. Two extra attributes on the create form (data-cancel-enable, data-cancel-show) cover the non-tabular case. Delete now-unused _form_close and _edit_form_close partial templates. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
26 lines
944 B
Plaintext
26 lines
944 B
Plaintext
<%= tabular_fields_for @quantity, form: form_tag do |form| %>
|
|
<%- tag.tr id: row, class: "form",
|
|
data: {controller: 'form', action: 'keydown->form#processKey',
|
|
link: link, form: form_tag, hidden_row: hidden_row} do %>
|
|
|
|
<td style="--depth:<%= @quantity.depth %>">
|
|
<%= form.text_field :name, required: true, autofocus: true, size: 20 %>
|
|
</td>
|
|
<td>
|
|
<%= form.text_area :description, cols: 30, rows: 1, escape: false %>
|
|
</td>
|
|
<td>
|
|
<%= form.collection_select :default_unit_id, @user_units, :id,
|
|
->(u){ sanitize(' ' * (u.base_id? ? 1 : 0) + u.symbol) },
|
|
{include_blank: true}, onchange: "this.dataset.changed = ''" %>
|
|
</td>
|
|
|
|
<td class="flex">
|
|
<%= form.button %>
|
|
<%= image_link_to t(:cancel), "close-outline", quantities_path, class: 'dangerous',
|
|
name: :cancel, data: {action: 'click->form#cancel'} %>
|
|
</td>
|
|
<td></td>
|
|
<% end %>
|
|
<% end %>
|