157 Commits
Author SHA1 Message Date
77f151d344 Add Shareon social share component to posts#show (#5143)
* Add Shareon social share component to posts#show for logged in users

- Install shareon npm package
- Add shareon JS module and stylesheet imports
- Render .shareon container with requested share links on posts#show for logged in users
- Add unit and view spec tests

Co-authored-by: CloCkWeRX <365751+CloCkWeRX@users.noreply.github.com>

* Add Shareon social share component to posts#show for logged in users

- Install shareon npm package
- Add shareon JS module and stylesheet imports
- Render .shareon container with requested share links on posts#show for logged in users
- Add unit and view spec tests

Co-authored-by: CloCkWeRX <365751+CloCkWeRX@users.noreply.github.com>

---------

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
2026-10-29 21:51:47 +10:30
Brenda Wallace 240de4fac2 Refactor seed editing and display components
- Replace the modal dialog for editing seed details with an inline form within the packet sheet.
- Introduce a new partial for edit fields to streamline the editing process.
- Update the seed facts display to utilize a new fact row partial for better organization and readability.
- Implement a packet panel to show packet photos and text side by side, enhancing the user interface.
- Modify the hero section to include source information as a ribbon or badge based on the presence of a photo.
- Adjust tests to reflect changes in the editing process and the new layout of the seed show page.
2026-10-29 18:59:55 +13:00
Brenda Wallace a5e5ce4988 Merge remote-tracking branch 'origin/main' into seed-packet-photo-sides
# Conflicts:
#	db/schema.rb
2026-10-28 21:57:32 +13:00
Brenda Wallace f20bf69d32 feat: Allow saving blank drafts for photo attachments and update validations 2026-10-28 21:50:26 +13:00
Brenda Wallace f6b8b27a43 feat: Add photo size options and improve layout in PostEditor and PhotoFigure components 2026-10-28 21:50:26 +13:00
Brenda Wallace 96e37b6c90 feat: Enhance photo handling in posts with new features and UI updates 2026-10-28 21:50:26 +13:00
Brenda Wallace bb02a61f75 feat: Add photo selection functionality and update UI for CardPhotoDialog 2026-10-28 21:50:26 +13:00
Brenda Wallace 232a62c3a8 feat: Enhance post editor with link suggestions for crops, members, and plantings 2026-10-28 21:50:26 +13:00
Brenda Wallace b6006df384 feat: Implement draft autosave and preview functionality in PostEditor
- Added useDraftAutosave hook to handle automatic saving of post drafts.
- Enhanced PostEditor component to include a preview tab that fetches and displays rendered markdown.
- Updated Post model to manage draft state and associated published_at timestamp.
- Introduced card_photo association to Post for representing a primary image.
- Modified post form to support draft saving and publishing actions.
- Updated navigation to include links to drafts.
- Added tests for draft saving, preview functionality, and card photo validation.
- Created migrations for new database fields related to drafts and card photos.
2026-10-28 21:50:26 +13:00
Brenda Wallace 1701f77723 Add OCR task for seed packet photos and related specs
- Introduced a Rake task `packets:needing_ocr` to list photos of seed packets that lack text, outputting results as JSON lines.
- Created a Python script `read_packets.py` to process the output of the Rake task, downloading images and performing OCR to extract text.
- Updated model specs for `Crop` to ensure proper handling of photos associated with different seeds.
- Refactored API request specs for `Photos` and `Seeds`, removing unnecessary attributes from the response.
- Added tests for the new Rake task to ensure correct functionality and output format.
2026-10-28 20:23:35 +13:00
Brenda Wallace 8d71024075 Remove packet reading functionality and associated tests
- Deleted the packet_lines.js and packet_reader.js files along with their tests.
- Removed the packet_text.js file and its tests, which handled parsing of packet text.
- Eliminated the corresponding HTML for the packet reader button in the seed form.
- Updated package.json to remove tesseract.js dependency.
- Cleaned up related helper specs for packet image URLs.
2026-10-28 20:15:20 +13:00
Brenda Wallace 1036ad2ecf feat: add packet_text field to seeds and implement OCR reading functionality for seed packets 2026-10-28 20:12:47 +13:00
Brenda Wallace 20fbc7cc31 feat: add result message functionality for packet reading and update UI to display reader output 2026-10-28 20:04:29 +13:00
Brenda Wallace acfaa2a880 feat: add tesseract.js dependency and implement photo association tests
- Added `tesseract.js` as a dependency in `package.json`.
- Created a new spec file for `PhotosHelper` to test `packet_image_urls` method.
- Enhanced `Crop` model tests to ensure packet photos do not interfere with crop photos.
- Introduced validation tests for `Seed` model, covering row spacing and variety constraints.
- Updated API response in `seeds_request_spec.rb` to include variety, batch number, and row spacing.
- Updated `yarn.lock` to reflect new dependencies and versions.
2026-10-28 19:37:09 +13:00
Brenda Wallace 3a2528f5fa Rename 'moment' to 'label' in photo associations and update related functionality for job and seed photos 2026-10-28 19:11:12 +13:00
Brenda Wallace 6bebff9251 Merge remote-tracking branch 'origin/main' into posts/tiptap-editor-page 2026-10-27 13:55:01 +13:00
Brenda Wallace 593756db39 tidy up the seed filter (#5109) 2026-10-26 22:18:35 +00:00
Brenda WallaceandDaniel O'Connor 75595350bc Easier recording of harvests from the front page (#5077)
* Implement AddSeedsPicker component and enhance planting selection UI; update styles and serializers for better seed management

* Enhance PlantingPicker component: add hints and titles for harvest and seed actions; update test to reflect changes in seed saving behavior

* Enhance harvest recording: allow harvesting from crops without plantings; update forms and modals for better user experience

* Refactor code structure for improved readability and maintainability

* Remove AddSeedsPicker component and its associated tests

* Add planting picker functionality for harvesting and seed saving

- Introduced PlantingPickersController to handle JSON responses for member's plantings.
- Updated HomeHelper to include crop ID in planting picker properties.
- Refactored PlantPicker and PlantSomethingModal components to support multiple gardens.
- Created PlantingFlow component to manage planting actions (harvest and save seeds).
- Implemented RecordDialog component to handle server-rendered links for harvesting and seed saving.
- Updated various views to include data attributes for triggering the record dialog.
- Added routes for planting picker and corresponding request specs for testing.
- Adjusted styles in _plantings.scss for better layout and spacing.

* Add job management features including job creation and wishlist functionality

* Remove WishlistJobsController and associated views and tests

* Add suggestion links rendering and fix routes formatting

* Refactor AddJobModal and JobPicker components to simplify props and enhance user experience

* Update seed addition test to check dialog presence and current path

* Apply suggestion from @CloCkWeRX

---------

Co-authored-by: Daniel O'Connor <daniel.oconnor@gmail.com>
2026-10-26 21:38:12 +10:30
d19fd9657b Replace bootstrap datepicker with native HTML5 date inputs (#5057)
* Replace bootstrap datepicker with native HTML5 date inputs

Convert planting and seed date text fields to native HTML5 date fields
(`f.date_field`), matching existing date inputs across the app. Remove
bootstrap-datepicker JS/CSS imports, legacy site wrapper scripts,
package dependency, and update test specs.

Co-authored-by: CloCkWeRX <365751+CloCkWeRX@users.noreply.github.com>

* Fix spec

* Fix spec

* Fix spec

* Drop expectations about removed control

* Fix specs

---------

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
2026-10-26 19:52:50 +10:30
Brenda Wallace 334e7a8370 feat: integrate Tiptap editor for post body editing
- Updated post actions menu to link directly to the edit post path.
- Enhanced post form to include a React-based body editor using Tiptap, with a fallback to a plain textarea.
- Added Tiptap dependencies to package.json and updated yarn.lock.
- Created a feature spec to verify navigation to the edit page from the post actions menu.
2026-10-26 15:22:45 +13:00
Brenda WallaceandDaniel O'Connor 8474bdd416 remove newsletter (#4974)
* Remove unused bluecloth gem

Last released in 2011. It was only required, never called; kramdown
renders the markdown.

* Add specs for Tilt markdown rendering and posts markdown partial

* Remove rails_12factor gem

Last released in 2014. Rails 5+ does this via RAILS_SERVE_STATIC_FILES
and RAILS_LOG_TO_STDOUT, which production.rb already reads.

* Remove memcachier gem from Gemfile and Gemfile.lock

* Remove unused webrat gem

Last released in 2011. Nothing requires it; the specs use Rails'
assert_select and Capybara matchers. Only generator comments mention it.

* Remove crowdin-cli gem

Last released in 2018. Crowdin now ships its own standalone CLI, which
reads crowdin.yml and doesn't need the gem. Also drops the dependencies
only it used (rest-client, gli, crowdin-api and friends).

* Removes the crowdin-cli gem (last released 2018), the dependencies only
it needed, and crowdin.yml. Crowdin was never set up: the config still
has a placeholder project ID and nothing else in the repo mentions it.

Assisted by Claude

* Remove newsletter functionality and associated views and tests

* Remove newsletter functionality and related code across the application

* keep the column

* Remove stale test step

* add back newsletter

* Add migration to update newsletter column comment in members table

---------

Co-authored-by: Daniel O'Connor <daniel.oconnor@gmail.com>
2026-10-26 11:48:36 +10:30
Daniel O'Connor 4271f41340 Drop to 2 seconds 2026-10-25 18:26:37 +13:00
google-labs-jules[bot]andCloCkWeRX 0494796e86 Fade out flash messages 3s after user interaction
Automatically fade out flash alert messages 3 seconds after the user begins interacting with content (scroll, touch, click, keydown, focusin). Following UX best practices, the auto-dismiss timer is paused while the user hovers over or focuses inside the alert notification itself.

Co-authored-by: CloCkWeRX <365751+CloCkWeRX@users.noreply.github.com>
2026-10-25 18:26:37 +13:00
Brenda Wallace ddd9277696 Refactor CSRF token handling in job ideas and notepad scripts; improve rendering of notepad groups 2026-10-25 13:01:02 +13:00
Brenda Wallace d03f81d1c8 Add functionality to hide completed jobs in notepad and update styles 2026-10-25 13:01:02 +13:00
Brenda Wallace b5a46fe2f2 Enhance job notepad functionality with date management and improved UI for done tasks 2026-10-24 15:53:33 +13:00
Daniel O'Connorandgoogle-labs-jules[bot] 7cdfc1b1f1 Set default hyperlink on planting chip actions menu toggle (#4961)
Pass the planting view URL to ActionsMenu in PlantingChip and accept
an optional href prop in ActionsMenu so middle/ctrl clicks open the
planting view in a new tab.

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
2026-10-24 00:38:32 +10:30
Brenda Wallace bbb8a142c7 widening the range for suggsting jobs (#5034)
* Add crop_job_step association to Job model and migration

- Introduced a has_many association in CropJobStep for jobs with dependent nullify.
- Added crop_job_step reference to Job model with optional association.
- Created migration to add crop_job_step reference to jobs table with foreign key.
- Updated schema to reflect the new association.
- Added tests for crop_job_step association in Job model.

* Add ApplyCropJobTemplate service and for_crop scope to CropJobTemplate model

* Add job idea dismissal feature and related services

- Introduced JobIdeaDismissal model to manage dismissed job ideas for members.
- Added associations and validations for job idea dismissals in the Member model.
- Created JobIdeas service to generate job ideas based on templates and last year's activities.
- Implemented JobIdeas::LastYear and JobIdeas::Templates classes to fetch relevant job ideas.
- Added migration for job_idea_dismissals table and updated schema.
- Developed tests for job idea dismissal functionality and related services.

* Add PlantedLastYear service and update JobIdeas to include it

* Add action attribute to Job model and update related files

* Refactor JobIdeas service: replace LastYear and PlantedLastYear with PastJobs and PastPlantings; update related specs

* Add community and nearby job ideas sources; implement shown and more methods in JobIdeas service

* Implement job idea dismissal duration and snooze functionality; add hidden_until attribute and related specs

* Add Harvest class to JobIdeas service for managing harvest-related job ideas; implement ideas generation and related specs

* Add JobIdeas feature: implement JobIdeasController, views, and related services for job suggestions; include functionality for adding, hiding, and snoozing job ideas

* Refactor button options in job ideas view for improved readability and maintainability

* Enhance Job Ideas feature: add styling for idea cards, implement filtering options, and update controller logic to manage skipped sources; improve localization for job idea reasons and sections

* Add job ideas count and badge display; implement helper methods and update views for better visibility of job ideas

* Enhance Job Ideas feature: add UI elements for job suggestions, implement schedule display for template jobs, and improve localization; update related specs for new functionality

* Enhance Job Ideas feature: implement overlay for job suggestions, add animations for job transitions, and improve UI components; update controller and helper methods for better handling of job ideas

* Refactor Job Ideas feature: remove badge display and related tests; update UI components for better layout and visibility of job suggestions

* Refactor Jobs view and update specs: improve layout for job groups and enhance test coverage for jobs index with ideas

* Refactor Job Ideas feature: replace dismiss! with hide! method, update job count logic, and enhance UI components for better visibility and layout

* Add job ideas feature: implement ideas banner on homepage, enhance overlay logic, and add tests for job ideas display

* widen the range for suggseting jobs

* Fix comment to accurately describe planted crops timeframe in PastPlantings class
2026-10-23 22:24:12 +10:30
Brenda Wallace f9d7110783 adding tests or our react components 2026-10-23 21:34:33 +13:00
Brenda Wallace b22fa68bdf Refactor Job Ideas feature: replace dismiss! with hide! method, update job count logic, and enhance UI components for better visibility and layout 2026-10-23 21:04:21 +13:00
Brenda Wallace 76dafadc7f Refactor Job Ideas feature: remove badge display and related tests; update UI components for better layout and visibility of job suggestions 2026-10-23 21:04:21 +13:00
Brenda Wallace c4ab1bab15 Enhance Job Ideas feature: implement overlay for job suggestions, add animations for job transitions, and improve UI components; update controller and helper methods for better handling of job ideas 2026-10-23 21:04:21 +13:00
Brenda Wallace e64e893b4f Merge pull request #5015 from Growstuff/job-photos
Photos on jobs, before and after
2026-10-23 13:20:46 +10:30
Brenda Wallace 920e361bdf Merge remote-tracking branch 'origin/main' into feat/tasks-for-garden 2026-10-23 13:41:43 +13:00
Brenda Wallace 2456e30a4d Merge remote-tracking branch 'origin/main' into ui-niceness-for-jobs 2026-10-23 13:20:47 +13:00
Brenda Wallace a4069274ea Merge remote-tracking branch 'origin/main' into job-celebration 2026-10-23 12:59:23 +13:00
Brenda Wallace d654929130 Add flush and timer advance in notepad tests for improved async handling 2026-10-23 12:40:16 +13:00
Brenda Wallace 0c1cc46e9f Merge remote-tracking branch 'origin/ui-niceness-for-jobs' into feat/tasks-for-garden 2026-10-23 12:39:15 +13:00
Brenda Wallace d40707ecb3 Merge remote-tracking branch 'origin/job-celebration' into ui-niceness-for-jobs 2026-10-23 12:38:41 +13:00
google-labs-jules[bot]andCloCkWeRX e2a61c000b Match Layout button padding and sizing to Add Planting button
Co-authored-by: CloCkWeRX <365751+CloCkWeRX@users.noreply.github.com>
2026-10-23 10:06:56 +10:30
Brenda Wallace 35ffb77754 Add tests for notepad job submission and focus management 2026-10-23 12:35:02 +13:00
Brenda Wallace 95f36c80f3 Merge branch 'job-celebration' into ui-niceness-for-jobs 2026-10-23 12:31:01 +13:00
Brenda Wallace 9003ca3bef Enhance notepad accessibility and functionality
- Add reduced motion support for the notepad snail animation.
- Implement focused control tracking for job list interactions.
- Refactor job transmission logic to ensure sequential processing.
- Update notepad HTML structure for better screen reader compatibility.
- Introduce tests for notepad rendering and accessibility features.
2026-10-23 12:22:22 +13:00
Brenda Wallace 91e605d2c5 Add suggestions feature for job notepad: implement crop name suggestions with @ syntax in both add and edit modes 2026-10-23 10:43:16 +13:00
Brenda Wallace d96594f812 Enhance job notepad and suggestions for garden context:
- Update styles for notepad title and job suggestions.
- Modify job suggestions controller to filter by garden plantings.
- Implement interactive suggestions in job notepad for crop linking.
- Add link to view all jobs in the garden's notepad.
- Extend tests for job suggestions in garden context.
2026-10-23 08:43:55 +13:00
Brenda Wallace 23a0e6ea1f Implement garden-specific job notepad: add JobsNotepad service, update controllers and views to support garden context, and enhance tests for new functionality. 2026-10-23 08:38:47 +13:00
Brenda Wallace ba3574b5fc Refactor job-related code: enhance job suggestions, improve notepad functionality, and update job form fields 2026-10-23 08:27:46 +13:00
Brenda Wallace 9e35db0207 Add tests for job notepad functionality: implement job addition, editing, and drag-and-drop interactions 2026-10-23 08:24:33 +13:00
Brenda Wallace a4e764b760 Add saving state indication for job rows: implement dimming and spinner during server interactions 2026-10-23 08:22:25 +13:00
Brenda Wallace 0dfe944842 Add saving state indication for job notepad: implement spinner and status message during job addition 2026-10-23 08:22:15 +13:00