Commit graph

2502 commits

Author SHA1 Message Date
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
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
rhymes
4c44ebd034
Mark flaky specs as flaky (#12898) 2021-03-04 09:27:04 -05: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
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
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
dependabot[bot]
59af88d278
Bump rubocop from 1.10.0 to 1.11.0 (#12848)
* Bump rubocop from 1.10.0 to 1.11.0

Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.10.0 to 1.11.0.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.10.0...v1.11.0)

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

* Add Style/UnlessLogicalOperators but keep it disabled

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: rhymes <rhymes@hey.com>
2021-03-01 14:34:13 +00: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
Jacob Herrington
7fa46683aa
Use a regex pattern to avoid flaky timestamp spec (#12827) 2021-02-26 15:35:17 -05: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
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
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
rhymes
351d4f8da7
Fix regression in Honeybadger.config.exceptions.ignore (#12796) 2021-02-23 19:08:29 +01: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
Jacob Herrington
0c6f4113f2
Fix irregular comment count buttons (#12724)
* Fix irregular comment count buttons

* Fix irregular comments button on tag and user page

* Add regression tests for irregular comment buttons
2021-02-22 12:11:44 -06:00
Mac Siri
60be1d6def
Add flaky tags & retry in specs (#12750) 2021-02-22 11:20:16 -05:00
Anna Buianova
1fb86379f0
Specs for article collection update (#12766) 2021-02-22 10:14:52 +00:00
Michael Kohl
283b008e97
Add data update script for backfilling usernames (#12728) 2021-02-19 08:16:29 +07:00
Andy Zhao
1b47f16291
Prevent banned users from using API (#12730)
* Prevent banned users from accessing API

* Prevent banned users from creating API keys

* Delete API keys when deleting user

* Add tests

* Prevent banned signed in users from accessing API oops

* Refactor authenticate! for readability
2021-02-18 17:56:16 -05:00
Andy Zhao
0765dec16e
Remove asset reconciliation (#12729) 2021-02-18 16:50:03 -05:00
Michael Kohl
171ae82f52
Update CarrierWave to 2.1.1 (#12714) 2021-02-17 16:46:21 -05:00
rhymes
09abd1af81
Fastly edge caching: use PURGE HTTP method instead of POST (#12627)
* Add :fastly_http_purge feature flag

* Add fastly.purge to EdgeCache::Bust::Fasty

* Update app/services/edge_cache/bust/fastly.rb

Co-authored-by: Michael Kohl <citizen428@dev.to>

* Update app/services/edge_cache/bust/fastly.rb

Co-authored-by: Michael Kohl <citizen428@dev.to>

* Update spec/lib/data_update_scripts/add_fastly_http_purge_feature_flag_spec.rb

Co-authored-by: Michael Kohl <citizen428@dev.to>

* Improve specs applying the feedback

* Deploy to BHC

* Undo Travis changes

Co-authored-by: Michael Kohl <citizen428@dev.to>
Co-authored-by: Mac Siri <krairit.siri@gmail.com>
2021-02-17 13:34:37 -05:00
Suzanne Aitchison
c761c3f9a7
Provide skip links: Tweak skip link style, refactor main area ID (#12694)
* change home page main id to main-ontent, update scroll, refresh and shortcut handlers

* update articles by timeframe test with new main-content id

* tidy up css

* Trigger Travis CI

* undo unneeded changes

* small refactors
2021-02-17 10:15:31 +00:00
Michael Kohl
2555b59d87
Extract page view updates into workers (#12686)
* Extract page view updates into workers

* Restructure code

* Update specs

* Fix and reactive 2 specs

* Update according to PR feedback

* Use create! over create
2021-02-17 09:24:05 +07:00
Michael Kohl
bdd4bd34aa
Fix infinite redirect loop for articles (#12652)
* Update logic in handle_possible_redirect

* Rearrange code

* Add spec
2021-02-17 08:54:54 +07:00
Julianna Tetreault
71b35f28a0
Remove Roles via Admin (#12582) [deploy]
* Add the ability to remove a role from a non-super_admin in Admin::UsersController
 - Adds a #destroy action to the Admin::UsersController
 - Adds a destroy route for the action

* Add a removal button to non-super_admin roles on admin user pages
  - Pulls Current Roles out of _activity and into own partial
  - Adds a _current_roles partial to /admin/users/show
  - Adds REMOVE buttons to non-super_admin roles
  - Conditionally renders REMOVE buttons for certain roles only

* Add tests around the removal of roles to users_manage_spec

* Adjust formatting of link_to in _current_roles.html.erb

* Use :aggregate_failures in role-related tests in users_manage_spec.rb

* Refactors Admin::UsersController#destroy and role params

* Update admin/users_spec.rb to take into account _current_roles partial

* Replace REMOVE text with X on role removal buttons

* Add additional elsif to handle single_resource_admin removal
  - Adds resource_type params to Admin::UsersController
  - Adds elsif to handle removal of single_resource_admin roles
  - Adds resource_type to the removal button in _current_roles
  - Adds a spec around removing single_resource_admin roles

* Add .constantize to resource_type in Admin::UsersController

* Move .constantize to resource_type arg rather than params in #destroy

* Use .safe_constantize rather than .constantize for params[:resource_type]

* Remove .safe_constantize from params and onto inline var instead

* Add nil check to removal of :single_resource_admin role in #destroy

* Update users_manage_spec.rb to remove proper role in test

* Add resource_name to current user and super admin _current_roles list

* Add additional test around removing :single_resource_admin role
2021-02-16 10:50:10 -07:00
Alex
3f02045458
Redirect user to sign up path after deletion (#12696) 2021-02-16 12:15:36 -05:00
dependabot[bot]
d4f4b53131
Bump rubocop from 1.9.1 to 1.10.0 (#12700)
* Bump rubocop from 1.9.1 to 1.10.0

Bumps [rubocop](https://github.com/rubocop-hq/rubocop) from 1.9.1 to 1.10.0.
- [Release notes](https://github.com/rubocop-hq/rubocop/releases)
- [Changelog](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop-hq/rubocop/compare/v1.9.1...v1.10.0)

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

* Enable new cops and run rubocop on code base

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: rhymes <rhymes@hey.com>
2021-02-16 09:14:17 -05:00
Ridhwana
07fcbb6f0e
Parenthesis consistency for add_role and remove_role (#12661)
* chore: use consistent code styles for the parenthesis around arguments

* Revert "chore: use consistent code styles for the parenthesis around arguments"

This reverts commit 281c899a5cff0480b182fef45b10ef69979166cb.

* chore: add consistent parenthesis
2021-02-15 20:35:25 +02:00
Molly Struve
4ffd9ca7a5
Refactor:Change Image Article Upload Path to uploads/articles (#12668)
* Refactor:Change Image Article Upload Path to uploads/articles/

* fix request spec
2021-02-15 11:52:00 -06:00
Akash Srivastava
8569435b13
Fixed twitter timeline display in comments preview (#12542)
* Fixed twitter timeline display in comments preview

* Removed shared context for twitter_timeline_tag
2021-02-15 17:09:18 +01:00
Ben Halpern
b61c8b7e6b
Fix edge cases in profile field UI migration (#12665)
* Fix edge cases in profile field UI migration

* Fix missing statement

* Fix list of attributes
2021-02-11 17:18:46 -05:00
Ben Halpern
5f92ef7b8f
Fix profile field production display area functionality and remove SiteConfig.dev_to? hacks for better generalization (#12015)
* Initial work

* Add special exceptions

* Clean up and progress

* Update github url

Co-authored-by: Ridhwana <Ridhwana.Khan16@gmail.com>

* Add tests and finalize data update script

* Fix test

* Add some tests

* Fix display_area test

* Adjust spec

* Fix svg title

Co-authored-by: Molly Struve <mollylbs@gmail.com>
Co-authored-by: Ridhwana <Ridhwana.Khan16@gmail.com>
2021-02-11 10:05:06 -05:00
Michael Kohl
0af8fc1866
Prevent suspended users from self-deleting and returning (#12503)
* Add new table and model

* Store banned user username hash on delete

* Prevent previously banned user from signing up again

* Update method name

* Refactor code and add more specs

* Test improvements

* Don't override existing global flash

* Fix typo

* Update spec description

* Update schema.rb

* More schema.rb fixes

* Simplify spec

* Update migration

* Clean up migration

* Rename method

* Add DataDog counter

* Revisit error handling

* Remove spurious empty line

* Make model name more explicit
2021-02-11 09:28:59 +07:00
Ridhwana
a61f88fc16
Adds a feature flag for Data Update Scripts (#12641)
* feat: add a feature flag for data update scripts

* feat: write some tests for it

* chore: oops

* stub the data update scripts out wherever the profile admin is

* chore: remove some unneeded ones

* refactor: use call_original

* feat: add a feature flag to all the Forems (but not enable it as yet)
2021-02-10 18:22:27 +02:00
Vaidehi Joshi
d42ae2bc9a
Fix erroring data update script (#12628)
* Fix erroring data update script

* Add spec to ensure that script doesn't impact any other user if tech_admin users don't exist

* Comment out erroring script, delete its associated spec

* Add replacement AddSingleResourceRoleToTechAdmins data update script
2021-02-09 11:16:44 -08:00
Ridhwana
05e31971cb
Navigation Items and Role access for Data Update Scripts (#12292)
* feat: add tech_menu_items to the admin helper

* feat: add the tech resources to /admin  if the user has the correct role

* feat: use a partial that will show the data update scripts in the navbar with the correct role

* chore: use a method

* test: chore

* feat: setup the data to need permission single_resource_admin with DataUpdateScript permissions

* chore: remove the if current_user.tech_admin?

* chore: remove line

* feat: add a DUS for single_resource_admin roles to be added to users with tech_admin roles

* fix: move all teh routes outside of the block where tech_admin is required.

* chore: use the constant and remove the method

* chore: add a comma

* Update config/routes.rb

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

* feat: add a tech admin role to the dropdown

* feat: add the tech admin role along with single_resource_admin

* chore: oops

* refactor: amend the spec to use let blocks

Co-authored-by: rhymes <rhymes@hey.com>
2021-02-09 17:41:14 +02:00
rhymes
844c038bc4
Fix flakiness in Follows::UpdatePointsWorker (#12614)
* Fix flakiness in Follows::UpdatePointsWorker

* Trigger Travis CI
2021-02-09 12:41:24 +01:00