Sha256: 4cfb12e8624bd1a1082cb72078f5c3403bd92746c3512cea04ed4062df0585cf

Contents?: true

Size: 1.73 KB

Versions: 4

Compression:

Stored size: 1.73 KB

Contents

module Newsletter
  class PiecesController < ::Newsletter::ApplicationController
    layout 'admin'
    before_filter :find_piece, :except => [:new,:create,:index]
    before_filter :find_newsletter
    before_filter :find_element
    before_filter :find_area

    def index
      @pieces = @newsletter.pieces.active
    end

    def show
    end

    def new
      @piece = Piece.new({
        :area_id => @area.id,
        :element_id => @element.id,
        :newsletter_id => @newsletter.id
      })
    end

    def edit
    end

    def create
      @piece = Piece.new(params[:piece])
      if @piece.save
        flash[:notice] = 'Piece was successfully created.'
        redirect_to(edit_newsletter_path(@newsletter))
      else
        render :action => "new"
      end
    end

    def update
      if @piece.update_attributes(params[:piece])
        flash[:notice] = 'Piece was successfully updated.'
        redirect_to(edit_newsletter_path(@newsletter))
      else
        render :action => "edit"
      end
    end

    def destroy
      @piece.destroy
      redirect_to(newsletter_path(@newsletter,:editor=>1))
    end
  
    protected 
  
    def find_piece 
      @piece = Piece.find_by_id(params[:id])
    end
  
    def find_newsletter
      return @newsletter = @piece.newsletter unless @piece.nil?
      @newsletter = ::Newsletter::Newsletter.find(params[:newsletter_id] || params[:piece][:newsletter_id])
    end
  
    def find_element
      return @element = @piece.element unless @piece.nil?
      @element = Element.find(params[:element_id] || params[:piece][:element_id])
    end
  
    def find_area
      return @area = @piece.area unless @piece.nil?
      @area = Area.find(params[:area_id] || params[:piece][:area_id])
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
newsletter-0.1.2 app/controllers/newsletter/pieces_controller.rb
newsletter-0.1.1 app/controllers/newsletter/pieces_controller.rb
newsletter-0.1.0 app/controllers/newsletter/pieces_controller.rb
newsletter-0.0.1 app/controllers/newsletter/pieces_controller.rb