merged/app/controllers/merged/pages_controller.rb

66 lines
1.7 KiB
Ruby

module Merged
class PagesController < MergedController
before_action :set_page, only: %i[ update destroy show ]
def index
@pages = Page.all
if(! params[:type].blank?)
@pages = @pages.where(type: params[:type])
end
@page_styles = PageStyle.all
end
def show
end
def update
if( !params[:name].blank? && (params[:name] != @page.name))
@page.set_name params[:name]
@page.edit_save(current_member_email)
message = "Page renamed"
end
options = params[:option]
if options
@page.option_definitions.each do |option|
@page.set_option(option.name, options[option.name])
end
@page.edit_save(current_member_email)
message = "Options saved"
end
redirect_to page_url(@page) , notice: message
end
def create
name = params[:name]
if( name.blank? )
flash.alert = "Must enter name"
redirect_to pages_url
else
@page = Page.new_page(name , params[:type])
@page.add_save(current_member_email)
template = PageStyle.find_by_type(@page.type).section_template
if(template)
section = @page.new_section(template)
section.add_save(current_member_email)
redirect_to section_url(section.id) , notice: "Page was successfully created."
else
redirect_to new_page_section_url(@page.id) , notice: "Page was successfully created. Choose first section"
end
end
end
def destroy
@page.delete_save!(current_member_email)
redirect_to pages_url, notice: "Page #{@page.name} was removed."
end
private
def set_page
@page = Page.find(params[:id])
end
end
end