From c1c903fb955cbee1afe3bd10944d6c218b576b15 Mon Sep 17 00:00:00 2001
From: Dmitriy Zaporozhets <dzaporozhets@sphereconsultinginc.com>
Date: Wed, 28 Dec 2011 09:38:50 +0200
Subject: [PATCH] Project tab added. activities, team, snippets moved to
 project tab

---
 app/assets/stylesheets/projects.css.scss   |  6 ++++-
 app/controllers/projects_controller.rb     |  7 ++++++
 app/views/dashboard/_sidebar.html.haml     |  2 +-
 app/views/layouts/project.html.haml        | 12 +---------
 app/views/projects/_project_head.html.haml | 27 ++++++++++++++++++++++
 app/views/projects/_tile.html.haml         |  2 +-
 app/views/projects/activities.html.haml    | 13 +++++++++++
 app/views/projects/files.html.haml         | 15 ++++++++++++
 app/views/projects/show.html.haml          | 17 ++++----------
 app/views/projects/team.html.haml          |  1 +
 app/views/snippets/index.html.haml         |  1 +
 config/routes.rb                           |  4 ++++
 12 files changed, 80 insertions(+), 27 deletions(-)
 create mode 100644 app/views/projects/_project_head.html.haml
 create mode 100644 app/views/projects/activities.html.haml
 create mode 100644 app/views/projects/files.html.haml

diff --git a/app/assets/stylesheets/projects.css.scss b/app/assets/stylesheets/projects.css.scss
index 33d70e30a8..f73c063d74 100644
--- a/app/assets/stylesheets/projects.css.scss
+++ b/app/assets/stylesheets/projects.css.scss
@@ -561,6 +561,7 @@ h4.middle-panel {
   display:none;
 }
 
+
 .merge-tabs { 
   margin: 0; 
   border: 1px solid #ccc; 
@@ -576,7 +577,7 @@ h4.middle-panel {
     border-right: 1px solid #ddd;
     background:none;
     padding: 10px;
-    width:60px;
+    min-width:60px;
     float:left;
     position:relative;
     top:-5px;
@@ -598,6 +599,9 @@ h4.middle-panel {
     }
   }
 }
+.activities-tab span {  background: url("images.png") no-repeat -161px -1px; } 
+.stat-tab, .team-tab, .snippets-tab span {  background: url("images.png") no-repeat -38px -77px; } 
+.files-tab span {  background: url("images.png") no-repeat -112px -23px; } 
 
 .merge-notes-tab span {  background: url("images.png") no-repeat -161px -1px; } 
 .merge-commits-tab span {  background: url("images.png") no-repeat -86px 1px; } 
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index 4b4f748f36..02495a225e 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -67,6 +67,13 @@ class ProjectsController < ApplicationController
   end
 
   def show
+  end
+
+  def files
+    @notes = @project.notes.where("attachment != 'NULL'").order("created_at DESC")
+  end
+
+  def activities
     return render "projects/empty" unless @project.repo_exists? && @project.has_commits?
     limit = (params[:limit] || 20).to_i
     @activities = @project.cached_updates(limit)
diff --git a/app/views/dashboard/_sidebar.html.haml b/app/views/dashboard/_sidebar.html.haml
index 9f6378b49a..dfe4abda6f 100644
--- a/app/views/dashboard/_sidebar.html.haml
+++ b/app/views/dashboard/_sidebar.html.haml
@@ -6,7 +6,7 @@
   %ol.project-list
     - @projects.each do |project|
       %li
-        %a{:href => project_path(project)}
+        %a{:href => activities_project_path(project)}
           %span.arrow 鈫�
           %span.project-name= project.name
           %span.time
diff --git a/app/views/layouts/project.html.haml b/app/views/layouts/project.html.haml
index 5de97b523d..44cd127917 100644
--- a/app/views/layouts/project.html.haml
+++ b/app/views/layouts/project.html.haml
@@ -23,14 +23,10 @@
         .project-sidebar
           .fixed
             %aside
-              = link_to "Activities", project_path(@project), :class => current_page?(:controller => "projects", :action => "show", :id => @project) ? "current" : nil
+              = link_to "Project", project_path(@project), :class => (current_page?(:controller => "projects", :action => "activities", :id => @project) || controller.controller_name == "snippets" || current_page?(:controller => "projects", :action => "team", :id => @project) || controller.controller_name == "team_members" || current_page?(project_path(@project))) ? "current" : nil
               = link_to "Tree", tree_project_ref_path(@project,  @project.root_ref), :class => current_page?(:controller => "refs", :action => "tree", :project_id => @project, :id => @ref || @project.root_ref ) ? "current" : nil
               = link_to "Commits", project_commits_path(@project), :class => current_page?(:controller => "commits", :action => "index", :project_id => @project) ? "current" : nil
               = link_to "Network graph", graph_project_path(@project), :class => current_page?(:controller => "projects", :action => "graph", :id => @project) ? "current" : nil
-              = link_to team_project_path(@project), :class => (current_page?(:controller => "projects", :action => "team", :id => @project) || controller.controller_name == "team_members") ? "current" : nil do
-                Team
-                - if @project.users_projects.count > 0
-                  %span{ :class => "number" }= @project.users_projects.count
               = link_to  project_issues_filter_path(@project), :class => (controller.controller_name == "issues") ? "current" : nil do
                 Issues
                 - if @project.issues.open_for(current_user).count > 0
@@ -43,13 +39,7 @@
                 Merge Requests
                 - if @project.merge_requests.opened.count > 0
                   %span{ :class => "number" }= @project.merge_requests.opened.count
-              = link_to project_snippets_path(@project), :class => (controller.controller_name == "snippets") ? "current" : nil do
-                Snippets
-                - if @project.snippets.non_expired.count > 0
-                  %span{ :class => "number" }= @project.snippets.non_expired.count
 
-              - if can? current_user, :admin_project, @project
-                = link_to "Admin", edit_project_path(@project), :class => (current_page?(edit_project_path(@project))) ? "current" : nil
 
             .medium-tags{:style => 'padding: 10px 0 0 10px; width: 210px;'}= tag_list @project
 
diff --git a/app/views/projects/_project_head.html.haml b/app/views/projects/_project_head.html.haml
new file mode 100644
index 0000000000..c9aab4f779
--- /dev/null
+++ b/app/views/projects/_project_head.html.haml
@@ -0,0 +1,27 @@
+%div
+  -#- if can? current_user, :admin_project, @project
+    -#%span.entity-info
+      -#= link_to edit_project_path(@project) do 
+        -#.entity-button
+          -#Edit Project
+          -#%i
+
+  -#%h2= @project.name
+.merge-tabs
+  = link_to activities_project_path(@project), :class => "activities-tab tab #{'active' if current_page?(activities_project_path(@project)) }" do 
+    %span
+    Activities
+  = link_to project_path(@project), :class => "stat-tab tab" do 
+    %span
+    Info
+  = link_to team_project_path(@project), :class => "team-tab tab" do 
+    %span 
+    Team
+  = link_to files_project_path(@project), :class => "files-tab tab" do 
+    %span
+    Files
+  = link_to project_snippets_path(@project), :class => "snippets-tab tab" do 
+    %span
+    Snippets
+
+
diff --git a/app/views/projects/_tile.html.haml b/app/views/projects/_tile.html.haml
index d954904505..8d0ad21f26 100644
--- a/app/views/projects/_tile.html.haml
+++ b/app/views/projects/_tile.html.haml
@@ -2,7 +2,7 @@
   - projects.each_with_index do |project, i|
     %div.grid_1.projects_selector
       %div{ :class => "project-box ui-box ui-box-big" }
-        = link_to project_path(project) do
+        = link_to activities_project_path(project) do
           %h3= truncate(project.name, :length => 20)
         .data
           %p.title.repository.git_url_wrapper
diff --git a/app/views/projects/activities.html.haml b/app/views/projects/activities.html.haml
new file mode 100644
index 0000000000..bbc31a599f
--- /dev/null
+++ b/app/views/projects/activities.html.haml
@@ -0,0 +1,13 @@
+- content_for(:body_class, "project-page dashboard")
+
+= render "project_head"
+#news-feed.news-feed
+  .project-box.project-updates.ui-box.ui-box-small.ui-box-big
+    - @activities.each do |update|
+      = render "projects/feed", :update => update, :project => @project
+
+:javascript
+  function updateDashboard(){
+    $('.project-content').load("#{escape_javascript(project_path(@project))} .project-content>*");
+  }
+  setInterval("updateDashboard()", 300000);
diff --git a/app/views/projects/files.html.haml b/app/views/projects/files.html.haml
new file mode 100644
index 0000000000..8bc70345dc
--- /dev/null
+++ b/app/views/projects/files.html.haml
@@ -0,0 +1,15 @@
+= render "project_head"
+%div{ :class => "update-data ui-box ui-box-small ui-box-big" }
+  .data
+    - @notes.each do |note|
+      %a.update-item{:href => note.attachment.url}
+        = image_tag gravatar_icon(note.author_email), :class => "left", :width => 16
+        %span.update-title{:style => "margin-bottom:0px;"}
+          = note.attachment_identifier
+          %span.update-author.right
+            Added
+            = time_ago_in_words(note.created_at)
+            ago
+
+
+
diff --git a/app/views/projects/show.html.haml b/app/views/projects/show.html.haml
index 0530736fb4..bc78e99d31 100644
--- a/app/views/projects/show.html.haml
+++ b/app/views/projects/show.html.haml
@@ -1,15 +1,6 @@
-- content_for(:body_class, "project-page dashboard")
+= render "project_head"
+.stats
+  - unless @project.description.empty?
+    %h3= simple_format @project.description
 
-#news-feed.news-feed
-  %h2.icon
-    %span>
-    Activities
-  .project-box.project-updates.ui-box.ui-box-small.ui-box-big
-    - @activities.each do |update|
-      = render "projects/feed", :update => update, :project => @project
 
-:javascript
-  function updateDashboard(){
-    $('.project-content').load("#{escape_javascript(project_path(@project))} .project-content>*");
-  }
-  setInterval("updateDashboard()", 300000);
diff --git a/app/views/projects/team.html.haml b/app/views/projects/team.html.haml
index 3b2c4b3ef9..41afc451a8 100644
--- a/app/views/projects/team.html.haml
+++ b/app/views/projects/team.html.haml
@@ -1,3 +1,4 @@
+= render "project_head"
 %div
   = render :partial => "team", :locals => {:project => @project}
 
diff --git a/app/views/snippets/index.html.haml b/app/views/snippets/index.html.haml
index f08a3d1d67..0c83bf9d73 100644
--- a/app/views/snippets/index.html.haml
+++ b/app/views/snippets/index.html.haml
@@ -1,3 +1,4 @@
+= render "projects/project_head"
 %h2.icon
   %span>
   Snippets
diff --git a/config/routes.rb b/config/routes.rb
index bf9fe95454..2812b1502e 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -42,6 +42,10 @@ Gitlab::Application.routes.draw do
       get "team"
       get "wall"
       get "graph"
+      get "activities"
+      get "branches"
+      get "tags"
+      get "files"
     end
 
     resources :refs, :only => [], :path => "/" do 
-- 
2.30.9