From d30982956d2d227987a429c14e02d134b567c0d3 Mon Sep 17 00:00:00 2001 From: Tim Zallmann Date: Fri, 26 May 2017 12:07:09 +0200 Subject: Added Dropdown + Options --- app/views/layouts/header/_default.html.haml | 46 ++++++++++++++++++++++++++--- 1 file changed, 42 insertions(+), 4 deletions(-) diff --git a/app/views/layouts/header/_default.html.haml b/app/views/layouts/header/_default.html.haml index 9db98451f1d..00d143f4fb0 100644 --- a/app/views/layouts/header/_default.html.haml +++ b/app/views/layouts/header/_default.html.haml @@ -36,10 +36,48 @@ %li = link_to admin_root_path, title: 'Admin area', aria: { label: "Admin area" }, data: {toggle: 'tooltip', placement: 'bottom', container: 'body'} do = icon('wrench fw') - - if current_user.can_create_project? - %li - = link_to new_project_path, title: 'New project', aria: { label: "New project" }, data: {toggle: 'tooltip', placement: 'bottom', container: 'body'} do - = icon('plus fw') + %li.header-new.dropdown + = link_to new_project_path, class: "header-new-dropdown-toggle", 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" } + + - if Gitlab::Sherlock.enabled? %li = link_to sherlock_transactions_path, title: 'Sherlock Transactions', -- cgit v1.2.1 From 75131472062aa785443da8dd8ab628cd11e9f483 Mon Sep 17 00:00:00 2001 From: Tim Zallmann Date: Fri, 26 May 2017 12:58:03 +0200 Subject: Enabled Tooltips --- app/views/layouts/header/_default.html.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/layouts/header/_default.html.haml b/app/views/layouts/header/_default.html.haml index 00d143f4fb0..88fff245356 100644 --- a/app/views/layouts/header/_default.html.haml +++ b/app/views/layouts/header/_default.html.haml @@ -37,7 +37,7 @@ = 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", aria: { label: "New…" } , data: { toggle: 'dropdown', placement: 'bottom', container: 'body' } do + = 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 -- cgit v1.2.1 From c5d3b723544cf2bbf2af95487f8ed5b72cbc0552 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 7591e7d5612..7297cb85bf0 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.1 From e8a305170b33f06012def2afa80326c55257128a Mon Sep 17 00:00:00 2001 From: Tim Zallmann Date: Mon, 29 May 2017 10:24:53 +0200 Subject: Externalised Dropdown Checks for creating new issue Styling of .dropdown-bold-header Fixed Spinach Tests to limit them to the main content area for clicking 'New Project' etc. so that they don't click the dropdown menu --- app/assets/stylesheets/framework/dropdowns.scss | 8 +++- app/views/layouts/header/_new_dropdown.haml | 55 +++++++++++++------------ features/steps/dashboard/new_project.rb | 2 +- features/steps/project/create.rb | 4 +- features/steps/project/forked_merge_requests.rb | 4 +- features/steps/project/issues/issues.rb | 4 +- 6 files changed, 46 insertions(+), 31 deletions(-) diff --git a/app/assets/stylesheets/framework/dropdowns.scss b/app/assets/stylesheets/framework/dropdowns.scss index 5ab48b6c874..9613006d021 100644 --- a/app/assets/stylesheets/framework/dropdowns.scss +++ b/app/assets/stylesheets/framework/dropdowns.scss @@ -261,7 +261,13 @@ text-transform: capitalize; } - .separator + .dropdown-header { + .dropdown-bold-header { + font-weight: 600; + line-height: 22px; + padding: 0 16px; + } + + .separator + .dropdown-header, .separator + .dropdown-bold-header { padding-top: 2px; } diff --git a/app/views/layouts/header/_new_dropdown.haml b/app/views/layouts/header/_new_dropdown.haml index 931c02b7268..e9d45802bac 100644 --- a/app/views/layouts/header/_new_dropdown.haml +++ b/app/views/layouts/header/_new_dropdown.haml @@ -3,35 +3,38 @@ = 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) + %ul + - if @group + - create_group_project = can?(current_user, :create_projects, @group) + - create_group_subgroup = can?(current_user, :create_subgroup, @group) + - if (create_group_project || create_group_subgroup) + %li.dropdown-bold-header 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) + %li.divider + %li.dropdown-bold-header GitLab - if @project - %li - .bold This project - %li - = link_to 'New issue', new_namespace_project_issue_path(@project.namespace, @project) + - create_project_issue = can?(current_user, :create_issue, @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 + - create_project_snippet = can?(current_user, :create_project_snippet, @project) + - if (create_project_issue || create_project_mr || create_project_snippet) + %li.dropdown-bold-header This project + - if create_project_issue + %li + = link_to 'New issue', new_namespace_project_issue_path(@project.namespace, @project) + - if merge_project + %li + = link_to 'New merge request', new_namespace_project_merge_request_path(merge_project.namespace, merge_project) + - if create_project_snippet + %li + = link_to 'New snippet', new_namespace_project_snippet_path(@project.namespace, @project) + %li.divider + %li.dropdown-bold-header GitLab - if current_user.can_create_project? %li = link_to 'New project', new_project_path diff --git a/features/steps/dashboard/new_project.rb b/features/steps/dashboard/new_project.rb index 4fb16d3bb57..766aa9b0468 100644 --- a/features/steps/dashboard/new_project.rb +++ b/features/steps/dashboard/new_project.rb @@ -4,7 +4,7 @@ class Spinach::Features::NewProject < Spinach::FeatureSteps include SharedProject step 'I click "New project" link' do - page.within('.content') do + page.within '#content-body' do click_link "New project" end end diff --git a/features/steps/project/create.rb b/features/steps/project/create.rb index 5f5f806df36..28be9c6df5b 100644 --- a/features/steps/project/create.rb +++ b/features/steps/project/create.rb @@ -5,7 +5,9 @@ class Spinach::Features::ProjectCreate < Spinach::FeatureSteps step 'fill project form with valid data' do fill_in 'project_path', with: 'Empty' - click_button "Create project" + page.within '#content-body' do + click_button "Create project" + end end step 'I should see project page' do diff --git a/features/steps/project/forked_merge_requests.rb b/features/steps/project/forked_merge_requests.rb index 25514eb9ef2..2d9d3efd9d4 100644 --- a/features/steps/project/forked_merge_requests.rb +++ b/features/steps/project/forked_merge_requests.rb @@ -17,7 +17,9 @@ class Spinach::Features::ProjectForkedMergeRequests < 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 merge request "Merge Request On Forked Project"' do diff --git a/features/steps/project/issues/issues.rb b/features/steps/project/issues/issues.rb index 637e6568267..b376c5049c1 100644 --- a/features/steps/project/issues/issues.rb +++ b/features/steps/project/issues/issues.rb @@ -62,7 +62,9 @@ class Spinach::Features::ProjectIssues < Spinach::FeatureSteps end step 'I click link "New issue"' do - page.has_link?('New Issue') ? click_link('New Issue') : click_link('New issue') + page.within '#content-body' do + page.has_link?('New Issue') ? click_link('New Issue') : click_link('New issue') + end end step 'I click "author" dropdown' do -- cgit v1.2.1 From e4e6b34e5ee682807fc11f7091310d0ea4dae91c Mon Sep 17 00:00:00 2001 From: Tim Zallmann Date: Mon, 29 May 2017 11:28:20 +0200 Subject: Check for Merge Request fixed Fixed couple of spinach test --- app/assets/stylesheets/framework/dropdowns.scss | 3 ++- app/views/layouts/header/_new_dropdown.haml | 2 +- features/steps/project/merge_requests.rb | 4 +++- features/steps/project/snippets.rb | 4 +++- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/app/assets/stylesheets/framework/dropdowns.scss b/app/assets/stylesheets/framework/dropdowns.scss index 9613006d021..2ee95483040 100644 --- a/app/assets/stylesheets/framework/dropdowns.scss +++ b/app/assets/stylesheets/framework/dropdowns.scss @@ -267,7 +267,8 @@ padding: 0 16px; } - .separator + .dropdown-header, .separator + .dropdown-bold-header { + .separator + .dropdown-header, + .separator + .dropdown-bold-header { padding-top: 2px; } diff --git a/app/views/layouts/header/_new_dropdown.haml b/app/views/layouts/header/_new_dropdown.haml index e9d45802bac..ac8c9070f7d 100644 --- a/app/views/layouts/header/_new_dropdown.haml +++ b/app/views/layouts/header/_new_dropdown.haml @@ -22,7 +22,7 @@ - create_project_issue = can?(current_user, :create_issue, @project) - merge_project = can?(current_user, :create_merge_request, @project) ? @project : (current_user && current_user.fork_of(@project)) - create_project_snippet = can?(current_user, :create_project_snippet, @project) - - if (create_project_issue || create_project_mr || create_project_snippet) + - if (create_project_issue || merge_project || create_project_snippet) %li.dropdown-bold-header This project - if create_project_issue %li diff --git a/features/steps/project/merge_requests.rb b/features/steps/project/merge_requests.rb index 54b6352c952..17d190711f5 100644 --- a/features/steps/project/merge_requests.rb +++ b/features/steps/project/merge_requests.rb @@ -14,7 +14,9 @@ class Spinach::Features::ProjectMergeRequests < 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 click link "Bug NS-04"' do diff --git a/features/steps/project/snippets.rb b/features/steps/project/snippets.rb index e3f5e9e3ef3..dd49701a3d9 100644 --- a/features/steps/project/snippets.rb +++ b/features/steps/project/snippets.rb @@ -23,7 +23,9 @@ class Spinach::Features::ProjectSnippets < Spinach::FeatureSteps end step 'I click link "New snippet"' do - first(:link, "New snippet").click + page.within '#content-body' do + first(:link, "New snippet").click + end end step 'I click link "Snippet one"' do -- cgit v1.2.1 From bce6536134ceef28ad4caed03b95639ec39d4ac2 Mon Sep 17 00:00:00 2001 From: Tim Zallmann Date: Wed, 31 May 2017 17:23:48 +0200 Subject: Fixing more broken unscoped tests --- app/views/layouts/header/_new_dropdown.haml | 6 +++--- spec/features/admin/admin_groups_spec.rb | 4 +++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/views/layouts/header/_new_dropdown.haml b/app/views/layouts/header/_new_dropdown.haml index ac8c9070f7d..9b9719a26dd 100644 --- a/app/views/layouts/header/_new_dropdown.haml +++ b/app/views/layouts/header/_new_dropdown.haml @@ -3,7 +3,7 @@ = icon('plus fw') = icon('caret-down') .dropdown-menu-nav.dropdown-menu-align-right - %ul + %ul - if @group - create_group_project = can?(current_user, :create_projects, @group) - create_group_subgroup = can?(current_user, :create_subgroup, @group) @@ -18,13 +18,13 @@ %li.divider %li.dropdown-bold-header GitLab - - if @project + - if @project && @project.namespace - create_project_issue = can?(current_user, :create_issue, @project) - merge_project = can?(current_user, :create_merge_request, @project) ? @project : (current_user && current_user.fork_of(@project)) - create_project_snippet = can?(current_user, :create_project_snippet, @project) - if (create_project_issue || merge_project || create_project_snippet) %li.dropdown-bold-header This project - - if create_project_issue + - if create_project_issue %li = link_to 'New issue', new_namespace_project_issue_path(@project.namespace, @project) - if merge_project diff --git a/spec/features/admin/admin_groups_spec.rb b/spec/features/admin/admin_groups_spec.rb index d5f595894d6..cf9d7bca255 100644 --- a/spec/features/admin/admin_groups_spec.rb +++ b/spec/features/admin/admin_groups_spec.rb @@ -24,7 +24,9 @@ feature 'Admin Groups', feature: true do it 'creates new group' do visit admin_groups_path - click_link "New group" + page.within '#content-body' do + click_link "New group" + end path_component = 'gitlab' group_name = 'GitLab group name' group_description = 'Description of group for GitLab' -- cgit v1.2.1 From f217006856d66f633376bbab151e7403e6605118 Mon Sep 17 00:00:00 2001 From: Tim Zallmann Date: Wed, 31 May 2017 23:02:56 +0200 Subject: Fix for linting problem --- app/assets/stylesheets/framework/dropdowns.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/stylesheets/framework/dropdowns.scss b/app/assets/stylesheets/framework/dropdowns.scss index 2ee95483040..6cb11ea4ccf 100644 --- a/app/assets/stylesheets/framework/dropdowns.scss +++ b/app/assets/stylesheets/framework/dropdowns.scss @@ -267,7 +267,7 @@ padding: 0 16px; } - .separator + .dropdown-header, + .separator + .dropdown-header, .separator + .dropdown-bold-header { padding-top: 2px; } -- cgit v1.2.1 From 00bc07a90f3b49231f7caac407028883aafff751 Mon Sep 17 00:00:00 2001 From: Tim Zallmann Date: Mon, 5 Jun 2017 14:56:16 +0200 Subject: Should fix problem if you have an project without a project ID (Test in new_project_spec.rb) --- app/views/layouts/header/_new_dropdown.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/layouts/header/_new_dropdown.haml b/app/views/layouts/header/_new_dropdown.haml index 9b9719a26dd..b220b40d6e3 100644 --- a/app/views/layouts/header/_new_dropdown.haml +++ b/app/views/layouts/header/_new_dropdown.haml @@ -18,7 +18,7 @@ %li.divider %li.dropdown-bold-header GitLab - - if @project && @project.namespace + - if @project && @project.namespace && :project_id - create_project_issue = can?(current_user, :create_issue, @project) - merge_project = can?(current_user, :create_merge_request, @project) ? @project : (current_user && current_user.fork_of(@project)) - create_project_snippet = can?(current_user, :create_project_snippet, @project) -- cgit v1.2.1