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
},
:order => 'created_at DESC',
:per_page => 20)
+ elsif params[:friends]
+ if @user
+ @title = t 'diary_entry.list.title_friends'
+ @entry_pages, @entries = paginate(:diary_entries, :include => :user,
+ :conditions => {
+ :user_id => @user.friend_users,
+ :visible => true
+ },
+ :order => 'created_at DESC',
+ :per_page => 20)
+ else
+ require_user
+ return
+ end
+ elsif params[:nearby]
+ if @user
+ @title = t 'diary_entry.list.title_nearby'
+ @entry_pages, @entries = paginate(:diary_entries, :include => :user,
+ :conditions => {
+ :user_id => @user.nearby,
+ :visible => true
+ },
+ :order => 'created_at DESC',
+ :per_page => 20)
+ else
+ require_user
+ return
+ end
else
@title = t 'diary_entry.list.title'
@entry_pages, @entries = paginate(:diary_entries, :include => :user,
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