_tree.html.haml 2.28 KB
%ul.breadcrumb
  %li
    %span.arrow
    = link_to project_tree_path(@project, @ref), remote: true do
      = @project.name
  - tree.breadcrumbs(6) do |link|
    \/
    %li= link
.clear
%div.tree_progress
#tree-content-holder
  - if tree.is_blob?
    = render partial: "tree/tree_file", locals: { name: tree.name, content: tree.data, file: tree }
  - else
    - contents = tree.contents
    %table#tree-slider{class: "table_#{@hex_path}" }
      %thead
        %th Name
        %th Last Update
        %th
          Last commit
          = link_to "History", tree.history_path, class: "right"

      - if tree.up_dir?
        %tr{ class: "tree-item", url: tree.up_dir_path }
          %td.tree-item-file-name
            = image_tag "file_empty.png"
            = link_to "..", tree.up_dir_path, remote: :true
          %td
          %td

      - index = 0
      - contents.select{ |i| i.is_a?(Grit::Tree)}.each do |content|
        = render partial: "tree/tree_item", locals: { content: content, index: (index += 1) }
      - contents.select{ |i| i.is_a?(Grit::Blob)}.each do |content|
        = render partial: "tree/tree_item", locals: { content: content, index: (index += 1) }
      - contents.select{ |i| i.is_a?(Grit::Submodule)}.each do |content|
        = render partial: "tree/submodule_item", locals: { content: content, index: (index += 1) }

    - if content = contents.select{ |c| c.is_a?(Grit::Blob) and c.name =~ /^readme/i }.first
      .file_holder#README
        .file_title
          %i.icon-file
          = content.name
        .file_content.wiki
          - if gitlab_markdown?(content.name)
            = preserve do
              = markdown(content.data)
          - else
            = raw GitHub::Markup.render(content.name, content.data)

:javascript
  $(function(){
    history.pushState({ path: this.path }, '', "#{@history_path}");
  });

- unless tree.is_blob?
  :javascript
    // Load last commit log for each file in tree
    $(window).load(function(){
      ajaxGet('#{@logs_path}');
    });

- 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;}});