* Add ProMembership model
* Implement ProMembershipsController#create
* Implement basic ProMembershipsController#show
* Add ProMembership to ledger
* Populate user history after pro subscription is created
* Add fields for expiration notifications
* Add ProMemberships::ExpirationNotifier to notify users of expiring memberships
* Add tasks for recurring jobs to notify users of expiration
* Add auto_recharge column to ProMembership
* Add ProMemberships::Biller (incomplete)
* Fix specs
* Add ProMembership to Administrate
* Fix spec
* Add has_enough_credits? to User and Organization
* Add Payments::Customer class
* Finish ProMembership::Biller functionality
* Fix ProMemberships::Creator check for credits
* Disable destroy actions for ProMembershipsController
* Correctly authenticate ProMembershipsController actions
* Make sure only pro user's history can be indexed
* Add ProMembershipsController#update action for auto recharge
* Use regular AR to save new credits and add touch to the purchaser
* Clarify Pro membership create policy
* Display information about an existing pro membership
* Add UI to show page
* Add system test for Pro membership creation
* Implement edit membership
* Make sure users with pro memberships can access history and dashboard pro
* Fix padding issue
* Show a different text for a user that has credits but not enough for Pro
* Move Pro Membership functionality inside settings
* Update Pro Membership link in email notifications
* Bust all relevant caches
* Add the Pro checkmark around the website
* Use Users::ResaveArticlesJob instead of delay
* Add/remove user from pro-members chat channel
* Use the appropriate Pro checkmark
* Remove unfinished pro elements
* Remove checkmark JS
* Start with webhooks: table and model
* Start with webhooks api
* Start with webhooks api
* Webhook::Event class and events list
* Remove commented callbacks
* Start with sending events to webhook endpoints
* A couple of tests for Articles::Creator
* Send event to webhook endpoint on article destroy
* Dispatch event on article update
* Dispatch event when an article updated from admin
* Spec for the webhook job
* One more test for the dispatch event job
* Integration-like spec for event dispatching to webhook endpoints when creating an article
* Use Addressable::URI to parse endpoint url
* Add oj as a faster fast_jsonapi backend
* Renamed serializers
* Move article serialization out of a model
* Don't allow to create a webhook event with invalid type
* Add fields for ArticleSerializer
* Fix webhook event job specs
* Specify timeout when dispatching events
* Fix webhook job spec
* Change webhook events queue name
* Change serialized article fields for the dispatchable events
* Include user data when serializing an article for webhook event
* Moved decorating out of Webhook::DispatchEvent, fixed most specs
* Fix route in ArticleSerializer
* Move Article decoration to Webhook::PayloadAdapter
* Refactor image url helpers to avoid including helpers into serializer
* Fix specs
* Default url options for production
* Add Sponsorship model
* Add Sponsorship to admin
* Add correct relationships between models
* Add temporary script to migrate sponsorship data
* Use constants for enums
* Use Sponsorship model in PartnershipsController
* Use Sponsorship in the views
* Validate sponsorship levels and tag combos
* Replace the rest of the sponsorship code to use Sponsorship
* Transform GET sign in links into POST
* Ignore CVE-2015-9284 for now
* Update app/views/layouts/_signup_modal.html.erb
Co-Authored-By: Mac Siri <krairit.siri@gmail.com>
* Modify sponsorship copy
* Update sponsorship stuff
* Fix spec and add tag sponsorship
* Social Cards Part 2
This is a follow up to part 1: https://github.com/thepracticaldev/dev.to/pull/2090.
This PR updates the og:image URLs to use the new social_preview.png urls
added in Part 1.
So that the already generated/cached images do not need to be recreated,
this sets a MIGRATION_DATETIME. Any object that has been updated after
that date will generate a new image
Objects from before that date will not. They will use the new url.
* Fix weird change made by rubocop autocorrect
* Handle organizations + users
* Run CI
* Use time with zone to be explicit about timezone
* Simplify branching in user_social_image_url method
* Fix param alignment + bump migration date
* Initial classified listings work
* More work on tags
* Additional work finalizing stripe and getting the listings page along
* Finalize-ish listings 🤞
* Add db index to articles path
* Slight stories optimizations
* Select only needed fields for the flare tag
* Revert the last commit (to check builds)
* Return selecting only needed fields for tag
* Add HTML variants for cta optimization and other nav bar adjustments
* Fix 1==1 non-random mistake
* Spruce up org call-to-action
* Change default text color
* Add html variant trial and success request specs
* Fix article sidebar caching issue
* One line adjustment
* Modify schema
* Add include ActionView::Helpers::TagHelper to user_tag_spec
* Modify follow_button to remove session context
* Dummy commit
* Change Edit Article to Edit Post
* Dummy commit
* Fix rubocop concerns
* Fix rubocop style
* Initial automatic cleanup with rubocop
* Fix syntax error introduced by rubocop
* Cleanup seeds file
* Cleanup lib folder
* Exclude bin folder because it contains auto generated files
* Make Rubocop a little bit more chatty
* Block length should not include comments in the count
* Cleanup config folder
* Cleanup specs
* Updated Rubocop version and generated a todo file
* Fix broken ArticlesApi spec
* Fix tests
* Restored rubocop pre-commit hook
* Lint and clean up github issue styles
* Use heredoc HTML for easier formatting
* Add better error handling for 404 github issues
* Use custom sanitizer for markdown render
* Refactor unless to ternary
* Rename file and tighten up sanitization
* Fix codepen and instagram tag styling
* Make org proof a required field
* Fix color picker and other minor org adjustments
* Add MVP of org add'l sidebar
* Add proof to org factory
* Fix org create action and fix tests
* Add new org fields to admin panel & lint
* Add proof to org edit for backward compatibility
* Add org info to edit preview
* Move preview edit notice to inside article div
* MVP of badge "final" steps
* Add info to user sidebar and clean up badge commit
* Modify sidebar for data
* Add organization decorator
* Add conditional so only users have new swipe nav, not orgs
* Add cloudinary prefix to badges
* Disallow duplicate badges
* Add sidebar sticky elements
* Add sticky sidebar to article show page
* Add saved changes check to user
* Fix missing CSS variable in sticky nav file
* Add date joined as default summary
* Remove accidentally-included file
* Add check for published on article sidebar