* Send user agent in open graph fetch
* Update app/services/open_graph.rb
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Change user agent and test
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* feat: first pass at CTA Tag
* fix: strip_tags before using the link
* default hover
* feat: add the type of cta
* feat: add own ltag by copying the utility class
* feat: rename property to style
* feat: add style and width
* feat: add xit test
* feat: add spec for unordered options
* chore: some css
* feat: update the cta spec to remove style and width options
* feat: move billboard related code out of widgets
* fix: mobile display ad below the comments section
* feat: cta_tag strip tags input
* feat: update the editor docs
* feat: add help text to teh liquid guide and the editor guide
* feat: fix the css styles of the CTA
* cgore: alphabetical order
* chore: move everything on one line
---------
Co-authored-by: Mac Siri <mac@forem.com>
* Basic thumbsup, thumbsdown and vomit
* Refined UI of flags and vomits
* If check
* Optimised code and added a method in article.rb
* Removed public keyword
* Nit fixes
* init
* remove from asset pipeline and add tests
* add utc date conversion test
* try removing last tests
* add some more tests
* add tests for more coverage
* add yet more tests
* separate descibe statments
* add dt test back
* more test cleanup
* include pack js files
* add jest back
* Include /packs/ in code coverage metric
* derp
* revert jest
* reformat some of the test accordingly
* try e2e
* fix cypress test
---------
Co-authored-by: Mac Siri <mac@forem.com>
Co-authored-by: Mac Siri <krairit.siri@gmail.com>
* feat: add the ./wellknown/ai-plugin.json file
* feat: add a logo
* feat: firts attempt at open_api file with endpoint we thought we'd use
* feat: add a search action to teh articles controller that build up teh appropriate json
* feat: add a query param to the article index
* feat: add some chatgpt endpoints and file paths to CORS
* feat: update the openapi yml file to reflect the article search endpoint
* fix: use the correct concept
* feat: replace the logo
* feat: update the ai-json file
* feat: update the openapi file
* feat: update the api and it's params
* feat: update the search query
* fix: ordering
* feat: cors debug
* fix: logic with markdown
* chore: fix test
* spec: article
* spec: article
* spec: article
* Update public/.well-known/ai-plugin.json
* Update public/openapi.yml
---------
Co-authored-by: Ben Halpern <bendhalpern@gmail.com>
* Refactor for_display to pass article instead of params
* Refactor: use options in FilteredAdsQuery, deconstruct article in DisplayAd.for_display
* Typo
* Restore applicable comments
* feat: tests for series list on article page
* feat: test for jump to comments button (needs fix)
* feat: tests for reaction drawer on article page
* feat: test for full date on hover??
* feat: add full date on hover tests for all pages with publish dates
* fixed jumping to comments test
* move initialisers to packs
* fix coverage issues
* fix flaky login modal spec
* switch back to using onclick instead of addEventListener
* Trying some models for audience segmentation
* AudienceSegment basics
* Attach AudienceSegment to DisplayAd
* Possibly use a DUS to populate AudienceSegments
* Add to display ad form UI
* Add to display ad API
* Refresh strategy for audience segments
* Add user_id to async ads query
* Maybe :testing -> :manual, for no-refresh segment
* Test & tweak segment refresh
* Testing audience_segment#refresh logic
* Coverage: testing human_readable
* Scope segment refresh to recently active users
* Tweak logic for when to refresh
* Tweak experience levels to match SettingsHelper
* Test for front-end logic
* Fix test, hope this helps coverage?
* Better test names
* One worker for all, many workers for each, perform_bulk
* Fix audience segment UI, needs to use id, not enum
* cron/schedule should RefreshAll
* Singular id in RefreshWorker
* add dashboard sort initializer and tests within packs folder
* run dashboard sort initializer in base.jsx spinup and on InstantClick change
* remove assets/javascripts' dashboard sort initialization and comment out original file
* fully remove original dashboard sort initializer file
* export both functions within initializeDashboardSort
* refactor import of selectNavigation function within CategoryLinksMobile
* feat: tests for tag page sidebar drawers on mobile
* feat: tests for hero area/banner on home feed
* refactor: move ui interaction initialisers to packs
* remove old filter select implementation
Co-authored-by: Ridhwana <Ridhwana.Khan16@gmail.com>
Co-authored-by: Lawrence S <lboogie@Lawrences-Air.attlocal.net>
Co-authored-by: Rajat Talesra <rajat@forem.com>
* update text file
* feat: update the text
* feat: update the html
* fix: Hey, username
* feat; just use @tag consistently instead of tag.name
---------
Co-authored-by: Ridhwana <ridhwana.khan16@gmail.com>