Commit 376bec26de89c3d287560e5fe755deeaffc68d67
1 parent
34e15801
Exists in
master
and in
4 other branches
Added dashboard page. Projects page not root from now
Showing
16 changed files
with
141 additions
and
39 deletions
Show diff stats
app/assets/images/Gear-UI.PNG
940 Bytes
556 Bytes
app/assets/stylesheets/common.scss
| @@ -40,6 +40,7 @@ a { | @@ -40,6 +40,7 @@ a { | ||
| 40 | .cred { color:#D12F19; } | 40 | .cred { color:#D12F19; } |
| 41 | .cgreen { color:#44aa22; } | 41 | .cgreen { color:#44aa22; } |
| 42 | .cblack { color:#111; } | 42 | .cblack { color:#111; } |
| 43 | +.cwhite { color:#fff !important } | ||
| 43 | 44 | ||
| 44 | /** COMMON STYLES **/ | 45 | /** COMMON STYLES **/ |
| 45 | .left { | 46 | .left { |
| @@ -75,6 +76,10 @@ a { | @@ -75,6 +76,10 @@ a { | ||
| 75 | .no-borders { | 76 | .no-borders { |
| 76 | border:none; | 77 | border:none; |
| 77 | } | 78 | } |
| 79 | +table.no-borders { | ||
| 80 | + border:none; | ||
| 81 | + tr, td { border:none } | ||
| 82 | +} | ||
| 78 | .no-padding { | 83 | .no-padding { |
| 79 | padding:0 !important; | 84 | padding:0 !important; |
| 80 | } | 85 | } |
| @@ -433,7 +438,7 @@ input.git_clone_url { | @@ -433,7 +438,7 @@ input.git_clone_url { | ||
| 433 | } | 438 | } |
| 434 | 439 | ||
| 435 | .project_list_url { | 440 | .project_list_url { |
| 436 | - width:270px; | 441 | + width:250px; |
| 437 | background:#fff !important; | 442 | background:#fff !important; |
| 438 | } | 443 | } |
| 439 | 444 | ||
| @@ -441,7 +446,7 @@ input.git_clone_url { | @@ -441,7 +446,7 @@ input.git_clone_url { | ||
| 441 | @include shade; | 446 | @include shade; |
| 442 | @include round-borders-all(4px); | 447 | @include round-borders-all(4px); |
| 443 | margin-bottom:20px; | 448 | margin-bottom:20px; |
| 444 | - width:338px; | 449 | + width:298px; |
| 445 | float:left; | 450 | float:left; |
| 446 | margin-left:20px; | 451 | margin-left:20px; |
| 447 | border: 1px solid #DDD; | 452 | border: 1px solid #DDD; |
| @@ -600,3 +605,24 @@ p.time { | @@ -600,3 +605,24 @@ p.time { | ||
| 600 | font-size: 90%; | 605 | font-size: 90%; |
| 601 | margin: 30px 3px 3px 2px; | 606 | margin: 30px 3px 3px 2px; |
| 602 | } | 607 | } |
| 608 | + | ||
| 609 | + | ||
| 610 | +.dashboard_category { | ||
| 611 | + margin-bottom:30px; | ||
| 612 | + | ||
| 613 | + .dashboard_block { | ||
| 614 | + width:700px; | ||
| 615 | + margin:auto; | ||
| 616 | + | ||
| 617 | + .wll { | ||
| 618 | + border:none; | ||
| 619 | + &:hover { | ||
| 620 | + background:none; | ||
| 621 | + } | ||
| 622 | + | ||
| 623 | + h4 { | ||
| 624 | + color:#666; | ||
| 625 | + } | ||
| 626 | + } | ||
| 627 | + } | ||
| 628 | +} |
app/assets/stylesheets/ui_basic.scss
| @@ -57,11 +57,30 @@ | @@ -57,11 +57,30 @@ | ||
| 57 | text-shadow: 0 1px 1px #FFF; | 57 | text-shadow: 0 1px 1px #FFF; |
| 58 | } | 58 | } |
| 59 | 59 | ||
| 60 | - img { | ||
| 61 | - float: left; | ||
| 62 | - position: relative; | ||
| 63 | - top: -9px; | ||
| 64 | - width:46px; | 60 | + &.home { |
| 61 | + img { | ||
| 62 | + float: left; | ||
| 63 | + position: relative; | ||
| 64 | + top: -9px; | ||
| 65 | + width:46px; | ||
| 66 | + | ||
| 67 | + } | ||
| 68 | + } | ||
| 69 | + &.admin_link { | ||
| 70 | + width:16px; | ||
| 71 | + height:16px; | ||
| 72 | + padding: 5px; | ||
| 73 | + border: 1px solid #ccc; | ||
| 74 | + border-radius: 4px; | ||
| 75 | + margin: 0px; | ||
| 76 | + background: #eee; | ||
| 77 | + margin-left:20px; | ||
| 78 | + &:hover { | ||
| 79 | + background:#f7f7f7; | ||
| 80 | + } | ||
| 81 | + img { | ||
| 82 | + width:16px; | ||
| 83 | + } | ||
| 65 | } | 84 | } |
| 66 | } | 85 | } |
| 67 | } | 86 | } |
app/controllers/dashboard_controller.rb
| @@ -3,7 +3,14 @@ class DashboardController < ApplicationController | @@ -3,7 +3,14 @@ class DashboardController < ApplicationController | ||
| 3 | 3 | ||
| 4 | def index | 4 | def index |
| 5 | @projects = current_user.projects.all | 5 | @projects = current_user.projects.all |
| 6 | + | ||
| 6 | @active_projects = @projects.select(&:repo_exists?).select(&:last_activity_date_cached).sort_by(&:last_activity_date_cached).reverse | 7 | @active_projects = @projects.select(&:repo_exists?).select(&:last_activity_date_cached).sort_by(&:last_activity_date_cached).reverse |
| 8 | + | ||
| 9 | + @merge_requests = MergeRequest.where("author_id = :id or assignee_id = :id", :id => current_user.id).opened.order("created_at DESC").limit(10) | ||
| 10 | + | ||
| 11 | + @user = current_user | ||
| 12 | + @issues = current_user.assigned_issues.opened.order("created_at DESC").limit(10) | ||
| 13 | + @issues = @issues.includes(:author, :project) | ||
| 7 | end | 14 | end |
| 8 | 15 | ||
| 9 | # Get authored or assigned open merge requests | 16 | # Get authored or assigned open merge requests |
app/views/dashboard/_projects_feed.html.haml
| 1 | -- @active_projects.first(3).each do |project| | ||
| 2 | - = link_to project do | ||
| 3 | - %h4= project.name | ||
| 4 | - - project.updates(3).each do |update| | ||
| 5 | - %a.project-update{:href => dashboard_feed_path(project, update)} | ||
| 6 | - = image_tag gravatar_icon(update.author_email), :class => "avatar", :width => 32 | ||
| 7 | - %div | ||
| 8 | - = dashboard_feed_title(update) | ||
| 9 | - %span.update-author | ||
| 10 | - %strong= update.author_name | ||
| 11 | - authored | ||
| 12 | - = time_ago_in_words(update.created_at) | ||
| 13 | - ago | ||
| 14 | - .right | ||
| 15 | - - klass = update.class.to_s.split("::").last.downcase | ||
| 16 | - %span.tag{ :class => klass }= klass | ||
| 17 | - | 1 | +- @active_projects.first(10).each do |project| |
| 2 | + .wll | ||
| 3 | + = link_to project do | ||
| 4 | + %h4 | ||
| 5 | + = project.name | ||
| 6 | + %small | ||
| 7 | + last activity at | ||
| 8 | + = project.last_activity_date_cached.stamp("Aug 25, 2011") |
app/views/dashboard/index.html.haml
| 1 | -%h3 Activities | ||
| 2 | -%hr | ||
| 3 | -.news-feed= render "dashboard/projects_feed" | 1 | +- if current_user.require_ssh_key? |
| 2 | + .alert-message.warning | ||
| 3 | + %p | ||
| 4 | + You wont be able to pull/push project code unless you | ||
| 5 | + = link_to new_key_path, :class => "vlink" do | ||
| 6 | + add new key | ||
| 7 | + to your profile | ||
| 8 | + | ||
| 9 | +%div.dashboard_category | ||
| 10 | + %h3 | ||
| 11 | + Projects | ||
| 12 | + %small | ||
| 13 | + ( most recent ) | ||
| 14 | + | ||
| 15 | + %strong.right | ||
| 16 | + = link_to projects_path do | ||
| 17 | + Projects list → | ||
| 18 | + %hr | ||
| 19 | + .row | ||
| 20 | + .dashboard_block | ||
| 21 | + .row | ||
| 22 | + .span9= render "dashboard/projects_feed" | ||
| 23 | + .span3.right | ||
| 24 | + - if current_user.can_create_project? | ||
| 25 | + .alert-message.block-message.warning | ||
| 26 | + You can create up to | ||
| 27 | + = current_user.projects_limit | ||
| 28 | + projects. Click on link below to add a new one | ||
| 29 | + .link_holder | ||
| 30 | + = link_to new_project_path, :class => "" do | ||
| 31 | + New Project » | ||
| 32 | + | ||
| 33 | + | ||
| 34 | +- unless @merge_requests.blank? | ||
| 35 | + %div.dashboard_category | ||
| 36 | + %h3 | ||
| 37 | + Merge Requests | ||
| 38 | + %small ( authored or assigned to you ) | ||
| 39 | + %strong.right | ||
| 40 | + = link_to dashboard_merge_requests_path do | ||
| 41 | + Vist merge requests page → | ||
| 42 | + %hr | ||
| 43 | + .row | ||
| 44 | + .dashboard_block= render "dashboard/merge_requests_feed" | ||
| 45 | + | ||
| 46 | +- unless @issues.blank? | ||
| 47 | + %div.dashboard_category | ||
| 48 | + %h3 | ||
| 49 | + Issues | ||
| 50 | + %small ( assigned to you ) | ||
| 51 | + %strong.right | ||
| 52 | + = link_to dashboard_merge_requests_path do | ||
| 53 | + Vist issues page → | ||
| 54 | + %hr | ||
| 55 | + .row | ||
| 56 | + .dashboard_block= render "dashboard/issues_feed" |
app/views/dashboard/issues.html.haml
app/views/dashboard/merge_requests.html.haml
app/views/layouts/_app_menu.html.haml
| 1 | %nav.main_menu | 1 | %nav.main_menu |
| 2 | = render "layouts/const_menu_links" | 2 | = render "layouts/const_menu_links" |
| 3 | - -#= link_to "Projects", projects_path, :class => "#{"current" if current_page?(projects_path) || current_page?(root_path)}" | 3 | + = link_to "Projects", projects_path, :class => "#{"current" if current_page?(projects_path)}" |
| 4 | = link_to "Issues", dashboard_issues_path, :class => "#{"current" if current_page?(dashboard_issues_path)}", :id => "issues_slide" | 4 | = link_to "Issues", dashboard_issues_path, :class => "#{"current" if current_page?(dashboard_issues_path)}", :id => "issues_slide" |
| 5 | = link_to "Requests", dashboard_merge_requests_path, :class => "#{"current" if current_page?(dashboard_merge_requests_path)}", :id => "merge_requests_slide" | 5 | = link_to "Requests", dashboard_merge_requests_path, :class => "#{"current" if current_page?(dashboard_merge_requests_path)}", :id => "merge_requests_slide" |
| 6 | = link_to "Help", help_path, :class => "#{"current" if controller.controller_name == "help"}" | 6 | = link_to "Help", help_path, :class => "#{"current" if controller.controller_name == "help"}" |
app/views/layouts/_const_menu_links.html.haml
app/views/layouts/_head_panel.html.haml
| @@ -5,7 +5,11 @@ | @@ -5,7 +5,11 @@ | ||
| 5 | %div.app_logo | 5 | %div.app_logo |
| 6 | = link_to root_path, :class => "home", :title => "Home" do | 6 | = link_to root_path, :class => "home", :title => "Home" do |
| 7 | = image_tag "logo_tr.png", :width => 50 | 7 | = image_tag "logo_tr.png", :width => 50 |
| 8 | - %h1 GITLAB | 8 | + %h1 |
| 9 | + GITLAB | ||
| 10 | + | ||
| 11 | + = link_to admin_projects_path, :class => "admin_link", :title => "Admin area" do | ||
| 12 | + = image_tag "admin.PNG", :width => 16 | ||
| 9 | 13 | ||
| 10 | %h1.project_name= title | 14 | %h1.project_name= title |
| 11 | .search= text_field_tag "search", nil, :placeholder => "Search", :class => "search-input" | 15 | .search= text_field_tag "search", nil, :placeholder => "Search", :class => "search-input" |
app/views/layouts/application.html.haml
app/views/projects/_tile.html.haml
app/views/projects/index.html.haml
| 1 | %h3 | 1 | %h3 |
| 2 | Projects | 2 | Projects |
| 3 | %small= "( #{current_user.projects.count} )" | 3 | %small= "( #{current_user.projects.count} )" |
| 4 | + - if current_user.can_create_project? | ||
| 5 | + %span.right | ||
| 6 | + = link_to new_project_path, :class => "btn small" do | ||
| 7 | + New Project | ||
| 4 | %hr | 8 | %hr |
| 5 | - unless @projects.empty? | 9 | - unless @projects.empty? |
| 6 | %div.content_list= render "tile" | 10 | %div.content_list= render "tile" |
config/routes.rb
| @@ -123,5 +123,5 @@ Gitlab::Application.routes.draw do | @@ -123,5 +123,5 @@ Gitlab::Application.routes.draw do | ||
| 123 | end | 123 | end |
| 124 | resources :notes, :only => [:index, :create, :destroy] | 124 | resources :notes, :only => [:index, :create, :destroy] |
| 125 | end | 125 | end |
| 126 | - root :to => "projects#index" | 126 | + root :to => "dashboard#index" |
| 127 | end | 127 | end |