* 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.
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.
* 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>
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.
* 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>
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* Add username to onboarding
* Add margin to profile form error alert
* Update user controller for onboarding
Co-authored-by: Michael Kohl <me@citizen428.net>
* 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>
* 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>