Commit graph

5122 commits

Author SHA1 Message Date
Andy Zhao
b83afedbe1
Hide mod button in mobile (#12915)
* Hide mod button in mobile

* Use span and old CSS to hide button appropriately
2021-03-09 09:40:07 -05:00
Michael Kohl
667437ebf2
[15-minute fix] Add ThrottledCall to DisplayAdEventsController (#12924)
* Add ThrottledCall to DisplayAdEventsController

* Update old spec
2021-03-09 09:06:11 +07:00
Jamie Gaskins
c15120b902
Fix ddtrace warnings at app start (#12941)
* Load HTTPClient before Datadog

The instrumentation needs it to be loaded before it can patch the
request methods.

* Don't split HTTPClient traces on domains yet

After the service explosion in Datadog APM last time, let's take a more
cautious approach.

* Turns out, we aren't even using the aws-sdk gems

This was added because we use Fog's AWS adapter, but Fog uses Excon
(which we're already instrumenting) instead of the AWS SDK directly.
2021-03-08 16:27:33 -05:00
rhymes
576aceab76
[Hotfix] Restore article content in RSS feed (#12935)
When https://github.com/forem/forem/pull/11268 we didn't test it thoroughly and
thus didn't detect that it wasn't working correctly and that it
resulted in an empty string in the `<description>` field.
2021-03-08 14:53:05 +01:00
Ridhwana
4b902b01c0
RFC#50-P2 Restructuring the sidebar to add nested nav items + tabbed nav items (#12886)
* feat: add the nested sidebar with some elements

* feat: create a tabbed nav item menu

* feat: add the tabbed nav_item partial to the views that need tabbed nav items

* fix: change variable back

* feat: style the sidebar a bit more

* chore: add some more styles

* feat: add a spec for the nested navigational items

* refactor: a more dynamic tabbed admin helper

* feat: add some more nav items

* fix: controller for reports

* refactor: shorthand if statement

* chore: add the whitespace back

* refactor: rubocop fixes

* chore: use any

* chore: remove whitespace

* refactor: rename the variable

* refactor: use a DSL style admin helper

* chore: variable renaming and routes

* rubocop: fixes

* refactor: move files to more apt places

* chore: keep overview as it was previously

* Update app/views/admin/secrets/index.html.erb

Co-authored-by: Michael Kohl <me@citizen428.net>

* Update app/views/admin/shared/_tabbed_navbar.erb

Co-authored-by: Michael Kohl <me@citizen428.net>

* Update app/views/admin/badges/index.html.erb

Co-authored-by: Michael Kohl <me@citizen428.net>

* chore: disable blocklength

* refactor: move the logic to the model instead of in the view

* chore: remove get_ prefix

* chore: move the request mangling to a helper that finds the controller and scope

* Update app/helpers/admin_helper.rb

Co-authored-by: rhymes <rhymes@hey.com>

* Update app/helpers/admin_helper.rb

Co-authored-by: rhymes <rhymes@hey.com>

* refactor: Address feedback

* oops

* oops use tr

* feat: update specs

* fix: badge achievements

Co-authored-by: Michael Kohl <me@citizen428.net>
Co-authored-by: rhymes <rhymes@hey.com>
2021-03-08 13:14:30 +02:00
Jamie Gaskins
bd2d90d849
Mitigate service explosion in Datadog (#12918)
Splitting by domain caused an explosion in "services" tracked in Datadog
because it was counting each podcast platform and each blog as being
another service. Noramlly this would be what we want, but that's a lot
to ask for such a broad range of user-supplied domains.

Since each of these requests is made via HTTParty, which uses Net::HTTP
by default, this commit stops splitting in that library.

We'll need to come up with a better way of tracking this.
2021-03-05 17:30:29 -05:00
Jamie Gaskins
125df50a87
Expand Datadog instrumentation (#12908)
Expand Datadog instrumentation

This commit adds extra telemetry in Datadog for:

- Redis
  - We make 3 different Redis connections available, so this change
    shows us _which_ Redis instance a given query goes to
- Split HTTP requests by domain using:
  - net/http - default for Ruby
  - faraday - used by:
    - buffer
    - elasticsearch
    - gibbon
    - oauth2
    - octokit
    - sawyer
    - twilio
  - excon - used by:
    - fog
- AWS
- RestClient
  - Cloudinary
  - Pusher
- concurrent-ruby
  - ActiveSupport
  - brpoplpush-redis_script
  - i18n
  - sidekiq-unique-jobs
  - sprockets (do we even use this?)
- httpclient
  - pusher
- http.rb
  - twitter (omniauth)
  - honeycomb
2021-03-05 10:44:52 -05:00
Michael Kohl
a6ee6578ca
Remove outdated language from RSS import (#12910) 2021-03-05 16:28:16 +01:00
Andy Zhao
6a55ad2a8d
Remove mod button from top nav bar in mobile (#12906)
* Hide mod button in mobile nav

* Remove unused CSS

* Add CSS back in since it was being used, and update classes

* Attach class to proper tag sigh

* Order based on screenshot from issue

Co-authored-by: Jacob Herrington <jacobherringtondeveloper@gmail.com>

Co-authored-by: Jacob Herrington <jacobherringtondeveloper@gmail.com>
2021-03-05 08:46:20 -05:00
Suzanne Aitchison
494d92d74c
Create mention autocomplete: initial storybook component (#12831)
* initial setup of component

* initial styles applied

* add some initial docs

* small tweaks to story

* add some very initial tests

* tweaks to styles to add border bottom

* add some preact tests

* import default style in jsx, ignore in jest

* WIP - create MentionAutocompleteListener, attempt to position popover

* position dropdown correctly, exit selection in various scenarios

* refactor

* make sure cursor placed correctly after selection

* only import autocomplete when needed

* rename files, add jsdoc

* update tests and story notes

* tidy up scss file

* fix story styling

* fix aria label in story

* fix issue with key event not triggering in mobile

* position dropdown at input left if small screen

* fix issue with deleting and re-entering

* don't trigger search if directly following a letter or number

* stop change event being fired with highihted text

* move regex out of function into constant
2021-03-05 13:18:26 +00:00
Kurnia Muhamad
cdd51ca500
Fix twitter liquid tag buttons misaligned (#12885)
* Fix twitter action buttons

* Fix twitter avatar misaligned
2021-03-05 12:18:45 +01:00
Alex Timofeev
0ff8284a68
Exclude code highlight panel markup from RSS description (#11268)
* Introduce `plain_html` method with minified article body

* Add corresponding test case
2021-03-05 12:06:50 +01:00
Josh Puetz
87984566df
Disable serviceworkers in Safari part2 (#12909)
* Disable servicework on Safari browsers

* Update app/assets/javascripts/serviceworker-companion.js

Co-authored-by: Jamie Gaskins <jgaskins@hey.com>

* Test for serviceworkers and unregister

Co-authored-by: Jamie Gaskins <jgaskins@hey.com>
2021-03-04 19:14:44 -06:00
Josh Puetz
e83101e388
Disable serviceworkers on Safari browsers (#12907)
* Disable servicework on Safari browsers

* Update app/assets/javascripts/serviceworker-companion.js

Co-authored-by: Jamie Gaskins <jgaskins@hey.com>

Co-authored-by: Jamie Gaskins <jgaskins@hey.com>
2021-03-04 15:12:27 -06:00
Miguel Guardia
364c3a8252
Fix subscribe to discussion button when user is not logged in (#12837)
* Add logic to subscribe button that shows login modal if user is not logged in
Pass in userstatus to CommentSubscription
Remove logic that loads comment subscription button for logged-in users only

* Modify test to account for new userStatus input in CommentSubscription

* Change UserStatus to isLoggedIn
Add propType to isLoggedIn
Remove preventDefault from click event

* Fix indentation and input on commentSubscription test
Create new isLoggedIn variable that returns boolean
Replace all instances of userStatus to isLoggedIn
Create test for showLoginModal when subscribing
2021-03-03 18:50:29 -06:00
Miguel Guardia
2a50efb936
Fix Markdown parsing of <code> tag (#12797)
* Create a new method that replaces <code> tags to
triple back ticks (```)

* Create unit tests for add_proper_code_tags method

* Rubocop fixes

* Change method name to one that is more descriptive/accurate
Fix method to allow for triple backticks, sameline code tags and multiline codetags in the same post/article
Fix test to match with method name change

* Fix rubocop offenses

* Fix Rubocop offenses

* Add additional assertions to make sure backticks are present
2021-03-03 17:41:56 +01:00
Vaidehi Joshi
7e583be9ed
[15 Minute Fix]: Update email footer copy to account for email authentication (#12877)
* Update email footer copy to account for email authentication

Fixes https://github.com/forem/forem/issues/12546.
2021-03-03 08:36:40 -08:00
Michael Kohl
ce523ad58b
[15 minute fix] Remove disambiguatingDescription from user profile (#12861)
* Remove disambiguatingDescription from user profile

* Fix spec
2021-03-03 08:42:46 +07:00
Molly Struve
004b62ac98
Optimization:Enforce Uniqueness for Follows::UpdatePointsWorker and RatingVotes::AssignRatingWorker (#12852) 2021-03-02 10:50:44 -06:00
Vaidehi Joshi
d8ebdd487c
Remove superfluous title attribute from sidebar SVGs (#12856)
Fixes #12680.
2021-03-02 08:39:06 -08:00
Alex
d109b6824e
Refactor cache purging (#12811)
* Refactor caching

* Bring back old bust class

* Refactor with PR feedback

* Remove useless return values
2021-03-02 10:09:05 -05:00
Jacob Herrington
2bc516bb2a
Remove unused CSS (#12854) 2021-03-02 07:35:34 -06:00
Jacob Herrington
2ae6ca570e
Fix double render of Overview in admin navbar (#12857) 2021-03-02 07:35:10 -06:00
dependabot[bot]
76b199e438
Bump rubocop-performance from 1.9.2 to 1.10.1 (#12860)
* Bump rubocop-performance from 1.9.2 to 1.10.1

Bumps [rubocop-performance](https://github.com/rubocop/rubocop-performance) from 1.9.2 to 1.10.1.
- [Release notes](https://github.com/rubocop/rubocop-performance/releases)
- [Changelog](https://github.com/rubocop/rubocop-performance/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-performance/compare/v1.9.2...v1.10.1)

Signed-off-by: dependabot[bot] <support@github.com>

* Enable new cops

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: rhymes <rhymes@hey.com>
2021-03-02 10:37:13 +01:00
Efereyan Karen Simisola
fc7ed20a9f
Publicly indicate if someone edits their comments (#10524)
* Publicly indicate if someone edits their comments

Signed-off-by: Efereyan Karen Simisola <thedevkaren@gmail.com>

* Implement required changes for date edited

* Add methods for readable publish date and edited at in comment decorator

Signed-off-by: Efereyan Karen Simisola <thedevkaren@gmail.com>

* Fix syntax error and decorator naming error

* Add tests

* Update app/views/comments/_comment_date.erb

Co-authored-by: Vaidehi Joshi <vaidehi.sj@gmail.com>

Co-authored-by: rhymes <rhymes@hey.com>
Co-authored-by: Michael Kohl <me@citizen428.net>
Co-authored-by: Vaidehi Joshi <vaidehi.sj@gmail.com>
2021-03-02 09:47:25 +07:00
Jacob Herrington
92217be4ed
Add admin overview page (#12726)
* Add admin overview page

* Rename admin_portals spec

* Fix admin nav bug

* Add ahoy tracking to admin overview

* Fix PR Feedback

Co-authored-by: Vaidehi Joshi <vaidehi.sj@gmail.com>

* Make decorative element more visible

* Remove inline layout styles

Co-authored-by: Vaidehi Joshi <vaidehi.sj@gmail.com>
2021-03-01 18:59:05 -06:00
Ben Halpern
73125c0795
Reduce service worker functionality to minimal offline page (#12834)
* Reduce service worker functionality to minimal offline page

* Update docs for service workers

* Add comment to fix test

* Include incrementable static cache

* Add TODO comments about removal

* Fix trailing whitespace
2021-03-01 19:29:26 -05:00
Molly Struve
ac91299952
Bug Fix:Update updated_at Timestamp Everytime We Run Repo Sync Worker (#12853) 2021-03-01 13:45:10 -06:00
Julianna Tetreault
27f27caff3
Part 1: Shows Relevant #help Posts in Homepage Sidebar (#12670) [deploy]
* Replace #active_help scope with #active_help class method

* WIP: Add tests around #active_help class method

* Refactor #active_help and update article_spec.rb tests to pass

* Replaces .active_help class method with .active_help scope
  - Reverts change from scope to class method, back to scope
  - Updates to use newer AR query syntax using endless ranges
  - Refactors scope to be more concise
2021-03-01 10:24:57 -07:00
Julianna Tetreault
a2458d5f59
Refactor: Extract Role Removal Into a Service (#12812) [deploy]
* WIP: Adds a Users::RemoveRole service to encapsulate Admin::UsersController#destroy

* Adds #role_display_name helper to application_helper.rb for extensibility

* Adjusts Member is Suspended banner to Member is Banned for consistency

* WIP: Extract Admin::UsersController#destroy into remove_role.rb service

* Cleans up Admin::UsersController#destroy and remove_role.rb service
 - Removes unneccessary code from Admin::UsersController#destroy
 - Replaces args with keyword args in Admin::UsersController#destroy
 - Replaces args with keyword args in remove_role.rb service
 - Refactors code to be more extensible and cleaner overall

* Adds a remove_role_spec.rb to test Users::RemoveRole service

* Fix typo in Admin::UsersController#destroy

* Refactors role_display_name helper method and reverts change to banner

* Use #role_display_name in _current_roles.html.erb

* Refactors conditional, names, and adjusts spec to account for refactors

* Raises StandardError if there is an issue with role removal
2021-03-01 09:07:30 -07:00
rhymes
543b9bec7e
Improve ActionController::InvalidAuthenticityToken error handling (#12833) 2021-03-01 11:27:12 +01:00
Michael Kohl
a432ab7b3f
Spike: Add ThrottledCall utility class (#12779)
* Add ThrottledCall utility class

* Rename class level interface method

* Update worker to use ThrottledCall

* Add ThrottledCall spec to worker
2021-03-01 08:51:04 +07:00
Andy Zhao
e915f46bf4
Resourcify Badge Achievements (#12832)
* Resourcify badge achievements

* Add test for single resource admin badge achievements

* Add badge and badge achievement roles

* Alphabetize (mostly) and cleanup syntax for easier writing

* Use quotes instead of %w and not outsmart myself :(

* alpha oops
2021-02-27 09:53:46 -05:00
Mac Siri
4d37ee83d7
Add search/feed_content to robots.text (#12826) 2021-02-26 11:05:22 -05:00
Andy Zhao
1fd0ec4041
Try yarn instead over npm for storybook deploys (#12376)
* Try yarn instead over npm

* Remove ignore flag and use default flag

* Add yarn version

* Remove --docs

* Use NPM :( we don't have a yarn.lock in app/javascript

* Use NPM :( we don't have a yarn.lock in app/javascript

* Updated base to root to use yarn

* hack the command with cd 🙃

* debuggng

* copy package.json and yarn.lock from root

* Set flag to use yarn explicitly

* Oops

* Try a different way

* Package.json not yarn.lock

* Maybe??

* Install yarn with npm then run yarn install??

* Add a Node version

* Try one more thing...

* Syntax error

* I think it's working...

* nvm it didn't work

* Use any 14.14 node version -- syntax correct maybe?

* Fix broken redirects smh

* Update redirects for storybook

* Remove unnecessary redirect rule

* Trigger notifications

* Trigger notifications

* Remove some unused comments
2021-02-26 10:30:56 -05:00
Nick Taylor
bd46c1ff57
Added react aliases in Storybook webpack configuration. (#12825) 2021-02-26 09:25:38 +00:00
Jacob Herrington
e235036ecd
Fix typo (#12824) 2021-02-25 15:03:16 -06:00
Nick Taylor
d90e5662ef
Created the <MediaQuery /> component and useMediaQuery hook. (#12809)
Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
2021-02-25 14:28:44 -05:00
Michael Kohl
d1d4c00114
Update OmniAuth to 2.0 (#12715)
* Update gems

* Remove Omniauth CVE from bundle-audit ignore list

* Add omniauth-rails_csrf_protection gem

This is recommended in the OmniAuth upgrade guide:
https://github.com/omniauth/omniauth/wiki/Upgrading-to-2.0#rails

* Temporarily bundle Devise from master

* Pin Devise commit in Gemfile

* Fix CSRF cookie workaround

As suggested by @fdoxyz

* Remove CSRF workaround

* Add DataDog counter

* Add request path tag

* Remove rendering of devise shared links

* Remove unused Devise partial
2021-02-25 12:46:13 -06:00
Molly Struve
37f609e5c5
Return Additional Data Needed for Autocomplete (#12823)
* Return Additional Data Needed for Autocomplete

* return name instead of username twice
2021-02-25 10:55:46 -06:00
Vaidehi Joshi
f975b8b737
Grammar fixes on /admin/config (#12819) 2021-02-25 08:00:56 -08:00
Andy Zhao
33793df627
Don't sub mailchimp if mailchimp is not enabled (#12791)
* Dont sub mailchimp if mailchimp is not enabled

* Refactor guard clauses a bit

* Add test

* Remove unneccessary test

* Add removed key check
2021-02-25 10:45:40 -05:00
dependabot[bot]
fcce38fb7a
Bump carrierwave from 2.1.1 to 2.2.0 (#12802)
* Bump carrierwave from 2.1.1 to 2.2.0

Bumps [carrierwave](https://github.com/carrierwaveuploader/carrierwave) from 2.1.1 to 2.2.0.
- [Release notes](https://github.com/carrierwaveuploader/carrierwave/releases)
- [Changelog](https://github.com/carrierwaveuploader/carrierwave/blob/master/CHANGELOG.md)
- [Commits](https://github.com/carrierwaveuploader/carrierwave/compare/v2.1.1...v2.2.0)

Signed-off-by: dependabot[bot] <support@github.com>

* Replace extension_whitelist with extension_allowlist

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: rhymes <rhymes@hey.com>
2021-02-25 10:53:25 +01:00
Jacob Herrington
dd3121e91c
Add username to onboarding (#12697)
* Add username to onboarding

* Add margin to profile form error alert

* Update user controller for onboarding

Co-authored-by: Michael Kohl <me@citizen428.net>
2021-02-24 10:48:31 -06:00
Suzanne Aitchison
5bed8f56d4
improve keyboard accessibility of modals 12427 10610 (#12511)
* adds focusTrap wrapper to preact Modal component

* add view specific code for focus trap in admin add nav link

* add script to return a focustrap toggle, use in add nav link modal partial

* add trap to edit nav link modal

* add handlers for sign up modal

* update modal controller for admin section, update nav link modals to use

* update other admin modals with new data values for trap

* remove unneeded erb script file

* remove unneeded target

* refactor to remove extra unneeded param

* remove duplicate code, store getFocusTrapToggle in window

* trap focus in comment and bookmark showModal instances for not logged in user

* remove need for activator id

* clean up id refs no longer needed

* remove custom code and re-use focsu-trap lib

* update storybook docs

* update default export in focusTrap

* prevent close button click triggering a modal toggle twice

* ensure if user navigates from a modal the trap is deactivated

* add jsdoc comments and add dynamic import

* ensure admin controller modal traps are cleaned up on disconnect

* update sign up modal to use crayons

* update modal controller and admin nav links modals to use preact modal

* update profile fields modals for new controller

* tweak styling of sign up and admin modals to match previous

* update listings modal to use crayons modal, adapt focus trap to work with click outside

* memoize deactivate callback to ensure modal can be presented on first page load

* add missed focustrap changes

* fix focus trap issues in onboarding flow

* refactor onboarding focus trap, remove getFocusTrapToggle

* tweaks for styling and article modal toggle

* add click outside tests to modal

* add cypress tests for the login modal

* update liquid tag tests affected by change

* refactors to address review comments

* fix issue with login modal presented twice on comment add

* change ids to selectors in admin modals

* small pr comment refactors

* add listings e2e tests

* add nav link modal tests

* fix issue with help modal

* tweak to fix ui bug from merge

* remove context from showLoginModal

* rename toggleModal

* rename state property for clarity

Co-authored-by: Nick Taylor <nick@dev.to>
2021-02-24 16:01:10 +00:00
Nick Taylor
2bba2a6ee4
Added the @components webpack alias to the project (#12808)
* Added the @shared webpack alias to the project.

* Added some documentation.

* Fixed a copy paste error.

* Renamed @shared to @components.

* Update docs/frontend/webpacker.md

Co-authored-by: Suzanne Aitchison <suzanne@forem.com>

Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
2021-02-24 16:07:48 +01:00
Michael Kohl
c2b4cdbc00
Update credit purchase button on submit (#12760)
* Update credit purchase button on submit

* Update app/views/credits/new.html.erb

Co-authored-by: Suzanne Aitchison <suzanne@forem.com>

* Reset button on error

Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
2021-02-24 11:44:46 +01:00
Julianna Tetreault
3a7e8cb8e5
[15 Min. Fix] Update Default bg_color and text_color Hexes on Tag Edit Page (#12770) [deploy]
* Updates default bg_color and text_color hexes on tag edit page

* Removes duplicate placeholder from edit.html.erb
2021-02-23 14:17:22 -07:00
Fernando Valverde
9d4490f7da
Make Skip to Content button hide higher up outside of view (#12790) 2021-02-23 09:16:54 -06:00
Suzanne Aitchison
5abe88c69b
Add skip links to readinglist, podcasts, and listings (#12769)
* add skip link functionality to readinglist, listings and podcasts

* fix initscrolling reference to podcasts
2021-02-23 08:33:26 +00:00