module Ppa
class PaginasController < ApplicationController
	include ControllerConcern
	include PpaControllersConcern

	before_action :authenticate_usuario!
	before_action :autoriza_usuario!
	before_action :set_pagina, only: [:show, :edit, :update, :destroy]

	# GET /ppa/paginas
	def index
		@q = ppa_atual.paginas.order(:id).ransack(query_params)
		@paginas = @q.result(distinct: false).paginate(page: params[:page], per_page: 10)
	end

	# GET /ppa/paginas/1
	def show
	end

	# GET /ppa/paginas/new
	def new
		ppa = Ppa.find( ppa_atual.id )
		@pagina = ppa.paginas.new
	end

	# GET /ppa/paginas/1/edit
	def edit
	end

	# POST /ppa/paginas
	def create
		ppa = Ppa.find( ppa_atual.id )
		@pagina = ppa.paginas.new(pagina_params)

		if @pagina.save
			redirect_to @pagina, notice: 'Pagina foi criado(a) com sucesso.'
		else
			render :new
		end
	end

	# PATCH/PUT /ppa/paginas/1
	def update
		if @pagina.update( pagina_params )
			redirect_to @pagina, notice: 'Pagina foi atualizado(a) com sucesso.'
		else
			render :edit
		end
	end

	# DELETE /ppa/paginas/1
	def destroy
		mensagem = apaga_e_retorna_mensagem(@pagina)
		redirect_to ppa_paginas_path(ppa_atual), mensagem
	end

	private
	def set_pagina
		@pagina = Pagina.find( params[:id] )
	end

	# Permite apenas os parâmetros específicos
	def pagina_params
		params.require(:ppa_pagina).permit(:titulo, :texto_menu, :conteudo)

	end
end
end
