Module: SnippetsHelper
- Included in:
- Gitlab::SnippetSearchResults
- Defined in:
- app/helpers/snippets_helper.rb
Instance Method Summary collapse
-
#bounded_line_numbers(line, min, max, surrounding_lines) ⇒ Object
Get an array of line numbers surrounding a matching line, bounded by min/max.
- #download_raw_snippet_button(snippet) ⇒ Object
- #embedded_raw_snippet_button(snippet, blob) ⇒ Object
- #embedded_snippet_download_button(snippet, blob) ⇒ Object
- #snippet_badge(snippet) ⇒ Object
- #snippet_badge_attributes(snippet) ⇒ Object
- #snippet_embed_input(snippet) ⇒ Object
- #snippet_embed_tag(snippet) ⇒ Object
- #snippets_upload_path(snippet, user) ⇒ Object
-
#subject_snippets_path(subject = nil, opts = nil) ⇒ Object
Return the path of a snippets index for a user or for a project.
Instance Method Details
#bounded_line_numbers(line, min, max, surrounding_lines) ⇒ Object
Get an array of line numbers surrounding a matching line, bounded by min/max.
39 40 41 42 43 |
# File 'app/helpers/snippets_helper.rb', line 39 def bounded_line_numbers(line, min, max, surrounding_lines) lower = line - surrounding_lines > min ? line - surrounding_lines : min upper = line + surrounding_lines < max ? line + surrounding_lines : max (lower..upper).to_a end |
#download_raw_snippet_button(snippet) ⇒ Object
14 15 16 17 18 19 20 21 22 |
# File 'app/helpers/snippets_helper.rb', line 14 def (snippet) link_to(sprite_icon('download'), gitlab_raw_snippet_path(snippet, inline: false), target: '_blank', rel: 'noopener noreferrer', class: "btn btn-sm has-tooltip", title: 'Download', data: { container: 'body' }) end |
#embedded_raw_snippet_button(snippet, blob) ⇒ Object
77 78 79 80 81 82 83 84 85 86 |
# File 'app/helpers/snippets_helper.rb', line 77 def (snippet, blob) return if blob.empty? || blob.binary? || blob.stored_externally? link_to(external_snippet_icon('doc-code'), gitlab_raw_snippet_blob_url(snippet, blob.path), class: 'btn', target: '_blank', rel: 'noopener noreferrer', title: 'Open raw') end |
#embedded_snippet_download_button(snippet, blob) ⇒ Object
88 89 90 91 92 93 94 95 |
# File 'app/helpers/snippets_helper.rb', line 88 def (snippet, blob) link_to(external_snippet_icon('download'), gitlab_raw_snippet_blob_url(snippet, blob.path, nil, inline: false), class: 'btn', target: '_blank', title: 'Download', rel: 'noopener noreferrer') end |
#snippet_badge(snippet) ⇒ Object
60 61 62 63 64 65 66 67 68 69 |
# File 'app/helpers/snippets_helper.rb', line 60 def snippet_badge(snippet) return unless attrs = snippet_badge_attributes(snippet) icon_name, text = attrs tag.span(class: %w[badge badge-gray]) do concat(sprite_icon(icon_name, size: 14, css_class: 'gl-vertical-align-middle')) concat(' ') concat(text) end end |
#snippet_badge_attributes(snippet) ⇒ Object
71 72 73 74 75 |
# File 'app/helpers/snippets_helper.rb', line 71 def snippet_badge_attributes(snippet) if snippet.private? ['lock', _('private')] end end |
#snippet_embed_input(snippet) ⇒ Object
49 50 51 52 53 54 55 56 57 58 |
# File 'app/helpers/snippets_helper.rb', line 49 def (snippet) content_tag(:input, nil, type: :text, readonly: true, class: 'js-snippet-url-area snippet-embed-input form-control', data: { url: gitlab_snippet_url(snippet) }, value: (snippet), autocomplete: 'off') end |
#snippet_embed_tag(snippet) ⇒ Object
45 46 47 |
# File 'app/helpers/snippets_helper.rb', line 45 def (snippet) content_tag(:script, nil, src: gitlab_snippet_url(snippet, format: :js)) end |
#snippets_upload_path(snippet, user) ⇒ Object
4 5 6 7 8 9 10 11 12 |
# File 'app/helpers/snippets_helper.rb', line 4 def snippets_upload_path(snippet, user) return unless user if snippet&.persisted? upload_path('personal_snippet', id: snippet.id) else upload_path('user', id: user.id) end end |
#subject_snippets_path(subject = nil, opts = nil) ⇒ Object
Return the path of a snippets index for a user or for a project
27 28 29 30 31 32 33 |
# File 'app/helpers/snippets_helper.rb', line 27 def subject_snippets_path(subject = nil, opts = nil) if subject.is_a?(Project) project_snippets_path(subject, opts) else # assume subject === User dashboard_snippets_path(opts) end end |