From e20538088bba75fa3193004b8695d4ffab7aca21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20Louz=C3=A1n?= Date: Tue, 30 Jul 2019 17:03:17 +0000 Subject: Add support page link in help menu Creates a new item in help dropdown to show configured support page link --- .../application_settings/_help_page.html.haml | 2 +- app/views/layouts/header/_help_dropdown.html.haml | 2 ++ .../feat-add-support-page-link-in-help-menu.yml | 5 ++++ doc/api/settings.md | 2 +- lib/api/settings.rb | 2 +- locale/gitlab.pot | 5 +++- spec/features/admin/admin_settings_spec.rb | 34 ++++++++++++++++++++-- 7 files changed, 46 insertions(+), 6 deletions(-) create mode 100644 changelogs/unreleased/feat-add-support-page-link-in-help-menu.yml diff --git a/app/views/admin/application_settings/_help_page.html.haml b/app/views/admin/application_settings/_help_page.html.haml index a869f1bd4df..5e5ab1e4269 100644 --- a/app/views/admin/application_settings/_help_page.html.haml +++ b/app/views/admin/application_settings/_help_page.html.haml @@ -16,6 +16,6 @@ .form-group = f.label :help_page_support_url, _('Support page URL'), class: 'label-bold' = f.text_field :help_page_support_url, class: 'form-control', placeholder: 'http://company.example.com/getting-help', :'aria-describedby' => 'support_help_block' - %span.form-text.text-muted#support_help_block= _('Alternate support URL for help page') + %span.form-text.text-muted#support_help_block= _('Alternate support URL for help page and help dropdown') = f.submit _('Save changes'), class: "btn btn-success" diff --git a/app/views/layouts/header/_help_dropdown.html.haml b/app/views/layouts/header/_help_dropdown.html.haml index 5643a508ddc..41d7aa3741a 100644 --- a/app/views/layouts/header/_help_dropdown.html.haml +++ b/app/views/layouts/header/_help_dropdown.html.haml @@ -2,6 +2,8 @@ - if current_user_menu?(:help) %li = link_to _("Help"), help_path + %li + = link_to _("Support"), support_url = render_if_exists "shared/learn_gitlab_menu_item" %li.divider %li diff --git a/changelogs/unreleased/feat-add-support-page-link-in-help-menu.yml b/changelogs/unreleased/feat-add-support-page-link-in-help-menu.yml new file mode 100644 index 00000000000..2cddd52212e --- /dev/null +++ b/changelogs/unreleased/feat-add-support-page-link-in-help-menu.yml @@ -0,0 +1,5 @@ +--- +title: Add admin-configurable "Support page URL" link to top Help dropdown menu +merge_request: 30459 +author: Diego Louzán +type: added diff --git a/doc/api/settings.md b/doc/api/settings.md index 68da88af698..c3ac70f0579 100644 --- a/doc/api/settings.md +++ b/doc/api/settings.md @@ -230,7 +230,7 @@ are listed in the descriptions of the relevant settings. | `gravatar_enabled` | boolean | no | Enable Gravatar. | | `hashed_storage_enabled` | boolean | no | Create new projects using hashed storage paths: Enable immutable, hash-based paths and repository names to store repositories on disk. This prevents repositories from having to be moved or renamed when the Project URL changes and may improve disk I/O performance. (EXPERIMENTAL) | | `help_page_hide_commercial_content` | boolean | no | Hide marketing-related entries from help. | -| `help_page_support_url` | string | no | Alternate support URL for help page. | +| `help_page_support_url` | string | no | Alternate support URL for help page and help dropdown. | | `help_page_text` | string | no | Custom text displayed on the help page. | | `help_text` | string | no | **(PREMIUM)** GitLab server administrator information | | `hide_third_party_offers` | boolean | no | Do not display offers from third parties within GitLab. | diff --git a/lib/api/settings.rb b/lib/api/settings.rb index 4275d911708..aa9e879160d 100644 --- a/lib/api/settings.rb +++ b/lib/api/settings.rb @@ -59,7 +59,7 @@ module API optional :grafana_url, type: String, desc: 'Grafana URL' optional :gravatar_enabled, type: Boolean, desc: 'Flag indicating if the Gravatar service is enabled' optional :help_page_hide_commercial_content, type: Boolean, desc: 'Hide marketing-related entries from help' - optional :help_page_support_url, type: String, desc: 'Alternate support URL for help page' + optional :help_page_support_url, type: String, desc: 'Alternate support URL for help page and help dropdown' optional :help_page_text, type: String, desc: 'Custom text displayed on the help page' optional :home_page_url, type: String, desc: 'We will redirect non-logged in users to this page' optional :housekeeping_enabled, type: Boolean, desc: 'Enable automatic repository housekeeping (git repack, git gc)' diff --git a/locale/gitlab.pot b/locale/gitlab.pot index 591dc2a7e39..feae99fb95a 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -966,7 +966,7 @@ msgstr "" msgid "Allows you to add and manage Kubernetes clusters." msgstr "" -msgid "Alternate support URL for help page" +msgid "Alternate support URL for help page and help dropdown" msgstr "" msgid "Alternatively, you can use a %{personal_access_token_link}. When you create your Personal Access Token, you will need to select the repo scope, so we can display a list of your public and private repositories which are available to import." @@ -10586,6 +10586,9 @@ msgstr "" msgid "Sunday" msgstr "" +msgid "Support" +msgstr "" + msgid "Support for custom certificates is disabled. Ask your system's administrator to enable it." msgstr "" diff --git a/spec/features/admin/admin_settings_spec.rb b/spec/features/admin/admin_settings_spec.rb index a074bbcff0a..c77605f3869 100644 --- a/spec/features/admin/admin_settings_spec.rb +++ b/spec/features/admin/admin_settings_spec.rb @@ -356,16 +356,18 @@ describe 'Admin updates settings' do end it 'Change Help page' do + new_support_url = 'http://example.com/help' + page.within('.as-help-page') do fill_in 'Help page text', with: 'Example text' check 'Hide marketing-related entries from help' - fill_in 'Support page URL', with: 'http://example.com/help' + fill_in 'Support page URL', with: new_support_url click_button 'Save changes' end expect(current_settings.help_page_text).to eq "Example text" expect(current_settings.help_page_hide_commercial_content).to be_truthy - expect(current_settings.help_page_support_url).to eq "http://example.com/help" + expect(current_settings.help_page_support_url).to eq new_support_url expect(page).to have_content "Application settings saved successfully" end @@ -415,6 +417,34 @@ describe 'Admin updates settings' do end end + context 'Nav bar' do + it 'Shows default help links in nav' do + default_support_url = 'https://about.gitlab.com/getting-help/' + + visit root_dashboard_path + + find('.header-help-dropdown-toggle').click + + page.within '.header-help' do + expect(page).to have_link(text: 'Help', href: help_path) + expect(page).to have_link(text: 'Support', href: default_support_url) + end + end + + it 'Shows custom support url in nav when set' do + new_support_url = 'http://example.com/help' + stub_application_setting(help_page_support_url: new_support_url) + + visit root_dashboard_path + + find('.header-help-dropdown-toggle').click + + page.within '.header-help' do + expect(page).to have_link(text: 'Support', href: new_support_url) + end + end + end + def check_all_events page.check('Active') page.check('Push') -- cgit v1.2.1