Skip to content
Snippets Groups Projects
Commit a6ac0a27 authored by Illya Klymov's avatar Illya Klymov
Browse files

Add links in admin area overview

Introduces new `feature_entry` helper for dashboard.
This helper reduces code duplication when listing available features
and relevant links to configuration sections
parent c47412d4
No related branches found
No related tags found
No related merge requests found
# frozen_string_literal: true
 
module DashboardHelper
include IconsHelper
def assigned_issues_dashboard_path
issues_dashboard_path(assignee_username: current_user.username)
end
Loading
Loading
@@ -25,6 +27,19 @@ module DashboardHelper
false
end
 
def feature_entry(title, href: nil, enabled: true)
enabled_text = enabled ? 'on' : 'off'
label = "#{title}: status #{enabled_text}"
link_or_title = href && enabled ? tag.a(title, href: href) : title
tag.p(aria: { label: label }) do
concat(link_or_title)
concat(tag.span(class: ['light', 'float-right']) do
concat(boolean_to_icon(enabled))
end)
end
end
private
 
def get_dashboard_nav_links
Loading
Loading
Loading
Loading
@@ -76,51 +76,17 @@
.info-well
.well-segment.admin-well.admin-well-features
%h4 Features
- sign_up = "Sign up"
%p{ "aria-label" => "#{sign_up}: status " + (allow_signup? ? "on" : "off") }
= sign_up
%span.light.float-right
= boolean_to_icon allow_signup?
- ldap = "LDAP"
%p{ "aria-label" => "#{ldap}: status " + (Gitlab.config.ldap.enabled ? "on" : "off") }
= ldap
%span.light.float-right
= boolean_to_icon Gitlab.config.ldap.enabled
- gravatar = "Gravatar"
%p{ "aria-label" => "#{gravatar}: status " + (gravatar_enabled? ? "on" : "off") }
= gravatar
%span.light.float-right
= boolean_to_icon gravatar_enabled?
- omniauth = "OmniAuth"
%p{ "aria-label" => "#{omniauth}: status " + (Gitlab::Auth.omniauth_enabled? ? "on" : "off") }
= omniauth
%span.light.float-right
= boolean_to_icon Gitlab::Auth.omniauth_enabled?
- reply_email = "Reply by email"
%p{ "aria-label" => "#{reply_email}: status " + (Gitlab::IncomingEmail.enabled? ? "on" : "off") }
= reply_email
%span.light.float-right
= boolean_to_icon Gitlab::IncomingEmail.enabled?
= feature_entry(_('Sign up'), href: admin_application_settings_path(anchor: 'js-signup-settings'))
= feature_entry(_('LDAP'), enabled: Gitlab.config.ldap.enabled)
= feature_entry(_('Gravatar'), href: admin_application_settings_path(anchor: 'js-account-settings'), enabled: gravatar_enabled?)
= feature_entry(_('OmniAuth'), href: admin_application_settings_path(anchor: 'js-signin-settings'), enabled: Gitlab::Auth.omniauth_enabled?)
= feature_entry(_('Reply by email'), enabled: Gitlab::IncomingEmail.enabled?)
 
= render_if_exists 'admin/dashboard/elastic_and_geo'
 
- container_reg = "Container Registry"
%p{ "aria-label" => "#{container_reg}: status " + (Gitlab.config.registry.enabled ? "on" : "off") }
= container_reg
%span.light.float-right
= boolean_to_icon Gitlab.config.registry.enabled
- gitlab_pages = 'GitLab Pages'
- gitlab_pages_enabled = Gitlab.config.pages.enabled
%p{ "aria-label" => "#{gitlab_pages}: status " + (gitlab_pages_enabled ? "on" : "off") }
= gitlab_pages
%span.light.float-right
= boolean_to_icon gitlab_pages_enabled
- gitlab_shared_runners = 'Shared Runners'
- gitlab_shared_runners_enabled = Gitlab.config.gitlab_ci.shared_runners_enabled
%p{ "aria-label" => "#{gitlab_shared_runners}: status " + (gitlab_shared_runners_enabled ? "on" : "off") }
= gitlab_shared_runners
%span.light.float-right
= boolean_to_icon gitlab_shared_runners_enabled
= feature_entry(_('Container Registry'), href: ci_cd_admin_application_settings_path(anchor: 'js-registry-settings'), enabled: Gitlab.config.registry.enabled)
= feature_entry(_('Gitlab Pages'), href: help_instance_configuration_url, enabled: Gitlab.config.pages.enabled)
= feature_entry(_('Shared Runners'), href: admin_runners_path, enabled: Gitlab.config.gitlab_ci.shared_runners_enabled)
.col-md-4
.info-well
.well-segment.admin-well
Loading
Loading
@@ -130,7 +96,8 @@
.float-right
= version_status_badge
%p
GitLab
%a{ href: admin_application_settings_path }
GitLab
%span.float-right
= Gitlab::VERSION
= "(#{Gitlab.revision})"
Loading
Loading
---
title: Add links to relevant configuration areas in admin area overview
merge_request: 29306
author:
type: added
Loading
Loading
@@ -4971,6 +4971,9 @@ msgstr ""
msgid "Gitea Import"
msgstr ""
 
msgid "Gitlab Pages"
msgstr ""
msgid "Given access %{time_ago}"
msgstr ""
 
Loading
Loading
@@ -5031,6 +5034,9 @@ msgstr ""
msgid "Graph"
msgstr ""
 
msgid "Gravatar"
msgstr ""
msgid "Gravatar enabled"
msgstr ""
 
Loading
Loading
@@ -5963,6 +5969,9 @@ msgstr ""
msgid "Kubernetes service integration has been disabled. Fields on this page are not used by GitLab, you can configure your Kubernetes clusters using the new <a href=\"%{url}\"/>Kubernetes Clusters</a> page"
msgstr ""
 
msgid "LDAP"
msgstr ""
msgid "LFS"
msgstr ""
 
Loading
Loading
@@ -7154,6 +7163,9 @@ msgstr ""
msgid "OfSearchInADropdown|Filter"
msgstr ""
 
msgid "OmniAuth"
msgstr ""
msgid "Once removed, the fork relationship cannot be restored and you will no longer be able to send merge requests to the source."
msgstr ""
 
Loading
Loading
@@ -8898,6 +8910,9 @@ msgstr ""
msgid "Replace all label(s)"
msgstr ""
 
msgid "Reply by email"
msgstr ""
msgid "Reply to comment"
msgstr ""
 
Loading
Loading
@@ -9706,6 +9721,9 @@ msgstr ""
msgid "Sign out"
msgstr ""
 
msgid "Sign up"
msgstr ""
msgid "Sign-in restrictions"
msgstr ""
 
Loading
Loading
Loading
Loading
@@ -22,6 +22,43 @@ describe DashboardHelper do
end
end
 
describe '#feature_entry' do
context 'when implicitly enabled' do
it 'considers feature enabled by default' do
entry = feature_entry('Demo', href: 'demo.link')
expect(entry).to include('<p aria-label="Demo: status on">')
expect(entry).to include('<a href="demo.link">Demo</a>')
end
end
context 'when explicitly enabled' do
it 'returns a link' do
entry = feature_entry('Demo', href: 'demo.link', enabled: true)
expect(entry).to include('<p aria-label="Demo: status on">')
expect(entry).to include('<a href="demo.link">Demo</a>')
end
it 'returns text if href is not provided' do
entry = feature_entry('Demo', enabled: true)
expect(entry).to include('<p aria-label="Demo: status on">')
expect(entry).not_to match(/<a[^>]+>/)
end
end
context 'when disabled' do
it 'returns text without link' do
entry = feature_entry('Demo', href: 'demo.link', enabled: false)
expect(entry).to include('<p aria-label="Demo: status off">')
expect(entry).not_to match(/<a[^>]+>/)
expect(entry).to include('Demo')
end
end
end
describe '.has_start_trial?' do
subject { helper.has_start_trial? }
 
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment