class Admin::NeedCategoriesController < ApplicationController
  layout "admin"
  before_action :build_tree, only:[:new, :edit, :index]


  def index

  end

  def new
    @category = NeedCategory.new()

  end

  def create
    @category = NeedCategory.new(need_category_params)

    if @category.save
      flash[:notice] = "Catégorie créée avec succès."
      redirect_to admin_need_categories_path
    else
      @tree = NeedCategory::create_tree
      render "new"
    end
  end

  def edit
    @category = NeedCategory.find(params[:id])

  end

  def update
    @category = NeedCategory.find(params[:id])
    if @category.update_attributes(need_category_params)
      flash[:notice] = "Catégorie modifiée avec succès."
      redirect_to admin_need_categories_path
    else
      @tree = NeedCategory::create_tree
      render :action => "edit"
    end
  end

  def destroy
    @category = NeedCategory.find(params[:id])
    if @category.destroy
      flash[:notice] = "Catégorie supprimée avec succès."
    else
      flash[:error] = "Impossible de supprimer cette catégorie."
    end
    @tree = NeedCategory::create_tree
    render "index"
  end

  def need_category_params
    params.require(:need_category).permit!
  end

  private

  def build_tree

    @tree = NeedCategory::create_tree
  end

end
