]> git.openstreetmap.org Git - rails.git/blob - app/views/site/_potlatch.html.erb
Fix feedback loop between L.hash and popstate
[rails.git] / app / views / site / _potlatch.html.erb
1 <div id="map">
2   <div id="potlatch"><%= raw t 'site.edit.flash_player_required' %></div>
3 </div>
4
5 <%= javascript_include_tag 'swfobject.js' %>
6
7 <% session[:token] = @user.tokens.create.token unless session[:token] and UserToken.find_by_token(session[:token]) %>
8
9 <script type="text/javascript" defer="defer">
10   var changesaved=true;
11   var winie=false; if (document.all && window.print) { winie=true; }
12   
13   window.onbeforeunload=function() {
14     if (!changesaved) {
15       return '<%= escape_javascript(t('site.edit.potlatch_unsaved_changes')) %>';
16     }
17   }
18
19   function markChanged(a) { changesaved=a; }
20
21   function doSWF(lat,lon,sc) {
22     if (sc < 11) sc = 11;
23
24     var flashvars = {};
25     flashvars.winie = winie;
26     flashvars.scale = sc;
27     flashvars.token = '<%= session[:token] %>';
28     if (lat) { flashvars.lat = lat; }
29     if (lon) { flashvars.long = lon; }
30     <% if params['gpx']  %>flashvars.gpx = '<%= h(params['gpx']    ) %>';<% end %>
31     <% if params['way']  %>flashvars.way = '<%= h(params['way']    ) %>';<% end %>
32     <% if params['node'] %>flashvars.node = '<%= h(params['node']   ) %>';<% end %>
33     <% if params['tileurl'] %>flashvars.custombg = '<%= h(params['tileurl']) %>';<% end %>
34
35     var params = {};
36
37     var attributes = {};
38     attributes.id = "potlatch";
39     attributes.bgcolor = "#FFFFFF";
40
41     swfobject.embedSWF("<%= asset_path("/potlatch/potlatch.swf") %>", "potlatch", "100%", "100%", "6","<%= asset_path("expressInstall.swf") %>", flashvars, params, attributes);
42     // 700,600 for fixed size, 100%,100% for resizable
43   }
44
45   <% if @lat && @lon -%>
46   doSWF(<%= @lat %>,<%= @lon %>,16);
47   <% else -%>
48   var params = OSM.mapParams();
49   doSWF(params.lat, params.lon, params.zoom || 17);
50   <% end -%>
51
52   $(document).ready(function () {
53     $("body").on("click", "a.set_position", function () {
54       var data = $(this).data();
55
56       doSWF(data.lat, data.lon, data.zoom || 15);
57     });
58   });
59 </script>