From 487ae906a948e72429c60a1b5abe9508ed516a32 Mon Sep 17 00:00:00 2001
From: gitlabhq <m@gitlabhq.com>
Date: Fri, 28 Oct 2011 15:07:58 +0300
Subject: [PATCH] project layout

---
 app/assets/stylesheets/projects.css.scss | 23 +++++++-----
 app/controllers/issues_controller.rb     |  1 +
 app/controllers/projects_controller.rb   |  9 +++++
 app/views/layouts/project.html.haml      | 46 ++++++++++++++++++++++++
 app/views/projects/_top_menu.html.haml   |  1 -
 5 files changed, 71 insertions(+), 9 deletions(-)
 create mode 100644 app/views/layouts/project.html.haml

diff --git a/app/assets/stylesheets/projects.css.scss b/app/assets/stylesheets/projects.css.scss
index 0029cd02b78f7..e4a018d6466b3 100644
--- a/app/assets/stylesheets/projects.css.scss
+++ b/app/assets/stylesheets/projects.css.scss
@@ -390,16 +390,17 @@ tbody tr:nth-child(2n) td, tbody tr.even td {
 }
 
 .top_menu_count {
-  background: none repeat scroll 0 0 #FFF6BF;
-  border-color: #FFD324;
-  color: #514721;
-  border: 1px solid #DDDDDD;
+  background: none repeat scroll 0 0 white;
+  color: #333;
+  border-color: #4BB8D2;
   padding: 2px;
-  font-size:12px;
-  position:relative;
-  top:-14px;
-  left:10px;
+  font-size:10px;
   border-top:none;
+  text-align:center;
+  float:right;
+  width:25px;
+
+
 }
 
 #logo {
@@ -700,3 +701,9 @@ tbody tr:nth-child(2n) td, tbody tr.even td {
   }
 }
 
+.left { 
+  float:left;
+}
+.right { 
+  float:right;
+}
diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb
index d0fad8ed64753..2966f9e4998be 100644
--- a/app/controllers/issues_controller.rb
+++ b/app/controllers/issues_controller.rb
@@ -2,6 +2,7 @@ class IssuesController < ApplicationController
   before_filter :authenticate_user!
   before_filter :project
   before_filter :issue, :only => [:edit, :update, :destroy, :show]
+  layout "project"
 
   # Authorize
   before_filter :add_project_abilities
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index 481e02fd23147..e046add3799d4 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -1,5 +1,6 @@
 class ProjectsController < ApplicationController
   before_filter :project, :except => [:index, :new, :create]
+  layout :determine_layout
 
   # Authorize
   before_filter :add_project_abilities
@@ -152,4 +153,12 @@ def destroy
   def project
     @project ||= Project.find_by_code(params[:id])
   end
+
+  def determine_layout
+    if @project && !@project.new_record?
+      "project"
+    else
+      "application"
+    end
+  end
 end
diff --git a/app/views/layouts/project.html.haml b/app/views/layouts/project.html.haml
new file mode 100644
index 0000000000000..68f973dc7a8c0
--- /dev/null
+++ b/app/views/layouts/project.html.haml
@@ -0,0 +1,46 @@
+!!!
+%html
+  %head
+    %title
+      GitLab #{" - #{@project.name}" if @project && !@project.new_record?}
+    = stylesheet_link_tag    "application"
+    = javascript_include_tag "application"
+    = csrf_meta_tags
+    %link{:href => "/assets/favicon.png", :rel => "icon", :type => "image/png"}/
+    = javascript_tag do
+      REQ_URI = "#{request.env["REQUEST_URI"]}";
+      REQ_REFFER = "#{request.env["HTTP_REFERER"]}";
+  %body.project-page
+    #container
+      = render :partial => "layouts/flash"
+      = render :partial => "layouts/head_panel"
+      = render :partial => "layouts/page_title"
+      .project-container
+        .project-sidebar.grid_1
+          %input.git-url.text{:id => "", :name => "", :readonly => "", :type => "text", :value => @project.url_to_repo}
+            %aside
+              = link_to image_tag("home.png", :width => 20), project_path(@project), :class => current_page?(:controller => "projects", :action => "show", :id => @project) ? "current" : nil
+              = link_to "Tree", tree_project_path(@project), :class => current_page?(:controller => "projects", :action => "tree", :id => @project) ? "current" : nil
+              = link_to "Commits", project_commits_path(@project), :class => current_page?(:controller => "commits", :action => "index", :project_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 => "top_menu_count" }= @project.users_projects.count
+              = link_to  project_issues_path(@project), :class => (controller.controller_name == "issues") ? "current" : nil do
+                Issues
+                - if @project.issues.opened.count > 0
+                  %span{ :class => "top_menu_count" }= @project.issues.opened.count
+              = link_to wall_project_path(@project), :class => current_page?(:controller => "projects", :action => "wall", :id => @project) ? "current" : nil do
+                Wall
+                - if @project.common_notes.count > 0
+                  %span{ :class => "top_menu_count" }= @project.common_notes.count
+              = link_to project_snippets_path(@project), :class => (controller.controller_name == "snippets") ? "current" : nil do
+                Snippets
+                - if @project.snippets.count > 0
+                  %span{ :class => "top_menu_count" }= @project.snippets.non_expired.count
+              - if @commit
+                = link_to truncate(commit_name(@project,@commit), :length => 15), project_commit_path(@project, :id => @commit.id), :class => current_page?(:controller => "commits", :action => "show", :project_id => @project, :id => @commit.id) ? "current" : nil
+
+
+        .project-content
+          = yield
diff --git a/app/views/projects/_top_menu.html.haml b/app/views/projects/_top_menu.html.haml
index 0b8751c93ccf5..46586e6ca5d2b 100644
--- a/app/views/projects/_top_menu.html.haml
+++ b/app/views/projects/_top_menu.html.haml
@@ -1,5 +1,4 @@
 %div.top_project_menu
-  -#%span= link_to @project.code.capitalize, @project, :class => current_page?(:controller => "projects", :action => "show", :id => @project) ? "current" : nil
   - if @project.repo_exists?
     %span= link_to image_tag("home.png", :width => 20), project_path(@project), :class => current_page?(:controller => "projects", :action => "show", :id => @project) ? "current" : nil
     %span= link_to "Tree", tree_project_path(@project), :class => current_page?(:controller => "projects", :action => "tree", :id => @project) ? "current" : nil
-- 
GitLab