From 6b236ec95bc8072b0a839fecabb1412b76b8a7e2 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Mon, 25 Nov 2013 15:46:14 -0800 Subject: [PATCH 1/1] Fix feed link for pushState loaded history page --- app/assets/javascripts/index.js | 14 +++++++++++++- app/controllers/application_controller.rb | 2 +- app/views/changeset/history.html.erb | 4 ++-- app/views/layouts/_head.html.erb | 1 + app/views/layouts/xhr.html.erb | 2 ++ 5 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 app/views/layouts/xhr.html.erb diff --git a/app/assets/javascripts/index.js b/app/assets/javascripts/index.js index f90dca7bf..5ddd1bba1 100644 --- a/app/assets/javascripts/index.js +++ b/app/assets/javascripts/index.js @@ -42,10 +42,22 @@ clearTimeout(loaderTimeout); $('#flash').empty(); $('#sidebar_loader').hide(); - $('#sidebar_content').html(xhr.responseText); + + var content = $(xhr.responseText); + if (xhr.getResponseHeader('X-Page-Title')) { document.title = xhr.getResponseHeader('X-Page-Title'); } + + $('head') + .find('link[type="application/atom+xml"]') + .remove(); + + $('head') + .append(content.filter('link[type="application/atom+xml"]')); + + $('#sidebar_content').html(content.not('link[type="application/atom+xml"]')); + if (callback) { callback(); } diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 67e25c6a7..7754f72fd 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -419,7 +419,7 @@ class ApplicationController < ActionController::Base end def map_layout - request.xhr? ? false : 'map' + request.xhr? ? 'xhr' : 'map' end def preferred_editor diff --git a/app/views/changeset/history.html.erb b/app/views/changeset/history.html.erb index 8aac76b75..77118b4b4 100644 --- a/app/views/changeset/history.html.erb +++ b/app/views/changeset/history.html.erb @@ -1,6 +1,6 @@ -<% content_for :head do -%> +<% content_for :auto_discovery_link_tag do -%> <% unless params[:friends] or params[:nearby] -%> - <%= auto_discovery_link_tag :atom, params.merge({ :max_id => nil, :action => :feed }) %> + <%= auto_discovery_link_tag :atom, params.merge(:max_id => nil, :xhr => nil, :action => :feed) %> <% end -%> <% end -%> diff --git a/app/views/layouts/_head.html.erb b/app/views/layouts/_head.html.erb index 9e603abab..13f707081 100644 --- a/app/views/layouts/_head.html.erb +++ b/app/views/layouts/_head.html.erb @@ -26,6 +26,7 @@ <% end -%> <%= style_rules %> <%= yield :head %> + <%= yield :auto_discovery_link_tag %> <%= csrf_meta_tag %>