From d3776a363c2e7092801a68e4f8d46df5993de867 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Fri, 24 Apr 2020 03:09:23 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .../behaviors/markdown/render_gfm.js | 2 +- ...ser-popovers-don-t-work-in-system-notes.yml | 5 +++++ doc/user/project/pages/pages_access_control.md | 3 +++ lib/banzai/filter/user_reference_filter.rb | 2 +- .../projects/user_sees_user_popover_spec.rb | 18 ++++++++++++++++-- .../filter/user_reference_filter_spec.rb | 2 +- 6 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 changelogs/unreleased/38355-user-popovers-don-t-work-in-system-notes.yml diff --git a/app/assets/javascripts/behaviors/markdown/render_gfm.js b/app/assets/javascripts/behaviors/markdown/render_gfm.js index 137cc7b4669..01627b7206d 100644 --- a/app/assets/javascripts/behaviors/markdown/render_gfm.js +++ b/app/assets/javascripts/behaviors/markdown/render_gfm.js @@ -16,7 +16,7 @@ $.fn.renderGFM = function renderGFM() { renderMath(this.find('.js-render-math')); renderMermaid(this.find('.js-render-mermaid')); highlightCurrentUser(this.find('.gfm-project_member').get()); - initUserPopovers(this.find('.gfm-project_member').get()); + initUserPopovers(this.find('.js-user-link').get()); initMRPopovers(this.find('.gfm-merge_request').get()); renderMetrics(this.find('.js-render-metrics').get()); return this; diff --git a/changelogs/unreleased/38355-user-popovers-don-t-work-in-system-notes.yml b/changelogs/unreleased/38355-user-popovers-don-t-work-in-system-notes.yml new file mode 100644 index 00000000000..48f6a1a17e6 --- /dev/null +++ b/changelogs/unreleased/38355-user-popovers-don-t-work-in-system-notes.yml @@ -0,0 +1,5 @@ +--- +title: Add user popovers to system notes +merge_request: 24241 +author: +type: fixed diff --git a/doc/user/project/pages/pages_access_control.md b/doc/user/project/pages/pages_access_control.md index 1d8119cfe87..0c42994cfc3 100644 --- a/doc/user/project/pages/pages_access_control.md +++ b/doc/user/project/pages/pages_access_control.md @@ -11,6 +11,9 @@ You can enable Pages access control on your project, so that only [members of your project](../../permissions.md#project-members-permissions) (at least Guest) can access your website: + +For a demonstration, see [Pages access controls](https://www.youtube.com/watch?v=tSPAr5mQYc8). + 1. Navigate to your project's **Settings > General** and expand **Visibility, project features, permissions**. 1. Toggle the **Pages** button to enable the access control. diff --git a/lib/banzai/filter/user_reference_filter.rb b/lib/banzai/filter/user_reference_filter.rb index 8cda67867a8..9268ff1a827 100644 --- a/lib/banzai/filter/user_reference_filter.rb +++ b/lib/banzai/filter/user_reference_filter.rb @@ -106,7 +106,7 @@ module Banzai end def link_class - reference_class(:project_member, tooltip: false) + [reference_class(:project_member, tooltip: false), "js-user-link"].join(" ") end def link_to_all(link_content: nil) diff --git a/spec/features/projects/user_sees_user_popover_spec.rb b/spec/features/projects/user_sees_user_popover_spec.rb index fafb3773866..6197460776d 100644 --- a/spec/features/projects/user_sees_user_popover_spec.rb +++ b/spec/features/projects/user_sees_user_popover_spec.rb @@ -3,6 +3,8 @@ require 'spec_helper' describe 'User sees user popover', :js do + include Spec::Support::Helpers::Features::NotesHelpers + let_it_be(:project) { create(:project, :repository) } let(:user) { project.creator } let(:merge_request) do @@ -17,13 +19,13 @@ describe 'User sees user popover', :js do subject { page } describe 'hovering over a user link in a merge request' do + let(:popover_selector) { '.user-popover' } + before do visit project_merge_request_path(project, merge_request) end it 'displays user popover' do - popover_selector = '.user-popover' - find('.js-user-link').hover expect(page).to have_css(popover_selector, visible: true) @@ -32,5 +34,17 @@ describe 'User sees user popover', :js do expect(page).to have_content(user.name) end end + + it "displays user popover in system note" do + add_note("/assign @#{user.username}") + + wait_for_requests + + find('.system-note-message .js-user-link').hover + + page.within(popover_selector) do + expect(page).to have_content(user.name) + end + end end end diff --git a/spec/lib/banzai/filter/user_reference_filter_spec.rb b/spec/lib/banzai/filter/user_reference_filter_spec.rb index a09aeb7d7f6..cd6b68343b5 100644 --- a/spec/lib/banzai/filter/user_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/user_reference_filter_spec.rb @@ -123,7 +123,7 @@ describe Banzai::Filter::UserReferenceFilter do it 'includes default classes' do doc = reference_filter("Hey #{reference}") - expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-project_member' + expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-project_member js-user-link' end context 'when a project is not specified' do