Commit de12eba25c840a533cd7fa8edddc5fb3b96634f8
1 parent
7b6f2fb1
Exists in
master
and in
4 other branches
Dont show fork button in personal projects. Point to fork if already forked project
Showing
4 changed files
with
26 additions
and
5 deletions
Show diff stats
app/models/ability.rb
app/models/user.rb
| @@ -326,4 +326,18 @@ class User < ActiveRecord::Base | @@ -326,4 +326,18 @@ class User < ActiveRecord::Base | ||
| 326 | def tm_of(project) | 326 | def tm_of(project) |
| 327 | project.team_member_by_id(self.id) | 327 | project.team_member_by_id(self.id) |
| 328 | end | 328 | end |
| 329 | + | ||
| 330 | + def already_forked? project | ||
| 331 | + !!fork_of(project) | ||
| 332 | + end | ||
| 333 | + | ||
| 334 | + def fork_of project | ||
| 335 | + links = ForkedProjectLink.where(forked_from_project_id: project, forked_to_project_id: personal_projects) | ||
| 336 | + | ||
| 337 | + if links.any? | ||
| 338 | + links.first.forked_to_project | ||
| 339 | + else | ||
| 340 | + nil | ||
| 341 | + end | ||
| 342 | + end | ||
| 329 | end | 343 | end |
app/views/projects/_clone_panel.html.haml
| @@ -5,10 +5,14 @@ | @@ -5,10 +5,14 @@ | ||
| 5 | .span3.pull-right | 5 | .span3.pull-right |
| 6 | .pull-right | 6 | .pull-right |
| 7 | - unless @project.empty_repo? | 7 | - unless @project.empty_repo? |
| 8 | - - if can? current_user, :fork_project, @project | ||
| 9 | - = link_to fork_project_path(@project), title: "Fork", class: "btn grouped", method: "POST" do | ||
| 10 | - %i.icon-copy | ||
| 11 | - Fork | 8 | + - if can?(current_user, :fork_project, @project) && @project.namespace != current_user.namespace |
| 9 | + - if current_user.already_forked?(@project) | ||
| 10 | + = link_to project_path(current_user.fork_of(@project)), class: 'btn grouped success' do | ||
| 11 | + Forked | ||
| 12 | + - else | ||
| 13 | + = link_to fork_project_path(@project), title: "Fork", class: "btn grouped", method: "POST" do | ||
| 14 | + %i.icon-copy | ||
| 15 | + Fork | ||
| 12 | - if can? current_user, :download_code, @project | 16 | - if can? current_user, :download_code, @project |
| 13 | = link_to archive_project_repository_path(@project), class: "btn grouped" do | 17 | = link_to archive_project_repository_path(@project), class: "btn grouped" do |
| 14 | %i.icon-download-alt | 18 | %i.icon-download-alt |
app/views/projects/show.html.haml
| @@ -40,3 +40,7 @@ | @@ -40,3 +40,7 @@ | ||
| 40 | %p Repo Size: #{@project.repository.size} MB | 40 | %p Repo Size: #{@project.repository.size} MB |
| 41 | %p Created at: #{@project.created_at.stamp('Aug 22, 2013')} | 41 | %p Created at: #{@project.created_at.stamp('Aug 22, 2013')} |
| 42 | %p Owner: #{link_to @project.owner_name, @project.owner} | 42 | %p Owner: #{link_to @project.owner_name, @project.owner} |
| 43 | + - if @project.forked_from_project | ||
| 44 | + %p | ||
| 45 | + Forked from: | ||
| 46 | + = link_to @project.forked_from_project.name_with_namespace, project_path(@project.forked_from_project) |