Merge branch 'events' of dev.gitlabhq.com:gitlabhq into events

This commit is contained in:
Dmitriy Zaporozhets 2012-02-29 20:05:39 +02:00
commit 796784c7c8
23 changed files with 471 additions and 47 deletions

View file

@ -58,5 +58,5 @@ end
group :test do group :test do
gem "turn", :require => false gem "turn", :require => false
gem "simplecov", :require => false gem "simplecov", :require => false
gem "shoulda", "~> 3.0.0.beta2" gem "shoulda", "3.0.0"
end end

View file

@ -232,9 +232,9 @@ GEM
ffi (~> 1.0.9) ffi (~> 1.0.9)
multi_json (~> 1.0.4) multi_json (~> 1.0.4)
rubyzip rubyzip
shoulda (3.0.0.beta2) shoulda (3.0.0)
shoulda-context (~> 1.0.0.beta1) shoulda-context (~> 1.0.0)
shoulda-matchers (~> 1.0.0.beta1) shoulda-matchers (~> 1.0.0)
shoulda-context (1.0.0) shoulda-context (1.0.0)
shoulda-matchers (1.0.0) shoulda-matchers (1.0.0)
simplecov (0.5.4) simplecov (0.5.4)
@ -322,7 +322,7 @@ DEPENDENCIES
rspec-rails rspec-rails
sass-rails (= 3.2.3) sass-rails (= 3.2.3)
seed-fu seed-fu
shoulda (~> 3.0.0.beta2) shoulda (= 3.0.0)
simplecov simplecov
six six
sqlite3 sqlite3

Binary file not shown.

Before

Width:  |  Height:  |  Size: 940 B

BIN
app/assets/images/admin.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 556 B

View file

@ -40,6 +40,7 @@ a {
.cred { color:#D12F19; } .cred { color:#D12F19; }
.cgreen { color:#44aa22; } .cgreen { color:#44aa22; }
.cblack { color:#111; } .cblack { color:#111; }
.cwhite { color:#fff !important }
/** COMMON STYLES **/ /** COMMON STYLES **/
.left { .left {
@ -75,6 +76,10 @@ a {
.no-borders { .no-borders {
border:none; border:none;
} }
table.no-borders {
border:none;
tr, td { border:none }
}
.no-padding { .no-padding {
padding:0 !important; padding:0 !important;
} }
@ -433,7 +438,7 @@ input.git_clone_url {
} }
.project_list_url { .project_list_url {
width:270px; width:250px;
background:#fff !important; background:#fff !important;
} }
@ -441,7 +446,7 @@ input.git_clone_url {
@include shade; @include shade;
@include round-borders-all(4px); @include round-borders-all(4px);
margin-bottom:20px; margin-bottom:20px;
width:338px; width:298px;
float:left; float:left;
margin-left:20px; margin-left:20px;
border: 1px solid #DDD; border: 1px solid #DDD;
@ -600,3 +605,24 @@ p.time {
font-size: 90%; font-size: 90%;
margin: 30px 3px 3px 2px; margin: 30px 3px 3px 2px;
} }
.dashboard_category {
margin-bottom:30px;
.dashboard_block {
width:700px;
margin:auto;
.wll {
border:none;
&:hover {
background:none;
}
h4 {
color:#666;
}
}
}
}

View file

@ -70,6 +70,11 @@ $hover: #FDF5D9;
*/ */
@import "ui_basic.scss"; @import "ui_basic.scss";
/**
* UI mars theme
*/
@import "ui_mars.scss";
/** /**
* Most of application styles placed here. * Most of application styles placed here.
* This file represent common UI that should not be changed between themes * This file represent common UI that should not be changed between themes

View file

@ -57,11 +57,30 @@
text-shadow: 0 1px 1px #FFF; text-shadow: 0 1px 1px #FFF;
} }
img { &.home {
float: left; img {
position: relative; float: left;
top: -9px; position: relative;
width:46px; top: -9px;
width:46px;
}
}
&.admin_link {
width:16px;
height:16px;
padding: 5px;
border: 1px solid #ccc;
border-radius: 4px;
margin: 0px;
background: #eee;
margin-left:20px;
&:hover {
background:#f7f7f7;
}
img {
width:16px;
}
} }
} }
} }

View file

@ -0,0 +1,316 @@
/**
* This file represent some UI that can be changed
* during web app restyle or theme select.
*
* Next items should be placed there
* - link colors
* - header styles
* - main menu styles
*
*/
.ui_mars {
/*
* Common styles
*
*/
a {
color: $link_color;
&:hover {
text-decoration:none;
color: $style_color;
}
}
/*
* Application Header
*
*/
header {
width:100%;
padding:0;
margin:0;
top:1px;
left:0;
background: #474D57 url('bg-header.png') repeat-x bottom;
z-index:10;
height:60px;
.search-input {
background:#474D57;
border-color:#888;
}
.app_logo {
width:230px;
float:left;
position:relative;
top:-4px;
a {
float:left;
h1 {
background: url('images.png') no-repeat -3px -7px;
width: 65px;
height: 26px;
margin: 5px 0;
padding: 0;
display: block;
float: left;
text-indent: -1000em;
}
&.home {
img {
display:none
}
}
&.admin_link {
width:16px;
height:16px;
padding: 5px;
border: 1px solid #888;
border-radius: 4px;
margin: 0px;
background:#474D57 ;
margin-left:20px;
margin-top:4px;
&:hover {
background:#f7f7f7;
}
img {
width:16px;
}
}
}
}
.wrapper {
margin:auto;
min-width:$min_app_width;
max-width:$max_app_width;
position:relative;
padding:15px 0;
.top_panel_content {
margin:0 $app_padding;
}
}
.project_name {
float:left;
width:400px;
margin:0;
margin-right:30px;
font-size:20px;
line-height:34px;
font-weight:bold;
color:#fff;
text-shadow: 0 1px 1px #111;
}
.git_url_wrapper {
padding:0px;
margin:0px;
float:left;
.git-url {
padding:0px;
margin:0px;
font-size: 12px;
margin-right:10px;
border-radius: 4px;
-moz-border-radius: 4px;
color: #666;
border: 1px solid #AAA;
padding: 0 10px 0 30px;
background: transparent url('images.png') no-repeat 8px -42px;
width: 260px;
height:26px;
}
}
/* Account box */
.account-box {
position: absolute;
right: 0;
top: 13px;
z-index: 10000;
width: 128px;
font-size: 11px;
float: right;
display: block;
cursor: pointer;
img {
border-radius: 4px;
right: 20px;
position: absolute;
width: 33px;
height: 33px;
display: block;
top: 0;
&:after {
content: " ";
display: block;
position: absolute;
top: 0;
right: 0;
left: 0;
bottom: 0;
float: right;
border-radius: 5px;
border: 1px solid rgba(255, 255, 255, 0.1);
border-bottom: 0;
background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(255, 255, 255, 0.15)), to(rgba(0, 0, 0, 0.25))), -webkit-gradient(linear, left top, right bottom, color-stop(0, rgba(255, 255, 255, 0)), color-stop(0.5, rgba(255, 255, 255, 0.1)), color-stop(0.501, rgba(255, 255, 255, 0)), color-stop(1, rgba(255, 255, 255, 0)));
background: -moz-linear-gradient(top, rgba(255, 255, 255, 0.15), rgba(0, 0, 0, 0.25)), -moz-linear-gradient(left top, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0));
background: linear-gradient(top, rgba(255, 255, 255, 0.15), rgba(0, 0, 0, 0.25)), linear-gradient(left top, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0));
-webkit-background-origin: border-box;
-moz-background-origin: border;
background-origin: border-box; } } }
.account-box {
&.hover {
height: 138px; }
&:hover > .account-links {
display: block; } }
.account-links {
background: #79C3E0;
display: none;
border-radius: 5px;
width: 100px;
margin-top: 0;
float: right;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
position: relative;
&:before {
content: ".";
width: 0;
height: 0;
position: absolute;
border: 5px solid transparent;
border-color: rgba(255, 255, 255, 0);
border-bottom-color: #333;
text-indent: -9999px;
top: -10px;
line-height: 0;
right: 10px;
z-index: 10; }
background: #333;
display: none;
z-index: 100000;
border-radius: 5px;
width: 100px;
position: absolute;
right: 20px;
top: 46px;
margin-top: 0;
float: right;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
a {
color: #EEE;
padding: 6px 10px;
display: block;
text-shadow: none;
border-bottom: 1px solid #555;
&:hover {
background: #444; } } }
.account-box.hover .arrow-up {
top: 41px;
right: 6px;
position: absolute; }
.account-links a {
&:first-child {
-webkit-border-top-left-radius: 5px;
-webkit-border-top-right-radius: 5px;
-moz-border-radius-topleft: 5px;
-moz-border-radius-topright: 5px;
border-top-left-radius: 5px;
border-top-right-radius: 5px; }
&:last-child {
-webkit-border-bottom-right-radius: 5px;
-webkit-border-bottom-left-radius: 5px;
-moz-border-radius-bottomright: 5px;
-moz-border-radius-bottomleft: 5px;
border-bottom-right-radius: 5px;
border-bottom-left-radius: 5px;
border-bottom: 0; } }
}
/*
* End of Application Header
*
*/
/*
* Main Menu of Application
*
*/
nav.main_menu {
overflow:hidden;
border-radius: 4px;
margin: auto;
margin:30px $app_padding;
background:#eee;
border:1px solid #ccc;
height:38px;
background-image: -webkit-gradient(linear, 0 0, 0 30, color-stop(0.066, #eee), to(#dfdfdf));
background-image: -webkit-linear-gradient(#eee 6.6%, #dfdfdf);
background-image: -moz-linear-gradient(#eee 6.6%, #dfdfdf);
background-image: -o-linear-gradient(#eee 6.6%, #dfdfdf);
@include shade;
.count {
color:#aaa;
margin-left:3px;
}
.label {
background:$hover;
text-shadow:none;
color:$style_color;
}
a {
font-weight:bold;
&:first-child{
-webkit-border-top-left-radius: 4px;
-webkit-border-bottom-left-radius: 4px;
-moz-border-radius-topleft: 4px;
-moz-border-radius-bottomleft: 4px;
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
}
padding: 10px 25px;
display: inline-block;
color: $style_color;
border-right: 1px solid #d5d5d5;
position: relative;
box-shadow: 1px 0 0 rgba(255, 255, 255, 0.1);
margin: 0;
float:left;
text-shadow:0 1px 1px white;
&.home {
background: url(home_icon.PNG) no-repeat center center;
text-indent:-9999px;
min-width:40px;
img {
position:relative;
top:4px;
}
}
&.current {
background-color:#DDD;
}
}
}
/*
* End of Main Menu
*
*/
}

View file

@ -3,7 +3,14 @@ class DashboardController < ApplicationController
def index def index
@projects = current_user.projects.all @projects = current_user.projects.all
@active_projects = @projects.select(&:repo_exists?).select(&:last_activity_date_cached).sort_by(&:last_activity_date_cached).reverse @active_projects = @projects.select(&:repo_exists?).select(&:last_activity_date_cached).sort_by(&:last_activity_date_cached).reverse
@merge_requests = MergeRequest.where("author_id = :id or assignee_id = :id", :id => current_user.id).opened.order("created_at DESC").limit(10)
@user = current_user
@issues = current_user.assigned_issues.opened.order("created_at DESC").limit(10)
@issues = @issues.includes(:author, :project)
end end
# Get authored or assigned open merge requests # Get authored or assigned open merge requests

View file

@ -1,17 +1,8 @@
- @active_projects.first(3).each do |project| - @active_projects.first(5).each do |project|
= link_to project do .wll
%h4= project.name = link_to project do
- project.updates(3).each do |update| %h4
%a.project-update{:href => dashboard_feed_path(project, update)} = project.name
= image_tag gravatar_icon(update.author_email), :class => "avatar", :width => 32 %small
%div last activity at
= dashboard_feed_title(update) = project.last_activity_date_cached.stamp("Aug 25, 2011")
%span.update-author
%strong= update.author_name
authored
= time_ago_in_words(update.created_at)
ago
.right
- klass = update.class.to_s.split("::").last.downcase
%span.tag{ :class => klass }= klass

View file

@ -1,3 +1,56 @@
%h3 Activities - if current_user.require_ssh_key?
%hr .alert-message.warning
.news-feed= render "dashboard/projects_feed" %p
You wont be able to pull/push project code unless you
= link_to new_key_path, :class => "vlink" do
add new key
to your profile
%div.dashboard_category
%h3
Projects
%small
( most recent )
%strong.right
= link_to projects_path do
Projects list &rarr;
%hr
.row
.dashboard_block
.row
.span9= render "dashboard/projects_feed"
.span3.right
- if current_user.can_create_project?
.alert-message.block-message.warning
You can create up to
= current_user.projects_limit
projects. Click on link below to add a new one
.link_holder
= link_to new_project_path, :class => "" do
New Project »
- unless @merge_requests.blank?
%div.dashboard_category
%h3
Merge Requests
%small ( authored or assigned to you )
%strong.right
= link_to dashboard_merge_requests_path do
Vist merge requests page &rarr;
%hr
.row
.dashboard_block= render "dashboard/merge_requests_feed"
- unless @issues.blank?
%div.dashboard_category
%h3
Issues
%small ( assigned to you )
%strong.right
= link_to dashboard_merge_requests_path do
Vist issues page &rarr;
%hr
.row
.dashboard_block= render "dashboard/issues_feed"

View file

@ -2,5 +2,5 @@
Issues Issues
%small ( assigned to you ) %small ( assigned to you )
%hr %br
= render "dashboard/issues_feed" .ui-box= render "dashboard/issues_feed"

View file

@ -2,5 +2,5 @@
Merge Requests Merge Requests
%small ( authored or assigned to you ) %small ( authored or assigned to you )
%hr %br
= render "dashboard/merge_requests_feed" .ui-box= render "dashboard/merge_requests_feed"

View file

@ -2,4 +2,4 @@
%h3 Access Denied %h3 Access Denied
%hr %hr
%p Youre not allowed to access this page %p Youre not allowed to access this page
%p Ream more about project permissions #{link_to "here", help_permissions_path, :class => "vlink"} %p Read more about project permissions #{link_to "here", help_permissions_path, :class => "vlink"}

View file

@ -1,6 +1,6 @@
%nav.main_menu %nav.main_menu
= render "layouts/const_menu_links" = render "layouts/const_menu_links"
-#= link_to "Projects", projects_path, :class => "#{"current" if current_page?(projects_path) || current_page?(root_path)}" = link_to "Projects", projects_path, :class => "#{"current" if current_page?(projects_path)}"
= link_to "Issues", dashboard_issues_path, :class => "#{"current" if current_page?(dashboard_issues_path)}", :id => "issues_slide" = link_to "Issues", dashboard_issues_path, :class => "#{"current" if current_page?(dashboard_issues_path)}", :id => "issues_slide"
= link_to "Requests", dashboard_merge_requests_path, :class => "#{"current" if current_page?(dashboard_merge_requests_path)}", :id => "merge_requests_slide" = link_to "Requests", dashboard_merge_requests_path, :class => "#{"current" if current_page?(dashboard_merge_requests_path)}", :id => "merge_requests_slide"
= link_to "Help", help_path, :class => "#{"current" if controller.controller_name == "help"}" = link_to "Help", help_path, :class => "#{"current" if controller.controller_name == "help"}"

View file

@ -1 +1 @@
= link_to "Home", root_path, :class => "home #{"current" if current_page?(projects_path) || current_page?(root_path)}", :title => "Home" = link_to "Home", root_path, :class => "home #{"current" if current_page?(dashboard_path) || current_page?(root_path)}", :title => "Home"

View file

@ -5,7 +5,12 @@
%div.app_logo %div.app_logo
= link_to root_path, :class => "home", :title => "Home" do = link_to root_path, :class => "home", :title => "Home" do
= image_tag "logo_tr.png", :width => 50 = image_tag "logo_tr.png", :width => 50
%h1 GITLAB %h1
GITLAB
- if current_user.is_admin?
= link_to admin_projects_path, :class => "admin_link", :title => "Admin area" do
= image_tag "admin.PNG", :width => 16
%h1.project_name= title %h1.project_name= title
.search= text_field_tag "search", nil, :placeholder => "Search", :class => "search-input" .search= text_field_tag "search", nil, :placeholder => "Search", :class => "search-input"

View file

@ -7,6 +7,4 @@
.container .container
= render :partial => "layouts/app_menu" = render :partial => "layouts/app_menu"
.content .content
.row = yield
.span12= yield
.sidebar= render "layouts/projects_side"

View file

@ -1,4 +1,4 @@
- @projects.in_groups_of(2, false) do |projects| - @projects.in_groups_of(3, false) do |projects|
.row .row
- projects.each_with_index do |project, i| - projects.each_with_index do |project, i|
%div.project_tile %div.project_tile

View file

@ -1,7 +1,7 @@
- if current_user.require_ssh_key? - if current_user.require_ssh_key?
.alert-message.block-message.error .alert-message.block-message.error
%ul %ul
%li You have no ssh keys added yo tour profile. %li You have no ssh keys added to your profile.
%li You wont be able to pull/push repository. %li You wont be able to pull/push repository.
%li Visit profile &rarr; keys and add public key of every machine you want to use for work with gitlabhq. %li Visit profile &rarr; keys and add public key of every machine you want to use for work with gitlabhq.

View file

@ -1,6 +1,10 @@
%h3 %h3
Projects Projects
%small= "( #{current_user.projects.count} )" %small= "( #{current_user.projects.count} )"
- if current_user.can_create_project?
%span.right
= link_to new_project_path, :class => "btn small" do
New Project
%hr %hr
- unless @projects.empty? - unless @projects.empty?
%div.content_list= render "tile" %div.content_list= render "tile"

View file

@ -6,7 +6,7 @@
%ul %ul
%li keep stable branches secured %li keep stable branches secured
%li forced code review before merge to protected branches %li forced code review before merge to protected branches
%p Ream more about project permissions #{link_to "here", help_permissions_path, :class => "vlink"} %p Read more about project permissions #{link_to "here", help_permissions_path, :class => "vlink"}

View file

@ -123,5 +123,5 @@ Gitlab::Application.routes.draw do
end end
resources :notes, :only => [:index, :create, :destroy] resources :notes, :only => [:index, :create, :destroy]
end end
root :to => "projects#index" root :to => "dashboard#index"
end end