* Replaces second_user_id and third_user_id with co_author_ids on the Articles table
* Adjusts migration that adds co_author_ids to also add array: true
* Replaces second_user_id and third_user_id with co_author_ids in all applicable files
- Use co_author_ids in _individual_article view
- Use co_author_ids in articles and stories controllers
- Use co_author_ids in article and podcast_episode models
- Use co_author_ids in article_dashboard
- Use co_author_ids in comments_helper
- Use co_author_ids in articles_spec
* Replaces second_user_id and third_user_id with co_author_ids in article.rb model
* Remove unused #assign_co_authors method from the Stories::Controller
* Add #co_authors and #co_author_name_and_path to article_decorator.rb
* Adds a descriptive form field for co_author_ids for Admins in /admin/articles
* Adds a conditional in article/show.html.erb to render co_author names on an Article in a human-readable way
* Replaces get_co_author_name_and_path with proper method name, co_author_name_and_path in show.html.erb
* Adds latest schema to (hopefully) resolve Travis conflicts
* Adds the safe operator to show.html.erb
* Adjusts articles_spec.rb to use an array in the first test
* Replaces unless &.empty? with if ./present? in articles/show.html.erb
* Replaces second_user_id with co_author_ids in stories_show_spec.rb test
* Replaces elsif with else in articles/show.html.erb
* Cleans up show.html.erb by removing conditional in favor of decorator method
* Refactors splitting of params in Articles::Controller and optimizes query in #co_authors
* Reverts removal of second_user_id and third_user_id and migration file
* Adds a data_update script to update co_author_ids with existing second and third user_ids
* Adds validations to co_authors and flash_messages to indicate whether an update was successful or not
- Adds to methods to article.rb to validate the IDs of co_authors and authors
- Adds flash messages to the Admin::Articles::Controller and a redirect to the show page
- Removes the JS highlighting upon submit when updating an Article in Admin
- Refactors #update action in Admin::Articles::Controller
* Adds tests to article_spec.rb around co_author_id validations in article.rb
* Adjusts #validate_co_authors_must_not_be_the_same to use .include? instead
* Uses Field::Select.with_options in article_dashboard.rb to properly display co_author_ids
* Reverts removal of assigning co_author_ids in the Stories::Controller
* Adjusts error message and adjusts return logic in article.rb (thanks, Fernando!)
* Fixes failing article_spec.rb test that checks for co_author_ids uniqueness
* Adds a default array to co_author_ids and checks if they are .blank?
* Refactor data_update script to use a single SQL statement (thank you, Michael)
* Preserve array order of co_author_ids in article_decorator.rb
* Add db file for default: []
* Add validation to fix bug related to text inputs and invalid users when adding co_authors
* Adds tests to ensure that co_author_ids are both an integer and an integer > 0
* Updates admin/articles_spec.rb to default [] instead of nil
* Adjusts validations in article.rb to be DRY-er and more consistent
* Consolidates validations further
* Refactors validations in article.rb to use procs
* Refactors data_update script to remove nil values from array
* Makes the ModeratorsQuery not return an exception on invalid role
The current implementation of the query would yield an exception when
recieving an invalid state parameter. As per the [GH issue
discussion](https://github.com/forem/forem/issues/10060#issuecomment-692295217),
Zhao recommended to change its behaviour and not trigger an exception in
this condition.
This commit does just that. If the state argument is invalid, the query
now returns an empty result set.
* Adds a warning when there are no matching mods
* Re-trigger the build
* Add missing FKs to BackupData BadgeAchievements BanishedUsers BufferUpdates
* Add relations and specs
* Fix specs
* Trigger Travis CI
* Remove traces of backup_data has it has been removed on master
* Fix trailing whitespace
* Add FK between ahoy_messages and feedback_messages
* Add FKs between articles.second_user_id, articles.third_user_id and users
* Fix associations and specs
* Add more validations
* Remove FKs to articles.second_user_id and .third_user_id as they are about to be removed
* Adds second_user_id and third_user_id to Admin::Articles::Controller and Article model
- Add second_user_id to #update
- Add third_user_id to #update
- Add second_user_id to #article_params
- Add third_user_id to #article_params
- Add second and third user_ids to :limited_columns_internal_select
* Adds a second_user_id and third_user_id form field to _individual_article.html.erb
* Adds tests around adding a co-author and multiple co-authors to an article in articles_spec.rb
* Add ga tracking to config
* Remove empty line
* Remove console.log
* Fix typo
* Update app/assets/javascripts/initializers/initializeBaseTracking.js.erb
* Add google tracking id example
* feat: cater for when there are no profile fields in a group
* feat: add a modal to create a new group
* feat: add a controller and route for the group
* refactor: add group modal
* feat: edit a group
* chore: remove an instance var
* chore: toggle the section using a toggle button
* feat: add the edit button
* chore: update the messaging
* chore: update the class name
* feat: delete the group
* chore: add some css
* chore: use group_name
* chore: rename the file and add the group select to the file
* feat: render the correct partial and add the profile_field_group_id
* feat: add a profile field
* feat: amend the styles on the card header
* feat: add a cursor pointer
* feat: get the form to redirect after an update
* chore: remove style
* feat: order by created at so that each time we save the order doesn't change
* fix: change the form
* chore: format the options
* feat: show ungrouped fields at the bottom
* feat: add the profile fields length
* chore: remove unused action
* test: add some specs for profile group workflow
* fix: oops
* refactor: grouped profile fields
* refactor: amend the styles
* chore: rename methods
* chore: update headings
* chore: remove changes from my linter
* refactor: suggestions by Michael - upgrade ternary
* refactor: order by name and label
* Allow admins to set brand color
* Remove extra line
* Fix linting
* Update app/controllers/admin/configs_controller.rb
Co-authored-by: Michael Kohl <citizen428@dev.to>
* Move wcag compare to own class
* Remove unnecessary spacing
Co-authored-by: Michael Kohl <citizen428@dev.to>
* Grant permissions through the UI
* Update app/services/moderator/manage_activity_and_roles.rb
Co-authored-by: Michael Kohl <citizen428@dev.to>
* Make roles into constants
* Swap internal and admin
* Improve UI, remove hack
* Fix link
* Remove unused internal file
* Modify registrations controller
* A bit of progress
* More work
* a bit pf progress on confirmation emails
* Get basic functionality in place
* Remove comments
* First basic test
* Add tests
* Fix code styles
* Remove sessions spec
* Remove sessions spec
* Remove extra markup
* Fix base role
* Add Resource Admin Config
* Fix indentation issue
Co-authored-by: Michael Kohl <citizen428@dev.to>
* Introduce ProfileFieldGroup model
* Make profile_fields_groups name column unique
* Fix some specs
* feat: allow the page to work again
* Add guard clause to data update script
* Remove unused file
* Fix specs
* Add foreign key
Co-authored-by: Ridhwana <ridhwana.khan16@gmail.com>
* Make confirmation text a required field
* Use strong params to check if confirmation param is present
* Require config confirmation text to match pattern
* Allow greater flexibility for footer mascot image
This change allows admins to set a footer mascot image of any dimension
and manage the forced dimensions in their site config options.
* Update site config copy based on PR feedback
* Moves badge_achievement-related code from /admin/bagdes to /admin/badge_achievements
- Adds an Admin::BadgeAchievements::Controller
- Moves #award and #award_badges to Admin::BadgeAchievements::Controller
- Removes #award and #award_badges from Admin::Badges::Controller
- Moves award.html.erb from /admin/badges to /admin/badge_achievements
- Removes badge_achievement routes from /admin/badges
- Adds a redirect for /admin/badges/badge_achievements to routes.rb
- Cleans up and refactors code in controllers, views, and routes
* Add more actions to Admin::BadgeAchievements::Controller and matching routes
- Adds an #index and #destory action to the BadgeAchievements::Controller
- Adds destroy to the badge_achievements routes
- Adjusts redirects for badge_achievements in routes.rb
- Removes dead code from the index view for Badges
- Refactors the existing code in the index view for BadgeAchievements
* Adds an /admin/badge_achievements_spec and cleans up the /admin/badges_spec
- Removes the badge_achievement-related tests from badges_spec.rb
- Adds an additional test around deleting badge_achievements
* Add pagination to badge_achievements index view
* Adds badge_achievements to Admin menu items and add comment to routes.rb
-Add badge_achievements to the Admin nav bar
-Add a comment regarding redirects for badge_achievements
* Resolve JS console stacktrace notices and change wording on deletion buttons
* Add a Back to Badge Achievements button to the badge award form
* Adjust styling to fix failing /admin/badges_spec.rb
* Uses SQL paging to optimize scalibility and adds search functionality to index.html.erb
- Use SQL paging in Admin::BadgeAchievements::Controller in #index and #award
- Add a search by user ID to Badge Achievements index view
- Add a limit of 15 badges to be shown on the Badge Achievement index view
- Add a User ID column to the Badge Achievement index view
* Add Award Badge button back to Badge Achievement index.html.erb
* Change @badge to be more explicit and reword warning around badge deletion
* Adds award badge button back, rewords success message, and adjusts SQL paging
* Rename method
* Add ProfileFields::Add service
* Add ProfileFields::Remove service
* Use remove_method instead of undef_method
* All hail undef_method
* Move community_copyright_start_year to SiteConfig
* Properly translate year to string
* Change year logic
* Add env default to copyright year
* Fix logic
* Fix codeclimage issue
* Add view element
* Add constants in properly and use dynamic date
* Add CRUD actions for badge management to Internal::Badges::Controller
* Update sytling of badges index view in index.html.erb
-Uses a table to display all badges
-Links to the badge edit page from the badge title
-Displays a badges slug, title, and badge_image
-Adds an Award Badge button to the index view
* Adds an edit view, edit.html.erb, for badges
-Gives the ability to edit a badge title and/or slug
-Adds an Update Badge button to the left of the view
-Adds a Back to All Badges button to the right of the view
-Displays the badge image in the edit form
* Adjusts the path names in #award_badges in Internal::Badges::Controller
* Adds CRUD actions to the Internal::Badges::Controller and needed routes
* Add a description field to the edit.html.erb for badge management
* Add #award to Internal::Badges::Controller with matching view and routes
-Adds an #award method that sets @badge for #award_badges
-Adds an award.html.erb view for awarding badges
-Adds an award path for awarding badges
-Removes unnecessary code from controller, routes, and views
* Adds image upload functionality to the edit view for badges
* Ensure that usernames are downcased when awarding badges
-Chains downcase to usernames in #award_badges in
Internal::Badges::Controller
* Move badge-related views from old Internal folder to the correct Admin folder
Change routes and paths from /internal to /admin
* Refactor badge_params in Admin::Badges::Controller
* Add additional tests around awarding and updating badges in /admin/badge_achievements
* Add a create view to /admin/badges
-Adds new and create actions to Admin::Badges::Controller
-Adds a create view for creating badges at new.html.erb
-Adds a Create Badge button to the index view
-Moves the Award Badges button to the bottom of the index view
* Add a test around creating badges and clean up existing specs in badges_spec.rb
Adjust path in admin_awards_badges_spec.rb to be correct path
* Adjust routes from /badges/award_badges to /badges/badge_achievements/award_badges
Update paths in admin/badge-related specs
* Adjust paths in badges_spec.rb to be admin_badge_achievements_award_badges_path
* Adjust button styling for Award Badge
* Adjust paths back to /admin/badges in badges_spec.rb
* Add clarification around usernames when awarding badges
* Mark test in black_box_spec.rb as pending due to Travis failure
* Change wording used around usernames and @ symbols in award.html.erb
* Enable new Lint/ cops and run rubocop -a
* Fixing last remaining things with rubocop -a
* Enable and fix Style/ExplicitBlockArgument and Style/GlobalStdStream
* Forgot parenthesis
* implement some suggestions from https://github.com/forem/forem/pull/9610
* chore: update the errors based on suggestions
* feat: make query readable on blazer
* First draft - all the big changes
* Changing some more references to 'internal'
* Relocate internal request tests to admin
* Relocate internal system tests to admin
* Fix trailing space
* Test fix
* Move queries from internal to admin
* Docs updates
* Rename internal stimuls controllers to admin (plus docs)
* Rename admin layout
* Fix routing after rebase
* Fixes for latest added admin interfaces
* Serviceworker ignore paths
* Published field for podcasts
* Add podcasts migration
* More specs for podcasts availability
* Show published in podcasts internal
* Update schema.rb with db:migrate