Commit graph

11278 commits

Author SHA1 Message Date
Daniel Uber
d894fc97f2
Tiny cleanup of temp debugging puts from spec (#17129)
This was in place to verify the rendered tag matched expectations,
doesn't need to be in the test output anymore.
2022-04-05 13:21:38 -06:00
Daniel Uber
76470febb7
Expect to raise error should use a block (#17131)
* Expect to raise error should use a block

This is kind of pedantic, since we _had_ been using a lambda, and
calling as a value. Now explicitly call the proc in a block and expect
the block to raise error.

* Replace lambda with block

Replace lambda passed as a value to an implicit block with a block.
2022-04-05 13:21:23 -06:00
dependabot[bot]
bd980c3dd7
Bump test-prof from 1.0.7 to 1.0.8 (#17136)
* Bump test-prof from 1.0.7 to 1.0.8

Bumps [test-prof](https://github.com/test-prof/test-prof) from 1.0.7 to 1.0.8.
- [Release notes](https://github.com/test-prof/test-prof/releases)
- [Changelog](https://github.com/test-prof/test-prof/blob/master/CHANGELOG.md)
- [Commits](https://github.com/test-prof/test-prof/compare/v1.0.7...v1.0.8)

---
updated-dependencies:
- dependency-name: test-prof
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

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

* Bump CLA assistant

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dan Uber <dan@forem.com>
2022-04-05 13:50:35 -05:00
dependabot[bot]
0321232261
Bump cloudinary from 1.22.0 to 1.23.0 (#17135)
Bumps [cloudinary](https://github.com/cloudinary/cloudinary_gem) from 1.22.0 to 1.23.0.
- [Release notes](https://github.com/cloudinary/cloudinary_gem/releases)
- [Changelog](https://github.com/cloudinary/cloudinary_gem/blob/master/CHANGELOG.md)
- [Commits](https://github.com/cloudinary/cloudinary_gem/compare/1.22.0...1.23.0)

---
updated-dependencies:
- dependency-name: cloudinary
  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>
2022-04-05 13:35:19 -05:00
dependabot[bot]
7e1a5888fd
Bump metainspector from 5.11.2 to 5.12.0 (#17134)
Bumps [metainspector](https://github.com/metainspector/metainspector) from 5.11.2 to 5.12.0.
- [Release notes](https://github.com/metainspector/metainspector/releases)
- [Changelog](https://github.com/metainspector/metainspector/blob/master/CHANGELOG.md)
- [Commits](https://github.com/metainspector/metainspector/compare/v5.11.2...v5.12.0)

---
updated-dependencies:
- dependency-name: metainspector
  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>
2022-04-05 12:28:07 -06:00
dependabot[bot]
ed2776a83f
Bump i18n-tasks from 1.0.6 to 1.0.7 (#17133)
Bumps [i18n-tasks](https://github.com/glebm/i18n-tasks) from 1.0.6 to 1.0.7.
- [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/v1.0.6...v1.0.7)

---
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>
2022-04-05 12:26:00 -06:00
Jeremy Friesen
c3c884f4d0
Conditional rendering of "Create Post" link (#17076)
* WIP - Conditional rendering of "Create Post" link

This PR builds on the conversation from forem/forem#17056 and moves in a
slightly different direction.

Important in all of this is that the ability to create a post is
enforced on the server.  If the "Create Post" button were to be visible
but the user couldn't create a post when they clicked the button, they
would get an authorization error (or some such response).

This PR posits a different and perhaps competing approach to
forem/forem#16606.  This PR provides a general approach in which we add
class attributes in our HTML erb files.

Note: I have not included Cypress tests as I don't want to yet commit
that time.  I'm also wondering if this is the "right" thing to do.  I
definitely think we want to add some JS tests.  But could we do JS and
unit tests?  (How do we reach consensus regarding our test approach?)

Again, thank you for the conversation and expect an even more "complete"
PR after we have our discussion.

* Extracting AsyncInfo model to ease testing

* Renaming forbidden to visible

* Adding cypress test to assert no 'Create Post'

These are always treacherous.  What happens when we rename the button?
The test will continue to work.

* Apply suggestions from code review

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

* Switching to pack file for policy

Follows on [Suzanne's comment](https://github.com/forem/forem/pull/17076#issuecomment-1088567286)

* Update app/javascript/packs/applyApplicationPolicyToggles.js

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

Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
2022-04-05 12:47:12 -04:00
Jeremy Friesen
3c1206cf8f
Ensuring users can preview already published posts (#17123)
Prior to this commit

This would have been a bug, if someone had:

1. Toggled on the :limit_post_creation_to_admins feature flag
2. Wasn't an admin
3. Already had a published post
4. Went to edit the post and attempted to preview it

Related to the following issues:

- forem/forem#16908
- forem/forem#16944
- forem/forem#16837
- forem/forem#16942
2022-04-05 12:31:02 -04:00
Jeremy Friesen
78933d0636
Applying more liberal editor config policy (#17125)
Prior to this commit, only those who could create posts could edit their confi

However, we are allowing users who can't create posts to edit posts.  So
we want to allow for them to change their editor configuration.

Revisits
- forem/forem#16516

Supplants
- forem/forem#16778

Related to
- forem/forem#17123
- forem/forem#16908
2022-04-05 11:38:41 -04:00
dependabot[bot]
f8a39bb596
Bump @storybook/addon-a11y from 6.4.19 to 6.4.20 (#17108)
Bumps [@storybook/addon-a11y](https://github.com/storybookjs/storybook/tree/HEAD/addons/a11y) from 6.4.19 to 6.4.20.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/v6.4.20/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.20/addons/a11y)

---
updated-dependencies:
- dependency-name: "@storybook/addon-a11y"
  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>
2022-04-05 08:27:53 -06:00
dependabot[bot]
5abfdcd235
Bump @storybook/addon-controls from 6.4.19 to 6.4.20 (#17112)
Bumps [@storybook/addon-controls](https://github.com/storybookjs/storybook/tree/HEAD/addons/controls) from 6.4.19 to 6.4.20.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/v6.4.20/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.20/addons/controls)

---
updated-dependencies:
- dependency-name: "@storybook/addon-controls"
  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>
2022-04-05 08:20:14 -06:00
Daniel Uber
85749d83d9
Fix "current period" admin charts data examples (#17118)
* Disable current period specs

These are failing about half of the time (when the test runs east of
UTC, like Perth or Astana, the counts are incorrect, when the test
runs west of UTC like America/Chicago or Alaska, it passes).

* Cheat by setting clock to noon UTC

This aligns article published dates in ruby with those calculated by
postgresql. Copy the decision made in
https://github.com/forem/forem/pull/3518 for the analytics service.

* Remove testing comments

I had added titles to some of the articles I wanted excluded from the
result to confirm they were being included.
2022-04-05 08:51:36 -05:00
dependabot[bot]
8f5b1ef6bd
Bump canvas from 2.9.0 to 2.9.1 (#17121)
Bumps [canvas](https://github.com/Automattic/node-canvas) from 2.9.0 to 2.9.1.
- [Release notes](https://github.com/Automattic/node-canvas/releases)
- [Changelog](https://github.com/Automattic/node-canvas/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/node-canvas/compare/v2.9.0...v2.9.1)

---
updated-dependencies:
- dependency-name: canvas
  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>
2022-04-05 07:40:04 -06:00
dependabot[bot]
f1c1f4f46e
Bump honeybadger from 4.12.0 to 4.12.1 (#17103)
* Bump honeybadger from 4.12.0 to 4.12.1

Bumps [honeybadger](https://github.com/honeybadger-io/honeybadger-ruby) from 4.12.0 to 4.12.1.
- [Release notes](https://github.com/honeybadger-io/honeybadger-ruby/releases)
- [Changelog](https://github.com/honeybadger-io/honeybadger-ruby/blob/master/CHANGELOG.md)
- [Commits](https://github.com/honeybadger-io/honeybadger-ruby/compare/v4.12.0...v4.12.1)

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

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

* Wake up, Travis

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Julianna Tetreault <32834804+juliannatetreault@users.noreply.github.com>
2022-04-05 07:39:51 -06:00
dependabot[bot]
118282a004
Bump @storybook/preact from 6.4.19 to 6.4.20 (#17109)
Bumps [@storybook/preact](https://github.com/storybookjs/storybook/tree/HEAD/app/preact) from 6.4.19 to 6.4.20.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/v6.4.20/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.20/app/preact)

---
updated-dependencies:
- dependency-name: "@storybook/preact"
  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>
2022-04-05 07:25:24 -06:00
dependabot[bot]
8b9f6f7039
Bump @storybook/addon-storysource from 6.4.19 to 6.4.20 (#17102)
Bumps [@storybook/addon-storysource](https://github.com/storybookjs/storybook/tree/HEAD/addons/storysource) from 6.4.19 to 6.4.20.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/v6.4.20/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.20/addons/storysource)

---
updated-dependencies:
- dependency-name: "@storybook/addon-storysource"
  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>
2022-04-05 07:13:37 -06:00
Suzanne Aitchison
87dc5da17b
tweak crayons layout for admin section (#17122) 2022-04-05 13:14:50 +01:00
dependabot[bot]
dc362b66ce
Bump @storybook/addon-links from 6.4.19 to 6.4.20 (#17114)
Bumps [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/addons/links) from 6.4.19 to 6.4.20.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/v6.4.20/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.20/addons/links)

---
updated-dependencies:
- dependency-name: "@storybook/addon-links"
  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>
2022-04-05 09:55:41 +01:00
Julianna Tetreault
d23fe02a55
Removes a letter from E2E expectation in creatorSignup.spec.js (#17117) 2022-04-04 22:12:31 -04:00
dependabot[bot]
df354f2a30
Bump @storybook/builder-webpack5 from 6.4.19 to 6.4.20 (#17104)
Bumps [@storybook/builder-webpack5](https://github.com/storybookjs/storybook/tree/HEAD/lib/core) from 6.4.19 to 6.4.20.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/v6.4.20/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.20/lib/core)

---
updated-dependencies:
- dependency-name: "@storybook/builder-webpack5"
  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>
2022-04-04 14:09:03 -06:00
Jeremy Friesen
d181041ae2
Removing uncalled method ✂✂✂ (#17110)
Introduced in forem/forem#3176, it appears that this method has been
along for the ride.

How did I find this?  I saw an exception and realized that we cast our
comment IDs from base-26 integer format to base-10.  I decided to look
through our code for `/\.to_\w\(26\)/` and stumbled upon the now removed
instance.

Quickly looking at the code, it appeared that this method was never
called.

So ✂✂✂
2022-04-04 16:05:53 -04:00
dependabot[bot]
0963f72730
Bump @storybook/manager-webpack5 from 6.4.19 to 6.4.20 (#17101)
Bumps [@storybook/manager-webpack5](https://github.com/storybookjs/storybook/tree/HEAD/lib/core) from 6.4.19 to 6.4.20.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/v6.4.20/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.20/lib/core)

---
updated-dependencies:
- dependency-name: "@storybook/manager-webpack5"
  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>
2022-04-04 13:42:34 -06:00
Dwight Scott
71294dca14
OpenGraph fallback for Embeds (merge-by-any-core) (#17001)
* WIP -- start of OpenGraph class that wraps MetaInspector gem

* use properties method instead of hash

* Update app/services/open_graph.rb

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update app/services/open_graph.rb

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update app/services/open_graph.rb

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update app/services/open_graph.rb

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update app/services/open_graph.rb

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update app/services/open_graph.rb

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* address PR feedback

* adding some specs

* gem vendor cache

* more specs

* lock metainspector gem to 5.11

* Update app/services/open_graph.rb

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* WIP -- start of incorporating the open graph into the view

* regex match anything

* Update app/liquid_tags/open_graph_tag.rb

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Refactors and Improvements

* build UI (some wonkiness; see loom)

* UI improvements

* add hyperlink to embed url

* display site_name conditionally

* Make PR review changes; implement A-tag fallback for OG

* Address PR review comments

* Fix failing spec

* deleted superfluous assignment; switched filename annotations off

* nudge Travis

* Address PR feedback

* attempting to apply custom styles

* update specs

* update specs

* add favicon if exists

* remove site-name method

* styling changes 

* nudge Travis

* PR review comments

* keep border around A-tag fallback

* use preferred description

* remove www prefix from url

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Arit Amana <msarit@gmail.com>
2022-04-04 15:31:38 -04:00
Monica Mateiu
99401449d4
Display analytics up to yesterday instead of today (#17064)
Stop displaying admin analytics for current day, as the data is incomplete. Instead, show analytics for any given period up to yesterday
2022-04-04 15:17:32 -04:00
Jeremy Friesen
378aebce65
Removing yard doc generation warnings (#17090) 2022-04-04 15:03:22 -04:00
dependabot[bot]
fa78ffa4cc
Bump sidekiq-unique-jobs from 7.1.15 to 7.1.16 (#17099)
Bumps [sidekiq-unique-jobs](https://github.com/mhenrixon/sidekiq-unique-jobs) from 7.1.15 to 7.1.16.
- [Release notes](https://github.com/mhenrixon/sidekiq-unique-jobs/releases)
- [Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v7.1.15...v7.1.16)

---
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>
2022-04-04 15:02:41 -04:00
dependabot[bot]
107e252042
Bump i18n-tasks from 1.0.5 to 1.0.6 (#17100)
Bumps [i18n-tasks](https://github.com/glebm/i18n-tasks) from 1.0.5 to 1.0.6.
- [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/v1.0.5...v1.0.6)

---
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>
2022-04-04 15:01:47 -04:00
dependabot[bot]
fd9c54356f
Bump @storybook/addons from 6.4.19 to 6.4.20 (#17105)
Bumps [@storybook/addons](https://github.com/storybookjs/storybook/tree/HEAD/lib/addons) from 6.4.19 to 6.4.20.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/v6.4.20/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.20/lib/addons)

---
updated-dependencies:
- dependency-name: "@storybook/addons"
  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>
2022-04-04 15:00:44 -04:00
dependabot[bot]
20392965fc
Bump i18n-js from 3.8.0 to 3.9.2 (#17106)
Bumps [i18n-js](https://github.com/fnando/i18n-js) from 3.8.0 to 3.9.2.
- [Release notes](https://github.com/fnando/i18n-js/releases)
- [Changelog](https://github.com/fnando/i18n-js/blob/v3.9.2/CHANGELOG.md)
- [Commits](https://github.com/fnando/i18n-js/compare/v3.8.0...v3.9.2)

---
updated-dependencies:
- dependency-name: i18n-js
  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>
2022-04-04 15:00:24 -04:00
Daniel Uber
1a07ad8d9e
Profile attribute names should be unique and non-empty (#16396)
* transliterate when generating attribute names to avoid emptiness

If you enter a non-ascii (non `\w` matching) string as the profile
field label, the attribute name is the empty string.

This causes problems outlined in #16391

To avoid losing user provided data, transliterate (Sterile is the same
tool we're using for Article#title_to_slug) before matching against
the word regex.

If we persist an empty string, or persist a non-`\w` name, the
coordinating regex in Profile::ATTRIBUTE_NAME_REGEX will leave a nil
match and raise NoMethodError (the method missing is for
match[:attribute_name] when match was nil, not Profile - that's the
next commit.

* Guard against nil matches

If an attribute name doesn't match the regex, the match is nil, and
trying to access (nil)[:attribute_name] raises a NoMethodError.

If there was no match, assume profile does not respond to the
selector, and don't handle it in method missing.

* Ensure generated attribute name is valid before saving

This raises a validation error if the generated name (from the label)
would be empty.

It's not an optimal error message (since the user can't see the
internal attribute name) but it prevents persisting broken/empty data

* actually raise error when validating

validate/valid? only return true or false (and set errors on the
object). In order to reject the creation, we need to raise a
validation error, not only call validate. I think this is because the
execution of before_create hooks happens after validation (which is
why the validation was only checked on update, not create).

* Generate an attribute name completely independent of the field label

This prevents mistakenly labeling a field "Class" or "Association" or
one of the other hundred public methods an AR model like Profile
exposes. Since attribute_name will be passed to `profile.public_send`
we really shouldn't build selectors from user supplied inputs.

* Use the admin supplied label in the sidebar

The profile decorator is used in the Users#show page to populate the
sidebar fields. Don't use the attribute name (which we mangled during
creation, and now generate randomly) as the label, use the label.

* Make the label lookup null safe, and filter attributes more

* Update data update script to not expect predictable labels

This is low impact since it ran in july, but we no longer know what
attribute name a label will create.

* Fix moderator spec

"Test Field" label no longer predictably generates :test_field as an
attribute name. Ask the field what it's name is before asking profile
about it.

* Fix profile preview card request spec

Remove the assumption that profile responds to a method name based on
the label for Work and Education fields.

* Update old DUS and its test

This can probably be archived

* Update profile spec to use fields generated attribute names

We used to "know" how attributes were generated from labels. Now we don't.

* update e2e seeds for profile field change

* Don't expect attribute name to be based on the label

* expect created profile fields respond to their attribute name

* Update system test

The label, not the attribute name, is shown on the profile form (the
field has an id related to the attribute name, but the view shows the
mutable/human-readable label).

* Keep the field title lowercase when sending the json preview card

The userMetadata component expects "work" and "education" to be
attributes of the metadata, but the ui_attributes_for() method was
titlizing these (for display).

Ideally we wouldn't have "special purposed" these two field names, but
they're there.

* update profile field by attribute name, not based on label

* Update profile field removal assumptions

We don't know what the method selectors will be, we have to ask.

* remove old test

* Update translations for Education and Work

Since the ui_attributes_for(area:) now gives the label, not the
attribute, we need to match the label of the profile field.

Note to self: this exposes an issue in localizing the custom profile
fields (probably a bigger problem for large, international communities
like DEV than some others, but trying to match static translation
files against user-modifiable database records seems like a problem
we'll see again).

* Empty commit to retrigger buildkite

* Remove profile field migration update scripts

Cloned the specs from the other "remove unused scripts" script.

* Remove unused scripts

The data update script removes the entry from the table (recording
that these have run) - we also want to remove the files (preventing
them from running again).

* remove unneeded spec for removed file

* when translation for header area field not found, use the title

Only Work and Education already have keys in the yml translation file,
and there's not a great (or easy?) way to make multiple translations
on these fields right now.

Since an admin can create a new field, and assign it to the header
area, we can't assume the code has a configured translation key for
this field.

Fallback to the title (we do this in another context already) if
there's no translation.

* PR feedback: Avoid n+1 query for labels

the original implementation of "label_for_attribute" had an n+1 query
looping over each matched key.

Follow suggested improvement and pull labels and attributes at once
from the db and modify the returned hash.

* Downcase title before looking for translation key

This avoids putting "odd" capitalized keys into the yml translation
file

Revert addition of "Work" and "Education" to the users files.

* use a let binding for duplicated test data

* Update app/models/profile_field.rb

prefer SecureRandom.hex for a dashless uuid (instead of removing the dashes).

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

Co-authored-by: Jamie Gaskins <jgaskins@hey.com>
2022-04-04 12:14:02 -05:00
Jeremy Friesen
1b2aa68a4d
Ensuring confirmation and flash message for spaces (#17072)
* Ensuring confirmation and flash message for spaces

This change delivers an accessible form, and while it doesn't remove the
Save button nor produce a modal it does deliver the minimum viable
functionality.

In conversations with Suzanne, we spent an hour looking at how we might
make an accessible modal with the checkbox and state management
required as we as removing save buttons.

There are two paths:

1. Extend the current, yet deprecated, stimulus modal controller.
2. Extend the Preact modal work done for the Members Detail View.

We spent about 15 minutes pursuing the stimulus modal controller route,
and realized how much cruft it added to the system.  Not ideal and very
opaque in it's interaction.

The second one we talked about, but for our alloted time was inadequate
to begin further work.  To deliver on that generalized preact modal will
require at least an afternoon of work.

Closes forem/forem#17032

* Update config/locales/controllers/admin/fr.yml

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

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

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

Co-authored-by: Ridhwana <Ridhwana.Khan16@gmail.com>
2022-04-04 11:49:15 -04:00
Jeremy Friesen
3e3ca36d0f
Removing unused instance_variable (#17088)
While reviewing the authorization system, I saw a curious instance
variable and wanted to know more about it.  Turns out, it's no longer
referenced.

`$ rg "on_comments_page"` exits status 1 (e.g. no matches)
2022-04-04 08:47:25 -04:00
Jeremy Friesen
2fda726409
Revert "Added a way to sort comments on an article (#16686)" (#17093)
This reverts commit 1345334b33.
2022-04-04 08:36:34 -04:00
Ben Halpern
9f44530491
Add "comments_sort" to safe params list (#17083) 2022-04-01 18:27:49 -04:00
Ben Halpern
050976af25
Add "period" to safe params list (#17079) 2022-04-01 14:18:07 -04:00
Jeremy Friesen
3a08716ad3
Reducing subtle duplication of effort/logic (#17078)
Prior to this commit, when we change attributes for a user we might
resave each article.  The purpose of the resave is to update some of the
cached attributes of an article.

This removes some redundant code.  The following removed code has
an `article.save` call.  Which, the callbacks in the article (see below)
already clear the cache.

```ruby
def resave_articles
  articles.find_each do |article|
    if article.path
      cache_bust = EdgeCache::Bust.new
      cache_bust.call(article.path)
      cache_bust.call("#{article.path}?i=i")
    end
    article.save
  end
end
```

8e6981aac5/app/models/article.rb (L164)

8e6981aac5/app/models/article.rb (L881-L888)

This was discovered in triaging forem/forem#17041
2022-04-01 13:32:44 -04:00
Jeremy Friesen
d462abb5b5
Ensuring article's cache updates on org image update (#17052)
There are three major things occurring in this pull request:

1. Renaming `Article#update_cached_user` to `Article#set_cached_entities`.
2. Reducing an organization's direct knowledge of which of the org's
   attributes an article caches.
3. Removing duplicate calls to update the article associated with the
   organization.

For renaming to `Article#set_cached_entities`, the prior method implied
we were updating the persistence layer.  However, we were not making any
save nor update calls.  This rename should clarify intention.

For reducing knowledge, the comments for
`Article::ATTRIBUTES_CACHED_FOR_RELATED_ENTITY` should explain the details.

And last, removing the duplicate calls; we had three methods that were
attempting to build and update the `Article#cached_organization`'s
value.

Closes forem/forem#17041
2022-04-01 10:54:55 -04:00
VISHAL DEEPAK
1345334b33
Added a way to sort comments on an article (#16686)
* Added a way to sort comments on an article

* Sorting of comments now uses crayons-dropwn. Some minor fixes as per comments on PR

* Add and fix test cases for sorting comments functionality

* Changes in code for sort comments.  Code  is more aligned with forem's conventions

* Added cyperss tests for sort comments on an article. Cleaned up code to better follow forem conventions

* Get fresh handle of triggerButton everytime clickOustideListener is clicked. Fix Cypress test cases to reflect the earlier.
2022-04-01 09:26:18 -05:00
Jeremy Friesen
a8ec0c3058
Ensuring that established tags don't respond 404 (#17058)
Prior to this commit, we determined the 404 status based on the final
scoped query of the articles.  That scoped query would limit to a
timeframe.

However, what we want is to not render a 404 status if we have an
"established" tag.  An established tag means that we have at least one
published article (regardless of when we published).

Fixes forem/forem#16932
2022-04-01 10:25:28 -04:00
dependabot[bot]
43c20d314f
Bump omniauth-google-oauth2 from 1.0.0 to 1.0.1 (#17067)
Bumps [omniauth-google-oauth2](https://github.com/zquestz/omniauth-google-oauth2) from 1.0.0 to 1.0.1.
- [Release notes](https://github.com/zquestz/omniauth-google-oauth2/releases)
- [Changelog](https://github.com/zquestz/omniauth-google-oauth2/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zquestz/omniauth-google-oauth2/compare/v1.0.0...v1.0.1)

---
updated-dependencies:
- dependency-name: omniauth-google-oauth2
  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>
2022-03-31 16:57:44 -04:00
Mac Siri
563d3e2fc4
Remove Feeds::Import's custom metric (#17075) 2022-03-31 16:41:27 -04:00
dependabot[bot]
7a5bfb503f
Bump i18n-js from 3.9.1 to 3.9.2 (#17073)
Bumps [i18n-js](https://github.com/fnando/i18n-js) from 3.9.1 to 3.9.2.
- [Release notes](https://github.com/fnando/i18n-js/releases)
- [Changelog](https://github.com/fnando/i18n-js/blob/v3.9.2/CHANGELOG.md)
- [Commits](https://github.com/fnando/i18n-js/compare/v3.9.1...v3.9.2)

---
updated-dependencies:
- dependency-name: i18n-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>
2022-03-31 13:46:21 -06:00
dependabot[bot]
b974380242
Bump honeybadger from 4.11.0 to 4.12.0 (#17069)
Bumps [honeybadger](https://github.com/honeybadger-io/honeybadger-ruby) from 4.11.0 to 4.12.0.
- [Release notes](https://github.com/honeybadger-io/honeybadger-ruby/releases)
- [Changelog](https://github.com/honeybadger-io/honeybadger-ruby/blob/master/CHANGELOG.md)
- [Commits](https://github.com/honeybadger-io/honeybadger-ruby/compare/v4.11.0...v4.12.0)

---
updated-dependencies:
- dependency-name: honeybadger
  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>
2022-03-31 13:46:01 -06:00
dependabot[bot]
2a127477e7
Bump ransack from 2.6.0 to 3.0.0 (#17068)
Bumps [ransack](https://github.com/activerecord-hackery/ransack) from 2.6.0 to 3.0.0.
- [Release notes](https://github.com/activerecord-hackery/ransack/releases)
- [Changelog](https://github.com/activerecord-hackery/ransack/blob/main/CHANGELOG.md)
- [Commits](https://github.com/activerecord-hackery/ransack/compare/v2.6.0...v3.0.0)

---
updated-dependencies:
- dependency-name: ransack
  dependency-type: direct:production
  update-type: version-update:semver-major
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-31 15:23:36 -04:00
dependabot[bot]
81b9a238bf
Bump debug from 1.4.0 to 1.5.0 (#17070)
Bumps [debug](https://github.com/ruby/debug) from 1.4.0 to 1.5.0.
- [Release notes](https://github.com/ruby/debug/releases)
- [Commits](https://github.com/ruby/debug/compare/v1.4.0...v1.5.0)

---
updated-dependencies:
- dependency-name: debug
  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>
2022-03-31 13:47:04 -05:00
dependabot[bot]
462a3fbb99
Bump pg from 1.3.4 to 1.3.5 (#17071)
Bumps [pg](https://github.com/ged/ruby-pg) from 1.3.4 to 1.3.5.
- [Release notes](https://github.com/ged/ruby-pg/releases)
- [Changelog](https://github.com/ged/ruby-pg/blob/master/History.rdoc)
- [Commits](https://github.com/ged/ruby-pg/commits)

---
updated-dependencies:
- dependency-name: pg
  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>
2022-03-31 13:45:43 -05:00
VISHAL DEEPAK
ce1ec7c11c
Award badges for github commits with various milestones (#14381)
* Award badges for github commits with various milestones

* Fixes on award badges to github commits

* Add data update script to add badges

* Disable award_multi_commit_contributors

* Revert "Disable award_multi_commit_contributors"

This reverts commit 1852f34fd45bd23b716cf80ebbd9ce2c1879a819.

* Remove DUS

* Change badge name

* Only use award_contributors

* Simplify specs

* Revert "Simplify specs"

This reverts commit 230514ccea68445b057991d3d536fbb2a590a3b1.

* Revert "Only use award_contributors"

This reverts commit a92735a079f43610aedc805f74f032466d23f1cf.

Co-authored-by: Mac Siri <krairit.siri@gmail.com>
2022-03-31 12:46:50 -04:00
Suzanne Aitchison
71f9a56bd8
Admin member index: responsive UI should occupy full width (#17065)
* allow overflow on member index page, adjust header alignment

* some tweaks to inner mobile layout
2022-03-31 15:52:39 +01:00
Daniel Uber
df4020efa6
Update profile admin instructions (#17062)
* Update instructions copy (remove placeholder)

Admin isn't localized well so I'm leaving this without translation for now.

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

remove excess spacing

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

Co-authored-by: Julianna Tetreault <32834804+juliannatetreault@users.noreply.github.com>
2022-03-30 15:32:56 -05:00
Jeremy Friesen
010fc3bce0
Adjusting logic to match intention (#17015)
Unearthed in a deep read of the code during the review of forem/forem#16997
2022-03-30 16:21:58 -04:00