* use HTTP_CLIENT_GEO in billboards show action
* limit targeting to signed in users
* re-add cypress test
* simplify billboards request spec
* fix header problems hopefully?
* whoops
* Squash filleduchaos/caching-billboards-by-location
* export ISO 3166-2 regions
* wip
* remove ISO 3166-2 regions
* finally, a VCL config that...works?
* update billboard controller & specs
* fix specs
* clean up and document VCL some more
* remove vcl_init sub
* remove billboard fragment caching
* feat: remove the top card color branding
* feat: update the heading
* feat: remove the rotation on the badge
* feat: remove rotation and justify-between the badge
* feat: add number_with_delimiter to the tag count
* feat: change the follow button to be 'primary'
* feat: add a flex column so that the buttons row sticks to the card bottom
* feat: add the posts to the right hand side on the header
* refactor: move the styles to teh css page
* feat: spacing
* fix: tests
* fix: test
* Exclude Page from ReservedWords checks (#19853)
* move initializeSettings to webpack (#19737)
* move initializeSettings to webpack + add tests
* add initializeSettings to InstantClick change block
* dont use classes, use modules
---------
Co-authored-by: PJ <pj@forem.com>
* Renamed leftover @hero_display_ad => @hero_billboard (#19874)
* Reorganize devDependencies & revert strong_migrations (#19870)
* ruby: Upgrade to v3.1.4 (pt. 1, base image only) (#19871)
In #19776 we discovered that basing both the base container *and* the
app container off of `.ruby-version` causes a chicken-and-egg problem
wherein upgrading Ruby versions requires a few stop-and-gos. Let's make
those stops reviewable as separate chunks instead: use a new
`.ruby-version-next` for building base images, not the `.ruby-version`,
thus allowing GitHub Actions to fire off an automated build (which, when
complete, we can take the SHA sum from and use it to open a second PR
updating the app image to use it, and `.ruby-version` can be updated to
match `.ruby-version-next`).
* feat: add the bullet unused_eager_loading query
* feta: update the seeds
* feat: add a smaller gap and make the grid-col 4 on large screens
* feat: do not let the button take the height of the container
* sway the search with the following tags
* feat: keep the description at font size 14px
* tweak elements to ensure an ideal card height of 195px
---------
Co-authored-by: Mac Siri <mac@forem.com>
Co-authored-by: zhangted <tedcbook@gmail.com>
Co-authored-by: PJ <pj@forem.com>
Co-authored-by: Anna Buianova <lightallloy@gmail.com>
Co-authored-by: Josh Klar <jklar@forem.com>
Co-authored-by: Duke Greene <dukegreene@gmail.com>
* Renamed display_ads vars to billboards
* Rename local vars in the feed view
* Renamed display-ad in the comment
Co-authored-by: Rajat Talesra <rajattalesra4914@gmail.com>
* Renamed variables in the views
---------
Co-authored-by: Rajat Talesra <rajattalesra4914@gmail.com>
* Rebased with main
* Footer visibility bug fix
* Minor fix
* Added tests
* Removed initializeFooter as it is not working as expected
* JS code updated as per suggestion
* Updated cache details
* Rebased with main
* Minor fixes
* Minor fixes
* Update .github/ISSUE_TEMPLATE/-core-team-only---new-approved-feature.md
* Update .github/ISSUE_TEMPLATE/-core-team-only---new-approved-feature.md
* Update .github/ISSUE_TEMPLATE/-core-team-only---new-approved-feature.md
* Update .github/ISSUE_TEMPLATE/-core-team-only---new-approved-feature.md
* Update .github/ISSUE_TEMPLATE/-core-team-only---new-approved-feature.md
* Update .github/ISSUE_TEMPLATE/-core-team-only---new-approved-feature.md
* Removed JS logic
* Nit fix
* Renamed display ad variables and constants
* Renamed display_ads associations
* Fixed variable name in display ads
* Renamed display_ads variables in views
* Fixed admin billboard view spec
* Fixed variable name in FilteredAdsQuery
* remove background image, rename prop to refer to color, pass primary brand color
* create helper method, send calculated gradient values into frontend props
* test new helper method and refine how color is darkened
* render left sidebar billboards ('display ads') asynchronously
* remove request spec expectations for ads that are now rendered async
* don't set up path helper for old name style
* refactor from global to imported observeDisplayAds call
* revert refactor attempt, bad export syntax, may fast follow
* Bulk Assign Roles UI
* Renaming roles to role
* Added role to multiple users without using note.
* Role note added
* Role blank key fix
* Removed roles
* typo fix
* AuditLog Added
* Optimising code
* Good standing role issue
* Good standing role issue fix
* Minor PR changes based on review
* Added cypress tests
* Added spec tests for BulkAssignRole
* Minor fixes
* feat: update the layout for organizations
* feat: update the layout for an organization
* feat: organization logos are square
* feat: change the text on the org visit button
* feat: initialize the dropdown menu
* feat: trigger the modal
* feat: update the text in the model
* feat: tweak wording
* WIP/feat: hook up a route with an action that calls an organization delete worker.
* feat: redirect after showing the notice
* feat: update the authorization required to be super admin
* feat: add the notice to localization
* spec: integration test
* spec: fix
* spec: delete worker
* chore: update the link
* feat: add safe navigation
* feat: make sure that we show an error if the organization has credits
* fix: error message for modal unspent credits
* feat add the spec for the helper
* fix: remove rspec preface
* fix: small fixes to tests and I18n
* fix: updated the number of orgs
* feat: update the message
* feat: update the message
* chore: remove inclusion of helper
* feat: change the name of the parameter
* chore: newline
* Move save over and add button labels
* comment notification design and functionality
* controller error handling
* add ternery operator for background class
* minor cleanup
* add proper styling toggles
* tests and mobile spec
* add for all buttons
* add article as a param
* comment is not required on article preview
* update policy spec
* add test for coverage
* add proper button titles
* use the last user comment as comment id
* add better error handling and remove multiple fetch calls in js
* copy change to threads
* update copy, fix multiple fetch calls, add observer for loading more notifications
* update spec
* add rspecs
* more test specs
* fix test specs
* subscribe button text tests
* add export
* optimistically update ui function tests
* button initialize test
* check for comment ancestry
* add feature flag block
* some cleanup
* update logic and specs
* oops
* rubocop issues
* change config names
* change config names
* fix spec
* add one more conditional
* check for comments
* service-object the toggler
* separate routes
* continual refactoring
* refine spec tests
* clean up policy
* Adjust js and view files to match be params
* some service object refactoring
* separate endpoints on client-side
* broken spec
* service specs
* policy spec fixes
* remove action param
* remove action param from spec
* minor updates
* trigger build
* update to post
* Services don't need permitted params
* Notifications continue to be a mess, decorator specs to follow
* Not toggling now
* This doesn't really belong here
* Fix tests after moving
* Streamline front-end
* There could be errors?
* polymorphic_name is a class thing
* ☠️ json_data in notification views
* Use feature_flag helper to get current_user
* Cannot derive current subscription status from notification, only from subscription
* Default is subscribe to all article comments
* Sync up matching unsubscribe, make subscribe idempotent-ish
* Temporarily comment-out button jest tests to see if I can unstick CI
* Stop trying to detect potential subscribe-to-comment
* Stop trying to detect potential subscribe-to-comment
* Minor spec refactoring
* Add specs for article notification decoration
* NotificationDecorator specs are rather long
* Rubocop likes it?
* Minor spec refactoring
* Doesn't need to stay pending
* Add spec for subscription finder
* Expand Subscribe service specs
* YAGNI, but I don't like hard-coded config
* Refactor Unsubscribe service specs
* nobody expects the infinite scroll
* This *might* work, except for feature flag
* Ancestry can be quite deep actually
* Rubocop
* Update subscribe button for subscribe-to-thread
* Jest tests are just tests
* hasAttribute != getAttribute
* Test knows **nothing** about window size
* Tests have been lying about mobileLabel this whole time
* Make payload/endpoint testable
* Is Jest actually happy???
* Still cleaning up jest/eslint
* Temporarily comment-out cypress tests pending feature flag
* Thanks, Rubocop, what would we do without you
* Preserve round-trip for 'top-level' and 'only-author' subscriptions
* Update specs
* Move save button icon
* Update test with better config param
* Try feature flag specific to cypress env
* Tell cypress to wait for (un)subscribing to work
---------
Co-authored-by: Lawrence S <lawrence@forem.com>
Co-authored-by: Joshua Wehner <joshua@forem.com>
* Created separate comments page
* Optimised code for single comment and multiple comments
* Indifual comments poage added
* Minor header change
* Created show method
* Full implementation with eager loading error
* Temporarily suppress Bullet from Admin::CommentsController
* Minor fixes
* Minor fixes
* Added table
* Added french translations
* Added reaction stats / summary
* Tests added fore empty comments
* Added seed data and few more tests
* Updated test
* Added model tests for comment and article
* Nit test fix
* Applied changes as per PJ's review
---------
Co-authored-by: Joshua Wehner <joshua@forem.com>
* Created separate comments page
* Optimised code for single comment and multiple comments
* Indifual comments poage added
* Minor header change
* Created show method
* Applied review changes
* Removed like button from admin comments page
* Skips scheduled posts in featured post count
* Allows removing super_admin role
* adds namespace resolution op
* Adds pundit policy
* Adds rspec for role policy
* Fixes test cases and minor refactoring
* Removes dead code
---------
Co-authored-by: Lawrence <lawrence@forem.com>
* show tag moderators in descending badge count order
* show organization users in descending badge count order
* specs & docs for find_each_respecting_scope
* Prepare: relocate user suggestions
* Prepare: relocate users suggestion service -> query
* Organization query for orgs with above-average scores
* Rubocop
* Limit to last 3 weeks
* Tweak recent scope, limit to 5 orgs
* Onboarding routes are also always JSON
* Divide by zero makes NaN means
* Add Orgs suggester into suggestions
* Rubocop
* select distinct orgs
* Fix for weird edge-case with bad local data
* Include type_identifier in JSON payload
* Update follows API to allow org_ids as input
* Update onboarding front-end to distinguish users/orgs
* Fix: i18n issues
* Fix: type_identifier in json output
* Fix: distinct is weird
* Fix: JS linter
* Continue tweaking front-end
* Audit import order
* Cleanup @todo note
* Try renaming controller action
* Move Article average calculation to postgres and fix math
* Refactor decorated type_identifier
* Refactor SuggestProminent, return more orgs, fix spec math
* Use FeatureFlag for organization suggestions
* This might fix the jest