104 lines
2.7 KiB
Ruby
104 lines
2.7 KiB
Ruby
class PeoplesController < ApplicationController
|
|
append_before_filter :fetch_people_and_page, :only => [ :show, :edit,
|
|
:update, :destroy ]
|
|
|
|
# GET /peoples
|
|
# GET /peoples.xml
|
|
def index
|
|
@secondary_title = 'Browsing all Peoples'
|
|
@pages, @peoples = paginate :people, :per_page => 25, :order => 'title ASC',
|
|
:singular_name => 'people'
|
|
@tags = Page.tags(:limit => 25, :order => "name DESC",
|
|
:owner_type => 'People')
|
|
respond_to do |format|
|
|
format.html # index.rhtml
|
|
format.xml { render :xml => @people.to_xml }
|
|
end
|
|
end
|
|
|
|
# GET /peoples/1
|
|
# GET /peoples/1.xml
|
|
def show
|
|
@secondary_title = 'Detailed Information'
|
|
respond_to do |format|
|
|
format.html # show.rhtml
|
|
format.xml { render :xml => @people.to_xml }
|
|
end
|
|
end
|
|
|
|
# GET /peoples/new
|
|
def new
|
|
@secondary_title = 'Sign up for BarleySodas!'
|
|
@people = People.new
|
|
@page = Page.new
|
|
end
|
|
|
|
# GET /peoples/1;edit
|
|
def edit
|
|
end
|
|
|
|
# POST /peoples
|
|
# POST /peoples.xml
|
|
def create
|
|
@people = People.new(params[:people])
|
|
set_people_role
|
|
@page = Page.new(params[:page])
|
|
@people.page = @page
|
|
respond_to do |format|
|
|
if @people.save
|
|
flash[:notice] = 'People was successfully created.'
|
|
format.html { redirect_to people_url(@people.page.title_for_url) }
|
|
format.xml { head :created,
|
|
:location => people_url(@people.page.title_for_url) }
|
|
else
|
|
format.html { render :action => "new" }
|
|
format.xml { render :xml => @people.errors.to_xml }
|
|
end
|
|
end
|
|
end
|
|
|
|
# PUT /peoples/1
|
|
# PUT /peoples/1.xml
|
|
def update
|
|
@people.attributes = params[:people]
|
|
set_people_role
|
|
@page.attributes = params[:page]
|
|
respond_to do |format|
|
|
if @people.update_attributes(params[:people])
|
|
flash[:notice] = 'People was successfully updated.'
|
|
format.html { redirect_to people_url(@people.page.title_for_url) }
|
|
format.xml { head :ok }
|
|
else
|
|
format.html { render :action => "edit" }
|
|
format.xml { render :xml => @people.errors.to_xml }
|
|
end
|
|
end
|
|
end
|
|
|
|
# DELETE /peoples/1
|
|
# DELETE /peoples/1.xml
|
|
def destroy
|
|
@people.destroy
|
|
respond_to do |format|
|
|
format.html { redirect_to peoples_url }
|
|
format.xml { head :ok }
|
|
end
|
|
end
|
|
|
|
protected
|
|
|
|
def fetch_people_and_page
|
|
@people = People.find_by_title(Page.title_from_url(params[:id]),
|
|
:include => [ 'page' ])
|
|
raise ActiveRecord::RecordNotFound.new if @people.nil?
|
|
@page = @people.page
|
|
end
|
|
|
|
def set_people_role
|
|
# set checks here for valid role assignment
|
|
if params[:people] and params[:people][:role_id]
|
|
@people.role_id = params[:people][:role_id]
|
|
end
|
|
end
|
|
end
|