Dont show fork button in personal projects. Point to fork if already forked project

This commit is contained in:
Dmitriy Zaporozhets 2013-05-08 19:40:31 +03:00
parent 7b6f2fb160
commit de12eba25c
4 changed files with 26 additions and 5 deletions

View File

@ -69,7 +69,6 @@ class Ability
:download_code,
:write_snippet,
:fork_project
]
end

View File

@ -326,4 +326,18 @@ class User < ActiveRecord::Base
def tm_of(project)
project.team_member_by_id(self.id)
end
def already_forked? project
!!fork_of(project)
end
def fork_of project
links = ForkedProjectLink.where(forked_from_project_id: project, forked_to_project_id: personal_projects)
if links.any?
links.first.forked_to_project
else
nil
end
end
end

View File

@ -5,10 +5,14 @@
.span3.pull-right
.pull-right
- unless @project.empty_repo?
- if can? current_user, :fork_project, @project
= link_to fork_project_path(@project), title: "Fork", class: "btn grouped", method: "POST" do
%i.icon-copy
Fork
- if can?(current_user, :fork_project, @project) && @project.namespace != current_user.namespace
- if current_user.already_forked?(@project)
= link_to project_path(current_user.fork_of(@project)), class: 'btn grouped success' do
Forked
- else
= link_to fork_project_path(@project), title: "Fork", class: "btn grouped", method: "POST" do
%i.icon-copy
Fork
- if can? current_user, :download_code, @project
= link_to archive_project_repository_path(@project), class: "btn grouped" do
%i.icon-download-alt

View File

@ -40,3 +40,7 @@
%p Repo Size: #{@project.repository.size} MB
%p Created at: #{@project.created_at.stamp('Aug 22, 2013')}
%p Owner: #{link_to @project.owner_name, @project.owner}
- if @project.forked_from_project
%p
Forked from:
= link_to @project.forked_from_project.name_with_namespace, project_path(@project.forked_from_project)