before_filter :check_database_availability
def new
- @title = 'new diary entry'
+ @title = 'New diary entry'
+
if params[:diary_entry]
@diary_entry = DiaryEntry.new(params[:diary_entry])
@diary_entry.user = @user
+
if @diary_entry.save
redirect_to :controller => 'diary_entry', :action => 'list', :display_name => @user.display_name
+ else
+ render :action => 'edit'
end
+ else
+ render :action => 'edit'
end
end
def edit
- @title= 'edit diary entry'
+ @title= 'Edit diary entry'
@diary_entry = DiaryEntry.find(params[:id])
+
if @user != @diary_entry.user
- redirect_to :controller => 'diary_entry', :action => 'view', :id => params[:id]
- end
- if params[:diary_entry]
+ redirect_to :controller => 'diary_entry', :action => 'view', :id => params[:id]
+ elsif params[:diary_entry]
@diary_entry.title = params[:diary_entry][:title]
@diary_entry.body = params[:diary_entry][:body]
@diary_entry.latitude = params[:diary_entry][:latitude]
@diary_entry.longitude = params[:diary_entry][:longitude]
+
if @diary_entry.save
redirect_to :controller => 'diary_entry', :action => 'view', :id => params[:id]
- end
+ end
end
end
render :action => 'view'
end
end
-
+
def list
if params[:display_name]
@this_user = User.find_by_display_name(params[:display_name])
+<h1><%= @title %></h1>
+
<%= error_messages_for 'diary_entry' %>
<% form_for :diary_entry do |f| %>
<% if @this_user %>
<% if @user == @this_user %>
- <%= link_to 'New diary post', :controller => 'diary_entry', :action => 'new', :display_name => @user.display_name %>
+ <%= link_to 'New diary entry', :controller => 'diary_entry', :action => 'new', :display_name => @user.display_name %>
<% end %>
<% else %>
<% if @user %>
- <%= link_to 'New diary post', :controller => 'diary_entry', :action => 'new', :display_name => @user.display_name %>
+ <%= link_to 'New diary entry', :controller => 'diary_entry', :action => 'new', :display_name => @user.display_name %>
<% end %>
<% end %>
+++ /dev/null
-<%= error_messages_for 'diary_entry' %>
-
-<% form_for :diary_entry do |f| %>
- <table>
- <tr valign="top">
- <th>Subject</th>
- <td><%= f.text_field :title, :size => 60 %></td>
- </tr>
- <tr valign="top">
- <th>Body</th>
- <td><%= f.text_area :body, :cols => 80 %></td>
- </tr>
- <tr valign="top">
- <th>Location</th>
- <td>
- <div id="map" style="border: 1px solid black; position: relative; width : 90%; height : 400px; display: none;"></div>
- <span class="location">Latitude: <%= f.text_field :latitude, :size => 20, :id => "latitude" %> Longitude: <%= f.text_field :longitude, :size => 20, :id => "longitude" %></span>
- <a href="javascript:openMap()" id="usemap">use map</a>
- </td>
- </tr>
- <tr>
- <th></th>
- <td><%= submit_tag 'Save' %></td>
- </tr>
- </table>
-<% end %>
-
-<% if @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') %>
-<% else %>
- <% lon = @user.home_lon %>
- <% lat = @user.home_lat %>
- <% zoom = '12' %>
-<% end %>
-
-<%= javascript_include_tag '/openlayers/OpenLayers.js' %>
-<%= javascript_include_tag '/openlayers/OpenStreetMap.js' %>
-<%= javascript_include_tag 'map.js' %>
-
-<script type="text/javascript">
- <!--
- var marker;
-
- 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);
-
- document.getElementById('latitude').value = lonlat.lat;
- document.getElementById('longitude').value = lonlat.lon;
-
- if (marker) {
- removeMarkerFromMap(marker);
- }
-
- marker = addMarkerToMap(lonlat, null, "Diary entry location");
- }
-
- function openMap() {
- $("map").style.display = "block";
- $("usemap").style.display = "none";
- }
-
- window.onload = init;
-// -->
-</script>
<div id="userinformation">
<% if @user and @this_user.id == @user.id %>
<%= link_to 'my diary', :controller => 'diary_entry', :action => 'list', :display_name => @user.display_name %>
-| <%= link_to 'new diary post', :controller => 'diary_entry', :action => 'new', :display_name => @user.display_name %>
+| <%= link_to 'new diary entry', :controller => 'diary_entry', :action => 'new', :display_name => @user.display_name %>
| <%= link_to 'my traces', :controller => 'trace', :action=>'mine' %>
| <%= link_to 'my settings', :controller => 'user', :action => 'account', :display_name => @user.display_name %>
<% else %>
map.connect '/user/:display_name/diary/:id', :controller => 'diary_entry', :action => 'view', :id => /\d+/
map.connect '/user/:display_name/diary/:id/newcomment', :controller => 'diary_entry', :action => 'comment', :id => /\d+/
map.connect '/user/:display_name/diary/rss', :controller => 'diary_entry', :action => 'rss'
- map.connect '/user/:display_name/diary/newpost', :controller => 'diary_entry', :action => 'new'
+ map.connect '/user/:display_name/diary/new', :controller => 'diary_entry', :action => 'new'
map.connect '/user/:display_name/diary/:id/edit', :controller => 'diary_entry', :action => 'edit', :id => /\d+/
map.connect '/user/:display_name/account', :controller => 'user', :action => 'account'
map.connect '/user/:display_name/set_home', :controller => 'user', :action => 'set_home'