summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrandx <dmitriy.zaporozhets@gmail.com>2012-04-20 19:11:49 +0300
committerrandx <dmitriy.zaporozhets@gmail.com>2012-04-20 19:11:49 +0300
commit1d601616a33aaa95e2ac7b21ff041b4a840df33c (patch)
tree52f1cfdebcfa61a8890aeaeae3ab6c413e01bd7f
parent60bf502bf15b95c870a8466011a6f91eb18759a9 (diff)
downloadgitlab-ce-1d601616a33aaa95e2ac7b21ff041b4a840df33c.tar.gz
Pagination and better perfomance for projects page.
-rw-r--r--app/assets/stylesheets/common.scss5
-rw-r--r--app/assets/stylesheets/main.scss5
-rw-r--r--app/assets/stylesheets/sections/projects.scss15
-rw-r--r--app/controllers/commits_controller.rb4
-rw-r--r--app/controllers/projects_controller.rb6
-rw-r--r--app/views/projects/index.html.haml26
6 files changed, 42 insertions, 19 deletions
diff --git a/app/assets/stylesheets/common.scss b/app/assets/stylesheets/common.scss
index 90d793ec6be..a0b3abbfbfa 100644
--- a/app/assets/stylesheets/common.scss
+++ b/app/assets/stylesheets/common.scss
@@ -668,12 +668,15 @@ p.time {
}
}
}
+ .bottom {
+ padding:10px;
+ }
}
.btn {
&.very_small {
font-size:11px;
- padding:4px;
+ padding:2px 6px;
margin:2px;
}
}
diff --git a/app/assets/stylesheets/main.scss b/app/assets/stylesheets/main.scss
index c7ebbeb1bac..dfc93153748 100644
--- a/app/assets/stylesheets/main.scss
+++ b/app/assets/stylesheets/main.scss
@@ -104,6 +104,11 @@ $hover: #FDF5D9;
@import "sections/issues.scss";
/**
+ * Styles related to projects
+ */
+@import "sections/projects.scss";
+
+/**
* This scss file redefine chozen selectbox styles for
* project Branch/Tag select element
*/
diff --git a/app/assets/stylesheets/sections/projects.scss b/app/assets/stylesheets/sections/projects.scss
new file mode 100644
index 00000000000..eb39c8e2788
--- /dev/null
+++ b/app/assets/stylesheets/sections/projects.scss
@@ -0,0 +1,15 @@
+.projects {
+ @extend .row;
+ .activities {
+ }
+
+ .side {
+ @extend .span4;
+ @extend .right;
+
+ .projects_box {
+ @extend .leftbar;
+ @extend .ui-box;
+ }
+ }
+}
diff --git a/app/controllers/commits_controller.rb b/app/controllers/commits_controller.rb
index 061592a3b01..9a97e5c6282 100644
--- a/app/controllers/commits_controller.rb
+++ b/app/controllers/commits_controller.rb
@@ -43,8 +43,8 @@ class CommitsController < ApplicationController
end
def compare
- first = project.commit(params[:to])
- last = project.commit(params[:from])
+ first = project.commit(params[:to].try(:strip))
+ last = project.commit(params[:from].try(:strip))
@diffs = []
@commits = []
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index c832250a080..38fd6f3e57e 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -11,9 +11,9 @@ class ProjectsController < ApplicationController
before_filter :require_non_empty_project, :only => [:blob, :tree, :graph]
def index
- @projects = current_user.projects
- @projects = @projects.select(&:last_activity_date).sort_by(&:last_activity_date).reverse
- @events = Event.where(:project_id => @projects.map(&:id)).recent.limit(20)
+ @projects = current_user.projects.includes(:events).order("events.created_at DESC")
+ @projects = @projects.page(params[:page]).per(40)
+ @events = Event.where(:project_id => current_user.projects.map(&:id)).recent.limit(20)
end
def new
diff --git a/app/views/projects/index.html.haml b/app/views/projects/index.html.haml
index d918259d883..46e617095f6 100644
--- a/app/views/projects/index.html.haml
+++ b/app/views/projects/index.html.haml
@@ -1,6 +1,6 @@
- if @projects.any?
- .row
- .span8
+ .projects
+ .activities.span8
- if current_user.require_ssh_key?
.alert.alert-error.padded
%span
@@ -14,24 +14,24 @@
- else
.padded
%strong.cgray Projects activity will be displayed here
- .span4.right
- %div.leftbar.ui-box
+ .side
+ .projects_box
%h5
Projects
%small
- (#{@projects.count})
+ (#{@projects.total_count})
- if current_user.can_create_project?
%span.right
= link_to new_project_path, :class => "btn very_small info" do
New Project
- .content_list
- - @projects.each do |project|
- = link_to project_path(project), :class => dom_class(project) do
- %h4
- %span.ico.project
- = truncate(project.name, :length => 25)
- %span.right
- &rarr;
+ - @projects.each do |project|
+ = link_to project_path(project), :class => dom_class(project) do
+ %h4
+ %span.ico.project
+ = truncate(project.name, :length => 25)
+ %span.right
+ &rarr;
+ .bottom= paginate @projects, :theme => "gitlab"
- else
%h3 Nothing here