Class: Pulitzer::PostTypesController

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

Defined Under Namespace

Classes: CreateSingletonPost, CreateTemplateVersion, Export, Import, ImportVersion

Instance Method Summary collapse

Instance Method Details

#createObject



25
26
27
28
29
# File 'app/controllers/pulitzer/post_types_controller.rb', line 25

def create
  @post_type = Pulitzer::PostType.create(post_type_params)
  CreateTemplateVersion.new(@post_type).call
  render partial: 'show_wrapper', locals: {post_type: @post_type}
end

#destroyObject



66
67
68
69
# File 'app/controllers/pulitzer/post_types_controller.rb', line 66

def destroy
  @post_type.destroy
  head :ok and return
end

#editObject



56
57
58
# File 'app/controllers/pulitzer/post_types_controller.rb', line 56

def edit
  render partial: 'form', locals: {post_type: @post_type}
end

#exportObject



35
36
37
38
39
40
# File 'app/controllers/pulitzer/post_types_controller.rb', line 35

def export
  post_type_json = Export.new(@post_type).call
  send_data(post_type_json,
    disposition: 'attachment',
    filename: @post_type.name.parameterize + '.json')
end

#importObject



42
43
44
45
# File 'app/controllers/pulitzer/post_types_controller.rb', line 42

def import
  @post_type = Import.new(params).call
  render partial: 'show_wrapper', locals: {post_type: @post_type}
end

#import_versionObject



47
48
49
50
51
52
53
54
# File 'app/controllers/pulitzer/post_types_controller.rb', line 47

def import_version
  @post_type_version = ImportVersion.new(@post_type, post_type_params).call
  if @post_type_version.errors.empty?
    render partial: '/pulitzer/post_type_versions/show_wrapper', locals: {post_type_version: @post_type_version}
  else
    render json: {flash_message: "Error importing: #{@post_type_version.errors.full_messages}"}, status: 409
  end
end

#indexObject



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'app/controllers/pulitzer/post_types_controller.rb', line 4

def index
  if params[:post_type_kind]
    @post_type_kind = params[:post_type_kind]
  else
    @post_type_kind = 'template'
  end
  if request.xhr?
    if Pulitzer. || self.instance_eval(&Pulitzer.)
      @post_types = Pulitzer::PostType.send(@post_type_kind).order(name: :asc)
    else
      @post_types = Pulitzer::PostType.send(@post_type_kind).joins(:post_type_versions).where(pulitzer_post_type_versions: {status: 'published'}).distinct.order(name: :asc)
    end
    render_ajax
  end
end

#newObject



20
21
22
23
# File 'app/controllers/pulitzer/post_types_controller.rb', line 20

def new
  @post_type = Pulitzer::PostType.new(post_type_params)
  render partial: 'new', locals: {post_type: @post_type}
end

#showObject



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

def show
  render partial: 'show', locals: {post_type: @post_type}
end

#updateObject



60
61
62
63
64
# File 'app/controllers/pulitzer/post_types_controller.rb', line 60

def update
  @post_type.update_attributes(post_type_params)
  Pulitzer::UpdateSingletonPost.new(@post_type, post_params_name).call
  render partial: 'show', locals: {post_type: @post_type}
end