1bc75f5d40
Fix column header lookup fragility, add fetch error handling, add tests
...
- Replace position-based column header lookup (ths[3]/ths[4]) with
data-column attribute selectors — immune to column reordering
- Add .catch() error handlers to editMeasurementWide and setDefaultUnit
fetch calls so failures surface in the console instead of silently
disappearing
- Add MeasurementsController integration tests covering index auth,
create with taken_at, empty-readout create, destroy, cross-user
destroy isolation, and update
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-04 10:24:26 +00:00
bfd427c9b2
Add wide view and inline editing to Measurements page
...
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 >
2026-04-03 22:03:10 +00:00
3702e24153
Add taken_at to readouts and default unit to quantities
...
Readouts gain a taken_at timestamp (distinct from created_at) that records
when the measurement was actually taken. Measurements are now ordered by
taken_at descending.
Quantities gain an optional default_unit association. When set, the unit
is pre-selected in the measurement form. A "Set as default" button on the
unit selector lets users update the default directly from the form.
- Migrations: add taken_at (datetime) to readouts,
add default_unit_id (fk → units) to quantities
- Readout: expose taken_at in ATTRIBUTES permit-list
- Quantity: add default_unit belongs_to, expose in ATTRIBUTES
- QuantitiesController: load @user_units for form actions
- Quantities views: add Default unit column and select to form
- Readouts form: pre-select default unit; add "Set as default" button
(readoutUnitChanged / setDefaultUnit wired up in a later commit)
- Measurements form: default taken_at input to current time
- ApplicationHelper: propagate :form option to html_options in builder
- config/environments/test.rb: allow Capybara's dynamic host
- Tests: system tests for default-unit UI on the Quantities page
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-03 22:01:52 +00:00
d893e59293
Clean up and improve items-table styling
...
Closes #9
2026-03-25 18:42:24 +01:00
33004f62bd
Improve Measurement form layout and styling
2026-03-22 01:06:38 +01:00
687e6fcdff
Drop Readout.value decimal type in favor of float
2026-03-19 20:30:16 +01:00
a9091d76a8
Merge styles of <a>.button/<button>/<input type="submit"> into .button
...
Remove flash button
Fix some multi-selector specificity differences
2026-03-04 17:13:11 +01:00
83b064ef3c
Merge recover password/resend confirmation forms into sign in/register
...
Closes #65 , #66
2026-03-01 20:04:42 +01:00
84945fa4b4
Simplify and improve labeled form
2026-02-22 00:53:18 +01:00
675eb0aad8
Optimize styles; clean up <fieldset>
2026-02-03 15:33:37 +01:00
bd1a664caa
Measurement form based on select-styled <details>
2026-01-31 17:22:09 +01:00
0fb7f9946a
Create alternative, spreadsheet-like style
2025-07-29 15:43:49 +02:00
e12369cea1
Measurements#new form improvements
2025-05-13 22:30:58 +02:00
ef3484dfdf
Update Measurements#new form pathnames on actions
2025-05-07 00:24:05 +02:00
9dbcfddf98
Merge corrections provided by Bambuch, cont.
2025-04-26 19:12:56 +02:00
1cddc794d2
Cleanup Quantity :pathname related code
2025-03-23 13:11:14 +01:00
8401424efa
Partial refresh of Measurements#new form
2025-02-18 18:27:47 +01:00
c48bf290fd
Implement Measurements#new
2025-02-18 11:25:32 +01:00
9d60eee16b
Add Measurements tab and #new form
2025-01-25 16:34:04 +01:00
dada29d5e6
Fix table row indentation for hierarchy
...
Closes #57
2025-01-16 21:19:01 +01:00
7962cdf169
Simplify object and association checks
...
* check for <object> instead of <object>.nil?
* check for <association>_id? instead of <association>.nil? (avoids
record loading)
2025-01-16 20:42:18 +01:00
201359de3e
Allow to reparent Quantity everywhere
...
Closes #61
2025-01-14 21:13:35 +01:00
8524beefdc
Allow to drag all Quantities
2025-01-14 15:03:25 +01:00
644d1f4b9a
Add Quantity #reparent action
2025-01-14 15:02:38 +01:00
2c0d5af022
Merge Unit and Quantity drag&drop js
...
Closes #55
2025-01-13 02:23:51 +01:00
421515e5ce
ancestors() sets depth for self, instead of returning new instance
2025-01-12 18:09:34 +01:00
d5e7ccacf5
Add Quantity #edit and #update
2025-01-11 22:51:49 +01:00
57f10c94a4
Add Quantity #new, #create, #destroy actions
2025-01-11 17:01:34 +01:00
23e2f6a062
Move :base_id hidden field to form tag
2025-01-08 14:36:32 +01:00
aa862f0e90
Quantities index WIP
2025-01-05 20:47:49 +01:00
d86e38a3ec
Hide input[type=number] spin buttons and fix text alignment
2025-01-04 16:54:27 +01:00
ed0234f158
Allow only positive Unit multiplier
...
Closes #51
2025-01-04 15:32:07 +01:00
af152c5e8b
Disable links instead of hiding
...
Closes #49
2025-01-03 14:41:18 +01:00
42aaf39f14
Remove unused turbo_stream index
2025-01-02 19:21:01 +01:00
5dd3303019
Disable Turbo in User forms/links
2025-01-02 19:20:08 +01:00
afc4f5cee0
Hide page only during tests
2025-01-02 19:04:14 +01:00
8b1a186467
Disable Turbo prefetch
2025-01-02 03:01:30 +01:00
a6e3833fd0
Extend custom FormBuilder to DRY in forms
...
Closes #8
Closes #45
2025-01-01 16:26:58 +01:00
c8c8d8cd70
Hide actions for restricted users
...
Closes #43
2024-12-30 00:44:21 +01:00
8552571526
Disable Unit destuction for base units with subunits
...
Closes #40
2024-12-28 23:57:47 +01:00
a9307ad455
Form uses button instead of input to display SVG
2024-12-23 00:47:44 +01:00
0659c1e1c1
Don't render index on Unit actions
2024-12-22 01:31:14 +01:00
d726e92445
Allow opening multiple new/edit forms
...
Closes #30
2024-12-21 17:52:45 +01:00
e5cf3dc0ae
Avoid refreshing whole index on create
2024-12-19 03:46:29 +01:00
ba8ac5d2fa
Remove unnecessary link_id
2024-12-17 02:44:52 +01:00
f0dab7a5f9
Fix Units new/edit display on validation errors
...
Add test_new_and_edit_on_validation_error
Closes #41
2024-12-17 01:53:25 +01:00
d5719b1e9d
Fill multiplier field, confirm Add button disabled
2024-12-12 00:44:26 +01:00
0b201606c2
Replace #columns_hash with #type_for_attribute for limits
2024-12-08 13:47:30 +01:00
15a5515c99
Extend NumericalityValidator to check precision and scale
...
Use new checks on Unit.multiplier
Closes #28
2024-12-07 20:41:19 +01:00
7e5f873cde
Change helper into BigDecimal method
2024-12-06 15:24:25 +01:00