From 8812d9dee2340ba33d1272ed6ea0736c8eb371d0 Mon Sep 17 00:00:00 2001
From: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Date: Sun, 10 Mar 2013 11:57:14 +0200
Subject: [PATCH] Move groups and teams to tabs on dashboard. Remember tab with
 cookie

---
 app/assets/javascripts/dashboard.js.coffee    | 12 ++++++++
 app/assets/stylesheets/sections/projects.scss |  4 +++
 app/views/dashboard/_groups.html.haml         |  3 ++
 app/views/dashboard/_sidebar.html.haml        | 28 +++++++++++++------
 app/views/dashboard/_teams.html.haml          |  7 +++--
 5 files changed, 44 insertions(+), 10 deletions(-)

diff --git a/app/assets/javascripts/dashboard.js.coffee b/app/assets/javascripts/dashboard.js.coffee
index 6171e0d50fdc..4189c90bbfab 100644
--- a/app/assets/javascripts/dashboard.js.coffee
+++ b/app/assets/javascripts/dashboard.js.coffee
@@ -1,5 +1,6 @@
 window.dashboardPage = ->
   Pager.init 20, true
+  initSidebarTab()
   $(".event_filter_link").bind "click", (event) ->
     event.preventDefault()
     toggleFilter $(this)
@@ -25,3 +26,14 @@ toggleFilter = (sender) ->
     event_filters.splice index, 1
 
   $.cookie "event_filter", event_filters.join(",")
+
+initSidebarTab = ->
+  key = "dashboard_sidebar_filter"
+
+  # store selection in cookie
+  $('.dash-sidebar-tabs a').on 'click', (e) ->
+    $.cookie(key, $(e.target).attr('id'))
+
+  # show tab from cookie
+  sidebar_filter = $.cookie(key)
+  $("#" + sidebar_filter).tab('show') if sidebar_filter
diff --git a/app/assets/stylesheets/sections/projects.scss b/app/assets/stylesheets/sections/projects.scss
index 3abda7ee69e3..6568d42ab9bf 100644
--- a/app/assets/stylesheets/sections/projects.scss
+++ b/app/assets/stylesheets/sections/projects.scss
@@ -6,6 +6,10 @@
   .side {
     @extend .pull-right;
 
+    .projects_box, .ui-box {
+      margin: 3px;
+    }
+
     .projects_box {
       > .title {
         padding: 2px 15px;
diff --git a/app/views/dashboard/_groups.html.haml b/app/views/dashboard/_groups.html.haml
index ba8d3029eaf4..89158f4d1661 100644
--- a/app/views/dashboard/_groups.html.haml
+++ b/app/views/dashboard/_groups.html.haml
@@ -16,3 +16,6 @@
         %span.pull-right.light
           - if group.owner == current_user
             %i.icon-wrench
+    - if groups.blank?
+      %li
+        %h3.nothing_here_message You have no groups yet.
diff --git a/app/views/dashboard/_sidebar.html.haml b/app/views/dashboard/_sidebar.html.haml
index 7c6daf6ec311..876a5b61297d 100644
--- a/app/views/dashboard/_sidebar.html.haml
+++ b/app/views/dashboard/_sidebar.html.haml
@@ -1,13 +1,25 @@
-- if @teams.present?
-  = render "teams", teams: @teams
-- if @groups.present?
-  = render "groups", groups: @groups
-= render "projects", projects: @projects
-%div
+%ul.nav.nav-tabs.dash-sidebar-tabs
+  %li.active
+    = link_to 'Projects', '#projects', 'data-toggle' => 'tab', id: 'sidebar-projects-tab'
+  %li
+    = link_to 'Groups', '#groups', 'data-toggle' => 'tab', id: 'sidebar-groups-tab'
+  %li
+    = link_to 'Teams', '#teams', 'data-toggle' => 'tab', id: 'sidebar-teams-tab'
+
+.tab-content
+  .tab-pane.active#projects
+    = render "projects", projects: @projects
+  .tab-pane#groups
+    = render "groups", groups: @groups
+  .tab-pane#teams
+    = render "teams", teams: @teams
+
+.prepend-top-20
   %span.rss-icon
     = link_to dashboard_path(:atom, { private_token: current_user.private_token }) do
-      = image_tag "rss_ui.png", title: "feed"
-      %strong News Feed
+      %strong
+        %i.icon-rss
+        News Feed
 
 %hr
 .gitlab-promo
diff --git a/app/views/dashboard/_teams.html.haml b/app/views/dashboard/_teams.html.haml
index f56115856a74..5c28f964cb62 100644
--- a/app/views/dashboard/_teams.html.haml
+++ b/app/views/dashboard/_teams.html.haml
@@ -2,13 +2,13 @@
   %h5.title
     Teams
     %small
-      (#{@teams.count})
+      (#{teams.count})
     %span.pull-right
       = link_to new_team_path, class: "btn btn-tiny info" do
         %i.icon-plus
         New Team
   %ul.well-list
-    - @teams.each do |team|
+    - teams.each do |team|
       %li
         = link_to team_path(id: team.path), class: dom_class(team) do
           %strong.well-title= truncate(team.name, length: 35)
@@ -18,3 +18,6 @@
           - tm = current_user.user_team_user_relationships.find_by_user_team_id(team.id)
           - if tm
             = tm.access_human
+    - if teams.blank?
+      %li
+        %h3.nothing_here_message You have no teams yet.
-- 
GitLab