rails-assets.org is down, and bundler can't install anything while a
gem's source is unreachable, so CI fails for every branch before a
single spec runs. The one gem from there was
rails-assets-leaflet.markercluster; it now comes from npm, where the
React bundle's packages already come from, and node_modules is already
on the asset path. CI and Heroku both install npm packages.
That gem also brought in rails-assets-leaflet, a second copy of Leaflet
(1.5.1), which shadowed the leaflet-rails gem the Gemfile asks for. With
it gone, the maps get Leaflet 1.9.4 from leaflet-rails, as intended, so
the cluster plugin is its current release, 1.5.3, which supports it.
npm's peer dependency warning for leaflet is expected: Leaflet comes
from the gem, loaded before the plugin.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Three dots on a garden card > edit opens its form in a dialog, and saves
without leaving the page. A garden saved as inactive leaves the list, with
a note saying where it went.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
GET /gardens/:slug/edit.json gives the form's values and choices, and
PATCH /gardens/:slug.json returns the garden's refreshed card, or the
validation errors as 422, without queueing a flash message.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Clicking a chip opens the planting's menu under it (view, edit, add
photo, record harvest, save seeds, mark as finished), in place of the
three dots on annual rows, so perennials get the same menu. A caret shows
the chip opens something. Someone who can't change the planting still gets
a plain link chip. The menu items are lowercase for every planting menu.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Three dots > mark as finished opens a dialog over the list: when did it
finish, today unless you enter a date. Today is not offered for a planting
made today, as the server needs a finish after the planting. It saves as
JSON and the planting leaves the list, without leaving the page. The card
data carries the server's date for today.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
A menu item that carries a data-method (mark as finished) was still sent
as a request by jquery_ujs after a dialog had taken the click over, so the
page navigated and the change was made before the dialog could be used.
A click a dialog handles is now stopped in the menu, which also closes it.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Three dots > add photo (on a planting or a garden) opens a dialog: choose
one of your Flickr photos by album or tag, confirm it, and it is added
without leaving the page, with the garden's card refreshed. If Flickr is
not connected, or the connection has expired, the first step connects it
in a pop-up and the dialog carries on by itself once it has worked.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
/authentications/connected says whether Flickr got connected and closes
itself. It has no site header or footer, as it appears in a small window.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
GET /photos/new.json gives a page of the member's Flickr photos (or says
to connect or reconnect Flickr), and POST /photos.json adds one to the
planting or garden and returns the garden's refreshed card, or the
validation errors as 422.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Three dots > save seeds opens a dialog in the same style as record
harvest: about how many (with quick picks), whether to offer them for
trade, and any notes. It saves as JSON and shows a notice with a link to
the seeds, so the page is never left.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
GET /plantings/:slug/seeds/new.json gives the form's starting values and
choices; POST /seeds.json returns a link to the new seed, or the
validation errors as 422, without queueing a flash message.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Each harvest is a small tick at its date on the bar's own scale, with the
date as a tooltip and a hidden sentence for screen readers. The card data
carries the positions, worked out with the same formula as the fill.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
It takes the planting off the list, so it goes after the everyday
actions, separated from them. The card menu and the garden page menu
match.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The update helper took its hash as keywords, and the form GET sent a JSON
content type, which Rails wraps into an empty harvest param that new then
rejected. The specs are fixed, and new ignores a blank harvest param.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The server needs a harvest to come after the planted date, so a planting
made today (or yesterday) has no Yesterday, and the date box starts the
day after it was planted.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
For a few seconds the row goes amber and gets a Harvest recorded tag, and
the notice names the garden, so it is clear which planting it was.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Step 3 is when (Today, Yesterday, or Enter date), step 4 is any notes,
and that step saves. The choices so far are shown back with Change
buttons, and there is a Back button. Closing the dialog is how you cancel.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Step 1 is what part you harvested: a big text box, with the cursor in it,
that completes from the plant parts (the crop's usual one first). Step 2
is how much: quantity, weight, when and notes, with the choice shown back
and a Change button. Same look as the Add planting dialog.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The record harvest prop had been attached to the first matching element
in GardenCard, the perennials' CropChip, so the row's menu item fell
through to a normal link.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Three dots > record harvest opens a quick entry form (how many, weight,
when, plant part, notes) in a modal, with the crop and today's date
filled in. It saves as JSON and swaps in the refreshed card, so the page
is never left. Ctrl/cmd-click still opens the full harvest page.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
GET /plantings/:slug/harvests/new.json gives the form's starting values
and choices; POST /harvests.json returns the garden's refreshed card, or
the validation errors as 422.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The skip link, nav links, button, blurb and inactive gardens link sat at
the card's edge while the card's own text is inset. Give them the same
inset, left-align the blurb, and add a little space between the links.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The breadcrumb bar is the same colour as the page, but its side padding
pushed the text 1rem in from the edge the heading and content sit on.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Rename the past gardens page to inactive gardens throughout (label, route,
action, view, styles). Move its link on the gardens page to below the
member's card, with a line saying what it holds, and add an explanation
to the page itself.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
/members/:slug/gardens/past shows their inactive gardens as photo cards:
when each was in use, how many plantings, and the crops grown in it. The
owner (or a collaborator) can mark a garden active again from its card.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The Add planting button does that now. The card data carries its link as
plant_url, instead of it being borrowed from a menu item.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The way to plant in a garden was an item in its actions menu. Put a green
button in the card header, next to the menu, that opens the same dialog.
It only shows for gardens you can plant in.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Overall rating is five clickable stars (real radio buttons underneath, so
the keyboard works) with a Clear button, in place of a select.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Moving a planting between gardens isn't part of quick editing. The
dialog no longer asks, or sends, which garden.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Three dots > Edit opens the planting's form in a modal instead of going to
the edit page. It saves as JSON and swaps in the refreshed garden card, so
the page is never left. Ctrl/cmd-click still opens the edit page.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The date on an annual planting row is a button with a pencil hint for
plantings the viewer can edit. It opens the browser's date picker, saves
with the tick or Enter, and swaps in the refreshed card so predictions
follow the new date.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
PATCH /plantings/:slug.json now returns the garden's refreshed card, as
create does, or the validation errors as 422. Annual plantings in the
card say whether the viewer can edit them.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>