Fix note form hint showing slash commands supported for commits
Signed-off-by: Rémy Coutable <remy@rymai.me>
This commit is contained in:
parent
4276172b69
commit
3970640b48
5 changed files with 36 additions and 11 deletions
|
@ -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
|
||||||
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
|
||||||
'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
|
||||||
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
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
- 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 @@
|
||||||
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
|
||||||
|
|
16
spec/features/projects/commits/note_spec.rb
Normal file
16
spec/features/projects/commits/note_spec.rb
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
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
|
Loading…
Reference in a new issue