Sha256: 025c8171387fcefcc8a7a694b57a28537f74c608e2908c4a0a6a1bccf58cbbfc

Contents?: true

Size: 1.78 KB

Versions: 4

Compression:

Stored size: 1.78 KB

Contents

class Pulitzer::VersionsController < Pulitzer::ApplicationController
  before_action :set_version

  def edit
    if @version.preview?
      route = "#{Pulitzer.preview_namespace}_#{@post.post_type.name.parameterize(separator: '_')}_path"
      if main_app.respond_to?(route)
        if @post.plural?
          @preview_path = main_app.public_send(route, @post.slug, {version_number: @post.post_type_version.version_number})
        else
          @preview_path = main_app.public_send(route, {version_number: @post.post_type_version.version_number})
        end
      end
    end
    render_ajax locals: { version: @version }
  end

  def update
    status_updater = Pulitzer::UpdateVersionStatus.new(@version, @status)
    if status_updater.errors.any?
      processing_version  = @version
      flash_message       = status_updater.errors.join("<br>").html_safe
      status = :conflict
    else
      processing_version  = status_updater.call
      if processing_version
        if processing_version.errors.empty?
          status = :ok
          flash_message     = "The new version of #{@post.title} has been activated."
        else
          status = :conflict
          flash_message = processing_version.errors.full_messages.join("<br>").html_safe
        end
      else
        flash[:notice] = "The post was successfully removed."
        render json: {class_triggers: {"hooch.ReloadPage" => posts_path(post_type_id: @version.post.post_type.id) }} and return
      end
    end
    render json: {html: render_to_string(partial: '/pulitzer/versions/edit', locals: {version: processing_version}),
                  flash_message: flash_message}, status: status
  end

private
  def set_version
    @version  = Pulitzer::Version.find params[:id]
    @status = params[:status]
    @post = @version.post
  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
pulitzer-0.15.12 app/controllers/pulitzer/versions_controller.rb
pulitzer-0.15.11 app/controllers/pulitzer/versions_controller.rb
pulitzer-0.15.10 app/controllers/pulitzer/versions_controller.rb
pulitzer-0.15.9 app/controllers/pulitzer/versions_controller.rb