forked from fixin.me/fixin.me
The Measurements page gains a compact/wide view toggle (persisted in localStorage). The wide view is a pivot table: rows = time points, columns = quantity names (alphabetical), cells = value + delete button. Clicking a value in either view opens an inline edit panel (Turbo Stream) without leaving the page. The panel shows the quantity name, value input, unit selector, taken_at picker, and Update/Cancel buttons. Changes: - MeasurementsController: add edit/update actions; order by taken_at desc - measurements/index: compact table + wide container, view-toggle buttons - measurements/_readout: data-* attributes for JS pivot builder; edit link - measurements/_edit_panel, _edit_form, _edit_form_close, edit.turbo_stream, update.turbo_stream: inline edit views - application.js: groupMeasurements, buildWideTable (alphabetical cols), getMeasurementsView / setMeasurementsView, editMeasurementWide, readoutUnitChanged, setDefaultUnit - application.css: compact/wide visibility rules, .wide-cell flex layout, button.link reset, .items-table .form td alignment - Pictograms: view-rows.svg, view-columns.svg (view-toggle icons) - Locale: view_compact/view_wide toggle labels, edit link, update.success - Tests: system tests for compact inline edit and wide view edit panel Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
19 lines
682 B
Plaintext
19 lines
682 B
Plaintext
<% ids = {row: dom_id(@readout, :edit),
|
|
hidden_row: dom_id(@readout),
|
|
link: nil,
|
|
form_tag: dom_id(@readout, :edit, :form)} %>
|
|
|
|
<% if params[:view] == 'wide' %>
|
|
<%= turbo_stream.update :measurement_edit_form, partial: 'edit_panel' %>
|
|
<%= turbo_stream.hide ids[:hidden_row] %>
|
|
<% else %>
|
|
<%= turbo_stream.append :measurement_edit_form do %>
|
|
<%- tabular_form_with model: @readout, url: measurement_path(@readout),
|
|
html: {id: ids[:form_tag]} do %>
|
|
<% end %>
|
|
<% end %>
|
|
<%= turbo_stream.hide ids[:hidden_row] %>
|
|
<%= turbo_stream.remove ids[:row] %>
|
|
<%= turbo_stream.after @readout, partial: 'edit_form', locals: ids -%>
|
|
<% end %>
|