Merge branch 'master' of github.com:gitlabhq/gitlabhq
This commit is contained in:
commit
0f7d47f695
|
@ -53,13 +53,34 @@ module TreeHelper
|
||||||
File.join(*args)
|
File.join(*args)
|
||||||
end
|
end
|
||||||
|
|
||||||
def allowed_tree_edit?
|
def allowed_tree_edit?(project = nil, ref = nil)
|
||||||
return false unless @repository.branch_names.include?(@ref)
|
project ||= @project
|
||||||
|
ref ||= @ref
|
||||||
|
return false unless project.repository.branch_names.include?(ref)
|
||||||
|
|
||||||
if @project.protected_branch? @ref
|
if project.protected_branch? ref
|
||||||
can?(current_user, :push_code_to_protected_branches, @project)
|
can?(current_user, :push_code_to_protected_branches, project)
|
||||||
else
|
else
|
||||||
can?(current_user, :push_code, @project)
|
can?(current_user, :push_code, project)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def edit_blob_link(project, ref, path, options = {})
|
||||||
|
if project.repository.blob_at(ref, path).text?
|
||||||
|
text = 'Edit'
|
||||||
|
after = options[:after] || ''
|
||||||
|
from_mr = options[:from_merge_request_id]
|
||||||
|
link_opts = {}
|
||||||
|
link_opts[:from_merge_request_id] = from_mr if from_mr
|
||||||
|
cls = 'btn btn-small'
|
||||||
|
if allowed_tree_edit?(project, ref)
|
||||||
|
link_to text, project_edit_tree_path(project, tree_join(ref, path),
|
||||||
|
link_opts), class: cls
|
||||||
|
else
|
||||||
|
content_tag :span, text, class: cls + ' disabled'
|
||||||
|
end + after.html_safe
|
||||||
|
else
|
||||||
|
''
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,5 @@
|
||||||
.btn-group.tree-btn-group
|
.btn-group.tree-btn-group
|
||||||
-# only show edit link for text files
|
= edit_blob_link(@project, @ref, @path)
|
||||||
- if @blob.text?
|
|
||||||
- if allowed_tree_edit?
|
|
||||||
= link_to 'Edit', project_edit_tree_path(@project, @id),
|
|
||||||
class: 'btn btn-small'
|
|
||||||
- else
|
|
||||||
%span.btn.btn-small.disabled Edit
|
|
||||||
= link_to 'Raw', project_raw_path(@project, @id),
|
= link_to 'Raw', project_raw_path(@project, @id),
|
||||||
class: 'btn btn-small', target: '_blank'
|
class: 'btn btn-small', target: '_blank'
|
||||||
-# only show normal/blame view links for text files
|
-# only show normal/blame view links for text files
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
= link_to title, '#'
|
= link_to title, '#'
|
||||||
|
|
||||||
%ul.blob-commit-info.bs-callout.bs-callout-info.hidden-xs
|
%ul.blob-commit-info.bs-callout.bs-callout-info.hidden-xs
|
||||||
- blob_commit = @repository.last_commit_for_path(@commit.id, @blob.path)
|
- blob_commit = @repository.last_commit_for_path(@commit.id, blob.path)
|
||||||
= render blob_commit, project: @project
|
= render blob_commit, project: @project
|
||||||
|
|
||||||
%div#tree-content-holder.tree-content-holder
|
%div#tree-content-holder.tree-content-holder
|
||||||
|
|
|
@ -30,9 +30,9 @@
|
||||||
|
|
||||||
|
|
||||||
- if @merge_request && @merge_request.source_project
|
- if @merge_request && @merge_request.source_project
|
||||||
= link_to project_edit_tree_path(@merge_request.source_project, tree_join(@merge_request.source_branch, diff_file.new_path), from_merge_request_id: @merge_request.id), { class: 'btn btn-small' } do
|
= edit_blob_link(@merge_request.source_project,
|
||||||
Edit
|
@merge_request.source_branch, diff_file.new_path,
|
||||||
|
after: ' ', from_merge_request_id: @merge_request.id)
|
||||||
|
|
||||||
= view_file_btn(@commit.id, diff_file, project)
|
= view_file_btn(@commit.id, diff_file, project)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue