481f509004
Merge feature/measurements-wide-view (fixes: data-column, fetch error handling, controller tests)
2026-04-04 10:24:53 +00:00
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
5051122bcd
Refactor charts: dedicated nav tab, JSON data transport, tests
...
Replace the toggle-view approach and hidden DOM data carrier with a
proper dedicated Charts page:
- Move Charts out of Measurements view toggles into its own nav tab
and route (GET /charts)
- ChartsController serializes readout data as JSON (ordered by
taken_at); the view embeds it in a <script type="application/json">
element instead of rendering a hidden copy of the measurements
partial just to ferry data attributes to JS
- buildCharts() reads from the JSON element directly — no DOM parsing,
no sorting in JS (server already orders the data)
- Turbo load handler detects the charts page via #charts-data presence
- Add controller tests (authentication, data shape, ordering,
data isolation between users) and system tests
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-04 09:55:31 +00:00
71c22f2280
Add Plotly line charts view to Measurements page
...
Users can now switch to a Charts view that renders a separate
time-series line chart for each tracked quantity, using Plotly.js
loaded via CDN. Charts are sorted chronologically and styled to
match the app palette. A dedicated toggle button and matching
CSS visibility rules mirror the existing Compact/Wide view pattern.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-03 22:36:24 +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
83b064ef3c
Merge recover password/resend confirmation forms into sign in/register
...
Closes #65 , #66
2026-03-01 20:04:42 +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
9dbcfddf98
Merge corrections provided by Bambuch, cont.
2025-04-26 19:12:56 +02:00
2c0d5af022
Merge Unit and Quantity drag&drop js
...
Closes #55
2025-01-13 02:23:51 +01:00
bd40727231
Focus forms properly on open and close
...
Closes #44
2024-12-28 15:16:37 +01:00
d726e92445
Allow opening multiple new/edit forms
...
Closes #30
2024-12-21 17:52:45 +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
10f866d40b
Remove unused code kept only as reference
2024-02-11 18:37:35 +01:00
1198add901
Rewrite stream rendering to avoid client-side expanding
...
* adding streams in client breaks things (e.g. autofocus)
* some tasks need to be performed in one stream action to avoid
flickering (e.g. table row substitution)
2024-02-11 18:31:06 +01:00
76aae56ed5
Allow stream action to expand into multiple actions
...
e.g. by including 'onclick()' event handler
2024-02-04 20:05:36 +01:00
a7f80a575c
Manage client-side js with turbo_stream actions
2024-01-22 02:14:01 +01:00
0e85a21d2c
Button disabling/enabling
...
Closes #10
2024-01-20 15:02:45 +01:00
9404ec8d17
Enable Drive to send TURBO_STREAM form POSTs
...
Disable Turbo caching for whole site
2024-01-06 03:39:52 +01:00
c96b646087
Hide page content until turbo:load event
...
To avoid cases when Turbo links are processed as normal HTTP requests
2024-01-04 23:06:47 +01:00
8c6d296021
Enable turbo (without Drive)
2023-12-03 23:27:10 +01:00
3509cd409c
Remove turbo and importmap
2023-05-14 16:19:42 +02:00
4a1fe657c0
Disable Turbo application-wide
2023-04-16 03:03:03 +02:00
66f098f479
Add and install 'turbo-rails'
...
bin/rails turbo:install
2023-04-02 00:12:31 +02:00
526c285188
bin/rails importmap:install
2023-04-01 23:53:05 +02:00