X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/c3f73a80287b35a43ca15d83c9cb2b70606ce7c5..a9824dbc2e8763e6fff6f71db7a31cc4761cd245:/app/controllers/diary_entry_controller.rb diff --git a/app/controllers/diary_entry_controller.rb b/app/controllers/diary_entry_controller.rb index 2fd239a06..6666d6017 100644 --- a/app/controllers/diary_entry_controller.rb +++ b/app/controllers/diary_entry_controller.rb @@ -8,8 +8,9 @@ class DiaryEntryController < ApplicationController before_filter :check_database_writable, :only => [:new, :edit] before_filter :require_administrator, :only => [:hide, :hidecomment] - caches_action :list, :view, :layout => false + caches_action :list, :layout => false, :unless => :user_specific_list? caches_action :rss, :layout => true + caches_action :view, :layout => false cache_sweeper :diary_sweeper, :only => [:new, :edit, :comment, :hide, :hidecomment] def new @@ -83,10 +84,7 @@ class DiaryEntryController < ApplicationController :order => 'created_at DESC', :per_page => 20) else - @title = t'diary_entry.no_such_user.title' - @not_found_user = params[:display_name] - - render :action => 'no_such_user', :status => :not_found + render_unknown_user params[:display_name] end elsif params[:language] @title = t 'diary_entry.list.in_language_title', :language => Language.find(params[:language]).english_name @@ -177,9 +175,7 @@ class DiaryEntryController < ApplicationController render :action => 'no_such_entry', :status => :not_found end else - @not_found_user = params[:display_name] - - render :action => 'no_such_user', :status => :not_found + render_unknown_user params[:display_name] end end @@ -194,6 +190,20 @@ class DiaryEntryController < ApplicationController comment.update_attributes(:visible => false) redirect_to :action => "view", :display_name => comment.diary_entry.user.display_name, :id => comment.diary_entry.id end + + def comments + @this_user = User.active.find_by_display_name(params[:display_name]) + + if @this_user + @comment_pages, @comments = paginate(:diary_comments, + :conditions => { :user_id => @this_user }, + :order => 'created_at DESC', + :per_page => 20) + @page = (params[:page] || 1).to_i + else + render_unknown_user params[:display_name] + end + end private ## # require that the user is a administrator, or fill out a helpful error message @@ -204,4 +214,10 @@ private redirect_to :controller => 'diary_entry', :action => 'view', :display_name => params[:id] end end + + ## + # is this list user specific? + def user_specific_list? + params[:friends] or params[:nearby] + end end