class Admin::BlogController < CartoonistController
  helper :blog
  before_filter :preview!, :only => [:preview]
  before_filter :ensure_ssl!
  before_filter :check_admin!

  def preview
    if params[:id].present?
      begin
        @post = BlogPost.preview_from_url_title params[:id]
      rescue
        redirect_to "/admin/blog/preview"
      end

      if @post.posted_at
        @disabled_next = @post.newest_preview?
      else
        @disabled_next = true
      end
    else
      @post = BlogPost.preview_current
      @title = "Blog for #{Setting[:site_name]}"
      @disabled_next = true
    end

    @disabled_prev = true if @post.oldest?
    render "blog/show", :layout => "blog"
  end

  def preview_content
    render :text => Markdown.render(params[:content]), :layout => false
  end

  def index
    @unposted = BlogPost.unposted.chronological
    @posted = BlogPost.posted.reverse_chronological
  end

  def create
    post = BlogPost.create_post current_user, params
    redirect_to "/admin/blog/#{post.id}/edit"
  end

  def edit
    @post = BlogPost.find params[:id].to_i
  rescue ActiveRecord::RecordNotFound
    redirect_to "/admin/blog/new"
  end

  def update
    post = BlogPost.update_post params
    redirect_to "/admin/blog/#{post.id}/edit"
  end

  def lock
    post = BlogPost.find params[:id].to_i
    post.lock!
    redirect_to "/admin/blog/#{post.id}/edit"
  end

  def unlock
    post = BlogPost.find params[:id].to_i
    post.unlock!
    redirect_to "/admin/blog/#{post.id}/edit"
  end
end