From d7b4f88d5e342b5c2b4f2435d0394e4286524678 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Wed, 1 Mar 2017 21:19:32 +0000 Subject: [PATCH] Remove inline javascript from page header --- app/assets/javascripts/application.js | 20 ++++++++++++++++++++ app/assets/javascripts/oauth.js | 12 +++++++----- app/assets/javascripts/osm.js.erb | 1 + app/helpers/application_helper.rb | 26 ++++++++++++++++++++++++++ app/views/layouts/_head.html.erb | 25 ++----------------------- 5 files changed, 56 insertions(+), 28 deletions(-) diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 5064d115b..7d5b99f60 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -115,4 +115,24 @@ $(document).ready(function () { $("nav.primary li a").on("click", function() { $("header").toggleClass("closed"); }); + + var application_data = $("head").data(); + + I18n.default_locale = OSM.DEFAULT_LOCALE; + I18n.locale = application_data.locale; + I18n.fallbacks = true; + + OSM.preferred_editor = application_data.preferredEditor; + + if (application_data.user) { + OSM.user = application_data.user; + + if (application_data.userHome) { + OSM.home = application_data.userHome; + } + } + + if (application_data.location) { + OSM.location = application_data.location; + } }); diff --git a/app/assets/javascripts/oauth.js b/app/assets/javascripts/oauth.js index 98ce302e1..037e1d730 100644 --- a/app/assets/javascripts/oauth.js +++ b/app/assets/javascripts/oauth.js @@ -1,18 +1,20 @@ //= require ohauth $(document).ready(function () { + var application_data = $("head").data(); + function makeAbsolute(url) { var a = document.createElement('a'); a.href = url; return a.href; } - if (OSM.oauth_token) { + if (application_data.token) { var headerGenerator = window.ohauth.headerGenerator({ - consumer_key: OSM.oauth_consumer_key, - consumer_secret: OSM.oauth_consumer_secret, - token: OSM.oauth_token, - token_secret: OSM.oauth_token_secret + consumer_key: application_data.consumerKey, + consumer_secret: application_data.consumerSecret, + token: application_data.token, + token_secret: application_data.tokenSecret }); $.ajaxPrefilter(function(options, jqxhr) { diff --git a/app/assets/javascripts/osm.js.erb b/app/assets/javascripts/osm.js.erb index 697017697..ee1c6a115 100644 --- a/app/assets/javascripts/osm.js.erb +++ b/app/assets/javascripts/osm.js.erb @@ -16,6 +16,7 @@ OSM = { MAPQUEST_DIRECTIONS_URL: <%= MAPQUEST_DIRECTIONS_URL.to_json %>, MAPZEN_VALHALLA_URL: <%= MAPZEN_VALHALLA_URL.to_json %>, OSRM_URL: <%= OSRM_URL.to_json %>, + DEFAULT_LOCALE: <%= I18n.default_locale.to_json %>, <% if defined?(MAPQUEST_KEY) %> MAPQUEST_KEY: <%= MAPQUEST_KEY.to_json %>, diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 329aa25e8..3d0a97243 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -100,4 +100,30 @@ module ApplicationHelper def current_page_class(path) :current if current_page?(path) end + + def application_data + data = { + :locale => I18n.locale, + :preferred_editor => preferred_editor + } + + if @user + data[:user] = @user.id.to_json + + unless @user.home_lon.nil? || @user.home_lat.nil? + data[:user_home] = { :lat => @user.home_lat, :lon => @user.home_lon } + end + end + + data[:location] = session[:location] if session[:location] + + if @oauth + data[:token] = @oauth.token + data[:token_secret] = @oauth.secret + data[:consumer_key] = @oauth.client_application.key + data[:consumer_secret] = @oauth.client_application.secret + end + + data + end end diff --git a/app/views/layouts/_head.html.erb b/app/views/layouts/_head.html.erb index 8830a8692..ad91b01d1 100644 --- a/app/views/layouts/_head.html.erb +++ b/app/views/layouts/_head.html.erb @@ -1,4 +1,4 @@ - +<%= content_tag :head, :data => application_data do %> @@ -35,26 +35,5 @@ <%= yield :head %> <%= yield :auto_discovery_link_tag %> <%= csrf_meta_tag %> - <%= t 'layouts.project_name.title' %><%= ' | ' + @title if @title %> - +<% end %> -- 2.43.2