Commit af08ed6b authored by gitlabhq's avatar gitlabhq

refactoring

parent f294b8d4
...@@ -571,7 +571,7 @@ body.project-page .project-sidebar aside a:first-child{ ...@@ -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: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 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-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 h2{ margin-top: 6px}
body.project-page .project-content .button.right{margin-left: 20px} body.project-page .project-content .button.right{margin-left: 20px}
body.project-page table .commit a{color: #{$blue_link}} body.project-page table .commit a{color: #{$blue_link}}
......
...@@ -88,35 +88,6 @@ class ProjectsController < ApplicationController ...@@ -88,35 +88,6 @@ class ProjectsController < ApplicationController
end end
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 def graph
@repo = project.repo @repo = project.repo
commits = Grit::Commit.find_all(@repo, nil, {:max_count => 650}) commits = Grit::Commit.find_all(@repo, nil, {:max_count => 650})
...@@ -145,20 +116,6 @@ class ProjectsController < ApplicationController ...@@ -145,20 +116,6 @@ class ProjectsController < ApplicationController
end.to_json end.to_json
end 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 def destroy
project.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 @@ module ApplicationHelper ...@@ -73,7 +73,7 @@ module ApplicationHelper
project_nav = [ project_nav = [
{ :label => "#{@project.code} / Issues", :url => project_issues_path(@project) }, { :label => "#{@project.code} / Issues", :url => project_issues_path(@project) },
{ :label => "#{@project.code} / Wall", :url => wall_project_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} / Commits", :url => project_commits_path(@project) },
{ :label => "#{@project.code} / Team", :url => team_project_path(@project) } { :label => "#{@project.code} / Team", :url => team_project_path(@project) }
] ]
......
...@@ -121,6 +121,10 @@ class Project < ActiveRecord::Base ...@@ -121,6 +121,10 @@ class Project < ActiveRecord::Base
@admins ||=users_projects.includes(:user).where(:admin => true).map(&:user) @admins ||=users_projects.includes(:user).where(:admin => true).map(&:user)
end end
def root_ref
"master"
end
def public? def public?
!private_flag !private_flag
end end
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
%data.commit-button %data.commit-button
= truncate(commit.id.to_s, :length => 16) = truncate(commit.id.to_s, :length => 16)
%i %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 Browse Code
- if commit.author_email - if commit.author_email
= image_tag gravatar_icon(commit.author_email), :class => "left", :width => 40, :style => "padding-right:5px;" = image_tag gravatar_icon(commit.author_email), :class => "left", :width => 40, :style => "padding-right:5px;"
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
- if diff.deleted_file - if diff.deleted_file
%strong{:id => "#{diff.b_path}"}= diff.a_path %strong{:id => "#{diff.b_path}"}= diff.a_path
- else - 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 %strong{:id => "#{diff.b_path}"}= diff.b_path
%br/ %br/
.diff_file_content .diff_file_content
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
= preserve @commit.safe_message = preserve @commit.safe_message
%tr %tr
%td Tree %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 .clear
%br %br
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
GitLab #{" - #{@project.name}" if @project && !@project.new_record?} GitLab #{" - #{@project.name}" if @project && !@project.new_record?}
= stylesheet_link_tag "application" = stylesheet_link_tag "application"
= javascript_include_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}") = 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) - 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") = auto_discovery_link_tag(:atom, project_issues_url(@project, :atom, :private_token => current_user.private_token), :title => "#{@project.name} issues")
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
%input.git-url.text{:id => "", :name => "", :readonly => "", :type => "text", :value => @project.url_to_repo, :class => "one_click_select"} %input.git-url.text{:id => "", :name => "", :readonly => "", :type => "text", :value => @project.url_to_repo, :class => "one_click_select"}
%aside %aside
= link_to "Activities", project_path(@project), :class => current_page?(:controller => "projects", :action => "show", :id => @project) ? "current" : nil = 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 "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 "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 = 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 @@ ...@@ -5,7 +5,7 @@
%h2.icon %h2.icon
%span %span
%d %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 = @project.name
- if params[:path] - if params[:path]
- part_path = "" - part_path = ""
...@@ -14,14 +14,14 @@ ...@@ -14,14 +14,14 @@
- if part_path.empty? - if part_path.empty?
- part_path = part - 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; &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 .clear
#tree-content-holder #tree-content-holder
- if tree.is_a?(Grit::Blob) - 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 - else
- contents = tree.contents - contents = tree.contents
%table#tree-slider.round-borders %table#tree-slider.round-borders
...@@ -30,20 +30,20 @@ ...@@ -30,20 +30,20 @@
%th Last Update %th Last Update
%th %th
Last commit 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] - if params[:path]
- file = File.join(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 %td.tree-item-file-name
= image_tag "dir.png" = 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
%td %td
- contents.select{ |i| i.is_a?(Grit::Tree)}.each do |content| - 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| - 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 :javascript
$(function(){ $(function(){
......
...@@ -3,8 +3,8 @@ ...@@ -3,8 +3,8 @@
.view_file_header .view_file_header
%strong %strong
= name = name
= link_to "raw", blob_project_path(@project, :commit_id => @commit.id, :path => params[:path] ), :class => "right", :target => "_blank" = 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], :branch => params[:branch], :tag => params[:tag] ), :class => "right", :style => "margin-right:10px;" = link_to "history", project_commits_path(@project, :path => params[:path], :ref => @ref ), :class => "right", :style => "margin-right:10px;"
%br/ %br/
- if file.text? - if file.text?
.view_file_content .view_file_content
......
- file = params[:path] ? File.join(params[:path], content.name) : content.name - file = params[:path] ? File.join(params[:path], content.name) : content.name
- content_commit = @project.repo.log(@commit.id, file, :max_count => 1).last - content_commit = @project.repo.log(@commit.id, file, :max_count => 1).last
- return unless content_commit - 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 %td.tree-item-file-name
- if content.is_a?(Grit::Blob) - if content.is_a?(Grit::Blob)
= image_tag "txt.png" = image_tag "txt.png"
- else - else
= image_tag "dir.png" = 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 %td
= time_ago_in_words(content_commit.committed_date) = time_ago_in_words(content_commit.committed_date)
ago 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 @@ Gitlab::Application.routes.draw do ...@@ -30,22 +30,24 @@ Gitlab::Application.routes.draw do
resources :projects, :except => [:new, :create, :index], :path => "/" do resources :projects, :except => [:new, :create, :index], :path => "/" do
member do member do
get "tree"
get "blob"
get "team" get "team"
get "wall" get "wall"
get "graph" get "graph"
end
# tree viewer resources :refs, :only => [], :path => "/" do
get "tree/:commit_id" => "projects#tree" member do
get "tree/:commit_id/:path" => "projects#tree", get "tree"
:as => :tree_file, get "blob"
:constraints => {
:id => /[a-zA-Z0-9_\-]+/,
:commit_id => /[a-zA-Z0-9]+/,
:path => /.*/
}
# tree viewer
get "tree/:path" => "refs#tree",
:as => :tree_file,
:constraints => {
:id => /[a-zA-Z0-9_\-]+/,
:path => /.*/
}
end
end end
resources :snippets 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