summaryrefslogtreecommitdiff
path: root/app/views/projects/_tree.html.haml
blob: af3a209a8abea7ff2d5cfbcb29c99d92eaef5553 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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;}});