From a163135cb5bd9886b634d8026b7adf473b023782 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Wed, 20 Mar 2013 20:22:29 +0200 Subject: [PATCH] Intead of showing 404 give users ability to close MR with missing branches --- app/assets/stylesheets/common.scss | 12 ++++++++++++ .../stylesheets/sections/merge_requests.scss | 10 ---------- app/controllers/merge_requests_controller.rb | 9 +++++++-- app/views/compare/_form.html.haml | 4 ++-- app/views/merge_requests/invalid.html.haml | 17 +++++++++++++++++ .../merge_requests/show/_mr_title.html.haml | 4 ++-- 6 files changed, 40 insertions(+), 16 deletions(-) create mode 100644 app/views/merge_requests/invalid.html.haml diff --git a/app/assets/stylesheets/common.scss b/app/assets/stylesheets/common.scss index 390f8a627bc..4e7aa968ea7 100644 --- a/app/assets/stylesheets/common.scss +++ b/app/assets/stylesheets/common.scss @@ -543,3 +543,15 @@ img.emoji { .appear-data { display: none; } + +.label-branch { + @include border-radius(4px); + padding: 2px 4px; + border: none; + font-size: 14px; + background: #474D57; + color: #fff; + font-family: $monospace_font; + text-shadow: 0 1px 1px #111; + font-weight: normal; +} diff --git a/app/assets/stylesheets/sections/merge_requests.scss b/app/assets/stylesheets/sections/merge_requests.scss index ff715c0fd18..4cca0083e44 100644 --- a/app/assets/stylesheets/sections/merge_requests.scss +++ b/app/assets/stylesheets/sections/merge_requests.scss @@ -70,16 +70,6 @@ li.merge_request { @extend .append-bottom-10; } -.label_branch { - @include border-radius(4px); - padding: 2px 4px; - border: none; - font-size: 14px; - background: #474D57; - color: #fff; - font-family: $monospace_font; -} - .mr_source_commit, .mr_target_commit { .commit { diff --git a/app/controllers/merge_requests_controller.rb b/app/controllers/merge_requests_controller.rb index ebd48036c38..88e0df16409 100644 --- a/app/controllers/merge_requests_controller.rb +++ b/app/controllers/merge_requests_controller.rb @@ -129,11 +129,11 @@ class MergeRequestsController < ProjectResourceController def validates_merge_request # Show git not found page if target branch doesn't exist - return git_not_found! unless @project.repo.heads.map(&:name).include?(@merge_request.target_branch) + return invalid_mr unless @project.repo.heads.map(&:name).include?(@merge_request.target_branch) # Show git not found page if source branch doesn't exist # and there is no saved commits between source & target branch - return git_not_found! if !@project.repo.heads.map(&:name).include?(@merge_request.source_branch) && @merge_request.commits.blank? + return invalid_mr if !@project.repo.heads.map(&:name).include?(@merge_request.source_branch) && @merge_request.commits.blank? end def define_show_vars @@ -158,4 +158,9 @@ class MergeRequestsController < ProjectResourceController can?(current_user, action, @project) end + + def invalid_mr + # Render special view for MR with removed source or target branch + render 'invalid' + end end diff --git a/app/views/compare/_form.html.haml b/app/views/compare/_form.html.haml index 7c0688a2287..ef80cd4ac90 100644 --- a/app/views/compare/_form.html.haml +++ b/app/views/compare/_form.html.haml @@ -2,9 +2,9 @@ - unless params[:to] %p.slead Fill input field with commit id like - %code.label_branch 4eedf23 + %code.label-branch 4eedf23 or branch/tag name like - %code.label_branch master + %code.label-branch master and press compare button for commits list, code diff. %br diff --git a/app/views/merge_requests/invalid.html.haml b/app/views/merge_requests/invalid.html.haml new file mode 100644 index 00000000000..a73bef9e80a --- /dev/null +++ b/app/views/merge_requests/invalid.html.haml @@ -0,0 +1,17 @@ +.merge-request + = render "merge_requests/show/mr_title" + = render "merge_requests/show/mr_box" + + .alert.alert-error + %h5 + %i.icon-exclamation-sign + We cannot find + %span.label-branch= @merge_request.source_branch + or + %span.label-branch= @merge_request.target_branch + branches in the repository. + %p + Maybe it was removed or never pushed. + %p + Please close Merge Request or change branches with existing one + diff --git a/app/views/merge_requests/show/_mr_title.html.haml b/app/views/merge_requests/show/_mr_title.html.haml index 3df7e4b21c6..24285c272a8 100644 --- a/app/views/merge_requests/show/_mr_title.html.haml +++ b/app/views/merge_requests/show/_mr_title.html.haml @@ -1,9 +1,9 @@ %h3.page_title = "Merge Request ##{@merge_request.id}:"   - %span.label_branch= @merge_request.source_branch + %span.label-branch= @merge_request.source_branch → - %span.label_branch= @merge_request.target_branch + %span.label-branch= @merge_request.target_branch %span.pull-right - if can?(current_user, :modify_merge_request, @merge_request)