Class: Pulitzer::PostsController

Inherits:
ApplicationController show all
Defined in:
app/controllers/pulitzer/posts_controller.rb

Instance Method Summary collapse

Instance Method Details

#createObject



17
18
19
20
21
# File 'app/controllers/pulitzer/posts_controller.rb', line 17

def create
  @post = Pulitzer::Post.create(post_params)
  Pulitzer::CreatePostContentElements.new(@post).call if @post
  render partial: 'show_wrapper', locals: { post: @post }
end

#destroyObject



40
41
42
43
# File 'app/controllers/pulitzer/posts_controller.rb', line 40

def destroy
  @post.destroy
  render head :ok
end

#editObject



27
28
29
# File 'app/controllers/pulitzer/posts_controller.rb', line 27

def edit
  render_ajax locals: { post: @post }
end

#edit_slugObject



45
46
47
48
49
# File 'app/controllers/pulitzer/posts_controller.rb', line 45

def edit_slug
  if request.xhr?
    render partial: 'form_slug', locals: { post: @post, version: @version }
  end
end

#edit_titleObject



31
32
33
# File 'app/controllers/pulitzer/posts_controller.rb', line 31

def edit_title
  render partial: 'form', locals: { post: @post }
end

#indexObject



6
7
8
9
10
# File 'app/controllers/pulitzer/posts_controller.rb', line 6

def index
  @post_type_version = Pulitzer::PostTypeVersion.find params[:post_type_version_id]
  @posts = Pulitzer::Post.where(post_type_version_id: @post_type_version).order(id: :desc)
  render_ajax
end

#newObject



12
13
14
15
# File 'app/controllers/pulitzer/posts_controller.rb', line 12

def new
  @post = Pulitzer::Post.new(post_type_version_id: params[:post_type_version_id])
  render_ajax locals: { post: @post }
end

#showObject



23
24
25
# File 'app/controllers/pulitzer/posts_controller.rb', line 23

def show
  render_ajax locals: { post: @post }
end

#show_slugObject



51
52
53
# File 'app/controllers/pulitzer/posts_controller.rb', line 51

def show_slug
  render partial: 'show_slug', locals: { post: @post, version: @version }
end

#updateObject



35
36
37
38
# File 'app/controllers/pulitzer/posts_controller.rb', line 35

def update
  @post.update_attributes(post_params)
  render partial: 'show', locals: { post: @post }
end

#update_slugObject



55
56
57
58
59
60
61
62
63
64
65
# File 'app/controllers/pulitzer/posts_controller.rb', line 55

def update_slug
  if @post.update_attributes(post_params)
    if @version.preview?
      route                       = "#{Pulitzer.preview_namespace}_#{@post.post_type.name.parameterize('_')}_path"
      @preview_path               = main_app.public_send(route, @post.slug) if main_app.respond_to?(route)
    end
    render partial: 'pulitzer/posts/edit', locals: { version: @version, post: @post }
  else
    render partial: 'form_slug', locals: { post: @post, version: @version }, status: :conflict
  end
end