* Extract Welcome Broadcast styling into its own stylesheet
- Adds a stylesheet, notifications-welcome-broadcast.scss, for broadcasts
- Adds notifications-welcome-broadcast to minimal.scss
- Removes .broadcast-content from notifications.scss
- Adds TODOs for team-delightful to both stylesheets for future work
* Adjust TODO to be more team-specific for future greps
* Create "blank" EmailSubscriptionTag
* Refactor liquid_tags_used with spec
* Create /user_subscriptions#create
- Update liquid tag name to UserSubscriptionTag
* Add rate limiting and specs
* Add counter_culture for user_subscriptions
* Update /async_info/base_data
- Alphabetize user_data
- Add email
- Add subscription_source_article_ids
- Cache subscription_source_article_ids on User model
* Add stale email check and specs
* Change user_email to subscriber_email for clarity
* Restrict UserSubscriptionTag
* Rename RESTRICTED_TAGS to RESTRICTED_LIQUID_TAGS
* Make TODO comment more clear
* Refactor error responses and update specs
* Update type to source_type in error message
* Use constantize over safe_constantize
* Add check for active source
* Refactor checking of current_user's subscriptions
- Remove data from async_info
- Create a new service to fetch/cache a user's existing subscriptions
* Restrict email in base_data to admin roles
* Oops! Rename liquid tag file
* Change error back to result...oops!
* It's not goodbye, it's see you later. RIP email :/
* Add current_email to /user_subscriptions/base_data
* Revert adding current_email
* Undo async_info_controller changes/fix conflict
* Move params to constant
* Refactor SubscriptionCacheChecker
* Remove duplicate status code in JSON response
* Remove duplicate status code for #subscribed
* Use response.parsed_body
* Remove user guard in SubscriptionCacheChecker
* Notify Honeybadger when no id can be found for a welcome notification
Also add the event's target's text to the tracking data for a welcome notification's click event.
* Destructure text and title from event.target
The PR being referenced by this comment has been merged, but I think
we actually _do_ want these styles to stay here after testing this feature locally
both with and without the explicit position and z-index properties.
* More loading fixes
* Go back to OpenStruct
* Shuffle things around
* Remove obsolete patches and unneeded requires
* Disable config.add_autoload_paths_to_load_path
* Fix pre-require errors
* Config not reloader
* Fixed lint extends so that prettier is the last extends to override all other extends (recommended).
* Added prettier to extends of base eslint file.
* Add #show to the Broadcasts::Controller and to routes.rb
- Adds a show method to the Broadcasts Controller
- Adds a show route to routes.rb
* Add a show view for Broadcasts
- Adds show.html.erb to /internal/broadcasts
- Repurposes code from index.html.erb for show view
- Repurposes code from edit.html.erb for show view
* Rewrite /internal/broadcasts index to use a table
- Formats /internal/broadcasts with a table
- Removes on-hover functionality from show.html.erb
* Refactor Broadcast resources in routes.rb
* Redirect to #show on create and update for Broadcasts
* Add the Destroy Broadcast button to the Broadcast show view
* Remove style preventing Broadcast preview
* Add Broadcast styling back and add display: block to stylesheet
* Add display: flex to .broadcast-wrapper in layout.scss
* Remove superfluous slashes from opening tags
* Set up ahoy gem, add ahoy-js
* Import ahoy.js into base.js.erb
* Add trackNotification function to notifications/index.html.erb
* Add sanitized_broadcast_id helper
* Use sanitized_broadcast_id in broadcast partial
* Add specs around tracking welcome notifications
* Remove optional fields from Ahoy::Visit migration + table
* Fiddle with trait to see if it helps with CI failures
* Disable geocode tracking in ahoy
* Stub out SiteConfig in notifications page spec