summaryrefslogtreecommitdiff
path: root/app/views/projects/_tree.html.haml
diff options
context:
space:
mode:
Diffstat (limited to 'app/views/projects/_tree.html.haml')
-rw-r--r--app/views/projects/_tree.html.haml60
1 files changed, 60 insertions, 0 deletions
diff --git a/app/views/projects/_tree.html.haml b/app/views/projects/_tree.html.haml
new file mode 100644
index 00000000000..af3a209a8ab
--- /dev/null
+++ b/app/views/projects/_tree.html.haml
@@ -0,0 +1,60 @@
+%h3
+ .left
+ = form_tag tree_project_path(@project), :method => :get do
+ = select_tag "branch", options_for_select(@repo.heads.map(&:name), @branch), :onchange => "this.form.submit();", :class => "", :prompt => "Branches"
+  
+ .left.prepend-1
+ = form_tag tree_project_path(@project), :method => :get do
+ = select_tag "tag", options_for_select(@project.tags, @branch), :onchange => "this.form.submit();", :class => "", :prompt => "Tags"
+ = text_field_tag "ssh", @project.url_to_repo, :class => ["ssh_project_url","one_click_select"]
+ .clear
+
+%h3#tree-breadcrumbs
+ = link_to @project.name, tree_project_path(@project, :path => nil, :commit_id => @commit.try(:id)), :remote => true
+ - if params[:path]
+ - part_path = ""
+ - params[:path].split("\/").each do |part|
+ - part_path = File.join(part_path, part) unless part_path.empty?
+ - if part_path.empty?
+ - part_path = part
+ \/
+ = link_to truncate(part, :length => 40), tree_file_project_path(@project, :path => part_path, :commit_id => @commit.try(:id)), :remote => :true
+#tree-content-holder
+ - if tree.is_a?(Grit::Blob)
+ = render :partial => "projects/tree_file", :locals => { :name => tree.name, :content => tree.data, :file => tree }
+ - else
+ - contents = tree.contents
+ %table#tree-slider.round-borders
+ %tr
+ %th Name
+ %th Last Update
+ %th
+ Last commit
+ = link_to "history", project_commits_path(@project, :path => params[:path]), :class => "right"
+ - if params[:path]
+ - file = File.join(params[:path], "..")
+ %tr{ :class => "tree-item", :url => tree_file_project_path(@project, @commit.id, file) }
+ %td.tree-item-file-name
+ = image_tag "dir.png"
+ = link_to "..", tree_file_project_path(@project, @commit.id, file), :remote => :true
+ %td
+ %td
+
+ - contents.select{ |i| i.is_a?(Grit::Tree)}.each do |content|
+ = render :partial => "projects/tree_item", :locals => { :content => content }
+ - contents.select{ |i| i.is_a?(Grit::Blob)}.each do |content|
+ = render :partial => "projects/tree_item", :locals => { :content => content }
+
+:javascript
+ $(function(){
+ $('select#branch').selectmenu({style:'popup', width:200});
+ $('select#tag').selectmenu({style:'popup', width:200});
+ });
+
+- if params[:path] && request.xhr?
+ :javascript
+ $(window).unbind('popstate');
+ $(window).bind('popstate', function() {
+ if(location.pathname.search("tree") != -1) {
+ $.ajax({type: "GET", url: location.pathname, dataType: "script"})}
+ else { location.href = location.pathname;}});