# -*- encoding : utf-8 -*-
class Portlet::BlockContentsController < ApplicationController
  layout "admin"

  def new
    @block_content = BlockContent.new(:nbr_columns => 1)

    respond_to do |format|
      format.html {
        if request.xhr?
          render :layout => false
        end
      }
      format.js { render :template => "portlet/shared/new" }
    end
  end

  def create
    @block_content = BlockContent.new(params.require(:block_content).permit!)

    respond_to do |format|
      if @block_content.save
        @block_content.nbr_columns.times do 
          @block = Block.new(:block_name => "")
          @block.blockable = @block_content
          @block.save
        end
        
        @portlet = Portlet.create(:position => params[:position], :block_id => params[:block_id], :content => @block_content)
        
        
        if @portlet.block and @portlet.block.blockable
          @portlet.block.blockable.updated_at = Time.now
          @portlet.block.blockable.save
          
        end
        
        
        
        format.html { redirect_to([:admin, @portlet.block.blockable], :notice => 'Elément ajouté avec succès.') }
        format.js { render :template => "portlet/shared/create" }
      else
        format.html { render :action => "new" }
        format.js { render :template => "portlet/shared/new" }
      end
    end
  end

  def edit
    @block_content = BlockContent.find(params[:id])
    @portlet = Portlet.find(params[:portlet_id])
    respond_to do |format|
      format.html {
        if request.xhr?
          render :template => "portlet/shared/edit", :layout => false
        end
      }
      format.js { render :template => "portlet/shared/edit" }
    end
  end
  
  



  def show


  end

  def update
    @block_content = BlockContent.find(params[:id])
    @portlet = @block_content.portlet
    
    respond_to do |format|
          if @block_content.update_attributes(params.require(:block_content).permit!)
        if @portlet.block and @portlet.block.blockable
          @portlet.block.blockable.updated_at = Time.now
          @portlet.block.blockable.save
        
        end
    
            format.html { redirect_to([:admin, @portlet.block.blockable], :notice => 'Titre mis à jour.') }
        format.js { render :template => "portlet/shared/update" }
          else
            format.html { render :action => "portlet/shared/edit" } 
        format.js { render :template => "portlet/shared/edit" }
          end

    end
  end

  def destroy
    @portlet = Portlet.find(params[:portlet_id])
    @block_content = BlockContent.find(params[:id])
    @block_content.destroy
    
    if @portlet.block and @portlet.block.blockable
      @portlet.block.blockable.updated_at = Time.now
      @portlet.block.blockable.save
    
    end
    
    respond_to do |format|
      format.html {}
      format.js { render :template => "portlet/shared/destroy" }
    end
  end

 
end