Tree ajax log. progress bar & refactoring
This commit is contained in:
parent
1a2bacfb4b
commit
f88a2617e6
8 changed files with 53 additions and 18 deletions
BIN
app/assets/images/ajax_loader_tree.gif
Normal file
BIN
app/assets/images/ajax_loader_tree.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.4 KiB |
|
@ -114,3 +114,8 @@ function showDiff(link) {
|
||||||
return _chosen.apply(this, [default_options]);
|
return _chosen.apply(this, [default_options]);
|
||||||
}})
|
}})
|
||||||
})(jQuery);
|
})(jQuery);
|
||||||
|
|
||||||
|
|
||||||
|
function ajaxGet(url) {
|
||||||
|
$.ajax({type: "GET", url: url, dataType: "script"});
|
||||||
|
}
|
||||||
|
|
|
@ -134,4 +134,8 @@ module ApplicationHelper
|
||||||
end
|
end
|
||||||
active ? "current" : nil
|
active ? "current" : nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def hexdigest(string)
|
||||||
|
Digest::SHA1.hexdigest string
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
27
app/helpers/tree_helper.rb
Normal file
27
app/helpers/tree_helper.rb
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
module TreeHelper
|
||||||
|
def tree_icon(content)
|
||||||
|
if content.is_a?(Grit::Blob)
|
||||||
|
if content.text?
|
||||||
|
image_tag "file_txt.png"
|
||||||
|
elsif content.image?
|
||||||
|
image_tag "file_img.png"
|
||||||
|
else
|
||||||
|
image_tag "file_bin.png"
|
||||||
|
end
|
||||||
|
else
|
||||||
|
image_tag "file_dir.png"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def tree_hex_class(content)
|
||||||
|
"file_#{hexdigest(content.name)}"
|
||||||
|
end
|
||||||
|
|
||||||
|
def tree_full_path(content)
|
||||||
|
if params[:path]
|
||||||
|
File.join(params[:path], content.name)
|
||||||
|
else
|
||||||
|
content.name
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -29,12 +29,13 @@
|
||||||
%td
|
%td
|
||||||
%td
|
%td
|
||||||
|
|
||||||
|
- index = 0
|
||||||
- contents.select{ |i| i.is_a?(Grit::Tree)}.each do |content|
|
- contents.select{ |i| i.is_a?(Grit::Tree)}.each do |content|
|
||||||
= render :partial => "refs/tree_item", :locals => { :content => content }
|
= render :partial => "refs/tree_item", :locals => { :content => content, :index => (index += 1) }
|
||||||
- contents.select{ |i| i.is_a?(Grit::Blob)}.each do |content|
|
- contents.select{ |i| i.is_a?(Grit::Blob)}.each do |content|
|
||||||
= render :partial => "refs/tree_item", :locals => { :content => content }
|
= render :partial => "refs/tree_item", :locals => { :content => content, :index => (index += 1) }
|
||||||
- contents.select{ |i| i.is_a?(Grit::Submodule)}.each do |content|
|
- contents.select{ |i| i.is_a?(Grit::Submodule)}.each do |content|
|
||||||
= render :partial => "refs/submodule_item", :locals => { :content => content }
|
= render :partial => "refs/submodule_item", :locals => { :content => content, :index => (index += 1) }
|
||||||
|
|
||||||
- if content = contents.select{ |c| c.is_a?(Grit::Blob) and c.name =~ /^readme/i }.first
|
- if content = contents.select{ |c| c.is_a?(Grit::Blob) and c.name =~ /^readme/i }.first
|
||||||
.file_holder#README
|
.file_holder#README
|
||||||
|
@ -58,8 +59,9 @@
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Load last commit log for each file in tree
|
||||||
$(window).load(function(){
|
$(window).load(function(){
|
||||||
$.ajax({type: "GET", url: '#{@logs_path}', dataType: "script"});
|
ajaxGet('#{@logs_path}');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,11 @@
|
||||||
- file = params[:path] ? File.join(params[:path], content.name) : content.name
|
- file = tree_full_path(content)
|
||||||
%tr{ :class => "tree-item file_#{Digest::SHA1.hexdigest(content.name)}", :url => tree_file_project_ref_path(@project, @ref, file) }
|
%tr{ :class => "tree-item #{tree_hex_class(content)}", :url => tree_file_project_ref_path(@project, @ref, file) }
|
||||||
%td.tree-item-file-name
|
%td.tree-item-file-name
|
||||||
- if content.is_a?(Grit::Blob)
|
= tree_icon(content)
|
||||||
- if content.text?
|
|
||||||
= image_tag "file_txt.png", :class => "tree-ico"
|
|
||||||
- elsif content.image?
|
|
||||||
= image_tag "file_img.png", :class => "tree-ico"
|
|
||||||
- else
|
|
||||||
= image_tag "file_bin.png", :class => "tree-ico"
|
|
||||||
- else
|
|
||||||
= image_tag "file_dir.png", :class => "tree-ico"
|
|
||||||
= link_to truncate(content.name, :length => 40), tree_file_project_ref_path(@project, @ref || @commit.id, file), :remote => :true
|
= link_to truncate(content.name, :length => 40), tree_file_project_ref_path(@project, @ref || @commit.id, file), :remote => :true
|
||||||
%td.tree_time_ago.cgray
|
%td.tree_time_ago.cgray
|
||||||
|
- if index == 1
|
||||||
|
%span.log_loading
|
||||||
|
Loading commit data..
|
||||||
|
= image_tag "ajax_loader_tree.gif", :width => 14
|
||||||
%td.tree_commit
|
%td.tree_commit
|
||||||
|
|
|
@ -4,6 +4,6 @@
|
||||||
- tm = @project.team_member_by_name_or_email(content_commit.author_email, content_commit.author_name)
|
- tm = @project.team_member_by_name_or_email(content_commit.author_email, content_commit.author_name)
|
||||||
|
|
||||||
:plain
|
:plain
|
||||||
var row = $("table.table_#{@hex_path} tr.file_#{Digest::SHA1.hexdigest(file_name)}");
|
var row = $("table.table_#{@hex_path} tr.file_#{hexdigest(file_name)}");
|
||||||
row.find("td.tree_time_ago").html('#{escape_javascript(time_ago_in_words(content_commit.committed_date))} ago');
|
row.find("td.tree_time_ago").html('#{escape_javascript(time_ago_in_words(content_commit.committed_date))} ago');
|
||||||
row.find("td.tree_commit").html('#{escape_javascript(render("tree_commit", :tm => tm, :content_commit => content_commit))}');
|
row.find("td.tree_commit").html('#{escape_javascript(render("tree_commit", :tm => tm, :content_commit => content_commit))}');
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
:plain
|
:plain
|
||||||
|
// Load Files list
|
||||||
$("#tree-holder").html("#{escape_javascript(render(:partial => "tree", :locals => {:repo => @repo, :commit => @commit, :tree => @tree}))}");
|
$("#tree-holder").html("#{escape_javascript(render(:partial => "tree", :locals => {:repo => @repo, :commit => @commit, :tree => @tree}))}");
|
||||||
$("#tree-content-holder").show("slide", { direction: "right" }, 150);
|
$("#tree-content-holder").show("slide", { direction: "right" }, 150);
|
||||||
$('.project-refs-form #path').val("#{params[:path]}");
|
$('.project-refs-form #path').val("#{params[:path]}");
|
||||||
|
|
||||||
|
// Load last commit log for each file in tree
|
||||||
$('#tree-slider').waitForImages(function() {
|
$('#tree-slider').waitForImages(function() {
|
||||||
$.ajax({type: "GET", url: '#{@logs_path}', dataType: "script"});
|
ajaxGet('#{@logs_path}');
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue