Sha256: e676961a162d90866dd053a3bfc651e835fee3569745389b1b71e3acf22fb53c

Contents?: true

Size: 1.65 KB

Versions: 1

Compression:

Stored size: 1.65 KB

Contents

class User::ProjectsController < User::BaseController
  before_action :set_project, only: [:show, :update, :destroy]
  before_action :require_admin_access, only: [:update, :destroy]

  def index
    @projects = current_user.projects#.page(params[:page])
    render "shared/projects/index"
  end

  def new
    @project = Project.new
    render "shared/projects/new"
  end

  def create
    @project = ProjectCreator.create(
      current_user, project_params[:name],
      project_params[:location],
      project_params[:description]
    )

    if @project.persisted?
      redirect_to project_finishes_path(@project),
        notice: "Project successfully created."
    else
      render "shared/projects/new"
    end
  end

  def show
    redirect_to project_finishes_path(@project)
  end

  def edit
    set_project_categories_and_areas
    render "shared/projects/edit"
  end

  def update
    set_project_categories_and_areas
    if @project.update_attributes project_params
      redirect_to project_finishes_path(@project),
        notice: "Project successfully created."
    else
      render "shared/projects/edit"
    end
  end

  def destroy
    if @project.destroy
      redirect_to projects_path, notice: "Project successfully removed."
    else
      redirect_to project_finishes_path(@project),
        alert: "Unable to remove project."
    end
  end

  private

  def project_params
    params.require(:project).permit(:name, :location, :description)
  end

  def set_project
    @project ||= current_user.projects.find params[:id]
  end

  def set_project_categories_and_areas
    @categories ||= set_project.categories
    @areas      ||= set_project.areas
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
self_systeem-0.1.0 test/dummy_app/app/controllers/user/projects_controller.rb