Commit graph

10188 commits

Author SHA1 Message Date
ludwiczakpawel
f6dc6c1112
fix (#15360) 2021-11-12 12:35:36 +01:00
Daniel Uber
89ac6f1b5a
Check for presence rather than falsey when detecting tag color (#15356)
Fallback on empty string as well as nil to the site default tag color
2021-11-11 15:53:32 -05:00
ludwiczakpawel
09db50b296
Update tag's style (#15266)
Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
Co-authored-by: Michael Kohl <citizen428@forem.com>
2021-11-11 14:03:31 -05:00
Daniel Uber
14caad86a7
handle deleted article's comments page with a 404 response (#15351)
* Add a failing test for comments index of deleted article

After https://github.com/forem/forem/pull/15052 removed the (also
broken) deleted commentable template and the redirect, requests for
comments from deleted articles raise no method errors (initially
trying to set the page title to "Comments for commentable.title" but
the assumption that @commentable is non-nil is present in several
other places.

This test currently fails (by design). Either we want to update the
controller so that comments from deleted articles are no longer
viewable (returning not found, as we did prior to
https://github.com/forem/forem/pull/5199 or making the view safe for
the case where @commentable is nil and no @root_comment is present.

These requests are happening quite frequently (@maestromac and I
suspect the sitemap may contain these pages and crawlers are visiting
the site from a published link), as evidenced by
https://app.honeybadger.io/projects/66984/faults/81994265

* Add request spec for deleted article scenario

Additionally, relabel the legacy spec (updated during #15052) to
clarify we do not render the deleted_commentable_comment view (this is
testing the comment.path, rather than the article.path/comments index

The scenario with comment.path sets `@root_comment` in the controller,
so does not trigger errors on the `@commentable` method calls.

* Update view

pass 1: get the errors to stop (need to check the rendered page is
also usable, the comment tree is not shown when commentable is nil and
this might be a huge usability/correctness issue).

* extract logic from comments index to methods and update tests

We no longer expect deleted article's comments index to render (should
return 404), only direct links to comments of deleted articles.

Only assign @article in the index for the view if it is in fact an
article (not a podcast episode, it's possible `@root_comment` was for
a podcast episode).

* remove unneeded (and soon to be incorrect spec)

No longer want or need to test for the case where root comment is nil
and so is commentable. This was an exploratory spec (scaffolding) and
can be removed.

* Undo nil safety changes to comments index

and fix typo in comments spec
2021-11-11 12:56:14 -06:00
Julianna Tetreault
807e11b80c
Provide "Help" on the Creator Onboarding Setup Page (#15308)
* Adds a help icon to the creator settings setup page

* Moves the help icon styles from the a tag to the inline_svg_tag

* Removes reused class and aligns help icon to the right

* Refactors help icon out into a partial used across necessary views

* Moves .admin-help-button class from admin.scss to scaffolds.scss

* Adds further utility classes to align help icon as expected
2021-11-11 08:42:56 -07:00
Ridhwana
2e31b4ba02
Redirect to creator settings page where necessary (#15298)
* fix: closing divs and  alignments

* fix: closing divs, alignments and add z-elevate

* refactor: remove the confirm email css annd add it to setup_mode

* improve mobile responsiveness

* feat: redirect directly to the new_admin_creator_setting_path from the confirmation email adn the signup

* feat: update the test to no longer show the referral which seems no longer relevant

* fix: update the tests to conform to the new URLS

* update the link
2021-11-11 14:44:49 +02:00
Daniel Uber
8f7e0b1744
Let users purchase credits (#15346)
* Dark Theme preference is a user setting and not delegated

Resolves NoMethodError

* Add a view spec

This ensures the /credits/purchase page is rendered

* Test both styles based on user setting

Add an actual expectation to the view test
2021-11-10 15:18:52 -06:00
dependabot[bot]
8184b9b9ae
Bump view_component from 2.43.0 to 2.43.1 (#15345)
Bumps [view_component](https://github.com/github/view_component) from 2.43.0 to 2.43.1.
- [Release notes](https://github.com/github/view_component/releases)
- [Changelog](https://github.com/github/view_component/blob/main/docs/CHANGELOG.md)
- [Commits](https://github.com/github/view_component/compare/v2.43.0...v2.43.1)

---
updated-dependencies:
- dependency-name: view_component
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-10 11:29:17 -07:00
Daniel Uber
0a47910e30
Skip badge awards for spam accounts (#15344)
* Don't award badges to banished users

* Assert badges aren't created for spam accounts
2021-11-10 10:48:01 -06:00
yheuhtozr
f7474ed369
views/credits i18n (#15134)
* views/credits i18n

* remove ja.yml
2021-11-10 09:12:09 -06:00
Suzanne Aitchison
1dda5b4058
fix some prop type errors on the home page (#15314) 2021-11-10 13:47:55 +00:00
yheuhtozr
a6f08ae215
views/stories, views/layouts and other homepage i18n (#15083)
* views/stories and home related i18n

* PR key names fixes

* remove ja.yml

* Update en.yml

* Update fr.yml

* Update articles_search_spec.rb

* Update _meta.html.erb

* Update index.html.erb

* Update _meta.html.erb

* Update articles_search_spec.rb

text in HTML should not contain raw brackets

* Update articles_search_spec.rb

* Update _signup_modal.html.erb

* Add back missing Search text

Co-authored-by: Fernando Valverde <fernando@visualcosita.com>
2021-11-10 07:38:43 -06:00
Suzanne Aitchison
832d0d3a4d
Markdown toolbar: add 'undo' functionality (#15239)
* WIP - main formatters with undo syntax

* tests for new text area utils

* WIP: formatters undoing and formatting, tests to follow

* small tweak

* WIP - tweaks to heading

* add heading level tests

* refactor link formatting into separate functions, flesh out tests

* add missing test case, adjust link undo
2021-11-10 12:06:25 +00:00
Nick Taylor
dad0f9d4cc
Added a skip link for the admin area. (#15340) 2021-11-10 06:37:48 -05:00
Daniel Uber
eec738710b
Rerun migrate themes script (#15312)
Because of the way the the scripts to run works, there's always
already a script with this file name by the time this starts.

Remove the guard clause and let it run.
2021-11-09 10:38:17 -06:00
Michael Kohl
6b2160f307
Theming cleanup (#15237)
* Theming cleanup

* Fix specs

* Use correct method

* Update storybook theme switcher
2021-11-09 10:11:55 -05:00
Arit Amana
dcf1e08477
Remove chars-count from user fields; fix inconsistent loading (#15309)
* remove chars-count from user fields; fix inconsistent loading

* remove "if loaded" check

* simplify iteration
2021-11-09 08:27:18 -05:00
Ridhwana
04c7d61dd5
Update the Creator Settings Page (#15295)
* fix: closing divs and  alignments

* fix: closing divs, alignments and add z-elevate

* refactor: remove the confirm email css annd add it to setup_mode

* improve mobile responsiveness
2021-11-09 12:42:24 +02:00
dependabot[bot]
5c0fa0add7
Bump postcss-cli from 9.0.1 to 9.0.2 (#15303)
Bumps [postcss-cli](https://github.com/postcss/postcss-cli) from 9.0.1 to 9.0.2.
- [Release notes](https://github.com/postcss/postcss-cli/releases)
- [Changelog](https://github.com/postcss/postcss-cli/blob/master/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss-cli/compare/9.0.1...9.0.2)

---
updated-dependencies:
- dependency-name: postcss-cli
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-08 14:36:40 -06:00
dependabot[bot]
7f2a163eee
Bump core-js from 3.19.0 to 3.19.1 (#15300)
Bumps [core-js](https://github.com/zloirock/core-js) from 3.19.0 to 3.19.1.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v3.19.0...v3.19.1)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-08 13:55:54 -06:00
dependabot[bot]
ee1007368f
Bump @testing-library/dom from 8.10.1 to 8.11.0 (#15301)
Bumps [@testing-library/dom](https://github.com/testing-library/dom-testing-library) from 8.10.1 to 8.11.0.
- [Release notes](https://github.com/testing-library/dom-testing-library/releases)
- [Changelog](https://github.com/testing-library/dom-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/dom-testing-library/compare/v8.10.1...v8.11.0)

---
updated-dependencies:
- dependency-name: "@testing-library/dom"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-08 12:08:09 -07:00
dependabot[bot]
6b135d86b3
Bump sidekiq from 6.2.2 to 6.3.1 (#15304)
Bumps [sidekiq](https://github.com/mperham/sidekiq) from 6.2.2 to 6.3.1.
- [Release notes](https://github.com/mperham/sidekiq/releases)
- [Changelog](https://github.com/mperham/sidekiq/blob/main/Changes.md)
- [Commits](https://github.com/mperham/sidekiq/compare/v6.2.2...v6.3.1)

---
updated-dependencies:
- dependency-name: sidekiq
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-08 12:07:47 -07:00
dependabot[bot]
04e7f2dae1
Bump i18n-tasks from 0.9.34 to 0.9.35 (#15302)
Bumps [i18n-tasks](https://github.com/glebm/i18n-tasks) from 0.9.34 to 0.9.35.
- [Release notes](https://github.com/glebm/i18n-tasks/releases)
- [Changelog](https://github.com/glebm/i18n-tasks/blob/main/CHANGES.md)
- [Commits](https://github.com/glebm/i18n-tasks/compare/v0.9.34...v0.9.35)

---
updated-dependencies:
- dependency-name: i18n-tasks
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-08 12:07:10 -07:00
dependabot[bot]
15ae96390e
Bump view_component from 2.42.0 to 2.43.0 (#15307)
Bumps [view_component](https://github.com/github/view_component) from 2.42.0 to 2.43.0.
- [Release notes](https://github.com/github/view_component/releases)
- [Changelog](https://github.com/github/view_component/blob/main/docs/CHANGELOG.md)
- [Commits](https://github.com/github/view_component/compare/v2.42.0...v2.43.0)

---
updated-dependencies:
- dependency-name: view_component
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-08 14:03:39 -05:00
dependabot[bot]
a2196720ec
Bump ahoy_matey from 4.0.1 to 4.0.2 (#15306)
Bumps [ahoy_matey](https://github.com/ankane/ahoy) from 4.0.1 to 4.0.2.
- [Release notes](https://github.com/ankane/ahoy/releases)
- [Changelog](https://github.com/ankane/ahoy/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ankane/ahoy/compare/v4.0.1...v4.0.2)

---
updated-dependencies:
- dependency-name: ahoy_matey
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-08 14:01:13 -05:00
dependabot[bot]
54735c203e
Bump rubocop-rspec from 2.5.0 to 2.6.0 (#15305)
Bumps [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) from 2.5.0 to 2.6.0.
- [Release notes](https://github.com/rubocop/rubocop-rspec/releases)
- [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rspec/compare/v2.5.0...v2.6.0)

---
updated-dependencies:
- dependency-name: rubocop-rspec
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-08 14:00:29 -05:00
Jeremy Friesen
95969eb973
Caching sum privileged reaction scores (#15299)
* Caching sum privileged reaction scores

This relates to work on improving the feed.  Namely that in the current
proposal in PR #15240 I'm not accounting for how privileged users have
given feedback on an article.

With this change, I will now have a cached value on the articles table
that can be a proxy for how the privileged users have reacted.

In addition there's a small refactor that moves a constant to the
correct scoping object.

Dependent on #15283.

* Fixing method name to `exists?`

Prior to this commit, I was using `exist?` which doesn't work for
ActiveRecord::Relation objects.
2021-11-08 12:50:08 -05:00
Michael Kohl
bff7cd1118
Theme data update script, remove theme choices from UI (#15225)
* Add prefer_os_color_scheme to users_settings

* Add data update script

* Update theme selector view

* Update spec wording

* Fix spec

Co-authored-by: Jeremy Friesen <jeremy.n.friesen@gmail.com>
2021-11-08 08:38:43 -05:00
ludwiczakpawel
0cf6d7616d
generator cleanup (#15284) 2021-11-08 11:55:24 +01:00
ludwiczakpawel
2c40071063
fix (#15293) 2021-11-08 11:55:02 +01:00
Anna Buianova
6aab40e90d
[Quick Fix] Fixed a couple of warnings in specs (#15288)
* Fixed warning for not raising a specific error in specs

* Fixed rubocop issue in specs
2021-11-07 22:07:05 +03:00
Michael Kohl
daa1555c00
Cooldown Project: Introduce StringAttributeCleaner (#15281)
* Add attribute cleaner

* Start using AttributeCleaner

* Add additional check

* Also work with non AR classes

* Remove unnecessray :aggregate_failures

* Rename to StringAttributeCleaner
2021-11-06 14:58:14 +07:00
Daniel Uber
d48587721a
Only permit valid class names as sponsorable type (#14387)
* Only permit valid class names as sponsorable type

https://github.com/forem/forem/issues/14386 identified an error could
arise if input was provide to the sponsorable_type field in the admin
creation form, but it was not a valid constant (since we include the
related model in the index when loading @sponsorships, this permits
creating a sponsorship that can't easily be managed or deleted).

Add a validation to ensure when the sponsorable type is present, it's
a class (really, we probably want to also ensure it's available as an
associated model type, since we'll be looking it up with find(:sponsorable_id), but this
is an initial attempt at adding some guard rails to this form).

A more realistic solution would be to add a `Sponsorship::SPONSORABLE_TYPES` constant
to the class, and validate the supplied sponsorable type is in
`SPONSORABLE_TYPES.map(&:name)`. That requires more domain knowledge
about what kind of things can be sponsored than I have, it would
certainly include at least ActsAsTaggableOn::Tag but may include other
classes (or why would it be polymorphic).

* Explicitly list the allowed types for sponsorship

I see we can sponsor tags, and suspect that's all we can sponsor
meaningfully (the view only shows details when it is a tag).

* Use inclusion validation with options to replicate custom method

And remove the code, we don't need it any more.

* Update app/models/sponsorship.rb

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

Co-authored-by: Michael Kohl <citizen428@dev.to>
2021-11-05 12:25:35 -05:00
Prayesh Shah
c043339654
Bug Fix: Following an organization from article's sidebar creates an incorrect follow record (#15093)
* Downcase `followable_type` to fix wrong follows creation bug

* Use `follow_button` helper

* Remove puts statement

* Revert use of follow_button helper

* Remove downcase of followable_type from helper

* Refactor switch case for better consistency

* Add e2e test for follow organization from article page functionality

* Split cypress `it` block into two

* Add additional test to following organizations from dashboard

* Remove downcasing of followable_type for decorated objects

* Fix failing follow back spec

* Force capitalize `followable_type` param

Co-authored-by: Mac Siri <krairit.siri@gmail.com>

* Update app/controllers/follows_controller.rb

Co-authored-by: Mac Siri <krairit.siri@gmail.com>
2021-11-05 12:40:20 -04:00
Jeremy Friesen
760f47f592
Adding caching column for reaction sums (#15283)
In a future commit, I'll introduce the logic to handle the caching of
the sum.

Related to  #15240
2021-11-05 12:34:35 -04:00
Jamie Gaskins
e50eccc85b
Add PGHero for more insights into the DB (#15073)
* Add PGHero for more insights into the DB

Andrew Kane's Ruby gems will continue being added until morale improves!

* Add linux x86_64 protobuf

* Fix discrepancy between Gemfile and Gemfile.lock

No idea how this happened, but it happened when merging `main` back into
this branch.

Co-authored-by: Dan Uber <dan@forem.com>
2021-11-05 12:25:02 -04:00
Arit Amana
4f1bdcda22
[Small Wins] Show character limits for profile inputs (#15255)
* Start implementation

* Extend raw implementation; will refactor later

* still building

* basic implementation

* create JS pack

* Rename JS pack; use existing CSS property

* complete implementation for profile fields

* Add guard againt irrelevant profile fields

* extract view logic to helper and add specs
2021-11-05 09:11:42 -04:00
Mac Siri
2f42bc46d4
Add collection cache in articles/full_comment_area (#15278)
* Add collection cache in articles/full_comment_area

* Add missing file
2021-11-04 10:38:29 -04:00
Daniel Uber
307f088d05
Add assets precompile check to the miscellaneous tasks node (#15280)
* Add assets precompile check to the miscellaneous tasks node

* Add unrecognized js syntax

This should trip the precompile step?

* use production mode to precompile

The containerfile does this, and we don't see the same failures unless
we do too

* remove unrecognized syntax from pipeline js

This failed correctly during the build during
https://app.travis-ci.com/github/forem/forem/jobs/546569306 and
validates the test will fail if we get in this situation.
2021-11-03 18:09:44 -05:00
dependabot[bot]
5bdaeef82b
Bump @babel/preset-env from 7.15.8 to 7.16.0 (#15272)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.15.8 to 7.16.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.0/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-03 14:41:15 -05:00
Daniel Uber
dc35f8ed24
Remove optional chaining syntax from comments page initializer (#15277)
* Remove questionable syntax from comments initializer

Not sure what ?. is, changing to . to placate the asset precompiler

* Restore conditional access

Rather than changing the ?. to ., wrap the chained access in a guard
clause.

* Fix error in logic

First pass had wrapped this in an "if currentUser" which caused the
else block only to hide comments when no user was logged in, however
the actual behavior should have been to hide comments unless current
user was an article author.
2021-11-03 12:04:28 -05:00
Suzanne Aitchison
89faac306a
treat cmd and ctrl key shortcuts separately on macOS (#15265)
* treat cmd and ctrl key shortcuts differently on macOS

* consolidate shortcut key string into Runtime helper
2021-11-03 11:54:15 +00:00
dependabot[bot]
0c693aad0d
Bump @babel/core from 7.15.8 to 7.16.0 (#15268)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.15.8 to 7.16.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.0/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-03 11:29:46 +07:00
William Kennedy
6a8fcf6f33
HTML tag and attribute matcher (#15091)
* HTML tag and attribute matcher

This regex was designed for the following matches. It should ignore
plain text

<tag>
</tag>
<hr/>
<div class="signout_confirm-wrapper">
" target="_blank" rel="noopener me" class="profile-header__meta__item p-1">
class="crayons-layout crayons-layout--limited-l crayons-layout--2-cols crayons-layout--2-cols--1-2 pt-4 m:pt-0"
href="javascript:void(0);"
id="asdf"
class="sas"
data-profile-user-id="asdf">sads</s>
data-tag=""

* added rails sanitizer

* removed swap file

* Update bin/untranslated_erb

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

* revert gitignore

Co-authored-by: Michael Kohl <me@citizen428.net>
2021-11-03 11:27:12 +07:00
Akash Srivastava
4cb48768f9
Added collapsed hidden comments to author's article/podcast episode view (#14018)
* Handling hiding/collapsing hidden comments client side

* Updated comment quality text

* Added placeholder for comments against podcast episodes

* Added logic for encompassing co-author-ids in articles

* Removed rspecs validating non-presence of hidden comments in dom

* Fixed hiding flow on comments page for a commentable

* Fixed e2e specs

* Addressed feedback on e2e tests
2021-11-03 11:08:04 +07:00
Lewis Sparlin
71e90a41f5
Disable all providers when providers_to_enable param is blank (#15260)
* Disable all providers when providers_to_enable param is blank

* Remove guard, a couple more spec examples

* Update app/services/settings/authentication/upsert.rb

Co-authored-by: Fernando Valverde <fernando@visualcosita.com>

Co-authored-by: Fernando Valverde <fernando@visualcosita.com>
2021-11-02 21:20:26 -04:00
Kushal Niroula
87244c345c
Fix: cannot unpin articles using checkbox (#15090)
Co-authored-by: rhymes <github@rhymes.dev>
Co-authored-by: Arit Amana <msarit@gmail.com>
2021-11-02 13:50:56 -04:00
Jeremy Friesen
da36b5fd17
Refactoring to extract common interface (#15229)
This is a hypothetical and experimental interface change.  The goal of
the change is to begin looking at what a "Feed"'s method interface would
look like.

I would like to reduce the controller logic necessary for deciding on
different strategies, and instead defer to a builder/strategy lookup
pattern.
2021-11-02 13:16:09 -04:00
Ridhwana
9727cda630
feat: update the link (#15273) 2021-11-02 10:29:54 -05:00
dependabot[bot]
8e5f55c95e
Bump cypress from 8.6.0 to 8.7.0 (#15247)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-02 11:23:31 -04:00