Commit 6ddb35bd5e27829609e40b8dd87313a01fb6f293
1 parent
567767bc
Exists in
master
and in
4 other branches
Move tree-related views from refs to trees
Showing
15 changed files
with
165 additions
and
154 deletions
Show diff stats
app/views/refs/_submodule_item.html.haml
... | ... | @@ -1,13 +0,0 @@ |
1 | -- url = content.url(@ref) rescue nil | |
2 | -- name = content.basename | |
3 | -- return unless url | |
4 | -%tr{ class: "tree-item", url: url } | |
5 | - %td.tree-item-file-name | |
6 | - = image_tag "submodule.png" | |
7 | - %strong= truncate(name, length: 40) | |
8 | - %td | |
9 | - %code= content.id[0..10] | |
10 | - %td | |
11 | - = link_to truncate(url, length: 40), url | |
12 | - | |
13 | - |
app/views/refs/_tree.html.haml
... | ... | @@ -1,70 +0,0 @@ |
1 | -%ul.breadcrumb | |
2 | - %li | |
3 | - %span.arrow | |
4 | - = link_to tree_project_ref_path(@project, @ref, path: nil), remote: true do | |
5 | - = @project.name | |
6 | - - tree.breadcrumbs(6) do |link| | |
7 | - \/ | |
8 | - %li= link | |
9 | -.clear | |
10 | -%div.tree_progress | |
11 | -#tree-content-holder | |
12 | - - if tree.is_blob? | |
13 | - = render partial: "refs/tree_file", locals: { name: tree.name, content: tree.data, file: tree } | |
14 | - - else | |
15 | - - contents = tree.contents | |
16 | - %table#tree-slider{class: "table_#{@hex_path}" } | |
17 | - %thead | |
18 | - %th Name | |
19 | - %th Last Update | |
20 | - %th | |
21 | - Last commit | |
22 | - = link_to "History", tree.history_path, class: "right" | |
23 | - | |
24 | - - if tree.up_dir? | |
25 | - %tr{ class: "tree-item", url: tree.up_dir_path } | |
26 | - %td.tree-item-file-name | |
27 | - = image_tag "file_empty.png" | |
28 | - = link_to "..", tree.up_dir_path, remote: :true | |
29 | - %td | |
30 | - %td | |
31 | - | |
32 | - - index = 0 | |
33 | - - contents.select{ |i| i.is_a?(Grit::Tree)}.each do |content| | |
34 | - = render partial: "refs/tree_item", locals: { content: content, index: (index += 1) } | |
35 | - - contents.select{ |i| i.is_a?(Grit::Blob)}.each do |content| | |
36 | - = render partial: "refs/tree_item", locals: { content: content, index: (index += 1) } | |
37 | - - contents.select{ |i| i.is_a?(Grit::Submodule)}.each do |content| | |
38 | - = render partial: "refs/submodule_item", locals: { content: content, index: (index += 1) } | |
39 | - | |
40 | - - if content = contents.select{ |c| c.is_a?(Grit::Blob) and c.name =~ /^readme/i }.first | |
41 | - .file_holder#README | |
42 | - .file_title | |
43 | - %i.icon-file | |
44 | - = content.name | |
45 | - .file_content.wiki | |
46 | - - if gitlab_markdown?(content.name) | |
47 | - = preserve do | |
48 | - = markdown(content.data) | |
49 | - - else | |
50 | - = raw GitHub::Markup.render(content.name, content.data) | |
51 | - | |
52 | -:javascript | |
53 | - $(function(){ | |
54 | - history.pushState({ path: this.path }, '', "#{@history_path}"); | |
55 | - }); | |
56 | - | |
57 | -- unless tree.is_blob? | |
58 | - :javascript | |
59 | - // Load last commit log for each file in tree | |
60 | - $(window).load(function(){ | |
61 | - ajaxGet('#{@logs_path}'); | |
62 | - }); | |
63 | - | |
64 | -- if params[:path] && request.xhr? | |
65 | - :javascript | |
66 | - $(window).unbind('popstate'); | |
67 | - $(window).bind('popstate', function() { | |
68 | - if(location.pathname.search("tree") != -1) { | |
69 | - $.ajax({type: "GET", url: location.pathname, dataType: "script"})} | |
70 | - else { location.href = location.pathname;}}); |
app/views/refs/_tree_commit.html.haml
app/views/refs/_tree_file.html.haml
... | ... | @@ -1,40 +0,0 @@ |
1 | -.file_holder | |
2 | - .file_title | |
3 | - %i.icon-file | |
4 | - %span.file_name | |
5 | - = name.force_encoding('utf-8') | |
6 | - %small #{file.mode} | |
7 | - %span.options | |
8 | - = link_to "raw", blob_project_ref_path(@project, @ref, path: params[:path]), class: "btn very_small", target: "_blank" | |
9 | - = link_to "history", project_commits_path(@project, path: params[:path], ref: @ref), class: "btn very_small" | |
10 | - = link_to "blame", blame_file_project_ref_path(@project, @ref, path: params[:path]), class: "btn very_small" | |
11 | - - if file.text? | |
12 | - - if gitlab_markdown?(name) | |
13 | - .file_content.wiki | |
14 | - = preserve do | |
15 | - = markdown(file.data) | |
16 | - - elsif markup?(name) | |
17 | - .file_content.wiki | |
18 | - = raw GitHub::Markup.render(name, file.data) | |
19 | - - else | |
20 | - .file_content.code | |
21 | - - unless file.empty? | |
22 | - %div{class: current_user.dark_scheme ? "black" : "white"} | |
23 | - = preserve do | |
24 | - = raw file.colorize(options: { linenos: 'True'}) | |
25 | - - else | |
26 | - %h4.nothing_here_message Empty file | |
27 | - | |
28 | - - elsif file.image? | |
29 | - .file_content.image_file | |
30 | - %img{ src: "data:#{file.mime_type};base64,#{Base64.encode64(file.data)}"} | |
31 | - | |
32 | - - else | |
33 | - .file_content.blob_file | |
34 | - %center | |
35 | - = link_to blob_project_ref_path(@project, @ref, path: params[:path]) do | |
36 | - %div.padded | |
37 | - %br | |
38 | - = image_tag "download.png", width: 64 | |
39 | - %h3 | |
40 | - Download (#{file.mb_size}) |
app/views/refs/_tree_item.html.haml
... | ... | @@ -1,11 +0,0 @@ |
1 | -- file = tree_full_path(content) | |
2 | -%tr{ class: "tree-item #{tree_hex_class(content)}", url: tree_file_project_ref_path(@project, @ref, file) } | |
3 | - %td.tree-item-file-name | |
4 | - = tree_icon(content) | |
5 | - %strong= link_to truncate(content.name, length: 40), tree_file_project_ref_path(@project, @ref || @commit.id, file), remote: :true | |
6 | - %td.tree_time_ago.cgray | |
7 | - - if index == 1 | |
8 | - %span.log_loading | |
9 | - Loading commit data.. | |
10 | - = image_tag "ajax_loader_tree.gif", width: 14 | |
11 | - %td.tree_commit |
app/views/refs/tree.html.haml
app/views/refs/tree.js.haml
... | ... | @@ -1,10 +0,0 @@ |
1 | -:plain | |
2 | - // Load Files list | |
3 | - $("#tree-holder").html("#{escape_javascript(render(partial: "tree", locals: {repo: @repo, commit: @commit, tree: @tree}))}"); | |
4 | - $("#tree-content-holder").show("slide", { direction: "right" }, 150); | |
5 | - $('.project-refs-form #path').val("#{params[:path]}"); | |
6 | - | |
7 | - // Load last commit log for each file in tree | |
8 | - $('#tree-slider').waitForImages(function() { | |
9 | - ajaxGet('#{@logs_path}'); | |
10 | - }); |
... | ... | @@ -0,0 +1,11 @@ |
1 | +%ul.nav.nav-tabs | |
2 | + %li | |
3 | + = render partial: 'shared/ref_switcher', locals: {destination: 'tree', path: params[:path]} | |
4 | + %li{class: "#{'active' if (controller.controller_name == "refs") }"} | |
5 | + = link_to tree_project_ref_path(@project, @ref) do | |
6 | + Source | |
7 | + %li.right | |
8 | + .input-prepend.project_clone_holder | |
9 | + %button{class: "btn small active", :"data-clone" => @project.ssh_url_to_repo} SSH | |
10 | + %button{class: "btn small", :"data-clone" => @project.http_url_to_repo} HTTP | |
11 | + = text_field_tag :project_clone, @project.url_to_repo, class: "one_click_select span5" | ... | ... |
... | ... | @@ -0,0 +1,13 @@ |
1 | +- url = content.url(@ref) rescue nil | |
2 | +- name = content.basename | |
3 | +- return unless url | |
4 | +%tr{ class: "tree-item", url: url } | |
5 | + %td.tree-item-file-name | |
6 | + = image_tag "submodule.png" | |
7 | + %strong= truncate(name, length: 40) | |
8 | + %td | |
9 | + %code= content.id[0..10] | |
10 | + %td | |
11 | + = link_to truncate(url, length: 40), url | |
12 | + | |
13 | + | ... | ... |
... | ... | @@ -0,0 +1,70 @@ |
1 | +%ul.breadcrumb | |
2 | + %li | |
3 | + %span.arrow | |
4 | + = link_to tree_project_ref_path(@project, @ref, path: nil), remote: true do | |
5 | + = @project.name | |
6 | + - tree.breadcrumbs(6) do |link| | |
7 | + \/ | |
8 | + %li= link | |
9 | +.clear | |
10 | +%div.tree_progress | |
11 | +#tree-content-holder | |
12 | + - if tree.is_blob? | |
13 | + = render partial: "refs/tree_file", locals: { name: tree.name, content: tree.data, file: tree } | |
14 | + - else | |
15 | + - contents = tree.contents | |
16 | + %table#tree-slider{class: "table_#{@hex_path}" } | |
17 | + %thead | |
18 | + %th Name | |
19 | + %th Last Update | |
20 | + %th | |
21 | + Last commit | |
22 | + = link_to "History", tree.history_path, class: "right" | |
23 | + | |
24 | + - if tree.up_dir? | |
25 | + %tr{ class: "tree-item", url: tree.up_dir_path } | |
26 | + %td.tree-item-file-name | |
27 | + = image_tag "file_empty.png" | |
28 | + = link_to "..", tree.up_dir_path, remote: :true | |
29 | + %td | |
30 | + %td | |
31 | + | |
32 | + - index = 0 | |
33 | + - contents.select{ |i| i.is_a?(Grit::Tree)}.each do |content| | |
34 | + = render partial: "refs/tree_item", locals: { content: content, index: (index += 1) } | |
35 | + - contents.select{ |i| i.is_a?(Grit::Blob)}.each do |content| | |
36 | + = render partial: "refs/tree_item", locals: { content: content, index: (index += 1) } | |
37 | + - contents.select{ |i| i.is_a?(Grit::Submodule)}.each do |content| | |
38 | + = render partial: "refs/submodule_item", locals: { content: content, index: (index += 1) } | |
39 | + | |
40 | + - if content = contents.select{ |c| c.is_a?(Grit::Blob) and c.name =~ /^readme/i }.first | |
41 | + .file_holder#README | |
42 | + .file_title | |
43 | + %i.icon-file | |
44 | + = content.name | |
45 | + .file_content.wiki | |
46 | + - if gitlab_markdown?(content.name) | |
47 | + = preserve do | |
48 | + = markdown(content.data) | |
49 | + - else | |
50 | + = raw GitHub::Markup.render(content.name, content.data) | |
51 | + | |
52 | +:javascript | |
53 | + $(function(){ | |
54 | + history.pushState({ path: this.path }, '', "#{@history_path}"); | |
55 | + }); | |
56 | + | |
57 | +- unless tree.is_blob? | |
58 | + :javascript | |
59 | + // Load last commit log for each file in tree | |
60 | + $(window).load(function(){ | |
61 | + ajaxGet('#{@logs_path}'); | |
62 | + }); | |
63 | + | |
64 | +- if params[:path] && request.xhr? | |
65 | + :javascript | |
66 | + $(window).unbind('popstate'); | |
67 | + $(window).bind('popstate', function() { | |
68 | + if(location.pathname.search("tree") != -1) { | |
69 | + $.ajax({type: "GET", url: location.pathname, dataType: "script"})} | |
70 | + else { location.href = location.pathname;}}); | ... | ... |
... | ... | @@ -0,0 +1,40 @@ |
1 | +.file_holder | |
2 | + .file_title | |
3 | + %i.icon-file | |
4 | + %span.file_name | |
5 | + = name.force_encoding('utf-8') | |
6 | + %small #{file.mode} | |
7 | + %span.options | |
8 | + = link_to "raw", blob_project_ref_path(@project, @ref, path: params[:path]), class: "btn very_small", target: "_blank" | |
9 | + = link_to "history", project_commits_path(@project, path: params[:path], ref: @ref), class: "btn very_small" | |
10 | + = link_to "blame", blame_file_project_ref_path(@project, @ref, path: params[:path]), class: "btn very_small" | |
11 | + - if file.text? | |
12 | + - if gitlab_markdown?(name) | |
13 | + .file_content.wiki | |
14 | + = preserve do | |
15 | + = markdown(file.data) | |
16 | + - elsif markup?(name) | |
17 | + .file_content.wiki | |
18 | + = raw GitHub::Markup.render(name, file.data) | |
19 | + - else | |
20 | + .file_content.code | |
21 | + - unless file.empty? | |
22 | + %div{class: current_user.dark_scheme ? "black" : "white"} | |
23 | + = preserve do | |
24 | + = raw file.colorize(options: { linenos: 'True'}) | |
25 | + - else | |
26 | + %h4.nothing_here_message Empty file | |
27 | + | |
28 | + - elsif file.image? | |
29 | + .file_content.image_file | |
30 | + %img{ src: "data:#{file.mime_type};base64,#{Base64.encode64(file.data)}"} | |
31 | + | |
32 | + - else | |
33 | + .file_content.blob_file | |
34 | + %center | |
35 | + = link_to blob_project_ref_path(@project, @ref, path: params[:path]) do | |
36 | + %div.padded | |
37 | + %br | |
38 | + = image_tag "download.png", width: 64 | |
39 | + %h3 | |
40 | + Download (#{file.mb_size}) | ... | ... |
... | ... | @@ -0,0 +1,11 @@ |
1 | +- file = tree_full_path(content) | |
2 | +%tr{ class: "tree-item #{tree_hex_class(content)}", url: tree_file_project_ref_path(@project, @ref, file) } | |
3 | + %td.tree-item-file-name | |
4 | + = tree_icon(content) | |
5 | + %strong= link_to truncate(content.name, length: 40), tree_file_project_ref_path(@project, @ref || @commit.id, file), remote: :true | |
6 | + %td.tree_time_ago.cgray | |
7 | + - if index == 1 | |
8 | + %span.log_loading | |
9 | + Loading commit data.. | |
10 | + = image_tag "ajax_loader_tree.gif", width: 14 | |
11 | + %td.tree_commit | ... | ... |
... | ... | @@ -0,0 +1,10 @@ |
1 | +:plain | |
2 | + // Load Files list | |
3 | + $("#tree-holder").html("#{escape_javascript(render(partial: "tree", locals: {repo: @repo, commit: @commit, tree: @tree}))}"); | |
4 | + $("#tree-content-holder").show("slide", { direction: "right" }, 150); | |
5 | + $('.project-refs-form #path').val("#{params[:path]}"); | |
6 | + | |
7 | + // Load last commit log for each file in tree | |
8 | + $('#tree-slider').waitForImages(function() { | |
9 | + ajaxGet('#{@logs_path}'); | |
10 | + }); | ... | ... |