From 5677cb0114de78559bb626aa3b0bb456271429df Mon Sep 17 00:00:00 2001 From: Tim Zallmann Date: Fri, 26 May 2017 17:59:45 +0200 Subject: Seperated Dropdown in new partial Fixed different issues from discussion Fixed a Spinach Test which had now 2 New buttons --- app/views/layouts/header/_default.html.haml | 49 +++-------------------------- app/views/layouts/header/_new_dropdown.haml | 42 +++++++++++++++++++++++++ features/steps/project/fork.rb | 4 ++- 3 files changed, 49 insertions(+), 46 deletions(-) create mode 100644 app/views/layouts/header/_new_dropdown.haml diff --git a/app/views/layouts/header/_default.html.haml b/app/views/layouts/header/_default.html.haml index 88fff245356..249253f4906 100644 --- a/app/views/layouts/header/_default.html.haml +++ b/app/views/layouts/header/_default.html.haml @@ -36,48 +36,7 @@ %li = link_to admin_root_path, title: 'Admin area', aria: { label: "Admin area" }, data: {toggle: 'tooltip', placement: 'bottom', container: 'body'} do = icon('wrench fw') - %li.header-new.dropdown - = link_to new_project_path, class: "header-new-dropdown-toggle has-tooltip", title: "New...", ref: 'tooltip', aria: { label: "New..." }, data: { toggle: 'dropdown', placement: 'bottom', container: 'body' } do - = icon('plus fw') - = icon('caret-down') - .dropdown-menu-nav.dropdown-menu-align-right - %ul - - - if @group && (can?(current_user, :create_projects, @group) || can?(current_user, :create_subgroup, @group)) - %li - .bold This group - - if can?(current_user, :create_projects, @group) - %li - = link_to 'New project', new_project_path(namespace_id: @group.id), aria: { label: "New project" } - - if can?(current_user, :create_subgroup, @group) - %li - = link_to 'New subgroup', new_group_path(parent_id: @group.id), aria: { label: "New subgroup" } - - if @project - %li - .bold This project - %li - = link_to 'New issue', new_namespace_project_issue_path(@project.namespace, @project), aria: { label: "New issue" } - - merge_project = can?(current_user, :create_merge_request, @project) ? @project : (current_user && current_user.fork_of(@project)) - - if merge_project - %li - = link_to 'New merge request', new_namespace_project_merge_request_path(merge_project.namespace, merge_project), aria: { label: "New merge request" } - - if can?(current_user, :create_project_snippet, @project) - %li - = link_to 'New snippet', new_namespace_project_snippet_path(@project.namespace, @project), aria: { label: "New snippet" } - - if @group || @project - %li.divider - %li - .bold GitLab - - if current_user.can_create_project? - %li - = link_to 'New project', new_project_path, aria: { label: "New project" } - - if current_user.can_create_group? - %li - = link_to 'New group', new_group_path, aria: { label: "New group" } - %li - = link_to 'New snippet', new_snippet_path, aria: { label: "New snippet" } - - + = render 'layouts/header/new_dropdown' - if Gitlab::Sherlock.enabled? %li = link_to sherlock_transactions_path, title: 'Sherlock Transactions', @@ -112,12 +71,12 @@ @#{current_user.username} %li.divider %li - = link_to "Profile", current_user, class: 'profile-link', aria: { label: "Profile" }, data: { user: current_user.username } + = link_to "Profile", current_user, class: 'profile-link', data: { user: current_user.username } %li - = link_to "Settings", profile_path, aria: { label: "Settings" } + = link_to "Settings", profile_path %li.divider %li - = link_to "Sign out", destroy_user_session_path, method: :delete, class: "sign-out-link", aria: { label: "Sign out" } + = link_to "Sign out", destroy_user_session_path, method: :delete, class: "sign-out-link" - else %li %div diff --git a/app/views/layouts/header/_new_dropdown.haml b/app/views/layouts/header/_new_dropdown.haml new file mode 100644 index 00000000000..931c02b7268 --- /dev/null +++ b/app/views/layouts/header/_new_dropdown.haml @@ -0,0 +1,42 @@ +%li.header-new.dropdown + = link_to new_project_path, class: "header-new-dropdown-toggle has-tooltip", title: "New...", ref: 'tooltip', aria: { label: "New..." }, data: { toggle: 'dropdown', placement: 'bottom', container: 'body' } do + = icon('plus fw') + = icon('caret-down') + .dropdown-menu-nav.dropdown-menu-align-right + %ul + - create_group_project = can?(current_user, :create_projects, @group) + - create_group_subgroup = can?(current_user, :create_subgroup, @group) + - if @group && (create_group_project || create_group_subgroup) + %li + .bold This group + - if create_group_project + %li + = link_to 'New project', new_project_path(namespace_id: @group.id) + - if create_group_subgroup + %li + = link_to 'New subgroup', new_group_path(parent_id: @group.id) + + - if @project + %li + .bold This project + %li + = link_to 'New issue', new_namespace_project_issue_path(@project.namespace, @project) + - merge_project = can?(current_user, :create_merge_request, @project) ? @project : (current_user && current_user.fork_of(@project)) + - if merge_project + %li + = link_to 'New merge request', new_namespace_project_merge_request_path(merge_project.namespace, merge_project) + - if can?(current_user, :create_project_snippet, @project) + %li + = link_to 'New snippet', new_namespace_project_snippet_path(@project.namespace, @project) + - if @group || @project + %li.divider + %li + .bold GitLab + - if current_user.can_create_project? + %li + = link_to 'New project', new_project_path + - if current_user.can_create_group? + %li + = link_to 'New group', new_group_path + %li + = link_to 'New snippet', new_snippet_path diff --git a/features/steps/project/fork.rb b/features/steps/project/fork.rb index 14932491daa..35df403a85f 100644 --- a/features/steps/project/fork.rb +++ b/features/steps/project/fork.rb @@ -42,7 +42,9 @@ class Spinach::Features::ProjectFork < Spinach::FeatureSteps end step 'I click link "New merge request"' do - page.has_link?('New Merge Request') ? click_link("New Merge Request") : click_link('New merge request') + page.within '#content-body' do + page.has_link?('New Merge Request') ? click_link("New Merge Request") : click_link('New merge request') + end end step 'I should see the new merge request page for my namespace' do -- cgit v1.2.3