Read about our upcoming Code of Conduct on this issue

This instance was upgraded to Heptapod 0.28.1 today

Commit af08ed6b authored by gitlabhq's avatar gitlabhq
Browse files

refactoring

parent 5a3edd5b652f
......@@ -571,7 +571,7 @@ body.project-page .project-sidebar aside a:first-child{
body.project-page .project-sidebar aside a:hover{background-color: #eee;}
body.project-page .project-sidebar aside a span.number{float: right; border-radius: 5px; text-shadow: none; background: rgba(0,0,0,.12); text-align: center; padding: 5px 8px; position: absolute; top: 10px; right: 10px}
body.project-page .project-sidebar aside a.current{background-color: #79c3e0; color: white; text-shadow: none; border-color: transparent}
body.project-page .project-content{ padding: 20px; display: block; margin-left: 250px; min-height: 400px}
body.project-page .project-content{ padding: 20px; display: block; margin-left: 250px; min-height: 450px}
body.project-page .project-content h2{ margin-top: 6px}
body.project-page .project-content .button.right{margin-left: 20px}
body.project-page table .commit a{color: #{$blue_link}}
......
......@@ -88,35 +88,6 @@ def wall
end
end
#
# Repository preview
#
def tree
@repo = project.repo
@commit = if params[:commit_id]
@repo.commits(params[:commit_id]).first
else
@repo.commits(@ref).first
end
@tree = @commit.tree
@tree = @tree / params[:path] if params[:path]
respond_to do |format|
format.html # show.html.erb
format.js do
# diasbale cache to allow back button works
response.headers["Cache-Control"] = "no-cache, no-store, max-age=0, must-revalidate"
response.headers["Pragma"] = "no-cache"
response.headers["Expires"] = "Fri, 01 Jan 1990 00:00:00 GMT"
end
end
rescue
return render_404
end
def graph
@repo = project.repo
commits = Grit::Commit.find_all(@repo, nil, {:max_count => 650})
......@@ -145,20 +116,6 @@ def graph
end.to_json
end
def blob
@repo = project.repo
@commit = project.commit(params[:commit_id])
@tree = project.tree(@commit, params[:path])
if @tree.is_a?(Grit::Blob)
send_data(@tree.data, :type => @tree.mime_type, :disposition => 'inline', :filename => @tree.name)
else
head(404)
end
rescue
return render_404
end
def destroy
project.destroy
......
class RefsController < ApplicationController
before_filter :project
before_filter :ref
layout "project"
# Authorize
before_filter :add_project_abilities
before_filter :authorize_read_project!
before_filter :require_non_empty_project
#
# Repository preview
#
def tree
@repo = project.repo
@commit = @repo.commits(@ref).first
@tree = @commit.tree
@tree = @tree / params[:path] if params[:path]
respond_to do |format|
format.html # show.html.erb
format.js do
# diasbale cache to allow back button works
response.headers["Cache-Control"] = "no-cache, no-store, max-age=0, must-revalidate"
response.headers["Pragma"] = "no-cache"
response.headers["Expires"] = "Fri, 01 Jan 1990 00:00:00 GMT"
end
end
rescue
return render_404
end
def blob
@repo = project.repo
@commit = project.commit(@ref)
@tree = project.tree(@commit, params[:path])
if @tree.is_a?(Grit::Blob)
send_data(@tree.data, :type => @tree.mime_type, :disposition => 'inline', :filename => @tree.name)
else
head(404)
end
rescue
return render_404
end
protected
def ref
@ref = params[:id]
end
end
......@@ -73,7 +73,7 @@ def search_autocomplete_source
project_nav = [
{ :label => "#{@project.code} / Issues", :url => project_issues_path(@project) },
{ :label => "#{@project.code} / Wall", :url => wall_project_path(@project) },
{ :label => "#{@project.code} / Tree", :url => tree_project_path(@project) },
{ :label => "#{@project.code} / Tree", :url => tree_project_ref_path(@project, @project.root_ref) },
{ :label => "#{@project.code} / Commits", :url => project_commits_path(@project) },
{ :label => "#{@project.code} / Team", :url => team_project_path(@project) }
]
......
......@@ -121,6 +121,10 @@ def admins
@admins ||=users_projects.includes(:user).where(:admin => true).map(&:user)
end
def root_ref
"master"
end
def public?
!private_flag
end
......
......@@ -9,7 +9,7 @@
%data.commit-button
= truncate(commit.id.to_s, :length => 16)
%i
%data.commit-browse{ :onclick => "location.href='#{tree_project_path(@project, :commit_id => commit.id)}';return false;"}
%data.commit-browse{ :onclick => "location.href='#{tree_project_ref_path(@project, commit.id)}';return false;"}
Browse Code
- if commit.author_email
= image_tag gravatar_icon(commit.author_email), :class => "left", :width => 40, :style => "padding-right:5px;"
......
......@@ -9,7 +9,7 @@
- if diff.deleted_file
%strong{:id => "#{diff.b_path}"}= diff.a_path
- else
= link_to tree_file_project_path(@project, @commit.id, diff.b_path) do
= link_to tree_file_project_ref_path(@project, @commit.id, diff.b_path) do
%strong{:id => "#{diff.b_path}"}= diff.b_path
%br/
.diff_file_content
......
......@@ -18,7 +18,7 @@
= preserve @commit.safe_message
%tr
%td Tree
%td= link_to 'Browse Code', tree_project_path(@project, :commit_id => @commit.id)
%td= link_to 'Browse Code', tree_project_ref_path(@project, @commit.id)
.clear
%br
......
......@@ -5,7 +5,7 @@
GitLab #{" - #{@project.name}" if @project && !@project.new_record?}
= stylesheet_link_tag "application"
= javascript_include_tag "application"
- if current_page?(tree_project_path(@project)) || current_page?(project_commits_path(@project))
- if current_page?(tree_project_ref_path(@project, @project.root_ref)) || current_page?(project_commits_path(@project))
= auto_discovery_link_tag(:atom, project_commits_url(@project, :atom, :ref => @ref, :private_token => current_user.private_token), :title => "Recent commits to #{@project.name}:#{@ref}")
- if request.path == project_issues_path(@project)
= auto_discovery_link_tag(:atom, project_issues_url(@project, :atom, :private_token => current_user.private_token), :title => "#{@project.name} issues")
......@@ -24,7 +24,7 @@
%input.git-url.text{:id => "", :name => "", :readonly => "", :type => "text", :value => @project.url_to_repo, :class => "one_click_select"}
%aside
= link_to "Activities", project_path(@project), :class => current_page?(:controller => "projects", :action => "show", :id => @project) ? "current" : nil
= link_to "Tree", tree_project_path(@project), :class => current_page?(:controller => "projects", :action => "tree", :id => @project) ? "current" : nil
= link_to "Tree", tree_project_ref_path(@project, @project.root_ref), :class => current_page?(:controller => "refs", :action => "tree", :project_id => @project, :id => @ref || @project.root_ref ) ? "current" : nil
= link_to "Commits", project_commits_path(@project), :class => current_page?(:controller => "commits", :action => "index", :project_id => @project) ? "current" : nil
= link_to "Network graph", graph_project_path(@project), :class => current_page?(:controller => "projects", :action => "graph", :id => @project) ? "current" : nil
= link_to team_project_path(@project), :class => (current_page?(:controller => "projects", :action => "team", :id => @project) || controller.controller_name == "team_members") ? "current" : nil do
......
<div>
<div id="tree-holder">
<%= render :partial => "tree", :locals => {:repo => @repo, :commit => @commit, :tree => @tree} %>
</div>
</div>
......@@ -5,7 +5,7 @@
%h2.icon
%span
%d
= link_to tree_project_path(@project, :path => nil, :commit_id => @commit.try(:id)), :remote => true do
= link_to tree_project_ref_path(@project, @ref, :path => nil), :remote => true do
= @project.name
- if params[:path]
- part_path = ""
......@@ -14,14 +14,14 @@
- 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), :branch => @branch, :tag => @tag), :remote => :true
= link_to truncate(part, :length => 40), tree_file_project_ref_path(@project, @ref, :path => part_path), :remote => :true
&nbsp;
.right= render :partial => "projects/refs", :locals => { :destination => tree_project_path(@project) }
.right= render :partial => "projects/refs", :locals => { :destination => tree_project_ref_path(@project, @ref) }
.clear
#tree-content-holder
- if tree.is_a?(Grit::Blob)
= render :partial => "projects/tree_file", :locals => { :name => tree.name, :content => tree.data, :file => tree }
= render :partial => "refs/tree_file", :locals => { :name => tree.name, :content => tree.data, :file => tree }
- else
- contents = tree.contents
%table#tree-slider.round-borders
......@@ -30,20 +30,20 @@
%th Last Update
%th
Last commit
= link_to "history", project_commits_path(@project, :path => params[:path], :branch => params[:branch],:tag => params[:tag]), :class => "right"
= link_to "history", project_commits_path(@project, :path => params[:path], :ref => @ref), :class => "right"
- if params[:path]
- file = File.join(params[:path], "..")
%tr{ :class => "tree-item", :url => tree_file_project_path(@project, @commit.id, file) }
%tr{ :class => "tree-item", :url => tree_file_project_ref_path(@project, @ref, file) }
%td.tree-item-file-name
= image_tag "dir.png"
= link_to "..", tree_file_project_path(@project, @commit.id, file, :branch => @branch, :tag => @tag), :remote => :true
= link_to "..", tree_file_project_ref_path(@project, @ref, file), :remote => :true
%td
%td
- contents.select{ |i| i.is_a?(Grit::Tree)}.each do |content|
= render :partial => "projects/tree_item", :locals => { :content => content }
= render :partial => "refs/tree_item", :locals => { :content => content }
- contents.select{ |i| i.is_a?(Grit::Blob)}.each do |content|
= render :partial => "projects/tree_item", :locals => { :content => content }
= render :partial => "refs/tree_item", :locals => { :content => content }
:javascript
$(function(){
......
......@@ -3,8 +3,8 @@
.view_file_header
%strong
= name
= link_to "raw", blob_project_path(@project, :commit_id => @commit.id, :path => params[:path] ), :class => "right", :target => "_blank"
= link_to "history", project_commits_path(@project, :path => params[:path], :branch => params[:branch], :tag => params[:tag] ), :class => "right", :style => "margin-right:10px;"
= link_to "raw", blob_project_ref_path(@project, @ref, :path => params[:path] ), :class => "right", :target => "_blank"
= link_to "history", project_commits_path(@project, :path => params[:path], :ref => @ref ), :class => "right", :style => "margin-right:10px;"
%br/
- if file.text?
.view_file_content
......
- file = params[:path] ? File.join(params[:path], content.name) : content.name
- content_commit = @project.repo.log(@commit.id, file, :max_count => 1).last
- return unless content_commit
%tr{ :class => "tree-item", :url => tree_file_project_path(@project, @commit.id, file) }
%tr{ :class => "tree-item", :url => tree_file_project_ref_path(@project, @ref, file) }
%td.tree-item-file-name
- if content.is_a?(Grit::Blob)
= image_tag "txt.png"
- else
= image_tag "dir.png"
= link_to truncate(content.name, :length => 40), tree_file_project_path(@project, @commit.id, file, :branch => @branch, :tag => @tag), :remote => :true
= link_to truncate(content.name, :length => 40), tree_file_project_ref_path(@project, @ref || @commit.id, file), :remote => :true
%td
= time_ago_in_words(content_commit.committed_date)
ago
......
#tree-holder= render :partial => "tree", :locals => {:repo => @repo, :commit => @commit, :tree => @tree}
:plain
$("#tree-holder table").hide("slide", { direction: "left" }, 150, function(){
$("#tree-holder").html("#{escape_javascript(render(:partial => "tree", :locals => {:repo => @repo, :commit => @commit, :tree => @tree}))}");
$("#tree-holder table").show("slide", { direction: "right" }, 150);
});
......@@ -30,22 +30,24 @@
resources :projects, :except => [:new, :create, :index], :path => "/" do
member do
get "tree"
get "blob"
get "team"
get "wall"
get "graph"
end
# tree viewer
get "tree/:commit_id" => "projects#tree"
get "tree/:commit_id/:path" => "projects#tree",
:as => :tree_file,
:constraints => {
:id => /[a-zA-Z0-9_\-]+/,
:commit_id => /[a-zA-Z0-9]+/,
:path => /.*/
}
resources :refs, :only => [], :path => "/" do
member do
get "tree"
get "blob"
# tree viewer
get "tree/:path" => "refs#tree",
:as => :tree_file,
:constraints => {
:id => /[a-zA-Z0-9_\-]+/,
:path => /.*/
}
end
end
resources :snippets
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment