* 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>
* Capitalizes Admin on Admin Profile button for better consistency
* Adds reactions and reports partials and adjusts filenames of _notes, _activity, and _credits
* Removes code related to reports to separate this PR and the reports PR
* Adds ability to toggle Recent Reactions and adds #get_related_reactions to controller
- Adds a #get_related_reactions method to the Admin::Users::Controller
- Moves the rendering of the reactions partial below the notes partial in edit
- Styles Recent Reactions in a list format with the ability to toggle
* Modifies #set_related_reactions name, query, and limit and the _reactions view with it
- Adjust #get_related_reactions to read #set_related_reactions
- Sort reactions by descending created_at
- Add a limit of 15 to reactions displayed for any given user
- Add .empty? in place of .nil? to _reactions.html.erb reaction check
* Adjusts the format of how Recent Reactions are displayed and adds Reaction category
* Adds a check for category: vomit in #set_related_reactions
* Renames partial, adds User reactions to #set_related_reactions, and adjusts partial styling
* Rewords message displayed when no negative reactions exist to make it fun
* Adds additional styling changes to recent reactions
* 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
* 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
* feat: add a select and a new text field
* feat: groups need to be unique and present
* feat: make the ui a little better
* chore: update the label
* chore: just present
* feat: add some js ( still a work in progress)
* feat: update the interface to work better :)
* chore: indent
* feat: make sure the toggles work
* chore: rename more aptly
* refactor: toggling pulled out into two functions
* refactor: move group form to a partial so that we can reuse it
* chore: move the js to the group form
* chore: update alignment and nav element
* chore: update text
* chore: update specs
* 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
* flare tag line height
* .
* dropdown fix + actions bar fix
* actions bar on mob
* fixing typography and improving font handling
* cleanup
* variables naming
* fonts swapping
* Makes user's default font render as SiteConfig.default_font
* Trigger checks
* Fixes missing user model specs
* Fixes storybook CI error import & logged out user font set with default
* Limits default_font config to serif, sans-serif & open-dyslexic
* Default font description text
Co-authored-by: Fernando Valverde <fdov88@gmail.com>
* 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
* 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
* Change models and related files
* Update controllers and specs
* More renaming
* Seek and destroy, I mean search and replace
* Round up the stragglers
* Ground control to Major Travis...
* More fixes
* PR feedback
* Various fixes
* Rename view
* Fix list query builder
* Unify request specs
* Fix some API spec errors
* Fix remaining API specs
* Make spec conform to API
* Fix leftover problems
* Fix JS tests
* Fix column name in select
* Fix API specs
* Fix search specs
* Paging Mr. Travis
* Add ProMembership model
* Implement ProMembershipsController#create
* Implement basic ProMembershipsController#show
* Add ProMembership to ledger
* Populate user history after pro subscription is created
* Add fields for expiration notifications
* Add ProMemberships::ExpirationNotifier to notify users of expiring memberships
* Add tasks for recurring jobs to notify users of expiration
* Add auto_recharge column to ProMembership
* Add ProMemberships::Biller (incomplete)
* Fix specs
* Add ProMembership to Administrate
* Fix spec
* Add has_enough_credits? to User and Organization
* Add Payments::Customer class
* Finish ProMembership::Biller functionality
* Fix ProMemberships::Creator check for credits
* Disable destroy actions for ProMembershipsController
* Correctly authenticate ProMembershipsController actions
* Make sure only pro user's history can be indexed
* Add ProMembershipsController#update action for auto recharge
* Use regular AR to save new credits and add touch to the purchaser
* Clarify Pro membership create policy
* Display information about an existing pro membership
* Add UI to show page
* Add system test for Pro membership creation
* Implement edit membership
* Make sure users with pro memberships can access history and dashboard pro
* Fix padding issue
* Show a different text for a user that has credits but not enough for Pro
* Move Pro Membership functionality inside settings
* Update Pro Membership link in email notifications
* Bust all relevant caches
* Add the Pro checkmark around the website
* Use Users::ResaveArticlesJob instead of delay
* Add/remove user from pro-members chat channel
* Use the appropriate Pro checkmark
* Remove unfinished pro elements
* Remove checkmark JS
* Start with webhooks: table and model
* Start with webhooks api
* Start with webhooks api
* Webhook::Event class and events list
* Remove commented callbacks
* Start with sending events to webhook endpoints
* A couple of tests for Articles::Creator
* Send event to webhook endpoint on article destroy
* Dispatch event on article update
* Dispatch event when an article updated from admin
* Spec for the webhook job
* One more test for the dispatch event job
* Integration-like spec for event dispatching to webhook endpoints when creating an article
* Use Addressable::URI to parse endpoint url
* Add oj as a faster fast_jsonapi backend
* Renamed serializers
* Move article serialization out of a model
* Don't allow to create a webhook event with invalid type
* Add fields for ArticleSerializer
* Fix webhook event job specs
* Specify timeout when dispatching events
* Fix webhook job spec
* Change webhook events queue name
* Change serialized article fields for the dispatchable events
* Include user data when serializing an article for webhook event
* Moved decorating out of Webhook::DispatchEvent, fixed most specs
* Fix route in ArticleSerializer
* Move Article decoration to Webhook::PayloadAdapter
* Refactor image url helpers to avoid including helpers into serializer
* Fix specs
* Default url options for production
* Published field for podcasts
* Add podcasts migration
* More specs for podcasts availability
* Show published in podcasts internal
* Update schema.rb with db:migrate