OSDN Git Service

branch/tag remember - to session instead of cookie
authorgitlabhq <m@gitlabhq.com>
Fri, 14 Oct 2011 15:33:05 +0000 (18:33 +0300)
committergitlabhq <m@gitlabhq.com>
Fri, 14 Oct 2011 15:33:05 +0000 (18:33 +0300)
app/controllers/application_controller.rb
app/helpers/projects_helper.rb
app/views/commits/index.html.haml
app/views/projects/_tree.html.haml

index 783648f..8d30876 100644 (file)
@@ -43,11 +43,14 @@ class ApplicationController < ActionController::Base
   end
 
   def refs_from_cookie
-    # branch is high priority so we should reset
-    # it if tag selected
-    cookies[:branch] = nil if params[:tag]
-
-    params[:branch] ||= cookies[:branch]
-    params[:tag] ||= cookies[:tag]
+    if @project && session[:ui] && 
+      session[:ui][@project.id]
+      project_session = session[:ui][@project.id]
+      project_session[:branch] = nil if params[:tag]
+      params[:branch] ||= project_session[:branch]
+      params[:tag] ||= project_session[:tag]
+    end
+  rescue 
+    session[:ui] = nil
   end
 end
index d570dff..5dae0c3 100644 (file)
@@ -3,4 +3,12 @@ module ProjectsHelper
     cookies["project_view"] ||= "tile"
     cookies["project_view"] == type ? nil : "display:none"
   end
+
+  def remember_refs
+    session[:ui] ||= {}
+    session[:ui][@project.id] = { 
+      :branch => params[:branch],
+      :tag => params[:tag]
+    }
+  end
 end
index f7e8b08..2d18486 100644 (file)
@@ -14,9 +14,4 @@
   %div{:id => dom_id(@project)}
     = render "commits"
 
-
-:javascript
-  $(function(){
-    $.cookie('branch', '#{params[:branch]}', { expires: 1 });
-    $.cookie('tag', '#{params[:tag]}', { expires: 1 });
-  });
+- remember_refs
index d84599a..4d7e3d7 100644 (file)
         = render :partial => "projects/tree_item", :locals => { :content => content }
 
 
-:javascript
-  $(function(){
-    $.cookie('branch', '#{params[:branch]}', { expires: 1 });
-    $.cookie('tag', '#{params[:tag]}', { expires: 1 });
-  });
+- remember_refs
 
 :javascript
   $(function(){