Commit 153f6cd86bff0f78abbee07feec6832b73535298

Authored by gitlabhq
1 parent 2d577cae

refactoring + remove unnecessary feature

app/controllers/application_controller.rb
... ... @@ -42,15 +42,23 @@ class ApplicationController < ActionController::Base
42 42 end
43 43 end
44 44  
45   - def refs_from_cookie
46   - if @project && session[:ui] &&
47   - session[:ui][@project.id]
48   - project_session = session[:ui][@project.id]
49   - project_session[:branch] = nil if params[:tag]
50   - params[:branch] ||= project_session[:branch]
51   - params[:tag] ||= project_session[:tag]
52   - end
53   - rescue
54   - session[:ui] = nil
  45 + def load_refs
  46 + @branch = unless params[:branch].blank?
  47 + params[:branch]
  48 + else
  49 + nil
  50 + end
  51 +
  52 + @tag = unless params[:tag].blank?
  53 + params[:tag]
  54 + else
  55 + nil
  56 + end
  57 +
  58 + @ref = @branch || @tag || "master"
  59 + end
  60 +
  61 + def render_404
  62 + render :file => File.join(Rails.root, "public", "404"), :layout => false, :status => "404"
55 63 end
56 64 end
... ...
app/controllers/commits_controller.rb
... ... @@ -8,20 +8,14 @@ class CommitsController < ApplicationController
8 8 before_filter :authorize_read_project!
9 9  
10 10 def index
11   - refs_from_cookie
  11 + load_refs # load @branch, @tag & @ref
  12 +
12 13 @repo = project.repo
13   - @branch = if !params[:branch].blank?
14   - params[:branch]
15   - elsif !params[:tag].blank?
16   - params[:tag]
17   - else
18   - "master"
19   - end
20 14  
21 15 if params[:path]
22   - @commits = @repo.log(@branch, params[:path], :max_count => params[:limit] || 100, :skip => params[:offset] || 0)
  16 + @commits = @repo.log(@ref, params[:path], :max_count => params[:limit] || 100, :skip => params[:offset] || 0)
23 17 else
24   - @commits = @repo.commits(@branch, params[:limit] || 100, params[:offset] || 0)
  18 + @commits = @repo.commits(@ref, params[:limit] || 100, params[:offset] || 0)
25 19 end
26 20  
27 21 respond_to do |format|
... ...
app/controllers/projects_controller.rb
... ... @@ -16,7 +16,6 @@ class ProjectsController < ApplicationController
16 16 end
17 17  
18 18 def show
19   - refs_from_cookie
20 19 @repo = project.repo
21 20 @commit = @repo.commits.first
22 21 @tree = @commit.tree
... ... @@ -33,34 +32,30 @@ class ProjectsController < ApplicationController
33 32 end
34 33  
35 34 def tree
36   - refs_from_cookie
  35 + load_refs # load @branch, @tag & @ref
  36 +
37 37 @repo = project.repo
38   - @branch = if !params[:branch].blank?
39   - params[:branch]
40   - elsif !params[:tag].blank?
41   - params[:tag]
42   - else
43   - "master"
44   - end
45 38  
46 39 if params[:commit_id]
47 40 @commit = @repo.commits(params[:commit_id]).first
48 41 else
49   - @commit = @repo.commits(@branch || "master").first
  42 + @commit = @repo.commits(@ref || "master").first
50 43 end
  44 +
51 45 @tree = @commit.tree
52 46 @tree = @tree / params[:path] if params[:path]
53 47  
54 48 respond_to do |format|
55 49 format.html # show.html.erb
56 50 format.js do
57   - # temp solution
  51 + # diasbale cache to allow back button works
58 52 response.headers["Cache-Control"] = "no-cache, no-store, max-age=0, must-revalidate"
59 53 response.headers["Pragma"] = "no-cache"
60 54 response.headers["Expires"] = "Fri, 01 Jan 1990 00:00:00 GMT"
61 55 end
62   - format.json { render json: project }
63 56 end
  57 + rescue
  58 + return render_404
64 59 end
65 60  
66 61 def blob
... ... @@ -73,6 +68,8 @@ class ProjectsController < ApplicationController
73 68 else
74 69 head(404)
75 70 end
  71 + rescue
  72 + return render_404
76 73 end
77 74  
78 75 def new
... ...
app/helpers/projects_helper.rb
... ... @@ -3,12 +3,4 @@ module ProjectsHelper
3 3 cookies["project_view"] ||= "tile"
4 4 cookies["project_view"] == type ? nil : "display:none"
5 5 end
6   -
7   - def remember_refs
8   - session[:ui] ||= {}
9   - session[:ui][@project.id] = {
10   - :branch => params[:branch],
11   - :tag => params[:tag]
12   - }
13   - end
14 6 end
... ...
app/views/commits/index.html.haml
... ... @@ -6,12 +6,10 @@
6 6  
7 7 .left.prepend-1
8 8 = form_tag project_commits_path(@project), :method => :get do
9   - = select_tag "tag", options_for_select(@project.tags, @branch), :onchange => "this.form.submit();", :class => "", :prompt => "Tags"
  9 + = select_tag "tag", options_for_select(@project.tags, @tag), :onchange => "this.form.submit();", :class => "", :prompt => "Tags"
10 10 = text_field_tag "ssh", @project.url_to_repo, :class => ["ssh_project_url", "one_click_select"]
11 11 .clear
12 12 - if params[:path]
13 13 %h3{:style => "color:#555"} /#{params[:path]}
14 14 %div{:id => dom_id(@project)}
15 15 = render "commits"
16   -
17   -- remember_refs
... ...
app/views/projects/_tree.html.haml
... ... @@ -5,7 +5,7 @@
5 5  
6 6 .left.prepend-1
7 7 = form_tag tree_project_path(@project), :method => :get do
8   - = select_tag "tag", options_for_select(@project.tags, @branch), :onchange => "this.form.submit();", :class => "", :prompt => "Tags"
  8 + = select_tag "tag", options_for_select(@project.tags, @tag), :onchange => "this.form.submit();", :class => "", :prompt => "Tags"
9 9 = text_field_tag "ssh", @project.url_to_repo, :class => ["ssh_project_url","one_click_select"]
10 10 .clear
11 11  
... ... @@ -18,7 +18,7 @@
18 18 - if part_path.empty?
19 19 - part_path = part
20 20 \/
21   - = link_to truncate(part, :length => 40), tree_file_project_path(@project, :path => part_path, :commit_id => @commit.try(:id)), :remote => :true
  21 + = 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
22 22 #tree-content-holder
23 23 - if tree.is_a?(Grit::Blob)
24 24 = render :partial => "projects/tree_file", :locals => { :name => tree.name, :content => tree.data, :file => tree }
... ... @@ -36,7 +36,7 @@
36 36 %tr{ :class => "tree-item", :url => tree_file_project_path(@project, @commit.id, file) }
37 37 %td.tree-item-file-name
38 38 = image_tag "dir.png"
39   - = link_to "..", tree_file_project_path(@project, @commit.id, file), :remote => :true
  39 + = link_to "..", tree_file_project_path(@project, @commit.id, file, :branch => @branch, :tag => @tag), :remote => :true
40 40 %td
41 41 %td
42 42  
... ... @@ -45,9 +45,6 @@
45 45 - contents.select{ |i| i.is_a?(Grit::Blob)}.each do |content|
46 46 = render :partial => "projects/tree_item", :locals => { :content => content }
47 47  
48   -
49   -- remember_refs
50   -
51 48 :javascript
52 49 $(function(){
53 50 $('select#branch').selectmenu({style:'popup', width:200});
... ...
app/views/projects/_tree_item.html.haml
... ... @@ -7,7 +7,7 @@
7 7 = image_tag "txt.png"
8 8 - else
9 9 = image_tag "dir.png"
10   - = link_to truncate(content.name, :length => 40), tree_file_project_path(@project, @commit.id, file), :remote => :true
  10 + = link_to truncate(content.name, :length => 40), tree_file_project_path(@project, @commit.id, file, :branch => @branch, :tag => @tag), :remote => :true
11 11 %td
12 12 = time_ago_in_words(content_commit.committed_date)
13 13 ago
... ...