Commit c1c903fb955cbee1afe3bd10944d6c218b576b15

Authored by Dmitriy Zaporozhets
1 parent 6e5caa19

Project tab added. activities, team, snippets moved to project tab

app/assets/stylesheets/projects.css.scss
@@ -561,6 +561,7 @@ h4.middle-panel { @@ -561,6 +561,7 @@ h4.middle-panel {
561 display:none; 561 display:none;
562 } 562 }
563 563
  564 +
564 .merge-tabs { 565 .merge-tabs {
565 margin: 0; 566 margin: 0;
566 border: 1px solid #ccc; 567 border: 1px solid #ccc;
@@ -576,7 +577,7 @@ h4.middle-panel { @@ -576,7 +577,7 @@ h4.middle-panel {
576 border-right: 1px solid #ddd; 577 border-right: 1px solid #ddd;
577 background:none; 578 background:none;
578 padding: 10px; 579 padding: 10px;
579 - width:60px; 580 + min-width:60px;
580 float:left; 581 float:left;
581 position:relative; 582 position:relative;
582 top:-5px; 583 top:-5px;
@@ -598,6 +599,9 @@ h4.middle-panel { @@ -598,6 +599,9 @@ h4.middle-panel {
598 } 599 }
599 } 600 }
600 } 601 }
  602 +.activities-tab span { background: url("images.png") no-repeat -161px -1px; }
  603 +.stat-tab, .team-tab, .snippets-tab span { background: url("images.png") no-repeat -38px -77px; }
  604 +.files-tab span { background: url("images.png") no-repeat -112px -23px; }
601 605
602 .merge-notes-tab span { background: url("images.png") no-repeat -161px -1px; } 606 .merge-notes-tab span { background: url("images.png") no-repeat -161px -1px; }
603 .merge-commits-tab span { background: url("images.png") no-repeat -86px 1px; } 607 .merge-commits-tab span { background: url("images.png") no-repeat -86px 1px; }
app/controllers/projects_controller.rb
@@ -67,6 +67,13 @@ class ProjectsController < ApplicationController @@ -67,6 +67,13 @@ class ProjectsController < ApplicationController
67 end 67 end
68 68
69 def show 69 def show
  70 + end
  71 +
  72 + def files
  73 + @notes = @project.notes.where("attachment != 'NULL'").order("created_at DESC")
  74 + end
  75 +
  76 + def activities
70 return render "projects/empty" unless @project.repo_exists? && @project.has_commits? 77 return render "projects/empty" unless @project.repo_exists? && @project.has_commits?
71 limit = (params[:limit] || 20).to_i 78 limit = (params[:limit] || 20).to_i
72 @activities = @project.cached_updates(limit) 79 @activities = @project.cached_updates(limit)
app/views/dashboard/_sidebar.html.haml
@@ -6,7 +6,7 @@ @@ -6,7 +6,7 @@
6 %ol.project-list 6 %ol.project-list
7 - @projects.each do |project| 7 - @projects.each do |project|
8 %li 8 %li
9 - %a{:href => project_path(project)} 9 + %a{:href => activities_project_path(project)}
10 %span.arrow → 10 %span.arrow →
11 %span.project-name= project.name 11 %span.project-name= project.name
12 %span.time 12 %span.time
app/views/layouts/project.html.haml
@@ -23,14 +23,10 @@ @@ -23,14 +23,10 @@
23 .project-sidebar 23 .project-sidebar
24 .fixed 24 .fixed
25 %aside 25 %aside
26 - = link_to "Activities", project_path(@project), :class => current_page?(:controller => "projects", :action => "show", :id => @project) ? "current" : nil 26 + = 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
27 = 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 27 = 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
28 = link_to "Commits", project_commits_path(@project), :class => current_page?(:controller => "commits", :action => "index", :project_id => @project) ? "current" : nil 28 = link_to "Commits", project_commits_path(@project), :class => current_page?(:controller => "commits", :action => "index", :project_id => @project) ? "current" : nil
29 = link_to "Network graph", graph_project_path(@project), :class => current_page?(:controller => "projects", :action => "graph", :id => @project) ? "current" : nil 29 = link_to "Network graph", graph_project_path(@project), :class => current_page?(:controller => "projects", :action => "graph", :id => @project) ? "current" : nil
30 - = link_to team_project_path(@project), :class => (current_page?(:controller => "projects", :action => "team", :id => @project) || controller.controller_name == "team_members") ? "current" : nil do  
31 - Team  
32 - - if @project.users_projects.count > 0  
33 - %span{ :class => "number" }= @project.users_projects.count  
34 = link_to project_issues_filter_path(@project), :class => (controller.controller_name == "issues") ? "current" : nil do 30 = link_to project_issues_filter_path(@project), :class => (controller.controller_name == "issues") ? "current" : nil do
35 Issues 31 Issues
36 - if @project.issues.open_for(current_user).count > 0 32 - if @project.issues.open_for(current_user).count > 0
@@ -43,13 +39,7 @@ @@ -43,13 +39,7 @@
43 Merge Requests 39 Merge Requests
44 - if @project.merge_requests.opened.count > 0 40 - if @project.merge_requests.opened.count > 0
45 %span{ :class => "number" }= @project.merge_requests.opened.count 41 %span{ :class => "number" }= @project.merge_requests.opened.count
46 - = link_to project_snippets_path(@project), :class => (controller.controller_name == "snippets") ? "current" : nil do  
47 - Snippets  
48 - - if @project.snippets.non_expired.count > 0  
49 - %span{ :class => "number" }= @project.snippets.non_expired.count  
50 42
51 - - if can? current_user, :admin_project, @project  
52 - = link_to "Admin", edit_project_path(@project), :class => (current_page?(edit_project_path(@project))) ? "current" : nil  
53 43
54 .medium-tags{:style => 'padding: 10px 0 0 10px; width: 210px;'}= tag_list @project 44 .medium-tags{:style => 'padding: 10px 0 0 10px; width: 210px;'}= tag_list @project
55 45
app/views/projects/_project_head.html.haml 0 → 100644
@@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
  1 +%div
  2 + -#- if can? current_user, :admin_project, @project
  3 + -#%span.entity-info
  4 + -#= link_to edit_project_path(@project) do
  5 + -#.entity-button
  6 + -#Edit Project
  7 + -#%i
  8 +
  9 + -#%h2= @project.name
  10 +.merge-tabs
  11 + = link_to activities_project_path(@project), :class => "activities-tab tab #{'active' if current_page?(activities_project_path(@project)) }" do
  12 + %span
  13 + Activities
  14 + = link_to project_path(@project), :class => "stat-tab tab" do
  15 + %span
  16 + Info
  17 + = link_to team_project_path(@project), :class => "team-tab tab" do
  18 + %span
  19 + Team
  20 + = link_to files_project_path(@project), :class => "files-tab tab" do
  21 + %span
  22 + Files
  23 + = link_to project_snippets_path(@project), :class => "snippets-tab tab" do
  24 + %span
  25 + Snippets
  26 +
  27 +
app/views/projects/_tile.html.haml
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
2 - projects.each_with_index do |project, i| 2 - projects.each_with_index do |project, i|
3 %div.grid_1.projects_selector 3 %div.grid_1.projects_selector
4 %div{ :class => "project-box ui-box ui-box-big" } 4 %div{ :class => "project-box ui-box ui-box-big" }
5 - = link_to project_path(project) do 5 + = link_to activities_project_path(project) do
6 %h3= truncate(project.name, :length => 20) 6 %h3= truncate(project.name, :length => 20)
7 .data 7 .data
8 %p.title.repository.git_url_wrapper 8 %p.title.repository.git_url_wrapper
app/views/projects/activities.html.haml 0 → 100644
@@ -0,0 +1,13 @@ @@ -0,0 +1,13 @@
  1 +- content_for(:body_class, "project-page dashboard")
  2 +
  3 += render "project_head"
  4 +#news-feed.news-feed
  5 + .project-box.project-updates.ui-box.ui-box-small.ui-box-big
  6 + - @activities.each do |update|
  7 + = render "projects/feed", :update => update, :project => @project
  8 +
  9 +:javascript
  10 + function updateDashboard(){
  11 + $('.project-content').load("#{escape_javascript(project_path(@project))} .project-content>*");
  12 + }
  13 + setInterval("updateDashboard()", 300000);
app/views/projects/files.html.haml 0 → 100644
@@ -0,0 +1,15 @@ @@ -0,0 +1,15 @@
  1 += render "project_head"
  2 +%div{ :class => "update-data ui-box ui-box-small ui-box-big" }
  3 + .data
  4 + - @notes.each do |note|
  5 + %a.update-item{:href => note.attachment.url}
  6 + = image_tag gravatar_icon(note.author_email), :class => "left", :width => 16
  7 + %span.update-title{:style => "margin-bottom:0px;"}
  8 + = note.attachment_identifier
  9 + %span.update-author.right
  10 + Added
  11 + = time_ago_in_words(note.created_at)
  12 + ago
  13 +
  14 +
  15 +
app/views/projects/show.html.haml
1 -- content_for(:body_class, "project-page dashboard") 1 += render "project_head"
  2 +.stats
  3 + - unless @project.description.empty?
  4 + %h3= simple_format @project.description
2 5
3 -#news-feed.news-feed  
4 - %h2.icon  
5 - %span>  
6 - Activities  
7 - .project-box.project-updates.ui-box.ui-box-small.ui-box-big  
8 - - @activities.each do |update|  
9 - = render "projects/feed", :update => update, :project => @project  
10 6
11 -:javascript  
12 - function updateDashboard(){  
13 - $('.project-content').load("#{escape_javascript(project_path(@project))} .project-content>*");  
14 - }  
15 - setInterval("updateDashboard()", 300000);  
app/views/projects/team.html.haml
  1 += render "project_head"
1 %div 2 %div
2 = render :partial => "team", :locals => {:project => @project} 3 = render :partial => "team", :locals => {:project => @project}
3 4
app/views/snippets/index.html.haml
  1 += render "projects/project_head"
1 %h2.icon 2 %h2.icon
2 %span> 3 %span>
3 Snippets 4 Snippets
config/routes.rb
@@ -42,6 +42,10 @@ Gitlab::Application.routes.draw do @@ -42,6 +42,10 @@ Gitlab::Application.routes.draw do
42 get "team" 42 get "team"
43 get "wall" 43 get "wall"
44 get "graph" 44 get "graph"
  45 + get "activities"
  46 + get "branches"
  47 + get "tags"
  48 + get "files"
45 end 49 end
46 50
47 resources :refs, :only => [], :path => "/" do 51 resources :refs, :only => [], :path => "/" do