Commit graph

1288 commits

Author SHA1 Message Date
rhymes
abf7cf0bbd
Cleanup notifications nav menu markup (#15043)
* Use core keys instead of pluralize

* Cleanup markup and paths

* Add missing key

* Update app/views/notifications/_nav_menu.html.erb

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

* Use regexps everywhere

* Update app/views/notifications/_nav_menu.html.erb

Co-authored-by: Arit Amana <32520970+msarit@users.noreply.github.com>

Co-authored-by: Michael Kohl <citizen428@forem.com>
Co-authored-by: Arit Amana <32520970+msarit@users.noreply.github.com>
2021-10-15 18:47:39 +02:00
Michael Kohl
a1f512e49e
✂✂✂ Remove events (#15062)
* Remove events

* Fix schema

* Fix specs

* More removal
2021-10-15 09:31:08 -04:00
Ben Halpern
333775b831
Admin productivity: Allow admins to unpublish all posts from a user (#15054)
* Allow admins to unpublish all posts from a user

* Update app/services/moderator/unpublish_all_articles.rb

Co-authored-by: Jamie Gaskins <jamie@forem.com>

* Update app/services/moderator/unpublish_all_articles.rb

Co-authored-by: Jamie Gaskins <jamie@forem.com>

* Update app/services/moderator/unpublish_all_articles.rb

Co-authored-by: Jamie Gaskins <jamie@forem.com>

* Unset `published` irrespective of front matter

* Change to worker and make other adjustments

* Fix controller test

* Fix object name

* Update app/views/admin/users/edit.html.erb

Co-authored-by: Andy Zhao <17884966+Zhao-Andy@users.noreply.github.com>

* Update spec/requests/admin/users_spec.rb

Co-authored-by: Jamie Gaskins <jamie@forem.com>

Co-authored-by: Jamie Gaskins <jamie@forem.com>
Co-authored-by: Jamie Gaskins <jgaskins@hey.com>
Co-authored-by: Andy Zhao <17884966+Zhao-Andy@users.noreply.github.com>
2021-10-15 08:56:59 +02:00
yheuhtozr
56ee3c571f
various small article elements i18n (#15023) 2021-10-15 11:06:44 +07:00
yheuhtozr
44bddb5a94
views/videos i18n (#15022)
* views/videos i18n

* remove ja.yml
2021-10-14 16:08:11 -06:00
Daniel Uber
b2203fbe0d
Load any translation files in subdirectories (#15077)
* Load any translation files in subdirectories

This ensures files in config/locales/views/ are loaded, for example.

* Move i18n load path additions from initializer to rails config
2021-10-14 11:17:07 -05:00
Michael Kohl
19280c08de
Normalize I18n files (#15079) 2021-10-14 20:54:04 +07:00
Krystal Austin
49e1434a8c
I18nize nav_menu's list items (#15055)
* I18nize nav_menu's list items

* reverted changes to admin list item in attempt to pass the one failed test in Travis CI

* Update reading_list value

Co-authored-by: Michael Kohl <citizen428@forem.com>
2021-10-14 11:22:03 +07:00
yheuhtozr
9faf136db1
views/onboardings i18n (#15018)
* views/onboardings i18n

* reformat for PR

* remove ja.yml
2021-10-13 12:26:07 +02:00
Michael Kohl
ee0bf55085
Add I18n pluralization format example (#15027) 2021-10-13 11:13:54 +07:00
Ben Halpern
549336b0a2
Delete old retained emails after certain period (#14949)
* Delete old retained emails after certain period

* Update app/models/email_message.rb

Co-authored-by: Jamie Gaskins <jamie@forem.com>

* Update spec/workers/emails/remove_old_emails_worker_spec.rb

Co-authored-by: Jamie Gaskins <jamie@forem.com>

* Update app/models/email_message.rb

Co-authored-by: Jamie Gaskins <jamie@forem.com>

Co-authored-by: Jamie Gaskins <jamie@forem.com>
2021-10-12 16:27:13 -04:00
Ben Halpern
ebc2961920
Translate pinned (#15008)
* Translate pinned

* Add pinned
2021-10-12 08:24:29 -04:00
VictorPS
39a62c4b3d
Internationalize hardcoded text for videos pages (#14960)
* Translation for "on Video"

* Moving dashboard.loading to core.loading to keep code DRY

* Translations for views/videos/new.html.erb

* Reverting the changes on app/views/dashboards/_sublist.html.erb

* Adding the dashboard.loading translations back

* Fixing some merge conflicts + sorting the dashboard translations

* Fixing the contact text on views/videos/new

* Using the full path instead of the lazy load
2021-10-12 12:09:55 +07:00
Tayllan
75df8e1f9e
Translate some labels from profile information (#15002)
* Translate some labels from profle information

* Fix some fr translations
2021-10-11 09:41:11 -04:00
Jamie Gaskins
32ee50f278
Fix Sitemap for tags (#14989)
Set a NOT NULL constraint on tags timestamps

This commit also monkeypatches in a method for StrongMigrations to
disable a check temporarily. This migration is safe enough for DEV (it's
not ideal, but it'll only lock the table for a matter of milliseconds),
so we'll be fine disabling it but we don't want to disable the check
globally for all migrations in case there's a migration where this is
not safe.
2021-10-08 15:25:04 -04:00
Michael Kohl
e3abee660a
Add I18n date format example (#14973) 2021-10-08 15:08:56 -04:00
Bervianto Leo Pratama
acbda16b8a
Translate some texts from Dashboard Page (#14963)
* Extract some text from dashboard

* Fix template code

Signed-off-by: Bervianto Leo Pratama <bervianto.leo@gmail.com>

* Update translation for upload_a_video

* Fix wrong link

* Fix missing keys

* Seperate plural posts & followers
2021-10-08 13:55:21 +02:00
Lewis Sparlin
30b36ab014
I18n copy on Tags index page (#14891)
* Move hard-coded Tags index copy to [en,fr] locale files

* Use tags.pluralize for a better page title implementation

* Add better french translations

* Once more fr translation fix

* Remove .pluralize from title i18n
2021-10-08 10:21:06 +07:00
Jamie Gaskins
204ca4ae7e
Remove scheduled SitemapRefreshWorker job (#14986)
This worker no longer exists 
Force merged https://forem-team.slack.com/archives/CUJDU2R8D/p1633654148049700
2021-10-07 19:51:51 -05:00
Krystal Austin
5b251a7bb7
I18nize main_nav's "Home" (#14982) 2021-10-07 16:36:50 -04:00
Ben Halpern
1d62d30853
Consolidate and internationalize various 'contact us' prompts (#14951)
* Consolidate and internationalize various 'contact us' prompts

* Update spec/requests/user/user_settings_spec.rb

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

Co-authored-by: Michael Kohl <citizen428@forem.com>
2021-10-07 12:05:21 -04:00
Ben Halpern
d85f07c00d
Fix legacy sitemap logic (#14926)
* Fix legacy sitemap logic

* Add aggregate failures

* Fix formatting

* Adjust robots.txt spec

* Fix index minimum to >=
2021-10-07 08:59:16 -04:00
Tayllan
fc77376c1b
Translate actions in articles view (#14911)
* Translate actions in articles view

* Move reactions to core.reactions namespace

* Add quotes to share_to in yml file

* Fix wrong translation in english locale

Co-authored-by: rhymes <github@rhymes.dev>
2021-10-07 12:08:14 +07:00
Monica Mateiu
bd0b4f1117
Tokenize settings menu and add French translations (#14905)
* tokenize settings menu and add French translations

* add quotes around tokens

* add tokens in alphabetical order

Co-authored-by: Ben Halpern <bendhalpern@gmail.com>
2021-10-06 17:53:58 +02:00
Jamie Gaskins
8e220dc97f
Add Rails cache instrumentation to Honeycomb (#14880)
It looks like Honeycomb uses ActiveSupport notifications to instrument
applications, based on the names of the `notification_events`. I pulled
this event name from the Rails guides:

https://guides.rubyonrails.org/active_support_instrumentation.html#active-support
2021-10-06 10:46:24 -04:00
rhymes
eba0ddb240
Misc i18n fixes (#14852)
* Add i18n tasks spec

* Ignore storybook static folder

* Run i18n-tasks normalize

* Fix inconsistent interpolations flagged by i18n-tasks check-consistent-interpolations

* Update devise en translation and add devise_invitable fr translation

* Add missing keys, ignore those to be translated and normalize

* Temporarily ignore unused keys until we have a strategy for maintenance

* Add missing key

* Re-run normalize

* Disable normalize test temporarily
2021-10-05 13:22:33 +02:00
Monica Mateiu
322f7f4b16
Translate Following users page and loading text in sublist (#14898)
Co-authored-by: Ben Halpern <bendhalpern@gmail.com>
2021-10-05 12:44:07 +07:00
Thomas Bnt
685a069d79
Update some words already translated (#14890)
* Update some words already translated

* Edit log_in and see_all in french

* Update config/locales/fr.yml

Co-authored-by: Aurelie Verrot <aurelie+github@verrot.fr>

* Update fr.yml

Co-authored-by: Aurelie Verrot <aurelie+github@verrot.fr>
2021-10-04 17:18:30 -04:00
Ben Halpern
79a537b62d
Translate notification filters (#14884) 2021-10-01 16:18:07 -04:00
Fernando Valverde
c74121b0c0
Forem passport (cont) (#14759)
* Initial forem omniauth strategy setup work

* Finish basic raw proof of concept

* Some playing around

* use OAuth payloads + PASSPORT_OAUTH_URL for local dev

* Use FeatureFlag for Forem Passport Auth

* Working on tests

* Fix tests 🤞🏼 & some cleanup

* Use correct namespace within lib directory (match class namespace)

* Test to ensure Forem Passport auth is restricted by FeatureFlag

* Add broadcast + work on tests

* Update spec/lib/data_update_scripts/insert_forem_connect_broadcast_message_spec.rb

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

* Hash format

* Schema cleanup + inline comments

* Use temprorary Heroku domain

* More cleanup

* Missed one

* Back to passport.forem.com

* Require correct path in lib

* Apply suggestions from code review

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

* Use with_indifferent_access for symbol hash access in Forem strategy

Co-authored-by: benhalpern <bendhalpern@gmail.com>
Co-authored-by: Michael Kohl <citizen428@forem.com>
2021-09-30 06:47:45 -06:00
Michael Kohl
081f43b356
Don't include "anti-followed" tags in email digest (#14782)
* Separate followed and "anti-followed" tags

* Minor code change

* Indicate "anti-followed" tags in sidebar

* Fix UpdatePointsWorker spec

* Cries in Arel

* Use antifollow scope more selectively

* Add spec for not_cached_tagged_with_any scope

* Add explanatory comment

* Remove unused route

* Update comment

* Remove unrelated change, figure out why > 1 later

* Need more 

* Avoid false positives in spec

* Change handling of ingored tags in sidebar

* Add explanatory comment
2021-09-30 10:44:38 +07:00
Michael Kohl
5a9fdd4e01
Fix search param cache leak (#14848) 2021-09-30 10:43:23 +07:00
Ben Halpern
036d75aa6e
Admin-configurable display locale (#14620)
* Admin-configurable display locale

* Add i18n-js and namespacing

* Basic tests and clean up

* A few test adjustments

* Update vendor cache

* Fix a few tests

* Fix a few tests

* Update app/views/articles/_actions.html.erb

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

* Update app/views/articles/_comments_actions.html.erb

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

* Update app/views/articles/_single_story.html.erb

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

* Update app/views/articles/_single_story.html.erb

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

* Update app/views/comments/_comment_header.html.erb

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

* Update app/views/layouts/_sidebar_tags.html.erb

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

* Update app/views/listings/index.html.erb

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

* Update spec/system/homepage/user_visits_homepage_articles_spec.rb

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

* Update spec/system/user/view_user_index_spec.rb

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

* Alphabetical locale page

* Add activerecord custom validation error translations

* Add i18n to webpacker

* Fix a few tests

* Adjust error messages

* Add i18n-tasks

* Adjust JS to get working with jest

* Adjust the way translations are pulled in

* Adjust jest tests

* Remove time localization

* Remove superfluous public js

* Add basic tests for i18n application controller

* Remove unnecessary content

Co-authored-by: Michael Kohl <citizen428@dev.to>
2021-09-28 11:04:35 -04:00
Michael Kohl
9f0dfa3181
Add internal top tags API (#14752)
* Add internal top tags API

* Add rules_html to tag API

* Move tags autocomplete to custom route

* Simplify spec

* Change route from autocomplete to suggest
2021-09-21 15:24:53 +01:00
Michael Kohl
c946d0bf6b
Add feature flag for Connect (#14644)
* Add feature flag for connect

* Start using Connect feature flag

* Add feature flag check to plaintext mailers

* Minor fixes/formatting issues

* Fix typo

* Enable Connect feature flag for tests

* Fix feature flag in tests

* Update rails_helper

* Fix typo

* (╯°□°)╯︵ ┻━┻

* One more try

* connect announcement

* Use connect feature flag in admin and admin routes

* Add aria-live attribute to announcement

* Undo schema.rb changes

Co-authored-by: Paweł Ludwiczak <ludwiczakpawel@gmail.com>
2021-09-13 10:45:56 -04:00
VISHAL DEEPAK
c88f8dcdaa
In dashboard show api eager load collection with articles (#14677)
* In dashboard show api eager load collection with articles

* Dashboard Article Row view now loads collection to suppress bullet warning of eager loading
2021-09-09 11:11:03 +01:00
Jamie Gaskins
5fc3f52299
Allow caching feature flags for a given duration (#14668)
This duration is specified in the `CACHE_FEATURE_FLAGS_SECONDS`
environment variable. It can't be updated without restarting the
application.
2021-09-07 10:19:29 -04:00
Suzanne Aitchison
dcecc8bf00
Log prop-types warnings to console in development (#14635)
* enable debug for warnings in dev env

* remove preact/devtools call no longer needed

* fix majority of proptype errors on home page

* sweep up proptype errors from listings page

* fix article form error
2021-09-01 09:27:58 +01:00
Michael Kohl
baa94a0abd
Various cleanups (#14616)
* Remove unused constant

* Remove unused column from OrganizationMembership

* Remove outdated comment

* Remove references to no longer existing roles

* Remove legacy service worker code

* Remove duration_in_seconds_column from podcast_episodes

* Remove app_bundle from devices
2021-08-31 09:17:24 +07:00
Michael Kohl
13bf3c5ef0
Routine Rubocop autofixes (#14604) 2021-08-30 11:44:57 -04:00
Michael Kohl
a885483059
Introduce Settings::Base (#14138)
* Introduce Settings::Base

* Temporarily re-add gem

* Update Settings::Base to use RequestStore

* Add after_commit hook

* Restructure code

* Finish specs, rename field -> setting

* Update comment

* Undo unrelated change

* Remove redundant get_default

* Fix Doorkeeper issue

* Update docs/backend/configuration.md

Co-authored-by: Josh Puetz <josh@dev.to>

* Clarify comment and documentation

* Update vendored gems

* Fix nil-handling bug in Settings::Base

* Remove accidentaly changes from Gemfile.lock

* Update vendored gems

Co-authored-by: Josh Puetz <josh@dev.to>
2021-08-30 10:27:08 +07:00
Michael Kohl
1b87cc7626
Profile generalization cleanup phase 2 (#14555)
* Remove ignored profile columns

* Update test.rb

* Remove dev profile fields CSV

* Fix first round of specs

* Add additional .includes

* More spec fixes

* Preload user in more locations

* Fix typo

* Spec/preloading fixes

* Specy McSpecFace

* Update e2e seeds

* Update e2e sees with correct display area

* Remove unused eager loading

* Update test.rb

* Add another entry to Bullet.safe_list

* Fix e2e seeds
2021-08-27 09:17:26 +07:00
Michael Kohl
c16ec1d53d
Remove redundant freeze calls (#14596) 2021-08-26 10:01:08 -04:00
Michael Kohl
521f1d26bc
Upgrade to Ruby 3.0.2 (#12103)
Co-authored-by: rhymes <rhymes@hey.com>
Co-authored-by: Mac Siri <krairit.siri@gmail.com>
2021-08-25 14:26:33 -04:00
Andy Zhao
3b81172c56
Remove docs from repo ✂✂✂ (#14579)
* Remove docs ✂✂✂✂

* Remove all references to docs and gitdocs

* Update docs.forem.com to developers.forem.com

* Remove .gitdocs_build/

* Update yarn.lock
2021-08-23 17:23:42 -04:00
Michael Kohl
1ebec4b67f
Remove hardcoded user profile fields (#14079)
* Remove duplicated work display from header

* Update work profile field handling

* Update DUS + spec

* Delegate more carefully

* Update delegation guard

* Adapt for removed delegation

* Undo accidental schema changes

* Fix seeds

* Remove accidentaly change

* Fix User#processed_website_url

* Update guard clause

* Update profile card content

* Add Organization#profile

* Be more conservative with profile fields

* Spec fixes round 1

* Fix typo

* Update spec

* Limit number of header fields and update card content

* Decorate correct model

* Update factory

* Update schema.rb

* Fix validation

* How bad could this possibly be?

* Pretty bad, nevermind

* Remove obsolete code

* Reset profile fields during test runs

* Move profile fields back to before(:suite)

* Spec fixes

* Remove accidentally re-added files

* More spec fixes

* Specs

* Change User#tag_keywords_for_search

* More spec fixes

* Add comment

* Undo accidental schema changes

* Attempt spec fix

* Remove fix attempt

* Fix e2e test

* Update spec

* Remove guard clause

* Remove hardcoded instances of education field

* WIP Access display_email_on_profile via User Settings

* Remove unused profile column

* WIP fix issues revealed by systems specs

* WIP fix issues revealed by services specs

* WIP Fix failing tests

* WIP Fix spec failures

* wip

* Move two attributes from controller to decorator

* Update comment

* More consistently use user.tag_line

Even before the profile changes we sometimes used the user.summary
attribute directly but used the user.tag_line method in other places.

* Remove education

* Add comment

* WIP

* Clean up mostly_work_with

* WIP

* Update work profile field handling

* More work-related changes

* Remove settings_only from display_area enum

* Remove quickfix from _metadata partial

* Remove special attributes

* Remove leftover spec

* Retrieve location from profile, not user

* Profile.special_attributes no longer exists

* Update specs

* More spec fixes

* Update UsersController

* Update UsersController and spec

* Fix e2e seeds

* Minor cleanup

* More e2e seed fixes

* Fix profile field CSV

* Fix e2e seeds

* Move one more attribute in e2e seeds

* Remove duplicate line

* Clear inputs before typing in them

Co-authored-by: Jacob Herrington <jacobherringtondeveloper@gmail.com>
2021-08-18 11:44:53 +07:00
rhymes
7ff882b8ce
Refactor Admin Member Detail view - Tools section (#14283)
* Test with Grid layout

* Use Flexbox

* Replace with utility classes

* Wire up Tools -> Emails

* Stash: will rebase with a better commit message

* Fix transition between Email and Tools component

* Refactor Verify Email Ownership button a bit

* Use respond_to for verify_email_ownership

* Wrap the Preact Snackbar controller in Stimulus and use it from users/tools/email_controller

* Add HTML5 validation to EmailComponent

* Validation and cleanup

* Add Email history list and fix styling

* Additional styling cleanups

* Add error handling

* Close panel after email operations

* Actually use <local-time> GitHub time element correctly

* Add specs for Tools component and controller

* Email to Emails

* Add tests for Admin::Users::Tools::EmailsComponent

* Fix bug with ToolsComponent instantiation in ToolsController

* Add notes to show page

* Add ToolsComponent css

* Use Rails UJS instead of manual Stimulus to connect remote helpers

* Make Notes section come alive by adding its code

* Make Credits section come alive by adding its code

* Go back to vertical flex

* Finalize small restructuring of credits code

* Simplify ToolsComponent instantiation

* Add basic Add user to org functionality

* Make update user permissions form work

* Make remove user from org work

* Use generic Stimulus AjaxController to cleanup code

* Use Stimulus AjaxController for NotesComponent

* Use Stimulus AjaxController for CreditsComponent

* Use Stimulus AjaxController for OrganizationsController

* Add Admin::Users::Tools::ReportsComponent

* Do not display snackbar message if there is no message

* Add Admin::Users::Tools::ReactionsComponent

* Fix EmailsComponent spec

* Add CreditsComponent tests

* Fix quotes

* Add OrganizationsComponent specs

* Add ReportsComponent spec

* Add ReactionsComponent spec

* Fix rubocop violation

* Fix ToolsComponent specs

* Remove unused variable

* More tests

* Use keyword argument for ToolsComponent

* Fill in Tools requests specs

* Use Rspec shared_examples for ToolsController and EmailsController

* Add tests for Admin::Users::Tools::CreditsController

* Add tests for Admin::Users::Tools::NotesController

* Add tests for Admin::Users::Tools::OrganizationsController

* Add tests for Admin::Users::Tools::ReactionsController and ReportsController

* Fix bugs and add tests to Admin::OrganizationMembershipsController

* Add comments to deprecated sections of the UsersController

* Fix bugs and add tests to Admin::UsersController #send_email and #verify_email_ownership

* Add User model tests

* Feature flag fixes

* Add Cypress Tools - Emails tests

* Add Cypress Tools - Notes tests

* Add Cypress Tools - Credits tests

* Add Cypress Tools - Organizations tests

* Add Cypress Tools - Reports and Reactions tests

* Mark the replace target as a polite region

* Update view_component gem

* Tiny fixes

* Fix spec

* Wrap component rendering in render_component

* Move user.related_negative_reactions to a Reaction scope

* Move user.reports to a FeedbackMessage scope

* Move user.last_verification_date as EmailAuthorization class method

* Revert encapsulation to private

* Fix boxes backlinks names

* Add keyboard focus styling to boxes

* Remove duplicate styling

* Remove duplicated header element

* Improve heading hiearchy

* Fix <legend> and labels

* Backlink should be Tools not Users

* Announce section change to screen reader and fix focus

* Fix specs

* Add focus style for backlinks

* Enable email sending in e2e mode

* Use Settings instead of env variable
2021-08-17 18:55:53 +02:00
rhymes
d42909401f
Bullet: rename deprecated add_whitelist to add_safelist (#14521) 2021-08-17 18:54:03 +02:00
Daniel Uber
35b575742b
Encapsulate initializer methods in modules (#14507)
* Move top level method definitions to module methods

This removes an ignored rubocop rule for this file, and wraps
these (otherwise unused) builder methods in a module.

* Move storage config methods to initializer module

This removes an rubocop ignore in the file and prevents exposing
global method definitions throughout the app.
2021-08-17 08:19:13 -05:00
Khadija Sidhpuri
7567e77132
Extract search from StoriesController (#14377) 2021-07-30 10:55:00 -04:00