diff options
author | Peter Leitzen <pleitzen@gitlab.com> | 2018-10-12 14:10:34 +0000 |
---|---|---|
committer | Sean McGivern <sean@mcgivern.me.uk> | 2018-10-12 14:10:34 +0000 |
commit | 4d9ede0be7ea4dae92d224454616f9e65da0a3e1 (patch) | |
tree | b21808ddd85a2114bea1502a6ec06b16894e0ef2 /app/helpers | |
parent | 0047869c27f0aede95f20de41c8498b7c23bf08d (diff) | |
download | gitlab-ce-4d9ede0be7ea4dae92d224454616f9e65da0a3e1.tar.gz |
Backport CE changes for Ops Dashboard in EE
Diffstat (limited to 'app/helpers')
-rw-r--r-- | app/helpers/preferences_helper.rb | 36 |
1 files changed, 25 insertions, 11 deletions
diff --git a/app/helpers/preferences_helper.rb b/app/helpers/preferences_helper.rb index ff9842d4cd9..f4f46b0fe96 100644 --- a/app/helpers/preferences_helper.rb +++ b/app/helpers/preferences_helper.rb @@ -18,22 +18,20 @@ module PreferencesHelper groups: _("Your Groups"), todos: _("Your Todos"), issues: _("Assigned Issues"), - merge_requests: _("Assigned Merge Requests") + merge_requests: _("Assigned Merge Requests"), + operations: _("Operations Dashboard") }.with_indifferent_access.freeze # Returns an Array usable by a select field for more user-friendly option text def dashboard_choices - defined = User.dashboards + dashboards = User.dashboards.keys - if defined.size != DASHBOARD_CHOICES.size - # Ensure that anyone adding new options updates this method too - raise "`User` defines #{defined.size} dashboard choices," \ - " but `DASHBOARD_CHOICES` defined #{DASHBOARD_CHOICES.size}." - else - defined.map do |key, _| - # Use `fetch` so `KeyError` gets raised when a key is missing - [DASHBOARD_CHOICES.fetch(key), key] - end + validate_dashboard_choices!(dashboards) + dashboards -= excluded_dashboard_choices + + dashboards.map do |key| + # Use `fetch` so `KeyError` gets raised when a key is missing + [DASHBOARD_CHOICES.fetch(key), key] end end @@ -52,4 +50,20 @@ module PreferencesHelper def user_color_scheme Gitlab::ColorSchemes.for_user(current_user).css_class end + + private + + # Ensure that anyone adding new options updates `DASHBOARD_CHOICES` too + def validate_dashboard_choices!(user_dashboards) + if user_dashboards.size != DASHBOARD_CHOICES.size + raise "`User` defines #{user_dashboards.size} dashboard choices," \ + " but `DASHBOARD_CHOICES` defined #{DASHBOARD_CHOICES.size}." + end + end + + # List of dashboard choice to be excluded from CE. + # EE would override this. + def excluded_dashboard_choices + ['operations'] + end end |