forked from fixin.me/fixin.me
Add stimulus-rails gem and wire up 7 controllers: - measurements_view_controller: view toggle (compact/wide) via localStorage - measurements_controller: grouped rows MutationObserver - charts_controller: Plotly chart rendering - form_controller: keyboard shortcuts (Escape/Enter) and submit validation - details_controller: quantity picker state, focusout close, MutationObserver - readout_unit_controller: default unit button enable/disable + PATCH submission - drag_controller: drag-and-drop for quantity reparenting and unit rebasing Remove all inline onclick/onkeydown/ondrag*/onsubmit handlers from templates. Remove all window.* global exports from application.js. Remove bare <script> block from measurements/_form.html.erb. Remove turbo:load listeners for behavior now in controller connect(). application.js now only contains: Turbo Stream custom action definitions and the showPage visibility listener. Document Stimulus conventions in CLAUDE.md. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
35 lines
1.2 KiB
Plaintext
35 lines
1.2 KiB
Plaintext
<% form_tag = dom_id(@readout, :edit, :form) %>
|
|
<% row = dom_id(@readout, :edit) %>
|
|
<% hidden_row = dom_id(@readout) %>
|
|
|
|
<%= tabular_form_with model: @readout, url: measurement_path(@readout),
|
|
id: form_tag do |form| %>
|
|
<table class="items-table">
|
|
<tbody>
|
|
<%= tag.tr id: row, class: "form",
|
|
data: {controller: 'form', action: 'keydown->form#processKey',
|
|
form: form_tag, hidden_row: hidden_row} do %>
|
|
<td><%= @readout.quantity %></td>
|
|
<td class="ralign">
|
|
<%= form.number_field :value, required: true, autofocus: true %>
|
|
</td>
|
|
<td>
|
|
<%= form.collection_select :unit_id, @user_units, :id,
|
|
->(u){ sanitize(' ' * (u.base_id? ? 1 : 0) + u.symbol) },
|
|
{}, required: true %>
|
|
</td>
|
|
<td>
|
|
<%= form.datetime_field :taken_at %>
|
|
</td>
|
|
<td></td>
|
|
<td class="flex">
|
|
<%= form.button %>
|
|
<%= image_link_to t(:cancel), "close-outline", measurements_path,
|
|
class: 'dangerous', name: :cancel,
|
|
onclick: render_turbo_stream('edit_form_close', {row: row}) %>
|
|
</td>
|
|
<% end %>
|
|
</tbody>
|
|
</table>
|
|
<% end %>
|