From fcb0b76c32b3512ead419a4451e9cc632270fc89 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Thu, 12 Jun 2014 12:01:54 +0300 Subject: [PATCH] Load last commit for files per 10 items. --- app/controllers/projects/refs_controller.rb | 20 +++++++++++++++++--- app/views/projects/refs/logs_tree.js.haml | 10 ++++++++++ 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/app/controllers/projects/refs_controller.rb b/app/controllers/projects/refs_controller.rb index 7b8026c..8834a99 100644 --- a/app/controllers/projects/refs_controller.rb +++ b/app/controllers/projects/refs_controller.rb @@ -31,9 +31,23 @@ class Projects::RefsController < Projects::ApplicationController end def logs_tree - contents = tree.entries - @logs = contents.map do |content| - file = params[:path] ? File.join(params[:path], content.name) : content.name + @offset = if params[:offset].present? + params[:offset].to_i + else + 0 + end + + @limit = 10 + + @path = params[:path] + + contents = [] + contents += tree.trees + contents += tree.blobs + contents += tree.submodules + + @logs = contents[@offset, @limit].to_a.map do |content| + file = @path ? File.join(@path, content.name) : content.name last_commit = @repo.last_commit_for_path(@commit.id, file) { file_name: content.name, diff --git a/app/views/projects/refs/logs_tree.js.haml b/app/views/projects/refs/logs_tree.js.haml index e7343e0..948a21a 100644 --- a/app/views/projects/refs/logs_tree.js.haml +++ b/app/views/projects/refs/logs_tree.js.haml @@ -7,3 +7,13 @@ var row = $("table.table_#{@hex_path} tr.file_#{hexdigest(file_name)}"); row.find("td.tree_time_ago").html('#{escape_javascript time_ago_with_tooltip(commit.committed_date)}'); row.find("td.tree_commit").html('#{escape_javascript render("projects/tree/tree_commit_column", commit: commit)}'); + +- if @logs.present? + :plain + var current_url = location.href.replace(/\/?$/, '/'); + var log_url = '#{project_tree_url(@project, tree_join(@ref, @path || '/'))}'.replace(/\/?$/, '/'); + if(current_url == log_url) { + // Load 10 more commit log for each file in tree + // if we still on the same page + ajaxGet('#{logs_file_project_ref_path(@project, @ref, @path || '/', offset: (@offset + @limit))}'); + } -- libgit2 0.21.2