From 08a0af9fcf4de2ae1f56c46104eb0ae171db38df Mon Sep 17 00:00:00 2001
From: Phil Hughes <me@iamphill.com>
Date: Mon, 3 Jul 2017 11:58:06 +0100
Subject: [PATCH] moved more action buttons

---
 app/assets/javascripts/dispatcher.js              |  3 +++
 app/assets/javascripts/project_select.js          |  8 ++++++++
 app/assets/stylesheets/new_nav.scss               | 10 ++++++++++
 app/views/dashboard/_groups_head.html.haml        |  9 ++++++---
 app/views/dashboard/_projects_head.html.haml      | 10 +++++++---
 app/views/dashboard/milestones/index.html.haml    |  6 +++++-
 .../shared/_new_project_item_select.html.haml     | 15 +--------------
 7 files changed, 40 insertions(+), 21 deletions(-)

diff --git a/app/assets/javascripts/dispatcher.js b/app/assets/javascripts/dispatcher.js
index 4247540de22..c9b424932aa 100644
--- a/app/assets/javascripts/dispatcher.js
+++ b/app/assets/javascripts/dispatcher.js
@@ -150,6 +150,9 @@ import initExperimentalFlags from './experimental_flags';
           shortcut_handler = new ShortcutsIssuable();
           new ZenMode();
           break;
+        case 'dashboard:milestones:index':
+          new ProjectSelect();
+          break;
         case 'projects:milestones:show':
         case 'groups:milestones:show':
         case 'dashboard:milestones:show':
diff --git a/app/assets/javascripts/project_select.js b/app/assets/javascripts/project_select.js
index 9896b88d487..ebcefc819f5 100644
--- a/app/assets/javascripts/project_select.js
+++ b/app/assets/javascripts/project_select.js
@@ -104,6 +104,14 @@ import Api from './api';
           dropdownCssClass: "ajax-project-dropdown"
         });
       });
+
+      $('.new-project-item-select-button').on('click', function() {
+        $('.project-item-select', this.parentNode).select2('open');
+      });
+
+      $('.project-item-select').on('click', function() {
+        window.location = `${$(this).val()}/${this.dataset.relativePath}`;
+      });
     }
 
     return ProjectSelect;
diff --git a/app/assets/stylesheets/new_nav.scss b/app/assets/stylesheets/new_nav.scss
index c7ef5a5ae1f..e88b383617b 100644
--- a/app/assets/stylesheets/new_nav.scss
+++ b/app/assets/stylesheets/new_nav.scss
@@ -388,3 +388,13 @@ header.navbar-gitlab-new {
     color: $gl-text-color;
   }
 }
+
+.top-area {
+  .nav-controls-new-nav {
+    .dropdown {
+      @media (min-width: $screen-sm-min) {
+        margin-right: 0;
+      }
+    }
+  }
+}
diff --git a/app/views/dashboard/_groups_head.html.haml b/app/views/dashboard/_groups_head.html.haml
index 4594c52b34b..5a379eae8f4 100644
--- a/app/views/dashboard/_groups_head.html.haml
+++ b/app/views/dashboard/_groups_head.html.haml
@@ -1,3 +1,7 @@
+- if show_new_nav? && current_user.can_create_group?
+  - content_for :breadcrumbs_extra do
+    = link_to "New group", new_group_path, class: "btn btn-new"
+
 .top-area
   %ul.nav-links
     = nav_link(page: dashboard_groups_path) do
@@ -6,9 +10,8 @@
     = nav_link(page: explore_groups_path) do
       = link_to explore_groups_path, title: 'Explore public groups' do
         Explore public groups
-  .nav-controls
+  .nav-controls{ class: ("nav-controls-new-nav" if show_new_nav?) }
     = render 'shared/groups/search_form'
     = render 'shared/groups/dropdown'
     - if current_user.can_create_group?
-      = link_to new_group_path, class: "btn btn-new" do
-        New group
+      = link_to "New group", new_group_path, class: "btn btn-new #{("visible-xs" if show_new_nav?)}"
diff --git a/app/views/dashboard/_projects_head.html.haml b/app/views/dashboard/_projects_head.html.haml
index 64b737ee886..1f9a5b401b6 100644
--- a/app/views/dashboard/_projects_head.html.haml
+++ b/app/views/dashboard/_projects_head.html.haml
@@ -1,5 +1,10 @@
 = content_for :flash_message do
   = render 'shared/project_limit'
+
+- if show_new_nav? && current_user.can_create_project?
+  - content_for :breadcrumbs_extra do
+    = link_to "New project", new_project_path, class: 'btn btn-new'
+
 .top-area.scrolling-tabs-container.inner-page-scroll-tabs
   .fade-left= icon('angle-left')
   .fade-right= icon('angle-right')
@@ -14,9 +19,8 @@
       = link_to explore_root_path, title: 'Explore', data: {placement: 'right'} do
         Explore projects
 
-  .nav-controls
+  .nav-controls{ class: ("nav-controls-new-nav" if show_new_nav?) }
     = render 'shared/projects/search_form'
     = render 'shared/projects/dropdown'
     - if current_user.can_create_project?
-      = link_to new_project_path, class: 'btn btn-new' do
-        New project
+      = link_to "New project", new_project_path, class: "btn btn-new #{("visible-xs" if show_new_nav?)}"
diff --git a/app/views/dashboard/milestones/index.html.haml b/app/views/dashboard/milestones/index.html.haml
index ef1467c4d78..37dbcaf5cb8 100644
--- a/app/views/dashboard/milestones/index.html.haml
+++ b/app/views/dashboard/milestones/index.html.haml
@@ -2,10 +2,14 @@
 - page_title 'Milestones'
 - header_title 'Milestones', dashboard_milestones_path
 
+- if show_new_nav?
+  - content_for :breadcrumbs_extra do
+    = render 'shared/new_project_item_select', path: 'milestones/new', label: 'New milestone', include_groups: true
+
 .top-area
   = render 'shared/milestones_filter', counts: @milestone_states
 
-  .nav-controls
+  .nav-controls{ class: ("visible-xs" if show_new_nav?) }
     = render 'shared/new_project_item_select', path: 'milestones/new', label: 'New milestone', include_groups: true
 
 .milestones
diff --git a/app/views/shared/_new_project_item_select.html.haml b/app/views/shared/_new_project_item_select.html.haml
index 9ed844cf5e7..c1acee1a211 100644
--- a/app/views/shared/_new_project_item_select.html.haml
+++ b/app/views/shared/_new_project_item_select.html.haml
@@ -1,19 +1,6 @@
 - if @projects.any?
   .project-item-select-holder
     = project_select_tag :project_path, class: "project-item-select", data: { include_groups: local_assigns[:include_groups], order_by: 'last_activity_at' }, with_feature_enabled: local_assigns[:with_feature_enabled]
-    %a.btn.btn-new.new-project-item-select-button
+    %a.btn.btn-new.new-project-item-select-button{ data: { relative_path: local_assigns[:path] } }
       = local_assigns[:label]
       = icon('caret-down')
-
-  :javascript
-    $('.new-project-item-select-button').on('click', function() {
-      $('.project-item-select').select2('open');
-    });
-
-    var relativePath = '#{local_assigns[:path]}';
-
-    $('.project-item-select').on('click', function() {
-      window.location = $(this).val() + '/' + relativePath;
-    });
-
-    new ProjectSelect()
-- 
GitLab