When clicking "Hide Completed" on the jobs notepad, an AJAX GET request was sent without an explicit 'Accept: text/html' header. Rails evaluated `request.format` as non-HTML, causing `JobsController#notepad?` to return `false` and falling back to `respond_with` rendering the full page layout inside the notepad groups element.
Here is a summary of the changes:
1. Added the 'Accept: text/html' header to transmit in `job_notepad.js`.
2. Updated `JobsController#notepad?` to treat XHR requests for the current member's jobs as notepad requests.
3. Added unit tests in `job_notepad.test.js` for the "Hide Completed" action.
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@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>
* 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>
What a packet says about sowing it. When to sow is the months, as many as the
packet says: a form sends twelve chips to tick, with the seasons as shortcuts
for the grower's hemisphere (none where we do not know it, rather than a
guess), and the list shows them as runs like "Oct-Feb". How to sow is text, in
the packet's words. Germination is a range of days, as maturity is.
A migration adds four columns to seeds. The facts are on the packet sheet, in
the order they happen, and editable from the pencils, from Edit all and from the
standalone form.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- 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.
- 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.
- 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.
- 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.
- 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.
* 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>
* 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>
- 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.
* 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>
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>
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>
* 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