docbrown/app/controllers/internal/badges_controller.rb
Vaidehi Joshi 267e08f6f0
Improve dropdown UX for internal/badges (#5880) [deploy]
* Improve dropdown UX for internal/badges

Add a "blank" option to the dropdown to list of badges on internal/badges route.
Also add some checks to handle if an admin accidentally tries to award a "blank" badge.

* Ensure error is surfaced as flash message
2020-02-04 09:02:14 -08:00

26 lines
743 B
Ruby

class Internal::BadgesController < Internal::ApplicationController
layout "internal"
def index
@badges = Badge.all
end
def award_badges
raise ArgumentError, "Please choose a badge to award" if permitted_params[:badge].blank?
usernames = permitted_params[:usernames].split(/\s*,\s*/)
message = permitted_params[:message_markdown].presence || "Congrats!"
BadgeRewarder.award_badges(usernames, permitted_params[:badge], message)
flash[:success] = "BadgeRewarder task ran!"
redirect_to internal_badges_url
rescue ArgumentError => e
flash[:danger] = e.message
redirect_to "/internal/badges"
end
private
def permitted_params
params.permit(:usernames, :badge, :message_markdown)
end
end