Class: Cmtool::PagesController

Inherits:
ApplicationController show all
Defined in:
app/controllers/cmtool/pages_controller.rb

Instance Method Summary collapse

Methods included from ControllerGlue

#cmtool_user

Instance Method Details

#createObject

POST /pages POST /pages.xml



43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'app/controllers/cmtool/pages_controller.rb', line 43

def create
  @page = ::Page.new(page_params)

  respond_to do |format|
    if @page.save
      format.html { redirect_to(cmtool.pages_path, :notice => I18n.t('cmtool.action.create.successful', :model => ::Page.model_name.human)) }
      format.xml  { render :xml => @page, :status => :created, :location => @page }
    else
      format.html { render :action => "new" }
      format.xml  { render :xml => @page.errors, :status => :unprocessable_entity }
    end
  end
end

#destroyObject

DELETE /pages/1 DELETE /pages/1.xml



75
76
77
78
79
80
81
82
83
# File 'app/controllers/cmtool/pages_controller.rb', line 75

def destroy
  @page = ::Page.find(params[:id])
  @page.destroy

  respond_to do |format|
    format.html { redirect_to(cmtool.pages_path) }
    format.xml  { head :ok }
  end
end

#editObject

GET /pages/1/edit



37
38
39
# File 'app/controllers/cmtool/pages_controller.rb', line 37

def edit
  @page = ::Page.find(params[:id])
end

#generate_nameObject



84
85
86
87
88
89
90
91
92
93
# File 'app/controllers/cmtool/pages_controller.rb', line 84

def generate_name
  @page = ::Page.find(params[:id]) if params[:id]
  render(:js => "alert('Wel eerst een titel invullen')") and return if params[:name].blank?
  # Strategy, 
  # make name lowercase
  # strip all non word charachters from front and end
  # then replace non word characters with a dash
  @generated_name = ::Page.generate_name(params[:name])
  @has_template = @page && @page.name != @generated_name ? template_exists?("pages/#{@page.name}") : nil
end

#indexObject

GET /pages GET /pages.xml



5
6
7
8
9
10
11
12
# File 'app/controllers/cmtool/pages_controller.rb', line 5

def index
  #@pages = ::Page.all.sort_by{|p| "#{p.parent.presence.try(:reverse) || p.name}#{p.position.to_s.rjust(6, "0")}" }

  respond_to do |format|
    format.html # index.html.erb
    format.xml  { render :xml => @pages }
  end
end

#newObject

GET /pages/new GET /pages/new.xml



27
28
29
30
31
32
33
34
# File 'app/controllers/cmtool/pages_controller.rb', line 27

def new
  @page = ::Page.new

  respond_to do |format|
    format.html # new.html.erb
    format.xml  { render :xml => @page }
  end
end

#previewObject



95
96
97
98
99
100
101
102
103
# File 'app/controllers/cmtool/pages_controller.rb', line 95

def preview
  if request.post?
    session[:preview_page] = params[:page].to_hash
    head :ok
  else
    @page = ::Page.new session[:preview_page]
    render "pages/show", layout: @page.layout
  end
end

#showObject

GET /pages/1 GET /pages/1.xml



16
17
18
19
20
21
22
23
# File 'app/controllers/cmtool/pages_controller.rb', line 16

def show
  @page = ::Page.find(params[:id])

  respond_to do |format|
    format.html # show.html.erb
    format.xml  { render :xml => @page }
  end
end

#updateObject

PUT /pages/1 PUT /pages/1.xml



59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'app/controllers/cmtool/pages_controller.rb', line 59

def update
  @page = ::Page.find(params[:id])

  respond_to do |format|
    if @page.update_attributes(page_params)
      format.html { redirect_to(cmtool.pages_path, :notice => I18n.t('cmtool.action.update.successful', :model => ::Page.model_name.human)) }
      format.xml  { head :ok }
    else
      format.html { render :action => "edit" }
      format.xml  { render :xml => @page.errors, :status => :unprocessable_entity }
    end
  end
end