lilfaf/cubbyhole

View on GitHub
app/controllers/folders_controller.rb

Summary

Maintainability
A
0 mins
Test Coverage
class FoldersController < ApplicationController
  before_filter :authenticate_user!

  def index
    @items = current_user.folders.roots + current_user.assets.roots
  end

  def show
    @folder = current_user.folders.find(params[:id])
    @items  = @folder.children + @folder.assets

    render :index
  end

  def new
    @parent = current_user.folders.find(params[:parent_id]) if params[:parent_id]
    @folder = Folder.new

    if request.xhr?
      render :new, layout: false
    else
      redirect_to folders_path
    end
  end

  def create
    @folder = current_user.folders.new(folder_params)

    respond_to do |format|
      if @folder.save
        format.html { redirect_to folders_path }
        format.js
      else
        format.json { render json: @folder.errors, status: :unprocessable_entity }
      end
    end
  end

  def destroy
    @folder = current_user.folders.find(params[:id])
    @folder.destroy
  end

  private

  def folder_params
    params.require(:folder).permit(:name, :parent_id)
  end
end