summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Frye <joshfng@mbp.local>2015-12-23 10:20:07 -0500
committerJosh Frye <joshfng@gmail.com>2016-01-03 18:12:27 -0500
commit8bfc46451eae5bd92380b9fbdf91b9636d55066c (patch)
treedd3f3348c97ab4c86f0d168f788decda00316a79
parentbfb3c8d936eaafc33b00f7a1fb7644e3330ffabf (diff)
downloadgitlab-ce-8bfc46451eae5bd92380b9fbdf91b9636d55066c.tar.gz
Show 'New Merge Request' buttons on canonical repo.
-rw-r--r--CHANGELOG2
-rw-r--r--app/views/projects/buttons/_dropdown.html.haml7
-rw-r--r--app/views/projects/merge_requests/index.html.haml5
-rw-r--r--features/project/fork.feature10
-rw-r--r--features/steps/project/fork.rb10
5 files changed, 29 insertions, 5 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 2b7d5808e7e..e4245060489 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -91,6 +91,8 @@ v 8.3.0
- Do not show build status unless builds are enabled and `.gitlab-ci.yml` is present
- Persist runners registration token in database
- Fix online editor should not remove newlines at the end of the file
+ - Expose Git's version in the admin area
+ - Show "New Merge Request" buttons on canonical repos when you have a fork (Josh Frye)
v 8.2.3
- Fix application settings cache not expiring after changes (Stan Hu)
diff --git a/app/views/projects/buttons/_dropdown.html.haml b/app/views/projects/buttons/_dropdown.html.haml
index 1f639fecc30..459e6da2fe2 100644
--- a/app/views/projects/buttons/_dropdown.html.haml
+++ b/app/views/projects/buttons/_dropdown.html.haml
@@ -8,11 +8,12 @@
= link_to url_for_new_issue(@project, only_path: true) do
= icon('exclamation-circle fw')
New issue
- - if can?(current_user, :create_merge_request, @project)
+ - merge_project = can?(current_user, :create_merge_request, @project) ? @project : current_user.fork_of(@project)
+ - if merge_project
%li
- = link_to new_namespace_project_merge_request_path(@project.namespace, @project) do
+ = link_to new_namespace_project_merge_request_path(merge_project.namespace, merge_project) do
= icon('tasks fw')
- New merge request
+ New Merge Request
- if can?(current_user, :create_snippet, @project)
%li
= link_to new_namespace_project_snippet_path(@project.namespace, @project) do
diff --git a/app/views/projects/merge_requests/index.html.haml b/app/views/projects/merge_requests/index.html.haml
index 086298e5af1..972fce9ad3d 100644
--- a/app/views/projects/merge_requests/index.html.haml
+++ b/app/views/projects/merge_requests/index.html.haml
@@ -6,9 +6,10 @@
.controls
= render 'shared/issuable/search_form', path: namespace_project_merge_requests_path(@project.namespace, @project)
- - if can? current_user, :create_merge_request, @project
+ - merge_project = can?(current_user, :create_merge_request, @project) ? @project : current_user.fork_of(@project)
+ - if merge_project
.pull-left.hidden-xs
- = link_to new_namespace_project_merge_request_path(@project.namespace, @project), class: "btn btn-new", title: "New Merge Request" do
+ = link_to new_namespace_project_merge_request_path(merge_project.namespace, merge_project), class: "btn btn-new", title: "New Merge Request" do
%i.fa.fa-plus
New Merge Request
= render 'shared/issuable/filter', type: :merge_requests
diff --git a/features/project/fork.feature b/features/project/fork.feature
index 22f68e5b340..40849352370 100644
--- a/features/project/fork.feature
+++ b/features/project/fork.feature
@@ -1,3 +1,4 @@
+@forks
Feature: Project Fork
Background:
Given I sign in as a user
@@ -14,3 +15,12 @@ Feature: Project Fork
And I click link "Fork"
When I fork to my namespace
Then I should see a "Name has already been taken" warning
+
+ Scenario: Merge request on canonical repo goes to fork merge request page
+ Given I click link "Fork"
+ And I fork to my namespace
+ Then I should see the forked project page
+ When I visit project "Shop" page
+ Then I should see "New merge request"
+ And I goto the Merge Requests page
+ Then I should see "New merge request"
diff --git a/features/steps/project/fork.rb b/features/steps/project/fork.rb
index b0230add34f..878ddea46ff 100644
--- a/features/steps/project/fork.rb
+++ b/features/steps/project/fork.rb
@@ -30,4 +30,14 @@ class Spinach::Features::ProjectFork < Spinach::FeatureSteps
click_link current_user.name
end
end
+
+ step 'I should see "New Merge Request"' do
+ expect(page).to have_content "New Merge Request"
+ end
+
+ step 'I goto the Merge Requests page' do
+ page.within '.page-sidebar-expanded' do
+ click_link "Merge Requests"
+ end
+ end
end