summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-06-12 12:01:54 +0300
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-06-12 12:01:54 +0300
commitfcb0b76c32b3512ead419a4451e9cc632270fc89 (patch)
treebc96754197fbf17a940e0e85a5f53703f6b67ef6
parent9fd6c3d591fb56e50a9cdbbaac557383e3ef86a7 (diff)
downloadgitlab-ce-fcb0b76c32b3512ead419a4451e9cc632270fc89.tar.gz
Load last commit for files per 10 items.
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
-rw-r--r--app/controllers/projects/refs_controller.rb20
-rw-r--r--app/views/projects/refs/logs_tree.js.haml10
2 files changed, 27 insertions, 3 deletions
diff --git a/app/controllers/projects/refs_controller.rb b/app/controllers/projects/refs_controller.rb
index 7b8026cff9f..8834a995081 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 e7343e0997f..948a21aa816 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))}');
+ }