Project

General

Profile

Download (1.1 KB) Statistics
| Branch: | Tag: | Revision:
module Dashboard
module Manager
@default_widgets = []
@allowed_templates = Set.new()

def self.default_widgets
@default_widgets
end

def self.register_default_widget(widget)
@default_widgets << widget
@allowed_templates << widget[:template]
end

def self.register_allowed_templates(templates)
@allowed_templates.merge(templates)
end

def self.add_widget_to_user(user, widget_params)
raise ::Foreman::Exception.new(N_("Unallowed template for dashboard widget: %s"), widget_params[:template]) unless @allowed_templates.include?(widget_params[:template])

widget = user.widgets.build(widget_params.except(:name, :template))
widget.name = widget_params[:name]
widget.template = widget_params[:template]
widget.save!
widget
end

def self.reset_user_to_default(user)
user.widgets.clear
@default_widgets.each do |widget|
add_widget_to_user(user, widget)
end
end

def self.find_default_widget_by_name(name)
@default_widgets.select { |widget| widget[:name] == name }
end
end
end
(3-3/3)