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

41 lines
1.1 KiB
Ruby
Raw Normal View History

# Helper methods for per-User preferences
module PreferencesHelper
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'
}.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 RuntimeError, "`User` defines #{defined.size} dashboard choices," +
" 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
[
['Readme (default)', :readme],
['Activity view', :activity]
]
end
def user_application_theme
Gitlab::Themes.by_id(current_user.try(:theme_id)).css_class
end
def prefer_readme?
!current_user ||
current_user.project_view == 'readme'
end
end