Commit 3970640b authored by Rémy Coutable's avatar Rémy Coutable

Fix note form hint showing slash commands supported for commits

Signed-off-by: default avatarRémy Coutable <remy@rymai.me>
parent 4276172b
...@@ -14,6 +14,7 @@ v 8.12.0 (unreleased) ...@@ -14,6 +14,7 @@ v 8.12.0 (unreleased)
- Filter tags by name !6121 - Filter tags by name !6121
- Update gitlab shell secret file also when it is empty. !3774 (glensc) - Update gitlab shell secret file also when it is empty. !3774 (glensc)
- Give project selection dropdowns responsive width, make non-wrapping. - Give project selection dropdowns responsive width, make non-wrapping.
- Fix note form hint showing slash commands supported for commits.
- Make push events have equal vertical spacing. - Make push events have equal vertical spacing.
- API: Ensure invitees are not returned in Members API. - API: Ensure invitees are not returned in Members API.
- Add two-factor recovery endpoint to internal API !5510 - Add two-factor recovery endpoint to internal API !5510
......
...@@ -10,6 +10,10 @@ module NotesHelper ...@@ -10,6 +10,10 @@ module NotesHelper
Ability.can_edit_note?(current_user, note) Ability.can_edit_note?(current_user, note)
end end
def note_supports_slash_commands?(note)
Notes::SlashCommandsService.supported?(note, current_user)
end
def noteable_json(noteable) def noteable_json(noteable)
{ {
id: noteable.id, id: noteable.id,
......
...@@ -5,9 +5,17 @@ module Notes ...@@ -5,9 +5,17 @@ module Notes
'MergeRequest' => MergeRequests::UpdateService 'MergeRequest' => MergeRequests::UpdateService
} }
def supported?(note) def self.noteable_update_service(note)
UPDATE_SERVICES[note.noteable_type]
end
def self.supported?(note, current_user)
noteable_update_service(note) && noteable_update_service(note) &&
can?(current_user, :"update_#{note.noteable_type.underscore}", note.noteable) current_user.can?(:"update_#{note.noteable_type.underscore}", note.noteable)
end
def supported?(note)
self.class.supported?(note, current_user)
end end
def extract_commands(note) def extract_commands(note)
...@@ -21,13 +29,7 @@ module Notes ...@@ -21,13 +29,7 @@ module Notes
return if command_params.empty? return if command_params.empty?
return unless supported?(note) return unless supported?(note)
noteable_update_service(note).new(project, current_user, command_params).execute(note.noteable) self.class.noteable_update_service(note).new(project, current_user, command_params).execute(note.noteable)
end
private
def noteable_update_service(note)
UPDATE_SERVICES[note.noteable_type]
end end
end end
end end
- supports_slash_commands = note_supports_slash_commands?(@note)
= form_for [@project.namespace.becomes(Namespace), @project, @note], remote: true, html: { :'data-type' => 'json', multipart: true, id: nil, class: "new-note js-new-note-form js-quick-submit common-note-form", "data-noteable-iid" => @note.noteable.try(:iid), }, authenticity_token: true do |f| = form_for [@project.namespace.becomes(Namespace), @project, @note], remote: true, html: { :'data-type' => 'json', multipart: true, id: nil, class: "new-note js-new-note-form js-quick-submit common-note-form", "data-noteable-iid" => @note.noteable.try(:iid), }, authenticity_token: true do |f|
= hidden_field_tag :view, diff_view = hidden_field_tag :view, diff_view
= hidden_field_tag :line_type = hidden_field_tag :line_type
...@@ -14,8 +16,8 @@ ...@@ -14,8 +16,8 @@
attr: :note, attr: :note,
classes: 'note-textarea js-note-text', classes: 'note-textarea js-note-text',
placeholder: "Write a comment or drag your files here...", placeholder: "Write a comment or drag your files here...",
supports_slash_commands: true supports_slash_commands: supports_slash_commands
= render 'projects/notes/hints', supports_slash_commands: true = render 'projects/notes/hints', supports_slash_commands: supports_slash_commands
.error-alert .error-alert
.note-form-actions.clearfix .note-form-actions.clearfix
......
require 'spec_helper'
describe 'Projects > Commits > Note' do
let(:project) { create(:project) }
let(:commit) { project.commit('7d3b0f7cff5f37573aea97cebfd5692ea1689924') }
before do
login_as :user
project.team << [@user, :master]
visit namespace_project_commit_path(project.namespace, project, commit.id)
end
it 'says that only markdown is supported, not slash commands' do
expect(page).to have_content('Styling with Markdown is supported')
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment