diaspora/app/controllers/aspects_controller.rb
2010-09-13 10:43:15 -07:00

70 lines
1.8 KiB
Ruby

class AspectsController < ApplicationController
before_filter :authenticate_user!
respond_to :html
respond_to :json, :only => :show
def index
@posts = current_user.visible_posts(:by_members_of => :all).paginate :page => params[:page], :per_page => 15, :order => 'created_at DESC'
@aspect = :all
end
def create
@aspect = current_user.aspect params[:aspect]
respond_with @aspect
end
def new
@aspect = Aspect.new
end
def destroy
@aspect = Aspect.find_by_id params[:id]
@aspect.destroy
respond_with :location => aspects_url
end
def show
@aspect = Aspect.find_by_id params[:id]
@friends = @aspect.people
@posts = current_user.visible_posts( :by_members_of => @aspect ).paginate :per_page => 15, :order => 'created_at DESC'
respond_with @aspect
end
def edit
@aspects = current_user.aspects
@remote_requests = Request.for_user current_user
end
def update
@aspect = Aspect.find_by_id(params[:id])
@aspect.update_attributes(params[:aspect])
respond_with @aspect
end
def move_friends
params[:moves].each{ |move|
move = move[1]
unless current_user.move_friend(move)
flash[:error] = "Aspect editing failed for friend #{Person.find_by_id( move[:friend_id] ).real_name}."
redirect_to Aspect.first, :action => "edit"
return
end
}
flash[:notice] = "Aspects edited successfully."
redirect_to Aspect.first, :action => "edit"
end
def move_friend
unless current_user.move_friend( :friend_id => params[:friend_id], :from => params[:from], :to => params[:to][:to])
flash[:error] = "didn't work #{params.inspect}"
end
if aspect = Aspect.first(:id => params[:to][:to])
redirect_to aspect
else
redirect_to Person.first(:id => params[:friend_id])
end
end
end