This repository has been archived on 2020-05-27. You can view files and clone it, but cannot push or open issues/pull-requests.
barleysodas/app/controllers/pages_controller.rb

105 lines
2.6 KiB
Ruby

class PagesController < ApplicationController
append_before_filter :fetch_model,
:only => [ :show, :edit, :update, :destroy ]
# GET /pages
# GET /pages.xml
def index
respond_to do |format|
format.html do
@page = Page.find_by_title_and_owner_type 'HomePage', nil
@page ||= Page.create :title => 'HomePage',
:redcloth => 'Welcome to BarleySodas!'
@content_title = 'The Beer Wiki'
@secondary_title = 'Browsing all pages'
cond_ary = [ 'owner_id IS NULL' ]
cond_ary << "title <> 'HomePage'"
@pages, @wiki_pages = paginate :page, :per_page => per_page,
:order => 'title ASC', :conditions => [ cond_ary.join(' AND ') ]
@tags = Page.tags(:limit => 25, :order => "name ASC")
end
format.rss do
@pages = Page.find :all, :order => 'updated_at DESC',
:limit => per_page, :conditions => [ 'owner_type IS NULL' ]
render :partial => 'pages'
end
end
end
# GET /pages/1
# GET /pages/1.xml
def show
respond_to do |format|
format.html # show.rhtml
format.xml { render :xml => @page.to_xml }
end
end
# GET /pages/new
def new
@page = Page.new
@page.title = params[:new_title] if params[:new_title]
end
# GET /pages/1;edit
def edit
end
# POST /pages
# POST /pages.xml
def create
@page = Page.new params[:page]
allow_page_discussions
respond_to do |format|
if @page.save
flash[:notice] = 'Page was successfully created.'
format.html { redirect_to page_url(@page) }
format.xml { head :created,
:location => page_url(@page) }
else
format.html { render :action => "new" }
format.xml { render :xml => @page.errors.to_xml }
end
end
end
# PUT /pages/1
# PUT /pages/1.xml
def update
@page.attributes = params[:page]
respond_to do |format|
if @page.save
flash[:notice] = 'Page was successfully updated.'
format.html {
if @page.title == 'HomePage'
redirect_to pages_url
else
redirect_to page_url(@page)
end
}
format.xml { head :ok }
else
format.html { render :action => "edit" }
format.xml { render :xml => @page.errors.to_xml }
end
end
end
# DELETE /pages/1
# DELETE /pages/1.xml
def destroy
@page.destroy
respond_to do |format|
format.html { redirect_to pages_url }
format.xml { head :ok }
end
end
##
# Redirects the user to a default location.
#
def default_action
redirect_to(pages_path)
end
end