Commit f80745b7dbcfa6aa41a37b34ec5a9e461231f7d6

Authored by Dmitriy Zaporozhets
1 parent 321dbb7b

Handle back & forward events

app/assets/javascripts/application.js
... ... @@ -50,9 +50,17 @@ $(document).ready(function(){
50 50 e.preventDefault();
51 51 }
52 52 });
53   -
54 53 });
55 54  
  55 +if (history && history.pushState) {
  56 + $(function() {
  57 + $(window).bind("popstate", function() {
  58 + $.getScript(location.href);
  59 + });
  60 +
  61 + });
  62 +}
  63 +
56 64 function focusSearch() {
57 65 $("#search").focus();
58 66 }
... ...
app/controllers/dashboard_controller.rb
... ... @@ -7,7 +7,7 @@ class DashboardController < ApplicationController
7 7  
8 8 respond_to do |format|
9 9 format.html
10   - format.js { no_cache_headers }
  10 + format.js
11 11 end
12 12 end
13 13  
... ... @@ -18,7 +18,7 @@ class DashboardController < ApplicationController
18 18  
19 19 respond_to do |format|
20 20 format.html
21   - format.js { no_cache_headers }
  21 + format.js
22 22 end
23 23 end
24 24  
... ... @@ -32,7 +32,7 @@ class DashboardController < ApplicationController
32 32  
33 33 respond_to do |format|
34 34 format.html
35   - format.js { no_cache_headers }
  35 + format.js
36 36 format.atom { render :layout => false }
37 37 end
38 38 end
... ...
app/controllers/refs_controller.rb
... ... @@ -26,10 +26,7 @@ class RefsController < ApplicationController
26 26 def tree
27 27 respond_to do |format|
28 28 format.html
29   - format.js do
30   - # disable cache to allow back button works
31   - no_cache_headers
32   - end
  29 + format.js
33 30 end
34 31 rescue
35 32 return render_404
... ...
app/views/refs/_tree.html.haml
... ... @@ -49,11 +49,3 @@
49 49 $('select#branch').selectmenu({style:'popup', width:200});
50 50 $('select#tag').selectmenu({style:'popup', width:200});
51 51 });
52   -
53   -- if params[:path] && request.xhr?
54   - :javascript
55   - $(window).unbind('popstate');
56   - $(window).bind('popstate', function() {
57   - if(location.pathname.search("tree") != -1) {
58   - $.ajax({type: "GET", url: location.pathname, dataType: "script"})}
59   - else { location.href = location.pathname;}});
... ...