- user = User.find_by_display_name(params[:display_name])
- @entries = DiaryEntry.find(:all, :conditions => ['user_id = ?', user.id], :order => 'created_at DESC', :limit => 20)
- @title = "OpenStreetMap diary entries for #{user.display_name}"
- @description = "Recent OpenStreetmap diary entries from #{user.display_name}"
- @link = "http://www.openstreetmap.org/user/#{user.display_name}/diary"
+ user = User.active.find_by(:display_name => params[:display_name])
+
+ if user
+ @entries = user.diary_entries
+ @title = t("diary_entry.feed.user.title", :user => user.display_name)
+ @description = t("diary_entry.feed.user.description", :user => user.display_name)
+ @link = url_for :controller => "diary_entry", :action => "index", :display_name => user.display_name, :host => SERVER_URL, :protocol => SERVER_PROTOCOL
+ else
+ head :not_found
+ return
+ end
+ else
+ @entries = DiaryEntry.joins(:user).where(:users => { :status => %w[active confirmed] })
+
+ if params[:language]
+ @entries = @entries.where(:language_code => params[:language])
+ @title = t("diary_entry.feed.language.title", :language_name => Language.find(params[:language]).english_name)
+ @description = t("diary_entry.feed.language.description", :language_name => Language.find(params[:language]).english_name)
+ @link = url_for :controller => "diary_entry", :action => "index", :language => params[:language], :host => SERVER_URL, :protocol => SERVER_PROTOCOL
+ else
+ @title = t("diary_entry.feed.all.title")
+ @description = t("diary_entry.feed.all.description")
+ @link = url_for :controller => "diary_entry", :action => "index", :host => SERVER_URL, :protocol => SERVER_PROTOCOL
+ end
+ end
+
+ @entries = @entries.visible.includes(:user).order("created_at DESC").limit(20)
+ end
+
+ def show
+ @entry = @user.diary_entries.visible.where(:id => params[:id]).first
+ if @entry
+ @title = t "diary_entry.show.title", :user => params[:display_name], :title => @entry.title