commit paging fixes

This commit is contained in:
Dmitriy Zaporozhets 2011-11-05 14:26:06 +02:00
parent 586c53ea05
commit 5eecbfdb10
7 changed files with 68 additions and 14 deletions

View file

@ -7,3 +7,51 @@ $(document).ready(function(){
}
});
});
var CommitsList = {
ref:null,
limit:0,
offset:0,
init:
function(ref, limit) {
this.ref=ref;
this.limit=limit;
this.offset=limit;
this.initLoadMore();
$('.loading').show();
},
getOld:
function() {
$('.loading').show();
$.ajax({
type: "GET",
url: location.href,
data: "limit=" + this.limit + "&offset=" + this.offset + "&ref=" + this.ref,
complete: function(){ $('.loading').hide()},
dataType: "script"});
},
append:
function(count, html) {
$("#commits_list").append(html);
if(count > 0) {
this.offset += count;
this.initLoadMore();
}
},
initLoadMore:
function() {
$(window).bind('scroll', function(){
if($(window).scrollTop() == $(document).height() - $(window).height()){
$(window).unbind('scroll');
CommitsList.getOld();
}
});
}
}

View file

@ -13,11 +13,12 @@ class CommitsController < ApplicationController
load_refs # load @branch, @tag & @ref
@repo = project.repo
limit, offset = (params[:limit] || 20), (params[:offset] || 0)
if params[:path]
@commits = @repo.log(@ref, params[:path], :max_count => params[:limit] || 100, :skip => params[:offset] || 0)
@commits = @repo.log(@ref, params[:path], :max_count => limit, :skip => offset)
else
@commits = @repo.commits(@ref, params[:limit] || 100, params[:offset] || 0)
@commits = @repo.commits(@ref, limit, offset)
end
respond_to do |format|

View file

@ -22,4 +22,3 @@
%strong= commit.author_name
= time_ago_in_words(commit.committed_date)
ago
= more_commits_link if @commits.size > 99

View file

@ -15,4 +15,14 @@
.right= render :partial => "projects/refs", :locals => { :destination => project_commits_path(@project) }
%div{:id => dom_id(@project)}
= render "commits"
#commits_list= render "commits"
.clear
.loading{ :style => "display:none;"}
%center= image_tag "ajax-loader.gif"
:javascript
$(function(){
CommitsList.init("#{@ref}", 20);
});

View file

@ -1,2 +0,0 @@
$("#more-commits-link").remove();
$('#<%= dom_id(@project)%>').append('<%= escape_javascript(render("commits")) %>');

View file

@ -0,0 +1,3 @@
:plain
CommitsList.append(#{@commits.count}, "#{escape_javascript(render(:partial => 'commits/commits'))}");

View file

@ -2,11 +2,7 @@
%html
%head
%title
GitLab #{" - #{@project.name}" if @project && !@project.new_record?}
-#= stylesheet_link_tag 'blueprint/screen', :media => "screen, projection"
-#= stylesheet_link_tag 'blueprint/print', :media => "print"
-#= stylesheet_link_tag 'blueprint/plugins/buttons/screen', :media => "screen, projection"
-#= stylesheet_link_tag 'blueprint/plugins/link-icons/screen', :media => "screen, projection"
GitLab
= stylesheet_link_tag "application"
= javascript_include_tag "application"
= csrf_meta_tags
@ -17,6 +13,5 @@
#container
= render :partial => "layouts/flash"
= render :partial => "layouts/head_panel"
%div{ :id => "main", :role => "main", :class => "container_4" }
= render :partial => "layouts/page_title"
= yield
= render :partial => "layouts/page_title"
= yield