gitlab-org--gitlab-foss/app/helpers/preferences_helper.rb

54 lines
1.5 KiB
Ruby
Raw Normal View History

# Helper methods for per-User preferences
module PreferencesHelper
def layout_choices
[
['Fixed', :fixed],
['Fluid', :fluid]
]
end
2015-06-13 00:39:48 +00:00
# Maps `dashboard` values to more user-friendly option text
DASHBOARD_CHOICES = {
projects: _("Your Projects (default)"),
stars: _("Starred Projects"),
project_activity: _("Your Projects' Activity"),
starred_project_activity: _("Starred Projects' Activity"),
groups: _("Your Groups"),
todos: _("Your Todos"),
issues: _("Assigned Issues"),
merge_requests: _("Assigned Merge Requests")
2015-06-13 00:39:48 +00:00
}.with_indifferent_access.freeze
2015-06-13 00:39:48 +00:00
# Returns an Array usable by a select field for more user-friendly option text
def dashboard_choices
defined = User.dashboards
2015-06-13 00:39:48 +00:00
if defined.size != DASHBOARD_CHOICES.size
# Ensure that anyone adding new options updates this method too
raise "`User` defines #{defined.size} dashboard choices," \
2015-06-13 00:39:48 +00:00
" but `DASHBOARD_CHOICES` defined #{DASHBOARD_CHOICES.size}."
else
2015-06-13 00:39:48 +00:00
defined.map do |key, _|
# Use `fetch` so `KeyError` gets raised when a key is missing
[DASHBOARD_CHOICES.fetch(key), key]
end
end
end
def project_view_choices
[
['Files and Readme (default)', :files],
2017-10-16 20:21:51 +00:00
['Activity', :activity],
['Readme', :readme]
]
end
def user_application_theme
@user_application_theme ||= Gitlab::Themes.for_user(current_user).css_class
end
def user_color_scheme
Gitlab::ColorSchemes.for_user(current_user).css_class
end
end