* Add tracking and missing specs for DigestMailer
* Add tracking and missing specs for MembershipMailer
* Add tracking and missing specs for NotifyMailer
* Add tracking and missing specs for ScholarshipMailer
* Remove deprecated analytics role
* Make anchor tag a bit more readable
* Add OrganizationMembership table and model
* Add organization_membership associations
* Add unique indices for user_id and org_id
* Wrap update and create calls in transactions
* Remove specs of deprecated analytics_beta_tester
* use API data
* Update schema.rb
* work on proCharts
* change to fetch
* remove console log
* add week month infinity dates
* linter tweaks
* change chart labels
* make cards change dynamically as well
* add april 1st disclaimer comment
* add reader and follower charts
* Update schema.rb
* Enable all Rails 5.0 defaults, except for CSRF mitigations
* Enable all Rails 5.1 defaults
* Enable per_form_csrf_tokens
* Enable forgery_protection_origin_check
* Avoid replacing the CSRF in the comment form
Each form now has its own CSRF in addition to the global one.
I've left in place the setInterval
* Restore per_form_csrf_tokens to false
* Add ability to embed Medium URL as liquid tag
- Added new liquid tag - "{% medium https://medium.com}"
- Added a scraper - `MediumArticleRetrievalService` which crawls the
given Medium URL for informations needed for the liquid tag
* Add Medium logo in rendered liquid tag
* be able to sort dashboard articles (#1837)
* remember to escape order clause is arel (#1837)
* add back in missing character for created_at (#1837)
* use case statement to avoid threat of injection (#1837)
* write specs to ensure sorting works for dashboard articles (#1837)
* add publish sort options, refactor sort options into articles helper (#1837)
* refactor to use model scope (#1837)
* Move estimating user language logic to a service object
* Call a service from a User#estimate_default_language!
* ActiveJob for estimating default user language
* Call ActiveJob from the User#estimate_default_language
* Handle nil user email when estimating default language
* Switch user.estimate_default_language_without_delay! to estimate_default_language! in specs
* allow codesandbox to accept runonclick
- runonclick=1 lets the user load the codesandbox when they decide
- added runonclick tests to spec
* documentation to editor_guide