* Allow Emails::RemoveOldEmailsWorker to run longer
We set the SQL statement timeout based on the STATEMENT_TIMEOUT
environment variable (defaulting to 2.5 seconds in production), but not
all SQL queries are created equal. Since some may take longer out of
necessity, this PR introduces a `Model.with_statement_timeout` method
that allows you to change the SQL statement timeout only for a given
block.
* EmailMessage doesn't inherit ApplicationRecord
It inherits from `Ahoy::Message`, which inherits directly from
`ActiveRecord::Base`.
[3] pry(main)> EmailMessage.ancestors
=> [EmailMessage(id: integer, clicked_at: datetime, content: text, feedback_message_id: integer, mailer: string, sent_at: datetime, subject: text, to: text, token: string, user_id: integer, user_type: string, utm_campaign: string, utm_content: string, utm_medium: string, utm_source: string, utm_term: string),
EmailMessage::GeneratedAssociationMethods,
EmailMessage::GeneratedAttributeMethods,
Ahoy::Message(id: integer, clicked_at: datetime, content: text, feedback_message_id: integer, mailer: string, sent_at: datetime, subject: text, to: text, token: string, user_id: integer, user_type: string, utm_campaign: string, utm_content: string, utm_medium: string, utm_source: string, utm_term: string),
Kaminari::ConfigurationMethods,
Kaminari::ActiveRecordModelExtension,
Ahoy::Message::GeneratedAssociationMethods,
Ahoy::Message::GeneratedAttributeMethods,
Bullet::SaveWithBulletSupport,
ActiveRecord::Base,
...
* Use milliseconds to match STATEMENT_TIMEOUT units
* Fix notifications not deleting because mentions already destroyed
* Fix spelling in spec
* Use rspec expect/to assertions for delete notification spec clarity
* resolve failing spec, and remove need for environment check 🎉
* When a user is blocked from commenting on an article, show correct error message
* Created new error type ModerationUnauthorizedError and changed error text for it
* I18nize nav_menu's list items
* reverted changes to admin list item in attempt to pass the one failed test in Travis CI
* Update reading_list value
Co-authored-by: Michael Kohl <citizen428@forem.com>
It's confusing why we set model as the block binding, but still access
user from the method argument (reaching outside the `tap` block).
Within this block, use model consistently to name the user.
Only change the user variable, not _user_ within methods
* Translation for "on Video"
* Moving dashboard.loading to core.loading to keep code DRY
* Translations for views/videos/new.html.erb
* Reverting the changes on app/views/dashboards/_sublist.html.erb
* Adding the dashboard.loading translations back
* Fixing some merge conflicts + sorting the dashboard translations
* Fixing the contact text on views/videos/new
* Using the full path instead of the lazy load
* Fix rotation of images uploaded from iPhones
iPhones[1] take pictures in portrait mode with the orientation set to
90ºCCW. We noticed that uploading one of these images to a Forem
instance caused the image to be rotated when rendered. The current
theory is that Imgproxy is not maintaining the orientation value when
processing, which is solved by setting `auto_rotate: true` (serialized
into the Imgproxy URL as `ar:1`), according to the documentation.
See: 8e6585e28d/docs/generating_the_url_advanced.md (auto-rotate)
[1] This probably happens with other phones, but we discovered the issue
using an iPhone.
* Fix Imgproxy URL expectation for auto_rotate
* Move hard-coded Tags index copy to [en,fr] locale files
* Use tags.pluralize for a better page title implementation
* Add better french translations
* Once more fr translation fix
* Remove .pluralize from title i18n
* Consolidate and internationalize various 'contact us' prompts
* Update spec/requests/user/user_settings_spec.rb
Co-authored-by: Michael Kohl <citizen428@forem.com>
Co-authored-by: Michael Kohl <citizen428@forem.com>
* fix: accessibility issue with feeds comment section
* fix: comments section name for logged out scenario and search results
* fix: review changes for logged in scenario
* fix: updated comments section aria label
* Only prevent merge user if 2+ more identities, not 1+ more
* Refactor error messages into constants
* Skip only if no identities on deleted user
* Raise standard error instead of a string
* Add test to confirm correct identity was merged
* Translate actions in articles view
* Move reactions to core.reactions namespace
* Add quotes to share_to in yml file
* Fix wrong translation in english locale
Co-authored-by: rhymes <github@rhymes.dev>
* tokenize settings menu and add French translations
* add quotes around tokens
* add tokens in alphabetical order
Co-authored-by: Ben Halpern <bendhalpern@gmail.com>
* Check if email_newsletter is changed
* Check if Settings::General.mailchimp_api_key is defined
* Add spec for Users::NotificationSetting
* Remove spec for boolean column
http://www.chrisrolle.com/en/blog/boolean-attribute-validation
* Check if email is set when changing newsletter subscription setting
* Make it easy to read
* Remove specs for a case never happening