* Improve dropdown UX for internal/badges
Add a "blank" option to the dropdown to list of badges on internal/badges route.
Also add some checks to handle if an admin accidentally tries to award a "blank" badge.
* Ensure error is surfaced as flash message
* Add tests and improve pagination and caching
* Add two more specs
* Add .with_video scope
* Get rid of N+1
* Only select needed columns
* Improve efficiency of the video page as well
* Add missing set_cache_control_headers to API videos#index
* Feature 🚀 : Ability to delete messages in chat channels
- Sending message ID to frontend
- Deleting Message
- Use pusher to delete message realtime
* Minor Bug 🐞: Show message action only for current user
- User can delete or edit their own messages
* Test cases added
* Bug 🐞: Update message id for receiver
Message id was not sent to receiver by pusher
* Refactoring🛠: Message controller refactoring
* Test Cases📝 : Specs for Delete message added
* Feature 🚀 : Ability to edit messages
* Test Cases📝 : Specs for Edit message added
* Feature 🚀 : Ability to mention member in Group [Frontend]
* Test Cases📝 : Test Cases added
* Feature 🚀 : Ability to mention member in Group [Backend]
* Bug Fix 🐞: Making messages realtime for open channels
* Feature 🚀 and Bug Fix 🐞: Ability to get notification if mentioned in open messages and increasing message number count
* Feature 🚀 : Ability to remove message count on channel open
* Bug Fix 🐞: Making Notification more reliable by checking if the new message is notified to user or not
* Feature 🚀 : Ability to metion @all and notify them
* Bug Fix 🐞: Minor fixes
* Fews tweaks in code
* Bug Fix 🐞: Feature was not present for Invite only Section
* Bug Fix 🐞: In open channels one can't mention all
* Bug Fix 🐞: Markdown conversion for all only in case of invite only
* Specs added
* Delete schema.rb
* Schema file updated
* Code refactoring
* Further Code refactoring backend
* Further Code refactoring backend
* Bug Fix 🐞: Mention List error problem in switching tabs
* Test Snapshots added
* Feature 🚀 : Ability to mention member in Group [Frontend]
* Test Cases📝 : Test Cases added
* Feature 🚀 : Ability to mention member in Group [Backend]
* Bug Fix 🐞: Making messages realtime for open channels
* Feature 🚀 and Bug Fix 🐞: Ability to get notification if mentioned in open messages and increasing message number count
* Feature 🚀 : Ability to remove message count on channel open
* Bug Fix 🐞: Making Notification more reliable by checking if the new message is notified to user or not
* Feature 🚀 : Ability to metion @all and notify them
* Bug Fix 🐞: Minor fixes
* Fews tweaks in code
* Bug Fix 🐞: Feature was not present for Invite only Section
* Bug Fix 🐞: In open channels one can't mention all
* Bug Fix 🐞: Markdown conversion for all only in case of invite only
* Specs added
* Code refactoring
* Further Code refactoring backend
* Further Code refactoring backend
* Bug Fix 🐞: Mention List error problem in switching tabs
* Test Snapshots added
* Feature 🚀: Ability to navigate through user list with keyboard only
* Bug Fix 🐞: Changing color of group avatars in dark themes
* Bug Fix 🐞: Setup pusher channel for open channels also
* change ReadingListItemsController#update to return NotAuthorized if user_id does not match
* fix spec description
Co-authored-by: rhymes <rhymesete@gmail.com>
Surrogate keys are about setting expectations on cache purging.
Presently we use a combination of all parameters to set changing surrogate keys depending on the result of the `ArticleApiIndexService`. This approach has two limitations:
- if two set of params lead to the same exact set of articles, we still create two different caches
- deleted articles will remain for 24 hours in the cache because the cache key doesn't take the record keys into account
By simply using record keys we make sure that different params leading to the same result set will share the same cache and that deleted keys won't appear anymore in the cache.
* Create new CreateWorker
* Create new spec for CreateWorker
* Change CreateJob to CreateWorker and move to sidekiq
* Update worker
* Update priority of Reactions Create Worker
* Remove leading spaces from spec
* Add article's record key to Fastly Surrogate-Key to separate caches
After #4744 we successfully setup an auto purging system based on Fastly's surrogate key based cache and purging API.
Unfortunately this worked only in the `:show` action as comments are their own tree-based resource.
The `:index` though, is related to a single article, so without the article's record key in the `Surrogate-Key` header the first time we hit the API the result would become the value stored in Fastly's API, for all articles.
* Fix commentable mock for job spec
* Add comment.commentable.purge to the worker as well
* Add more thorough tests for commentable
* Add gem Ransack 2.3.0
* Add sorting and search to internal/reports
The UI here should probably be revisited sooner or later, I feel like
the vomit reactions might even need to be moved to their own view.
* Add system spec for internal reports search
* Remove filter for report_type
* Use ancestry in the index and add test
* Add tests for show action
* Return complete comments trees for index, kill n+1 and use correct edge cache key
* Return complete comments tree for show, kill n+1 and use correct edge cache key
* Refactor tests and add surrogate keys tests
* Preload users for the whole subtree
* Clarify explanation of the edge cache keys construction
* Refactor partials
* Remove action caching
* Replace .map.flatten with .flat_map
* Fix surrogate key prefix according to Fastly docs
* Add comment.purge to Comments::BustCacheJob to use Fastly-Rails
* Fix surrogate key spec
* Ask user to add email when deleting [WIP]
* Ask to provide an email before requesting account deletion
* Additional checks to make sure that user won't be deleted w/o an email
* Revert changes on confirm destroy view
* Remove mock from specs to test the actual Suggester
* Fix articles API top articles n+1
* Fix n+1 in articles API with state parameter
* Remove eager loading for organization dashboard
* Eager load notifiables in notifications only when needed
* Algolia does not like this
* Create podcast as a user [WIP]
* Sample css for podcast form
* Nicer podcasts suggesting form
* Validate podcast feed_url
* Validate podcast main_color_hex
* Fix podcasts specs
* Fix form appearance
* Placeholder for podcast main_color_hex
* Provide a link to suggest a podcast
* Add a checkbox and a role for when a podcast is added by an owner
* Prettier checkbox in the podcasts form
* Added creator to podcasts
* Set the podcast creator
* Fix the /pod spec
* Added creator information to the internal podcast page
* Added cta class to the podcasts submit button
* Global notice when a podcast was suggested
Co-authored-by: Ben Halpern <bendhalpern@gmail.com>
* Move from env variables to SiteConfig
Related to #5384
This PR only deals with the first remaining part outlined in the issue, starting to use existing SiteConfig keys instead of the env variables.
* Restore Envfile to original version for now