Commit graph

10335 commits

Author SHA1 Message Date
Jeremy Friesen
c1e5d4884d
Deprecating User#trusted in favor of User#trusted? (#15639)
`User#trusted?` is more Ruby idiomatic than `User#trusted`.  This helps
align the various "User#question?" methods.

I've added a deprecation warning, but don't believe that this is active
in the code-base.
2021-12-02 08:54:58 -05:00
Suzanne Aitchison
6a7b9361db
announce image upload success via aria live (#15650) 2021-12-02 12:46:33 +00:00
Ridhwana
842e18a0fc
chore: remove max-height (#15647) 2021-12-02 11:38:20 +02:00
Ridhwana
19bc43360b
logo (#15643) 2021-12-02 10:11:30 +02:00
Nick Taylor
3f2569b938
Forem Creation: Logo Upload & Resizing (#15499)
* wip - Got logo upload working

* Now have the logo rendering in the header and in the admin image config section.

* Small layout tweak for admin -> config -> images -> logo.

* feat: create a logo uploader with some tests

* feat: use the logoUploader instead of the ArticleImageUploader

* feat: return early because svg's do not contain exif or gps data

* chore: we can move the raise outside the transaction as the rest of the transaction won't execute if we raise an error

* feat: add a size range

* WIP: resize an image to a random number for now

* hid the logo behind a feature flag and kept logo_svg as is in the site header.

* Added the jpe file type to the logo uploader.

* Skipped the resizing of an image if it's an SVG in the logo uploader.

* Added content types to the content type logo uploader allow list.

* Synced logo validation with frontend and backend.

* Removed unnecessary ALLOWED_PARAMS elements.

* feat: update the logo upoader and tests

* chore: remove comments

* chore: remove comments

* feat: update the resizing for the images + add the correct content type

* spec: test the versions

* fix: update the Constant

* feat: add the versions of the logo

* feat: populate the settings correctly and consistently

* feat: add an random string to the file name to avoid caching issues

* feat: amend the logo layout

* chore: remove comments

* spec: update

* feat: image type whitelist

* feat: update the logo css and  also just use resized_logo and remove mobile resize

* feat: add a max-height

* only add site-logo if the feature flag is off

* Renamed IMAGE_TYPE_WHITELIST to IMAGE_TYPE_ALLOWLIST

* Update app/controllers/admin/creator_settings_controller.rb

Co-authored-by: Michael Kohl <citizen428@forem.com>

* Update app/uploaders/logo_uploader.rb

Co-authored-by: Michael Kohl <citizen428@forem.com>

* Update app/uploaders/logo_uploader.rb

Co-authored-by: Michael Kohl <citizen428@forem.com>

* Update app/uploaders/logo_uploader.rb

Co-authored-by: Michael Kohl <citizen428@forem.com>

* Update spec/uploaders/logo_uploader_spec.rb

Co-authored-by: Julianna Tetreault <32834804+juliannatetreault@users.noreply.github.com>

* Update spec/uploaders/logo_uploader_spec.rb

Co-authored-by: Julianna Tetreault <32834804+juliannatetreault@users.noreply.github.com>

* chore: revert admin change

* refactor: use a static value for directory

* feat: freeze constants

* feat: remove the logo requirement

* chore: spacing

* remove logo requirement

Co-authored-by: Ridhwana <ridhwana.khan16@gmail.com>
Co-authored-by: Michael Kohl <citizen428@forem.com>
Co-authored-by: Julianna Tetreault <32834804+juliannatetreault@users.noreply.github.com>
2021-12-02 09:49:09 +02:00
Nick Taylor
07d04f2d66
Fixed lint:frontend npm script (#15631)
* Set no-var eslint rule to error.

* Fixed npm script lint:frontend

* Replaced vars with lets as per new no-var erroring out rule.

* Fixed lint errors that surfaced after fixing the lint:frontend npm script.
2021-12-02 07:42:30 +00:00
Jeremy Friesen
5ee8764749
Factoring code to define Article.approved (#15600)
As I'm working on #15359 I wanted to favor using scopes over the raw
`where(approved: true)`.
2021-12-01 22:45:32 -05:00
Arit Amana
abec2e58e9
First Few Unified Embed implementations (Liquid Tags) (#15550)
* Adding {% embed %} for liquid tags

This commit introduces the crease for us to unify our embed experience.
The main concept is introducing a lookup function for the given "link".
And with that lookup function find the underlying `LiquidTagBase` that
can handle the specific URL.

This is part proof of concept and part laying the foundation for a
plugin architecture of different LiquidTags.

We have a lot more work ahead of us to normalize this:

- Update and migrate existing data (not required but hopefully helps us
  deprecate existing liquid tags)
- Move these "embeddable" tags into a module space that eases lookup.
- Document how someone might make a Railstie gem to inject new
  embeddable formats into their application.

Related to #15099

* start adding UnifiedEmbeds to LiqTag models

* add specs for asciinema and codepen liqtags

* new tags and their specs

* complete first pass of liqtag models

* complete implementation for JsFiddleTag

* fixing twittertimeline tag

* almost done with YoutubeTag embed

* remove Medium UnifiedEmbed due to broken image in prod

* remove semi-working unified embed

* update specs

* Address PR review feedback

* add missing spec

* implement PR feedback

* last of PR review-related changes

* fix failing spec

Co-authored-by: Jeremy Friesen <jeremy.n.friesen@gmail.com>
2021-12-01 19:33:34 -05:00
Jeremy Friesen
61b94b5176
Renaming method to reduce surprise (#15632)
Given that we have the roles of `:tech_admin`, `:admin`, and
`:super_admin`, I don't want the surprise of assuming that `user.admin?`
means that they have the role of `:admin`.
2021-12-01 16:38:26 -05:00
dependabot[bot]
719ce073c3
Bump ddtrace from 0.54.0 to 0.54.1 (#15630)
Bumps [ddtrace](https://github.com/DataDog/dd-trace-rb) from 0.54.0 to 0.54.1.
- [Release notes](https://github.com/DataDog/dd-trace-rb/releases)
- [Changelog](https://github.com/DataDog/dd-trace-rb/blob/master/CHANGELOG.md)
- [Commits](https://github.com/DataDog/dd-trace-rb/compare/v0.54.0...v0.54.1)

---
updated-dependencies:
- dependency-name: ddtrace
  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-12-01 14:37:22 -07:00
Jeremy Friesen
6d1268f19b
Fixing logic error for feed (#15611)
* Fixing logic error for feed

Prior to this change, we were forcing features into the feed.

* Adding spec to help ensure parameter match

Prior to this commit, but before I had merged changes into main, the I
had implemented `alias default_home_feed call`.  However, this broke the
interface assumed in the feeds controller.
2021-12-01 13:48:02 -05:00
Jeremy Friesen
4efcf8c3d3
Refactoring to use scope (#15625)
* Refactoring to use scope

Prior to this commit, four methods had similar purpose but different
implementations.  This commit normalizes that and extracts a few
`ActiveRecord::Base` scopes.

Related to #15624

* Fixing typo and tests
2021-12-01 13:14:40 -05:00
Jeremy Friesen
e1bddb5bf8
Replacing User#warned with User#warned? (#15628)
A simply refactor to introduce more idiomatic method names.

Related to #15624
2021-12-01 13:14:16 -05:00
Jamie Gaskins
172906271c
Block more bots (#15626) 2021-12-01 13:06:28 -05:00
Jeremy Friesen
3860f5c7b5
Extracting Article.featured scope (#15612)
In addition adding commentary on the oddly named
`Articles::Feeds::FindFeaturedStory` class given that it never filters
on "featured".
2021-12-01 12:16:32 -05:00
yheuhtozr
cca3bed043
views/shared/authentication etc i18n (#15131)
* views/shared/authentication etc i18n

* remove ja.yml

* Update _providers_registration_form.html.erb

* Update registrations_spec.rb

* Update _email_registration_form.html.erb

* Update _forem_creator_signup.html.erb

* Update spec/requests/registrations_spec.rb

Co-authored-by: Michael Kohl <citizen428@forem.com>

* Update dashboard_spec.rb

* Update dashboard_spec.rb

* Update _forem_creator_signup.html.erb

* Update _forem_creator_signup.html.erb

Co-authored-by: Michael Kohl <citizen428@forem.com>
2021-12-01 18:56:33 +02:00
Ridhwana
25dd42704e
Validate the color contrast ratio before submitting the Creator Settings Form (#15444)
* feat: add a color contrast utility

* feat: add an error when the color contrast is low

* feat: add form validations

* refactor: treat WCAGColorContrast as a library that can be intercanged at any time

* fix: styling

* test: add a test for the contrast

* feat: add test for WCAGColorContrast

* feat: update cypress tests for brand color and color contrast ratios

* feat: update the message to read better

* chore: update the styling

* refactor: address all feedback/suggestions

* Update cypress/integration/creatorOnboardingFlows/creatorSettings.spec.js

Co-authored-by: Nick Taylor <nick@iamdeveloper.com>

* Replaced other .trigger('change')s with .blur()

Co-authored-by: Nick Taylor <nick@iamdeveloper.com>
Co-authored-by: Nick Taylor <nick@dev.to>
2021-12-01 18:49:11 +02:00
Daniel Uber
d0c6088253
quote localized strings in credits/purchase embedded script (#15623)
* Add view test for change submit button

Expect a quoted string for the button values.

* Quote button text in calls to changeSubmitButton

This fixes a parse error (locally now I get an error about not having
a stripe publishing id, which is expected).
2021-12-01 10:07:55 -06:00
Michael Kohl
8be270d3d9
Remove some README badges (#15614) 2021-12-01 10:54:02 -05:00
Suzanne Aitchison
666f105cfb
Revert "Bump @storybook/builder-webpack5 from 6.3.12 to 6.4.1 (#15533)" (#15622)
This reverts commit 90dcb5af47.
2021-12-01 15:40:59 +00:00
Nick Taylor
6b21fe2bac
Fixed test that breaks once upgraded to Node 16. (#15621) 2021-12-01 09:24:03 -06:00
Julianna Tetreault
567dda620f
Remove italics from Community Name field (#15619) 2021-12-01 07:53:45 -07:00
Fernando Valverde
50a73e035e
Avoid email reassignment when connecting OAuth provider (#15609)
* Avoid email reassignment when connecting oauth provider

* Use less intrusive approach (we still want to preserve <provider>_username assignment)

* Add spec to avoid regressions
2021-12-01 09:13:12 -05:00
ludwiczakpawel
eaf0827286
Increase scrollable area on toolbar (#15615)
* increase scorllable area

* fix

* fix

* ..
2021-12-01 13:59:03 +01:00
Jeremy Friesen
0242781b98
Refactoring spec (#15610)
Prior to this change, for each of the context's specs, we first visited
the /top/week path then in all but one case immediately visited another
path.

This created extra requests that weren't necessary.

Relates to #15292 and #15475
2021-12-01 14:45:12 +02:00
Siddeshwar Navaneetharan
da9705b02b
Remove z-index from liquid tags (#15596)
* Remove z-index from liquid tags

Remove the z-index:1 from liquid tags present in 'GithubReadmeTag.scss', 'GithubTag.scss' and 'TwitterTimelineTag.scss'.
The removal of this eliminates the weird visibility issue when the article-show-more-dropdown overlaps the pretty embeds on the page.

* restart build

Co-authored-by: Paweł Ludwiczak <ludwiczakpawel@gmail.com>
2021-12-01 10:35:45 +01:00
Suzanne Aitchison
029d572cb3
markdown toolbar: refactor formatting insert to allow for undo queue (#15543)
* Refactor formatting insert to allow for undo queue

* use delete command to ensure correct behaviour when replacing with empty string
2021-12-01 09:18:43 +00:00
dependabot[bot]
93bbdb1ad9
Bump jest from 27.4.1 to 27.4.2 (#15607)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-01 16:07:01 +07:00
dependabot[bot]
7010c87330
Bump babel-jest from 27.3.1 to 27.4.2 (#15606)
Bumps [babel-jest](https://github.com/facebook/jest/tree/HEAD/packages/babel-jest) from 27.3.1 to 27.4.2.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v27.4.2/packages/babel-jest)

---
updated-dependencies:
- dependency-name: babel-jest
  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-30 14:22:13 -07:00
dependabot[bot]
af54eec701
Bump preact from 10.5.15 to 10.6.2 (#15604)
Bumps [preact](https://github.com/preactjs/preact) from 10.5.15 to 10.6.2.
- [Release notes](https://github.com/preactjs/preact/releases)
- [Commits](https://github.com/preactjs/preact/compare/10.5.15...10.6.2)

---
updated-dependencies:
- dependency-name: preact
  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-30 14:19:11 -07:00
dependabot[bot]
90dcb5af47
Bump @storybook/builder-webpack5 from 6.3.12 to 6.4.1 (#15533)
* Bump @storybook/builder-webpack5 from 6.3.12 to 6.4.1

Bumps [@storybook/builder-webpack5](https://github.com/storybookjs/storybook/tree/HEAD/lib/core) from 6.3.12 to 6.4.1.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/v6.4.1/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.1/lib/core)

---
updated-dependencies:
- dependency-name: "@storybook/builder-webpack5"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

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

* Updated all storybook dependencies to latest that could be updated.

* Updated yarn.lock file.

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nick Taylor <nick@dev.to>
2021-11-30 14:05:02 -07:00
dependabot[bot]
64847eaa9c
Bump chart.js from 3.6.0 to 3.6.1 (#15598)
Bumps [chart.js](https://github.com/chartjs/Chart.js) from 3.6.0 to 3.6.1.
- [Release notes](https://github.com/chartjs/Chart.js/releases)
- [Commits](https://github.com/chartjs/Chart.js/compare/v3.6.0...v3.6.1)

---
updated-dependencies:
- dependency-name: chart.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-30 14:00:43 -07:00
dependabot[bot]
7d51f6a3e0
Bump @storybook/addons from 6.4.0 to 6.4.1 (#15537)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-30 15:38:17 -05:00
Nick Taylor
f6f74e47d9
Now radio buttons in creator settings are on the same line in fieldsets (#15574)
Co-authored-by: ludwiczakpawel <ludwiczakpawel@gmail.com>
2021-11-30 14:56:09 -05:00
ludwiczakpawel
245e70d4a8
Crayons: Buttons vs CTAs (#15311)
* init

* buttons

* buttons, ctas, icons

* ctas fix

* links vs ctas

* alias

* fixes

* add tests for Buttons component

* add tooltip to button story controls

* add link and CTA tests

* add prop types

* docs

* designs

* docs

* focus visible moved to global place

* Updated some component snapshot tests.

* Mocked react-inlinesvg module because of https://github.com/gilbarbara/react-inlinesvg/issues/145\#issuecomment-623453339

* tests

* Copy updates

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

* missed spots

* Apply suggestions from code review

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

* danger accent colors

* node

* colors

* adding code comment

* better prop name: style -> variant

* button new

Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
Co-authored-by: Nick Taylor <nick@dev.to>
2021-11-30 20:40:32 +01:00
ludwiczakpawel
ad8506ee8c
fix (#15538) 2021-11-30 20:40:08 +01:00
Julianna Tetreault
c3082e07d0
Adjusts the spacing between the Creator Settings title and subtitle (#15579) 2021-11-30 12:33:50 -07:00
dependabot[bot]
8012a5fbb6
Bump sidekiq-unique-jobs from 7.1.8 to 7.1.11 (#15552)
Bumps [sidekiq-unique-jobs](https://mhenrixon.github.io/sidekiq-unique-jobs) from 7.1.8 to 7.1.11.

---
updated-dependencies:
- dependency-name: sidekiq-unique-jobs
  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-30 11:32:13 -07:00
dependabot[bot]
157f661d0a
Bump counter_culture from 3.0.0 to 3.1.0 (#15551)
Bumps [counter_culture](https://github.com/magnusvk/counter_culture) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/magnusvk/counter_culture/releases)
- [Changelog](https://github.com/magnusvk/counter_culture/blob/master/CHANGELOG.md)
- [Commits](https://github.com/magnusvk/counter_culture/compare/v3.0.0...v3.1.0)

---
updated-dependencies:
- dependency-name: counter_culture
  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-30 11:21:57 -07:00
Jeremy Friesen
71b76f006c
Fixing broken logic (#15549)
In #15412 I introduced faulty logic, and didn't reuse existing scopes.

For comparison, the original code for comment threshold checks was here:
5d5dbaca95/app/models/comment.rb (L303)

```ruby
Reaction.comment_vomits.where(reactable_id: user.comments.pluck(:id)).size > 2
```

This change restores that and tightens up the scope usage.
2021-11-30 13:15:46 -05:00
Jeremy Friesen
60dc2cc12e
Fixing weighted query hotness grab logic (#15528)
* Fixing weighted query hotness grab logic

Prior to this commit, I carried over (albeit imprecisely) logic from the
LargeForemExperimental.  That logic was to help limit articles to those
that were published since the user's latest page view.

However, I introduced a bug in this transcription.  Now both
LargeForemExperimental and WeightedQueryStrategy use the same logic to
determine the oldest publication date to search for in the feed.

This resolves a bug reported where users were not seeing a large number
of items in their feed.

Incidentally, if a forem has little activity in the 18 hours, there
might be very few items in the feed.

I believe, going forward, we may need to better parameterize how many
hours is considered "stale since last page view".

Related to #15240

* Fixing implementation detail

* Extracting helper method

Prior to this commit, I had introduced a method an put it in a less
ideal module space.  This commit extracts that method to a more readily
shareable module space.

I've added a few more specs to help clarify and verify behavior.

* Updating documentation

* Renaming and documenting variables/constants

* Fixing that which I broke
2021-11-30 12:55:48 -05:00
Jeremy Friesen
29f6853ee9
Refactoring Spam Handler (#15412)
* Refactoring Spam Handler

There's considerable repeated logic between checking spam for an article
and spam for a comment and user.

This attempts to send things through channels that are similar and close
in organization.

* Fixing broken spec

* Fixing spec around recent user

* Update app/models/reaction.rb

Co-authored-by: Michael Kohl <citizen428@forem.com>

* Update app/models/reaction.rb

Co-authored-by: Michael Kohl <citizen428@forem.com>

* Consolidating new user query logic

Prior to this commit there were two separate queries around new user
logic.  With this commit, we're changing the logic to repurpose a site
wide setting.

* Generalizing a previously specific message

* Fixing method name

As part of a recommended refactor, I extracted a method, then renamed
it.  I failed to account for that renaming.

This commit fixes that.

Co-authored-by: Michael Kohl <citizen428@forem.com>
2021-11-30 12:45:12 -05:00
Daniel Uber
7f87efec1f
Add translations for one credit (#15545)
It's possible an organization or user will have just one credit.
When this happens, the translation will fail to render in the view
 (and an error will be raised).

Add key "one:" for personal and organizational credits.
2021-11-30 11:26:14 -06:00
Julianna Tetreault
c3d0a24143
Update the COC and TOS Description on the Creator Settings Form (#15527)
* Refactors the COC and TOS help text on the Creator Settings form

* Fixes spacing between legend and description for COC and TOS
2021-11-30 09:44:29 -07:00
Daniel Uber
e93b4392de
Add single view count translation (#15544)
Fixes an error shown when the article has one view

https://app.honeybadger.io/projects/66984/faults/82770707

```
I18n::InvalidPluralizationData: translation data {:other=>"%{scale} views"} can not be used with :count => 1. key 'one' is missing.
```

Add key 'one' to both translation files for this key.
2021-11-30 09:55:54 -06:00
dependabot[bot]
e94101e949
Bump jest from 27.3.1 to 27.4.1 (#15536)
Bumps [jest](https://github.com/facebook/jest) from 27.3.1 to 27.4.1.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v27.3.1...v27.4.1)

---
updated-dependencies:
- dependency-name: jest
  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-30 08:47:29 -05:00
dependabot[bot]
cd5eb6b510
Bump @babel/preset-env from 7.16.0 to 7.16.4 (#15535)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.16.0 to 7.16.4.
- [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.4/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  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-30 08:46:57 -05:00
Suzanne Aitchison
cbd8179e99
open editor guide in new tab (#15534) 2021-11-30 08:39:09 -05:00
Jeremy Friesen
a9823e001f
Limiting feed queries (#15523)
* Limiting feed queries

Prior to this commit, we were joining on all comments.  With this
change, we're limiting the comments to reflect the same time period as
our article limit.

Hopefully this further improves the performance of the query.

* Removing unintentional puts statement
2021-11-30 08:02:25 -05:00
dependabot[bot]
2c79df6b26
Bump sass from 1.43.4 to 1.44.0 (#15531)
Bumps [sass](https://github.com/sass/dart-sass) from 1.43.4 to 1.44.0.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.43.4...1.44.0)

---
updated-dependencies:
- dependency-name: sass
  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-30 09:46:05 +00:00