Sha256: 5b8372426f4fae3b6397f01a5413b8e09e294b1bb4f19a3f9b015672bb574058

Contents?: true

Size: 1.99 KB

Versions: 7

Compression:

Stored size: 1.99 KB

Contents

class CamaleonCms::Admin::Posts::DraftsController < CamaleonCms::Admin::PostsController
  before_action :set_post_data_params, only: [:create, :update]

  def index
    render json: @post_type
  end

  def create
    if params[:post_id].present?
      @post_draft = CamaleonCms::Post.drafts.where(post_parent: params[:post_id]).first
      if @post_draft.present?
        @post_draft.set_option('draft_status', @post_draft.status)
        @post_draft.attributes = @post_data
      end
    end
    @post_draft = @post_type.posts.new(@post_data) unless @post_draft.present?
    r = {post: @post_draft, post_type: @post_type}; hooks_run("create_post_draft", r)
    if @post_draft.save(:validate => false)
      @post_draft.set_params(params[:meta], params[:field_options], @post_data[:keywords])
      msg = {draft: {id: @post_draft.id}, _drafts_path: cama_admin_post_type_draft_path(@post_type.id, @post_draft)}
      r = {post: @post_draft, post_type: ""}; hooks_run("created_post_draft", r)
    else
      msg = {error: @post_draft.errors.full_messages}
    end

    render json: msg
  end

  def update
    @post_draft = CamaleonCms::Post.drafts.find(params[:id])
    @post_draft.attributes = @post_data
    r = {post: @post_draft, post_type: @post_type}; hooks_run("update_post", r)
    if @post_draft.save(validate: false)
      @post_draft.set_params(params[:meta], params[:field_options], params[:options])
      hooks_run("updated_post_draft", {post: @post_draft, post_type: ""})
      msg = {draft: {id: @post_draft.id}}
    else
      msg = {error: @post_draft.errors.full_messages}
    end
    render json: msg
  end

  def destroy
  end

  private
  def set_post_data_params
    post_data = params.require(:post).permit!
    post_data[:status] = 'draft'
    post_data[:post_parent] = params[:post_id]
    post_data[:user_id] = cama_current_user.id unless post_data[:user_id].present?
    post_data[:data_tags] = params[:tags].to_s
    post_data[:data_categories] = params[:categories] || []
    @post_data = post_data
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
camaleon_cms-2.3.6 app/controllers/camaleon_cms/admin/posts/drafts_controller.rb
camaleon_cms-2.3.5 app/controllers/camaleon_cms/admin/posts/drafts_controller.rb
camaleon_cms-2.3.4 app/controllers/camaleon_cms/admin/posts/drafts_controller.rb
camaleon_cms-2.3.3 app/controllers/camaleon_cms/admin/posts/drafts_controller.rb
camaleon_cms-2.3.2 app/controllers/camaleon_cms/admin/posts/drafts_controller.rb
camaleon_cms-2.3.1 app/controllers/camaleon_cms/admin/posts/drafts_controller.rb
camaleon_cms-2.3.0 app/controllers/camaleon_cms/admin/posts/drafts_controller.rb