Module: NotesHelper

Defined in:
app/helpers/notes_helper.rb

Instance Method Summary collapse

Instance Method Details


18
19
20
21
22
23
24
25
26
# File 'app/helpers/notes_helper.rb', line 18

def link_to_commit_diff_line_note(note)
  if note.for_commit_diff_line?
    link_to(
      "#{note.diff_file_name}:L#{note.diff_new_line}",
      namespace_project_commit_path(@project.namespace, @project,
                                    note.noteable, anchor: note.line_code)
    )
  end
end

37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'app/helpers/notes_helper.rb', line 37

def link_to_new_diff_note(line_code, line_type = nil)
  discussion_id = Note.build_discussion_id(
    @comments_target[:noteable_type],
    @comments_target[:noteable_id] || @comments_target[:commit_id],
    line_code
  )

  data = {
    noteable_type: @comments_target[:noteable_type],
    noteable_id:   @comments_target[:noteable_id],
    commit_id:     @comments_target[:commit_id],
    line_code:     line_code,
    discussion_id: discussion_id,
    line_type:     line_type
  }

  button_tag(class: 'btn add-diff-note js-add-diff-note-button',
             data: data,
             title: 'Add a comment to this line') do
    icon('comment-o')
  end
end

60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'app/helpers/notes_helper.rb', line 60

def link_to_reply_diff(note, line_type = nil)
  return unless current_user

  data = {
    noteable_type: note.noteable_type,
    noteable_id:   note.noteable_id,
    commit_id:     note.commit_id,
    line_code:     note.line_code,
    discussion_id: note.discussion_id,
    line_type:     line_type
  }

  button_tag 'Reply...', class: 'btn btn-text-field js-discussion-reply-button',
                         data: data, title: 'Add a reply'
end

#note_editable?(note) ⇒ Boolean

Returns:

  • (Boolean)

14
15
16
# File 'app/helpers/notes_helper.rb', line 14

def note_editable?(note)
  note.editable? && can?(current_user, :admin_note, note)
end

#note_for_main_target?(note) ⇒ Boolean

Helps to distinguish e.g. commit notes in mr notes list

Returns:

  • (Boolean)

3
4
5
# File 'app/helpers/notes_helper.rb', line 3

def note_for_main_target?(note)
  (@noteable.class.name == note.noteable_type && !note.for_diff_line?)
end

#note_target_fields(note) ⇒ Object


7
8
9
10
11
12
# File 'app/helpers/notes_helper.rb', line 7

def note_target_fields(note)
  if note.noteable
    hidden_field_tag(:target_type, note.noteable.class.name.underscore) +
      hidden_field_tag(:target_id, note.noteable.id)
  end
end

#noteable_json(noteable) ⇒ Object


28
29
30
31
32
33
34
35
# File 'app/helpers/notes_helper.rb', line 28

def noteable_json(noteable)
  {
    id: noteable.id,
    class: noteable.class.name,
    resources: noteable.class.table_name,
    project_id: noteable.project.id,
  }.to_json
end