Class: Admin::PagesController

Inherits:
AdminController show all
Defined in:
app/controllers/admin/pages_controller.rb

Instance Method Summary collapse

Methods inherited from SlicesController

should_raise_exceptions?

Instance Method Details

#createObject



19
20
21
22
23
24
25
# File 'app/controllers/admin/pages_controller.rb', line 19

def create
  @page = new_page_class.make(params[:page])
  @layouts = [['Default', 'default']]
  respond_with(:admin, @page) do |format|
    format.html { redirect_to admin_page_path(@page) }
  end
end

#destroyObject



64
65
66
67
68
69
70
71
# File 'app/controllers/admin/pages_controller.rb', line 64

def destroy
  @page = Page.find_by_id!(params[:id])
  @page.destroy
  respond_to do |format|
    format.html { redirect_to admin_site_maps_path }
    format.json { head :no_content }
  end
end

#newObject



11
12
13
14
15
16
17
# File 'app/controllers/admin/pages_controller.rb', line 11

def new
  @page = Page.new(parent_id: params[:parent_id]) # TODO: change parent_id to path
  @layouts = Layout.all
  respond_with(:admin, @page) do |format|
    format.html { render layout: !request.xhr? }
  end
end

#showObject



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'app/controllers/admin/pages_controller.rb', line 27

def show
  page = Page.find_by_id!(params[:id])
  @page = presenter_class(page.class).new(page)
  @layout = Layout.new(page.layout)

  respond_with(:admin, @page) do |format|
    format.json do
      render json: as_json_for_page(page)
    end
    format.hbs do
      hbs_path = if params[:slice]
                   File.join(params[:slice], 'templates', params[:template])
                 else
                   params[:template]
                 end
      render hbs_path
    end
  end
rescue Page::NotFound
  redirect_to admin_site_maps_path
end

#updateObject



49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'app/controllers/admin/pages_controller.rb', line 49

def update
  @page = Page.find_by_id!(params[:id])
  if entry_page?
    params[:page][:set_slices] = params[:page].delete(:slices)
  end

  @page.update_attributes(params[:page])

  if @page.valid?
    render json: as_json_for_page(@page)
  else
    render json: @page.errors.as_json, status: 422
  end
end