Class: Bhf::EntriesController

Inherits:
ApplicationController show all
Defined in:
app/controllers/bhf/entries_controller.rb

Direct Known Subclasses

EmbedEntriesController

Instance Method Summary collapse

Methods inherited from ApplicationController

#index

Instance Method Details

#createObject



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'app/controllers/bhf/entries_controller.rb', line 24

def create
  before_save
  if @object.save
    manage_many_to_many
    after_save

    if @quick_edit
      render json: object_to_bhf_display_hash, status: :ok
    else
      redirect_back_or_default(page_url(@platform.page_name, anchor: "#{@platform.name}_platform"), {notice: set_message('create.success', @model), referral_entry: {id: @object.id, platform: @platform.name}})
    end
  else
    @form_url = entries_path(@platform.name)

    r_settings = {status: :unprocessable_entity}
    r_settings[:layout] = 'bhf/quick_edit' if @quick_edit
    render :new, r_settings
  end
end

#destroyObject



89
90
91
92
93
94
95
96
# File 'app/controllers/bhf/entries_controller.rb', line 89

def destroy
  @object.destroy
  if @quick_edit
    head :ok
  else
    redirect_back_or_default(page_url(@platform.page_name, anchor: "#{@platform.name}_platform"), notice: set_message('destory.success', @model))
  end
end

#duplicateObject



66
67
68
69
70
71
72
73
74
75
# File 'app/controllers/bhf/entries_controller.rb', line 66

def duplicate
  new_record = @object.dup
  new_record.before_bhf_duplicate(@object) if new_record.respond_to?(:before_bhf_duplicate)
  if new_record.save
    new_record.after_bhf_duplicate(@object) if new_record.respond_to?(:after_bhf_duplicate)
    redirect_to(page_url(@platform.page_name, anchor: "#{@platform.name}_platform"), notice: set_message('duplicate.success', @model))
  else
    redirect_to(page_url(@platform.page_name, anchor: "#{@platform.name}_platform"), notice: set_message('duplicate.error', @model))
  end
end

#editObject



12
13
14
15
16
17
18
# File 'app/controllers/bhf/entries_controller.rb', line 12

def edit
  render file: 'public/404.html', layout: false and return unless @object
  
  @form_url = entry_path(@platform.name, @object)
  
  render layout: 'bhf/quick_edit' if @quick_edit
end

#newObject



6
7
8
9
10
# File 'app/controllers/bhf/entries_controller.rb', line 6

def new
  @form_url = entries_path(@platform.name)
  
  render layout: 'bhf/quick_edit' if @quick_edit
end

#showObject



20
21
22
# File 'app/controllers/bhf/entries_controller.rb', line 20

def show
  render file: 'public/404.html', layout: false and return unless @object
end

#sortObject



77
78
79
80
81
82
83
84
85
86
87
# File 'app/controllers/bhf/entries_controller.rb', line 77

def sort
  sort_attr = (@platform.sortable_property || @platform.sortable).to_sym
  
  params[:order].each do |order|
    @model.
      find(order[1].gsub("_#{@platform.name}", '')).
      update_attribute(sort_attr, order[0].to_i)
  end
  
  head :ok
end

#updateObject



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'app/controllers/bhf/entries_controller.rb', line 44

def update
  render file: 'public/404.html', layout: false and return unless @object
  
  before_save
  if @object.update_attributes(@permited_params)
    manage_many_to_many
    after_save

    if @quick_edit
      render json: object_to_bhf_display_hash, status: :ok
    else
      redirect_back_or_default(page_url(@platform.page_name, anchor: "#{@platform.name}_platform"), {notice: set_message('update.success', @model), referral_entry: {id: @object.id, platform: @platform.name}})
    end
  else
    @form_url = entry_path(@platform.name, @object)

    r_settings = {status: :unprocessable_entity}
    r_settings[:layout] = 'bhf/quick_edit' if @quick_edit
    render :edit, r_settings
  end
end