* Step one in populating the reading list with PG
This first attempt tries to recycle the `Search::ArticleSerializer` which is only
used in input in ES, but we're using it in output in PG.
For this reason it's currently 15.55x times slower
* Serialize only what is requested by the frontend
`Search::ArticleSerializer` which is only used in ES in the indexing step aims
to add as much info as possible for broader purposes, in this case
(with serialization in output) we should aim to save only what's requested from
the frontend.
* Optimize selection of articles columns
* Select only needed columns for users
* Compute total of reading list items
* Attach the basic filtering based on PG on the search controller
* Restructure in methods
* Add tags support
* Use LIKE on articles.cached_tag_list
* Fix tags as nil
* Fix default pagination
* Add optional FTS for reading list
* Reworded the tags comment explaining why
* Add index to reactions.status
* Fix total counter in Preact readingList component
* Fix total count in reading list backend search
* Add GIN index to articles.cached_tag_list
* Add service tests
* Add search request specs
* Added missing early return
* Update spec/requests/search_spec.rb
Co-authored-by: Julianna Tetreault <32834804+juliannatetreault@users.noreply.github.com>
* Extract MAX_PER_PAGE constant and add comments
Co-authored-by: Julianna Tetreault <32834804+juliannatetreault@users.noreply.github.com>
* Some div soup to semantic markup.
* Converted an import to use our webpack @utilities alias.
* Removed unnecessary t variable to house .
* Removed state that can be derived from other component state.
* Removed unused state property .
* Reverted to <div /> as per PR feedback.
* Refactor debounce usage into debounceAction util
* Allow debounceAction's config to be merged, allow for named arguments
Also clean up the documentation as necessary!
* Make readingList testable
* Make history and readingList more similar
* Extract ItemListTags component
* Simplify load next page logic
* History and reading list load more should be the same
* Extract ItemListLoadMoreButton component
* Use the same exact CSS for both
* Use empty instead of 0
* Extract ItemListItem component
* Remove unnecessary else
* Same search function
* Use a common module to group related functionality
* Extract loadNextPage and fix load more button presence logic
* Extract toggleTag
* Refactor toggleStatusView and pass page
* Added additional tests
* Add base history support
* Add tags and ranking and make it work
* Fix styling
* Add article title and text excerpt to the index
* Add pagination support
* Debounce the search to 300ms
* Show history only to pro users
* Use routing helpers instead of hardcoding
* Raise the page size to 100
* Remove console log
* A bit of regrouping
* init
- add reading_time to reactions
- make migration
- add to algolia index in reaction model
- add method in reaction model to define reading time based on reactable reading time
* add time to front end
* Revert "Return errors instead of raising an exception on ArticleCreation (#2922)"
This reverts commit 09a99d93a3.
* Revert "init"
This reverts commit 53650ebcc3c93c54e396977f7c34f7aa35a589c4.
* Revert "Revert "Return errors instead of raising an exception on ArticleCreation (#2922)""
This reverts commit e8cf1f3a290dd06b937247e3ff7593e7c7036553.
* Update reaction.rb
* remove duplicate searchableAttribute