Sha256: 667f9e4dc040869f48f5205bf2d7caa6d9371e933d8d0c3e420a1ce161ad572b

Contents?: true

Size: 1.28 KB

Versions: 8

Compression:

Stored size: 1.28 KB

Contents

# frozen_string_literal: true
require_dependency 'c/admin_controller'

module C
  class Admin::BlogsController < AdminController
    before_action :load_from_url, only: [:edit, :update, :destroy]
    load_and_authorize_resource class: C::Blog

    def index
      @blogs = filter_and_paginate(@blogs, 'created_at desc')
    end

    def create
      @blog = C::Blog.new(blog_params)
      if @blog.save
        redirect_to blogs_path
      else
        render :new
      end
    end

    def update
      if params[:commit] == 'upload'
        @blog.assign_attributes(new_image_params)
        render :edit
      elsif @blog.update(blog_params)
        redirect_to blogs_path
      else
        render :edit
      end
    end

    def destroy
      @blog.destroy
      respond_to do |format|
        format.js
        format.html { redirect_to pages_path }
      end
    end

    private

    def load_from_url
      @blog = C::Blog.get_from_url(params[:id])
    end

    def new_image_params
      params.require(:blog).permit(new_images: [], images_attributes: [:id, :_destroy, :alt, :caption])
    end

    def blog_params
      params.require(:blog).permit(
        :name, :body, :published, :url_alias, C::Blog::IMAGEABLE_ATTRIBUTES, C::Blog::PAGE_INFO_ATTRIBUTES, new_images: []
      )
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
cd2_catton_cms-1.1.35 app/controllers/c/admin/blogs_controller.rb
cd2_catton_cms-1.1.34 app/controllers/c/admin/blogs_controller.rb
cd2_catton_cms-1.1.33 app/controllers/c/admin/blogs_controller.rb
cd2_catton_cms-1.1.32 app/controllers/c/admin/blogs_controller.rb
cd2_catton_cms-1.1.31 app/controllers/c/admin/blogs_controller.rb
cd2_catton_cms-1.1.30 app/controllers/c/admin/blogs_controller.rb
cd2_catton_cms-1.1.20 app/controllers/c/admin/blogs_controller.rb
cd2_catton_cms-1.1.10 app/controllers/c/admin/blogs_controller.rb