* Rename comment-mentioned-user class added by Html::Parser
* Add DataUpdateScripts for resaving articles, comments, and messages
* Swap order of messages and articles DUS
* Use trigger and tsvector column to speed up reading list search
* Add organization destroy spec and todo note
* Fix failing data update script due to not null constraint
* Remove the leading anchor in the trigger regexp
* Fix reading list specs
* Address feedback
* Rename banned and comment_banned roles
* Add data update script to rename roles containing 'ban'
* Add named error for Suspended users
* Update unidiomatic method names
* Rename misc banned to suspended
* Apply suggestions from code review
Co-authored-by: Michael Kohl <me@citizen428.net>
* Add unit tests for suspended methods
This commit also adds TODO comments for removing banned and
comment_banned from the codebase after data update scripts have
successfully run on all of our Forems.
Co-authored-by: Michael Kohl <me@citizen428.net>
* Added credits_awarded to badges
* Data update script for updating credits_awarded
* Data update script for updating credits_awarded
* Added null: false to badges.credits_awarded
* feat: add a feature flag for data update scripts
* feat: write some tests for it
* chore: oops
* stub the data update scripts out wherever the profile admin is
* chore: remove some unneeded ones
* refactor: use call_original
* feat: add a feature flag to all the Forems (but not enable it as yet)
* Fix erroring data update script
* Add spec to ensure that script doesn't impact any other user if tech_admin users don't exist
* Comment out erroring script, delete its associated spec
* Add replacement AddSingleResourceRoleToTechAdmins data update script
* feat: add tech_menu_items to the admin helper
* feat: add the tech resources to /admin if the user has the correct role
* feat: use a partial that will show the data update scripts in the navbar with the correct role
* chore: use a method
* test: chore
* feat: setup the data to need permission single_resource_admin with DataUpdateScript permissions
* chore: remove the if current_user.tech_admin?
* chore: remove line
* feat: add a DUS for single_resource_admin roles to be added to users with tech_admin roles
* fix: move all teh routes outside of the block where tech_admin is required.
* chore: use the constant and remove the method
* chore: add a comma
* Update config/routes.rb
Co-authored-by: rhymes <rhymes@hey.com>
* feat: add a tech admin role to the dropdown
* feat: add the tech admin role along with single_resource_admin
* chore: oops
* refactor: amend the spec to use let blocks
Co-authored-by: rhymes <rhymes@hey.com>
* This change abstracts the DatadogStatsClient into a ForemStatsClient.
The purpose of this abstraction is to set the foundation for a subsequent PR that will allow one to use New Relic for recording Forem stats, instead of Datadog, if there is a New Relic configuration found.
This specific change creates an abstraction layer that can be built upon, without changing any actual default behavior. All specs still pass.
* Use delegate instead of explicit methods.
* Delegate instead of explicit methods.
* Fix the error.
* Refactor according to the suggestions in the comments.
* Ooops. Stats work better when all of the code is committed.
* Removing the alias of count to increment since that was done in error.
* Update copy
* Allow relative URLs and normalize on save
* Update specs
* Move clarification from index to form
* Add data update script
* Update spec
* Add script to remove feature flag
* Remove :feeds_import feature flag and RssReader and related classes
* Change Feeds::ImportArticlesWorker signature to support Sidekiq Cron serialization
* Replace RssReader::Assembler with Feeds::AssembleArticleMarkdown
* Removing Assembler
* Removes collective_noun and collective_noun_disabled from SiteConfig
* Adds a data_update script to remove collective_noun fields from Config
* Adds additional guard clauses to collective noun scripts
* Adds an unfinished spec around the removal of collective_noun fields
* Reworks remove_collective_noun_from_site_config_spec test and expectations
* Reverts changes to data_update script and removal of Config fields
* Remove safe navigator from data_update script
* Adds collective_noun and collective_noun_disabled back to SiteConfig model
* Adds a script that appends collective_noun conditionally and matching spec
* Adds a conditional to determine if collective_noun should be appended
* Refactors data_update script logic to be cleaner
* Refactors spec to use method stubs
* Adds a comment to the SiteConfig model about collective_noun fields
* Adds an additional check to the scripts return statement
* Removes collective_noun and collective_noun_disabled from app
* Config Generalization: replaces community_qualified_name with community_name
- Generalizes SiteConfig after the removal of collective_noun field
- Updates copy where necessary to be readable with community_name
- Makes the community_name SiteConfig description more explicit
- Adds flexibility for Admins by removing appended "community"
* Adds a data_update script to remove collective_noun and collective_noun_disabled
* Removes appended community from stories_controller.rb
* Removes unnecessary quotation marks around SiteConfig.community_name.to_s
* Makes SiteConfig community_name description more explicit
* Removes topic from #email_from and replaces arg with _
* Removes argument from #email_from (facepalm)
* Reverts changes to application_mailer and notify_mailer_spec
* Removes default "Community" topic from application_mailer and makes topic optional
* Refactors #prepopulate_new_form to resolve Code Climate failures
* Refactors #email_from even further by use of a ternary operator per review suggestion
* Simplifies the data_update script used to remove collective_noun per review request
* Adds a data_update script to append community to community_name
* Updates data_update script to correctly append Community to community_name
* Removes RemoveCollectiveNounFromConfig and updates other script
* Removes superfluous false from data_update script
* Updates data_update script to be more idiomatic
* Remove GitHub repositories when user deletes their own GitHub identity
* Remove GitHub repos also from the admin remove identity
* Add a notice in Settings/Extension
* Add data update script to cleanup orphan GitHub repos
* feat: add a new script that updates the email_addresses hash with the contact key
* add a comment to old data script
* feat: add a spec (not passing as yet)
* fix: test passing
* chore: comment script with reason
* Adds a lower() query to the DB in Stories#show
* Restructure spec
* bypass article callbacks in order to test edge case
* Fixes spec
* Change the approach to unsure downcase path in Article model
* Move .downcase call to set_caches before_save callback
* Adds data update script for fixing offending Article paths
* Moves model tests to correct block
* Apply suggestions from code review
Co-authored-by: Vaidehi Joshi <vaidehi.sj@gmail.com>
Co-authored-by: Vaidehi Joshi <vaidehi.sj@gmail.com>
* Feature 🚀 : Ability to delete messages in chat channels
- Sending message ID to frontend
- Deleting Message
- Use pusher to delete message realtime
* Minor Bug 🐞: Show message action only for current user
- User can delete or edit their own messages
* Test cases added
* Bug 🐞: Update message id for receiver
Message id was not sent to receiver by pusher
* Refactoring🛠: Message controller refactoring
* Test Cases📝 : Specs for Delete message added
* Feature 🚀 : Ability to edit messages
* Test Cases📝 : Specs for Edit message added
* Merge conflict resolved
* UI completed for Create Channel
* API for create channel & invitations
* 🚀 Combining Backend and Frontend
* Test cases added
* UI completed for Create Channel
* API for create channel & invitations
* 🚀 Combining Backend and Frontend
* Test cases added
* fix suggestions
* add test cases
* replace mod_relations_admin to tag_moderator
* fix test cases
* refactor and fix code climate issues
* Update app/controllers/chat_channel_memberships_controller.rb
Co-authored-by: Michael Kohl <me@citizen428.net>
* fix suggestions
* renaming the methods
* Update app/javascript/chat/chat.jsx
Co-authored-by: Nick Taylor <nick@iamdeveloper.com>
* Update app/javascript/chat/components/createChatModal.jsx
Co-authored-by: Nick Taylor <nick@iamdeveloper.com>
* add jsDoc and add validation
* add PR suggestions
* renmae the file name to PascalCase
* add styled component
* refactor channel button component
* fix specs
* fix code smell issues
* fix file name issue
* handle error message
* add jsDoc
* Update app/controllers/chat_channels_controller.rb
Co-authored-by: Michael Kohl <me@citizen428.net>
* refactor chat_channel_helpers
* update old hash to new hash
* Update app/javascript/chat/components/ChannelButton.jsx
Co-authored-by: Nick Taylor <nick@iamdeveloper.com>
* Update app/views/chat_channels/index.html.erb
Co-authored-by: Michael Kohl <me@citizen428.net>
* fix syntax error
* Update app/views/chat_channels/index.html.erb
Co-authored-by: Nick Taylor <nick@iamdeveloper.com>
* Policies changed
* The Disable Button issue 🐞
* Fixing Disabled button Issue 🐞
* New group doesn't show up 🐞
Co-authored-by: Narender Singh <narender2031@gmail.com>
Co-authored-by: Michael Kohl <me@citizen428.net>
Co-authored-by: Nick Taylor <nick@iamdeveloper.com>
* Prepare to drop profile columns from user
* Update code and factory
* Also remove unused constant
* Move validation from user to profile
* Remove Profiles::ExtractData service object
* Add more comments
* Simplify sameAs attribute generation
* Obey me machine, I am your master
* Fix condition order in guard clause
* Temporarily disable callback
* Fix specs
* Reduce usage of Profile#refresh_attributes!
* Remove leftover comment
* Handle social media links differently
* More spec fixes
* Fix specs for admin profile fields controller
* Fix specs after merge
* Fix remaining specs
* Update user show request spec
* Add comment for follow_hiring_tag
* Only save profile when user is valid
* Fix seeds.rb for profile fields
* Switch from before_save to after_save
* Undo unrelated formattin change
* Update spec/fixtures/files/profile_fields.csv
Co-authored-by: Molly Struve <mollylbs@gmail.com>
* Remove data update script and spec
* Fix spec
* Fix typo in comment
* Fix typo in comment
* Move article resave logic to service object
* Move profile field creation to before(:suite)
* Refactor error handling in Profiles::Update
* Fix Profiles::Update specs and refactor
* Temporarily disable spec
* Add ProfileValidator
* Clean up
* Move DB ready check into app/lib
* Refresh attributes after importing from CSV
* Fix specs
* Remove unused file
* A girl has no name. A profile neither.
* Fix specs
* Add responds_to? check
* Spec fix
* Add name to user fields in profile settings page
Co-authored-by: Molly Struve <mollylbs@gmail.com>