145 lines
4.2 KiB
Ruby
145 lines
4.2 KiB
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
module Routing
|
||
|
module SnippetsHelper
|
||
|
def gitlab_snippet_path(snippet, *args)
|
||
|
if snippet.is_a?(ProjectSnippet)
|
||
|
project_snippet_path(snippet.project, snippet, *args)
|
||
|
else
|
||
|
new_args = snippet_query_params(snippet, *args)
|
||
|
snippet_path(snippet, *new_args)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def gitlab_snippet_url(snippet, *args)
|
||
|
if snippet.is_a?(ProjectSnippet)
|
||
|
project_snippet_url(snippet.project, snippet, *args)
|
||
|
else
|
||
|
new_args = snippet_query_params(snippet, *args)
|
||
|
snippet_url(snippet, *new_args)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def gitlab_dashboard_snippets_path(snippet, *args)
|
||
|
if snippet.is_a?(ProjectSnippet)
|
||
|
project_snippets_path(snippet.project, *args)
|
||
|
else
|
||
|
dashboard_snippets_path
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def gitlab_raw_snippet_path(snippet, *args)
|
||
|
if snippet.is_a?(ProjectSnippet)
|
||
|
raw_project_snippet_path(snippet.project, snippet, *args)
|
||
|
else
|
||
|
new_args = snippet_query_params(snippet, *args)
|
||
|
raw_snippet_path(snippet, *new_args)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def gitlab_raw_snippet_url(snippet, *args)
|
||
|
if snippet.is_a?(ProjectSnippet)
|
||
|
raw_project_snippet_url(snippet.project, snippet, *args)
|
||
|
else
|
||
|
new_args = snippet_query_params(snippet, *args)
|
||
|
raw_snippet_url(snippet, *new_args)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def gitlab_raw_snippet_blob_url(snippet, path, ref = nil, **options)
|
||
|
params = {
|
||
|
snippet_id: snippet,
|
||
|
ref: ref || snippet.default_branch,
|
||
|
path: path
|
||
|
}
|
||
|
|
||
|
if snippet.is_a?(ProjectSnippet)
|
||
|
project_snippet_blob_raw_url(snippet.project, **params, **options)
|
||
|
else
|
||
|
snippet_blob_raw_url(**params, **options)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def gitlab_raw_snippet_blob_path(snippet, path, ref = nil, **options)
|
||
|
gitlab_raw_snippet_blob_url(snippet, path, ref, only_path: true, **options)
|
||
|
end
|
||
|
|
||
|
def gitlab_snippet_notes_path(snippet, *args)
|
||
|
new_args = snippet_query_params(snippet, *args)
|
||
|
snippet_notes_path(snippet, *new_args)
|
||
|
end
|
||
|
|
||
|
def gitlab_snippet_notes_url(snippet, *args)
|
||
|
new_args = snippet_query_params(snippet, *args)
|
||
|
snippet_notes_url(snippet, *new_args)
|
||
|
end
|
||
|
|
||
|
def gitlab_snippet_note_path(snippet, note, *args)
|
||
|
new_args = snippet_query_params(snippet, *args)
|
||
|
snippet_note_path(snippet, note, *new_args)
|
||
|
end
|
||
|
|
||
|
def gitlab_snippet_note_url(snippet, note, *args)
|
||
|
new_args = snippet_query_params(snippet, *args)
|
||
|
snippet_note_url(snippet, note, *new_args)
|
||
|
end
|
||
|
|
||
|
def gitlab_toggle_award_emoji_snippet_note_path(snippet, note, *args)
|
||
|
new_args = snippet_query_params(snippet, *args)
|
||
|
toggle_award_emoji_snippet_note_path(snippet, note, *new_args)
|
||
|
end
|
||
|
|
||
|
def gitlab_toggle_award_emoji_snippet_note_url(snippet, note, *args)
|
||
|
new_args = snippet_query_params(snippet, *args)
|
||
|
toggle_award_emoji_snippet_note_url(snippet, note, *new_args)
|
||
|
end
|
||
|
|
||
|
def gitlab_toggle_award_emoji_snippet_path(snippet, *args)
|
||
|
new_args = snippet_query_params(snippet, *args)
|
||
|
toggle_award_emoji_snippet_path(snippet, *new_args)
|
||
|
end
|
||
|
|
||
|
def gitlab_toggle_award_emoji_snippet_url(snippet, *args)
|
||
|
new_args = snippet_query_params(snippet, *args)
|
||
|
toggle_award_emoji_snippet_url(snippet, *new_args)
|
||
|
end
|
||
|
|
||
|
def preview_markdown_path(parent, *args)
|
||
|
return group_preview_markdown_path(parent, *args) if parent.is_a?(Group)
|
||
|
|
||
|
if @snippet.is_a?(PersonalSnippet)
|
||
|
preview_markdown_snippets_path
|
||
|
else
|
||
|
preview_markdown_project_path(parent, *args)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def toggle_award_emoji_personal_snippet_path(*args)
|
||
|
toggle_award_emoji_snippet_path(*args)
|
||
|
end
|
||
|
|
||
|
def toggle_award_emoji_project_project_snippet_path(*args)
|
||
|
toggle_award_emoji_project_snippet_path(*args)
|
||
|
end
|
||
|
|
||
|
def toggle_award_emoji_project_project_snippet_url(*args)
|
||
|
toggle_award_emoji_project_snippet_url(*args)
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def snippet_query_params(snippet, *args)
|
||
|
opts = case args.last
|
||
|
when Hash
|
||
|
args.pop
|
||
|
when ActionController::Parameters
|
||
|
args.pop.to_h
|
||
|
else
|
||
|
{}
|
||
|
end
|
||
|
|
||
|
args << opts
|
||
|
end
|
||
|
end
|
||
|
end
|