diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 023c48d5..04d4f0bc 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -50,17 +50,9 @@ $(document).ready(function(){ e.preventDefault(); } }); + }); -if (history && history.pushState) { - $(function() { - $(window).bind("popstate", function() { - $.getScript(location.href); - }); - - }); -} - function focusSearch() { $("#search").focus(); } diff --git a/app/controllers/dashboard_controller.rb b/app/controllers/dashboard_controller.rb index b35cb836..39c70648 100644 --- a/app/controllers/dashboard_controller.rb +++ b/app/controllers/dashboard_controller.rb @@ -7,7 +7,7 @@ class DashboardController < ApplicationController respond_to do |format| format.html - format.js + format.js { no_cache_headers } end end @@ -18,7 +18,7 @@ class DashboardController < ApplicationController respond_to do |format| format.html - format.js + format.js { no_cache_headers } end end @@ -32,7 +32,7 @@ class DashboardController < ApplicationController respond_to do |format| format.html - format.js + format.js { no_cache_headers } format.atom { render :layout => false } end end diff --git a/app/controllers/refs_controller.rb b/app/controllers/refs_controller.rb index 1064f53e..d2be5ad5 100644 --- a/app/controllers/refs_controller.rb +++ b/app/controllers/refs_controller.rb @@ -26,7 +26,10 @@ class RefsController < ApplicationController def tree respond_to do |format| format.html - format.js + format.js do + # disable cache to allow back button works + no_cache_headers + end end rescue return render_404 diff --git a/app/views/refs/_tree.html.haml b/app/views/refs/_tree.html.haml index 3a07168a..07bab212 100644 --- a/app/views/refs/_tree.html.haml +++ b/app/views/refs/_tree.html.haml @@ -49,3 +49,11 @@ $('select#branch').selectmenu({style:'popup', width:200}); $('select#tag').selectmenu({style:'popup', width:200}); }); + +- if params[:path] && request.xhr? + :javascript + $(window).unbind('popstate'); + $(window).bind('popstate', function() { + if(location.pathname.search("tree") != -1) { + $.ajax({type: "GET", url: location.pathname, dataType: "script"})} + else { location.href = location.pathname;}});