]> git.openstreetmap.org Git - rails.git/blobdiff - app/views/diary_entry/edit.html.erb
Change abstraction level for map functions
[rails.git] / app / views / diary_entry / edit.html.erb
index 46d10790773e16c5b2521b11f92e7f198c8ad896..f6273a828a849b0dc3d77fafbe167ee80538b56b 100644 (file)
@@ -2,8 +2,8 @@
 
 <%= error_messages_for 'diary_entry' %>
 
 
 <%= error_messages_for 'diary_entry' %>
 
-<% form_for :diary_entry do |f| %>
-  <table>
+<%= form_for :diary_entry do |f| %>
+  <table class="diary_entry">
     <tr valign="top">
       <td class="fieldName"><%= t 'diary_entry.edit.subject' -%></td>
       <td><%= f.text_field :title, :size => 60 %></td>
     <tr valign="top">
       <td class="fieldName"><%= t 'diary_entry.edit.subject' -%></td>
       <td><%= f.text_field :title, :size => 60 %></td>
     </tr>
     <tr valign="top">
       <td class="fieldName"><%= t 'diary_entry.edit.language' -%></td>
     </tr>
     <tr valign="top">
       <td class="fieldName"><%= t 'diary_entry.edit.language' -%></td>
-      <td><%= f.collection_select :language_code, Language.find(:all, :order => :english_name), :code, :name %></td>
+      <td><%= f.collection_select :language_code, Language.order(:english_name), :code, :name %></td>
     </tr>
     <tr valign="top">
       <td class="fieldName"><%= t 'diary_entry.edit.location' -%></td>
       <td>
     </tr>
     <tr valign="top">
       <td class="fieldName"><%= t 'diary_entry.edit.location' -%></td>
       <td>
-        <div id="map" style="border: 1px solid black; position: relative; width : 90%; height : 400px; display: none;"></div>
+        <div id="map"></div>
         <span class="location"><%= t 'diary_entry.edit.latitude' -%> <%= f.text_field :latitude, :size => 20, :id => "latitude" %> <%= t 'diary_entry.edit.longitude' -%> <%= f.text_field :longitude, :size => 20, :id => "longitude" %></span>
         <a href="javascript:openMap()" id="usemap"><%= t 'diary_entry.edit.use_map_link' -%></a>
         <br/><br/>
         <span class="location"><%= t 'diary_entry.edit.latitude' -%> <%= f.text_field :latitude, :size => 20, :id => "latitude" %> <%= t 'diary_entry.edit.longitude' -%> <%= f.text_field :longitude, :size => 20, :id => "longitude" %></span>
         <a href="javascript:openMap()" id="usemap"><%= t 'diary_entry.edit.use_map_link' -%></a>
         <br/><br/>
     <tr>
       <td></td>
       <td>
     <tr>
       <td></td>
       <td>
-         <%= submit_tag t('diary_entry.edit.save_button') %>
-         <%# TODO: button should say 'publish' or 'save changes' depending on new/edit state %>
+        <%= submit_tag t('diary_entry.edit.save_button') %>
+        <%# TODO: button should say 'publish' or 'save changes' depending on new/edit state %>
       </td>
     </tr>
   </table>
 <% end %>
 
       </td>
     </tr>
   </table>
 <% end %>
 
-<% if @user.home_lat.nil? or @user.home_lon.nil? %>
+<% if @diary_entry.latitude and @diary_entry.longitude %>
+  <% lon = @diary_entry.longitude %>
+  <% lat = @diary_entry.latitude %>
+  <% zoom = '12' %>
+<% elsif @user.home_lat.nil? or @user.home_lon.nil? %>
   <% lon = h(params['lon'] || '-0.1') %>
   <% lat = h(params['lat'] || '51.5') %>
   <% zoom = h(params['zoom'] || '4') %> 
   <% lon = h(params['lon'] || '-0.1') %>
   <% lat = h(params['lat'] || '51.5') %>
   <% zoom = h(params['zoom'] || '4') %> 
@@ -45,8 +49,7 @@
   <% zoom = '12' %>
 <% end %>
 
   <% zoom = '12' %>
 <% end %>
 
-<%= javascript_include_tag '/openlayers/OpenLayers.js' %>
-<%= javascript_include_tag '/openlayers/OpenStreetMap.js' %>
+<%= javascript_include_tag 'openlayers.js' %>
 <%= javascript_include_tag 'map.js' %>
 
 <script type="text/javascript">
 <%= javascript_include_tag 'map.js' %>
 
 <script type="text/javascript">
 
   OpenLayers.Lang.setCode("<%= I18n.locale.to_s %>");
 
 
   OpenLayers.Lang.setCode("<%= I18n.locale.to_s %>");
 
-  function init() {
-    var centre = new OpenLayers.LonLat(<%= lon %>, <%= lat %>);
-    var zoom = <%= zoom %>;
-
-    var map = createMap("map");
-
-    setMapCenter(centre, zoom);
-
-    map.events.register("click", map, setLocation);
-  }        
-
   function setLocation( e ) { 
     closeMapPopup();
 
     var lonlat = getEventPosition(e);
 
   function setLocation( e ) { 
     closeMapPopup();
 
     var lonlat = getEventPosition(e);
 
-    document.getElementById('latitude').value = lonlat.lat;
-    document.getElementById('longitude').value = lonlat.lon;
+    $("#latitude").val(lonlat.lat);
+    $("#longitude").val(lonlat.lon);
 
     if (marker) {
       removeMarkerFromMap(marker);
 
     if (marker) {
       removeMarkerFromMap(marker);
   }
 
   function openMap() {
   }
 
   function openMap() {
-    $("map").style.display = "block";
-    $("usemap").style.display = "none";
-  }
+    $("#map").show();
+    $("#usemap").hide();
 
 
-  window.onload = init;
+    var centre = new OpenLayers.LonLat(<%= lon %>, <%= lat %>);
+    var zoom = <%= zoom %>;
+
+    var map = createMap("map");
+
+    setMapCenter(centre, zoom);
+
+    <% if @diary_entry.latitude and @diary_entry.longitude %>
+    marker = addMarkerToMap(centre, null, "<%= t 'diary_entry.edit.marker_text' -%>");
+    <% end %>
+
+    map.events.register("click", map, setLocation);
+  }
 // -->
 </script>
 // -->
 </script>