From 5a59712b8ac29450dfef0af0dd381529f0d9d7ae Mon Sep 17 00:00:00 2001 From: Douwe Maan <douwe@gitlab.com> Date: Wed, 2 Dec 2015 14:02:12 +0100 Subject: [PATCH] Add "New X" buttons to dashboard and group issue, MR and milestone indexes --- app/views/dashboard/issues.html.haml | 31 +++++++++++---- app/views/dashboard/merge_requests.html.haml | 23 ++++++++++- .../dashboard/milestones/index.html.haml | 21 ++++++++-- app/views/groups/issues.html.haml | 38 +++++++++++++------ app/views/groups/merge_requests.html.haml | 30 +++++++++++---- app/views/groups/milestones/index.html.haml | 24 +++++++----- app/views/projects/milestones/index.html.haml | 15 +++++--- 7 files changed, 134 insertions(+), 48 deletions(-) diff --git a/app/views/dashboard/issues.html.haml b/app/views/dashboard/issues.html.haml index cd602e897b7..829c3c83769 100644 --- a/app/views/dashboard/issues.html.haml +++ b/app/views/dashboard/issues.html.haml @@ -4,14 +4,31 @@ - if current_user = auto_discovery_link_tag(:atom, issues_dashboard_url(format: :atom, private_token: current_user.private_token), title: "#{current_user.name} issues") +.project-issuable-filter + .controls + .pull-left + - if current_user + .hidden-xs.pull-left + = link_to issues_dashboard_url(format: :atom, private_token: current_user.private_token), class: 'btn' do + %i.fa.fa-rss -.append-bottom-20 - .pull-right - - if current_user - .hidden-xs.pull-left.prepend-top-20 - = link_to issues_dashboard_url(format: :atom, private_token: current_user.private_token), class: '' do - %i.fa.fa-rss + - if @projects.any? { |project| can?(current_user, :create_issue, project) } + .dropdown.inline.prepend-left-10 + %button.dropdown-toggle.btn.btn-new{type: 'button', 'data-toggle' => 'dropdown'} + %i.fa.fa-plus + New Issue + %b.caret + %ul.dropdown-menu.dropdown-menu-align-right + - @projects.each do |project| + - if can?(current_user, :create_issue, project) + %li + = link_to new_namespace_project_issue_path(project.namespace, project) do + = project.name_with_namespace = render 'shared/issuable/filter', type: :issues -= render 'shared/issues' +.gray-content-block.second-block + List all issues from all projects you have access to. + +.prepend-top-default + = render 'shared/issues' diff --git a/app/views/dashboard/merge_requests.html.haml b/app/views/dashboard/merge_requests.html.haml index d1f332fa0d3..2e91c8dec8a 100644 --- a/app/views/dashboard/merge_requests.html.haml +++ b/app/views/dashboard/merge_requests.html.haml @@ -1,6 +1,25 @@ - page_title "Merge Requests" - header_title "Merge Requests", merge_requests_dashboard_path(assignee_id: current_user.id) -.append-bottom-20 +.project-issuable-filter + .controls + - if @projects.any? { |project| can?(current_user, :create_merge_request, project) } + .dropdown.inline + %button.dropdown-toggle.btn.btn-new{type: 'button', 'data-toggle' => 'dropdown'} + %i.fa.fa-plus + New Merge Request + %b.caret + %ul.dropdown-menu.dropdown-menu-align-right + - @projects.each do |project| + - if can?(current_user, :create_merge_request, project) + %li + = link_to new_namespace_project_merge_request_path(project.namespace, project) do + = project.name_with_namespace + = render 'shared/issuable/filter', type: :merge_requests -= render 'shared/merge_requests' + +.gray-content-block.second-block + List all merge requests from all projects you have access to. + +.prepend-top-default + = render 'shared/merge_requests' diff --git a/app/views/dashboard/milestones/index.html.haml b/app/views/dashboard/milestones/index.html.haml index 635251e2374..9aea75e50db 100644 --- a/app/views/dashboard/milestones/index.html.haml +++ b/app/views/dashboard/milestones/index.html.haml @@ -1,12 +1,25 @@ - page_title "Milestones" -- header_title "Milestones", dashboard_milestones_path +- header_title "Milestones", dashboard_milestones_path +.project-issuable-filter + .controls + - if @projects.any? { |project| can?(current_user, :admin_milestone, project) } + .dropdown.inline + %button.dropdown-toggle.btn.btn-new{type: 'button', 'data-toggle' => 'dropdown'} + %i.fa.fa-plus + New Milestone + %b.caret + %ul.dropdown-menu.dropdown-menu-align-right + - @projects.each do |project| + - if can?(current_user, :admin_milestone, project) + %li + = link_to new_namespace_project_milestone_path(project.namespace, project) do + = project.name_with_namespace -= render 'shared/milestones_filter' + = render 'shared/milestones_filter' .gray-content-block - .oneline - List all milestones from all projects you have access to. + List all milestones from all projects you have access to. .milestones %ul.content-list diff --git a/app/views/groups/issues.html.haml b/app/views/groups/issues.html.haml index 08d97e418a3..5a9739a0cda 100644 --- a/app/views/groups/issues.html.haml +++ b/app/views/groups/issues.html.haml @@ -4,21 +4,35 @@ - if current_user = auto_discovery_link_tag(:atom, issues_group_url(@group, format: :atom, private_token: current_user.private_token), title: "#{@group.name} issues") +.project-issuable-filter + .controls + .pull-left + - if current_user + .hidden-xs.pull-left + = link_to issues_group_url(@group, format: :atom, private_token: current_user.private_token), class: 'btn' do + %i.fa.fa-rss + - if @projects.any? { |project| can?(current_user, :create_issue, project) } + .dropdown.inline.prepend-left-10 + %button.dropdown-toggle.btn.btn-new{type: 'button', 'data-toggle' => 'dropdown'} + %i.fa.fa-plus + New Issue + %b.caret + %ul.dropdown-menu.dropdown-menu-align-right + - @projects.each do |project| + - if can?(current_user, :create_issue, project) + %li + = link_to new_namespace_project_issue_path(project.namespace, project) do + = project.name_with_namespace + + = render 'shared/issuable/filter', type: :issues -= render 'shared/issuable/filter', type: :issues .gray-content-block.second-block - .pull-right - - if current_user - .hidden-xs.pull-left - = link_to issues_group_url(@group, format: :atom, private_token: current_user.private_token) do - %i.fa.fa-rss - %div - Only issues from - %strong #{@group.name} - group are listed here. - - if current_user - To see all issues you should visit #{link_to 'dashboard', issues_dashboard_path} page. + Only issues from + %strong #{@group.name} + group are listed here. + - if current_user + To see all issues you should visit #{link_to 'dashboard', issues_dashboard_path} page. .prepend-top-default = render 'shared/issues' diff --git a/app/views/groups/merge_requests.html.haml b/app/views/groups/merge_requests.html.haml index 425ad8331bf..95c503a3afa 100644 --- a/app/views/groups/merge_requests.html.haml +++ b/app/views/groups/merge_requests.html.haml @@ -1,13 +1,29 @@ - page_title "Merge Requests" - header_title group_title(@group, "Merge Requests", merge_requests_group_path(@group)) -= render 'shared/issuable/filter', type: :merge_requests +.project-issuable-filter + .controls + - if @projects.any? { |project| can?(current_user, :create_merge_request, project) } + .dropdown.inline + %button.dropdown-toggle.btn.btn-new{type: 'button', 'data-toggle' => 'dropdown'} + %i.fa.fa-plus + New Merge Request + %b.caret + %ul.dropdown-menu.dropdown-menu-align-right + - @projects.each do |project| + - if can?(current_user, :create_merge_request, project) + %li + = link_to new_namespace_project_merge_request_path(project.namespace, project) do + = project.name_with_namespace + + = render 'shared/issuable/filter', type: :merge_requests + .gray-content-block.second-block - %div - Only merge requests from - %strong #{@group.name} - group are listed here. - - if current_user - To see all merge requests you should visit #{link_to 'dashboard', merge_requests_dashboard_path} page. + Only merge requests from + %strong #{@group.name} + group are listed here. + - if current_user + To see all merge requests you should visit #{link_to 'dashboard', merge_requests_dashboard_path} page. + .prepend-top-default = render 'shared/merge_requests' diff --git a/app/views/groups/milestones/index.html.haml b/app/views/groups/milestones/index.html.haml index 84ec77c6188..b221d3a89a4 100644 --- a/app/views/groups/milestones/index.html.haml +++ b/app/views/groups/milestones/index.html.haml @@ -1,18 +1,22 @@ - page_title "Milestones" - header_title group_title(@group, "Milestones", group_milestones_path(@group)) -= render 'shared/milestones_filter' +.project-issuable-filter + .controls + - if can?(current_user, :admin_milestones, @group) + .pull-right + %span.pull-right.hidden-xs + = link_to new_group_milestone_path(@group), class: "btn btn-new" do + = icon('plus') + New Milestone + + = render 'shared/milestones_filter' + .gray-content-block - - if can?(current_user, :admin_milestones, @group) - .pull-right - %span.pull-right.hidden-xs - = link_to new_group_milestone_path(@group), class: "btn btn-new" do - New Milestone + Only milestones from + %strong #{@group.name} + group are listed here. - .oneline - Only milestones from - %strong #{@group.name} - group are listed here. .milestones %ul.content-list - if @milestones.blank? diff --git a/app/views/projects/milestones/index.html.haml b/app/views/projects/milestones/index.html.haml index a207385bd43..114b06457a5 100644 --- a/app/views/projects/milestones/index.html.haml +++ b/app/views/projects/milestones/index.html.haml @@ -1,15 +1,18 @@ - page_title "Milestones" = render "header_title" -= render 'shared/milestones_filter' -.gray-content-block - .pull-right - - if can? current_user, :admin_milestone, @project + +.project-issuable-filter + .controls + - if can?(current_user, :admin_milestone, @project) = link_to new_namespace_project_milestone_path(@project.namespace, @project), class: "pull-right btn btn-new", title: "New Milestone" do %i.fa.fa-plus New Milestone - .oneline - Milestone allows you to group issues and set due date for it + + = render 'shared/milestones_filter' + +.gray-content-block + Milestone allows you to group issues and set due date for it .milestones %ul.content-list -- GitLab