summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-06-10 21:40:23 +0300
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-06-10 21:40:23 +0300
commit7b5d68f0a7fe2f8c9ef85f2fca10ce3d3bb7e388 (patch)
treeff1166ea550a6380ada627bf8adeee31df8d59bd
parent1487ed3e378ab6499fd6be45a91a4e401abc4ac0 (diff)
downloadgitlab-ce-7b5d68f0a7fe2f8c9ef85f2fca10ce3d3bb7e388.tar.gz
Error page if forking fails
-rw-r--r--CHANGELOG1
-rw-r--r--app/controllers/projects_controller.rb11
-rw-r--r--app/views/projects/fork.html.haml19
-rw-r--r--app/views/projects/show.html.haml1
4 files changed, 27 insertions, 5 deletions
diff --git a/CHANGELOG b/CHANGELOG
index e65391f6979..f26466f9da8 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -23,6 +23,7 @@ v 5.3.0
- Fix dashboard event filter when navigate via turbolinks
- init.d: Ensure socket is removed before starting service
- Admin area: Style teams:index, group:show pages
+ - Own page for failed forking
v 5.2.0
- Turbolinks
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index f2dbc519797..fad681eeef8 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -7,7 +7,7 @@ class ProjectsController < ProjectResourceController
before_filter :authorize_admin_project!, only: [:edit, :update, :destroy, :transfer]
before_filter :require_non_empty_project, only: [:blob, :tree, :graph]
- layout 'navless', only: [:new, :create]
+ layout 'navless', only: [:new, :create, :fork]
before_filter :set_title, only: [:new, :create]
def new
@@ -81,14 +81,15 @@ class ProjectsController < ProjectResourceController
end
def fork
- @project = ::Projects::ForkContext.new(project, current_user).execute
+ @forked_project = ::Projects::ForkContext.new(project, current_user).execute
respond_to do |format|
format.html do
- if @project.saved? && @project.forked?
- redirect_to(@project, notice: 'Project was successfully forked.')
+ if @forked_project.saved? && @forked_project.forked?
+ redirect_to(@forked_project, notice: 'Project was successfully forked.')
else
- render action: "new"
+ @title = 'Fork project'
+ render action: "fork"
end
end
format.js
diff --git a/app/views/projects/fork.html.haml b/app/views/projects/fork.html.haml
new file mode 100644
index 00000000000..a1c109e5d62
--- /dev/null
+++ b/app/views/projects/fork.html.haml
@@ -0,0 +1,19 @@
+.alert.alert-error.alert-block
+ %h4
+ %i.icon-code-fork
+ Fork Error!
+ %p
+ You are trying to fork
+ = link_to_project @project
+ but it fails due to next reason:
+
+
+ - if @forked_project && @forked_project.errors.any?
+ %p
+ &ndash;
+ = @forked_project.errors.full_messages.first
+
+ %p
+ = link_to fork_project_path(@project), title: "Fork", class: "btn", method: "POST" do
+ %i.icon-code-fork
+ Try to Fork again
diff --git a/app/views/projects/show.html.haml b/app/views/projects/show.html.haml
index f72ef0a99ae..7d708ce7b8f 100644
--- a/app/views/projects/show.html.haml
+++ b/app/views/projects/show.html.haml
@@ -42,6 +42,7 @@
%p Owner: #{link_to @project.owner_name, @project.owner}
- if @project.forked_from_project
%p
+ %i.icon-code-fork
Forked from:
= link_to @project.forked_from_project.name_with_namespace, project_path(@project.forked_from_project)