Class: Sibu::PagesController

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

Instance Method Summary collapse

Instance Method Details

#child_elementObject



95
96
97
# File 'app/controllers/sibu/pages_controller.rb', line 95

def child_element
  @added = @entity.child_element(*@section_id.split('|'), *@element_id.split('|'))
end

#clone_elementObject



87
88
89
# File 'app/controllers/sibu/pages_controller.rb', line 87

def clone_element
  @cloned = @entity.clone_element(*@section_id.split('|'), *@element_id.split('|'))
end

#createObject



40
41
42
43
44
45
46
47
48
# File 'app/controllers/sibu/pages_controller.rb', line 40

def create
  @page = Sibu::Page.new(page_params)
  if @page.save_and_init
    redirect_to site_pages_url(@page.site_id), notice: "La page a bien été créée."
  else
    flash.now[:alert] = "Une erreur s'est produite lors de la création de la page."
    render :new
  end
end

#create_sectionObject



112
113
114
# File 'app/controllers/sibu/pages_controller.rb', line 112

def create_section
  @created = @entity.create_section(*@section_id.split('|'), params[:after], section_params)
end

#delete_elementObject



91
92
93
# File 'app/controllers/sibu/pages_controller.rb', line 91

def delete_element
  @deleted = @entity.delete_element(*@section_id.split('|'), *@element_id.split('|'))
end

#delete_sectionObject



116
117
118
# File 'app/controllers/sibu/pages_controller.rb', line 116

def delete_section
  @deleted = @entity.delete_section(*@section_id.split('|'))
end

#destroyObject



62
63
# File 'app/controllers/sibu/pages_controller.rb', line 62

def destroy
end

#editObject



50
51
# File 'app/controllers/sibu/pages_controller.rb', line 50

def edit
end

#edit_contentObject



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

def edit_content
  @page = Sibu::Page.find(params[:page_id])
  @site = Sibu::Site.includes(:pages).find(@page.site_id) if @page
  @links = @site.pages_path_by_id if @site
  render :edit_content, layout: 'sibu/edit_content'
end

#edit_elementObject



72
73
74
75
76
77
78
79
# File 'app/controllers/sibu/pages_controller.rb', line 72

def edit_element
  @content_type = params[:content_type]
  @links = @site.pages_path_by_id if @site
  @element = @entity.element(*@section_id.split('|'), *@element_id.split('|'))
  @repeat = params[:repeat]
  @size = params[:size].blank? ? :medium : params[:size].to_sym
  @children = params[:children]
end

#indexObject



12
13
14
# File 'app/controllers/sibu/pages_controller.rb', line 12

def index
  @pages = @site.pages.order(:created_at)
end

#newObject



36
37
38
# File 'app/controllers/sibu/pages_controller.rb', line 36

def new
  @page = Sibu::Page.new(site_id: @site.id)
end

#new_sectionObject



99
100
101
102
103
104
105
106
107
108
109
110
# File 'app/controllers/sibu/pages_controller.rb', line 99

def new_section
  page = Sibu::Page.find(params[:id])
  @page = Page.new(id: page.id, sections: [])
  @site = Sibu::Site.includes(:pages).find(page.site_id)
  @after = params[:after]
  @links = @site.pages_path_by_id

  @site.site_template.available_templates.each do |t|
    template_defaults = @site.site_template.templates ? (@site.site_template.templates[t["template"]] || {}) : {}
    @page.sections << template_defaults.merge(t).to_h
  end
end

#showObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'app/controllers/sibu/pages_controller.rb', line 16

def show
  if params[:site_id].blank?
    @site = Sibu::Site.find_by_domain(request.domain)
    if @site
      @page = @site.page(params[:path])
      @links = @site.pages_path_by_id
      view_template = @page ? 'show' : @site.not_found
    else
      view_template = Rails.application.config.sibu[:not_found]
    end
  else
    @site = Sibu::Site.find(params[:site_id])
    @page = Sibu::Page.find(params[:id])
    @links = @site.pages_path_by_id
    view_template = 'show'
  end

  render view_template, layout: 'sibu/site'
end

#updateObject



53
54
55
56
57
58
59
60
# File 'app/controllers/sibu/pages_controller.rb', line 53

def update
  if @page.update(page_params)
    redirect_to site_pages_url(@page.site_id), notice: "La page a bien été mise à jour."
  else
    flash.now[:alert] = "Une erreur s'est produite lors de l'enregistrement de la page."
    render :edit
  end
end

#update_elementObject



81
82
83
84
85
# File 'app/controllers/sibu/pages_controller.rb', line 81

def update_element
  ids = (@section_id.split('|') + @element_id.split('|')).uniq[0...-1]
  @updated = @entity.update_element(*ids, element_params)
  @refresh = params[:refresh]
end