Class: Sibu::PagesController

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

Instance Method Summary collapse

Methods inherited from ApplicationController

#check_site_ownership!, #conf, #sibu_user

Instance Method Details

#child_elementObject



125
126
127
# File 'app/controllers/sibu/pages_controller.rb', line 125

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

#clone_elementObject



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

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

#createObject



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

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



142
143
144
# File 'app/controllers/sibu/pages_controller.rb', line 142

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

#delete_elementObject



121
122
123
# File 'app/controllers/sibu/pages_controller.rb', line 121

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

#delete_sectionObject



156
157
158
# File 'app/controllers/sibu/pages_controller.rb', line 156

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

#destroyObject



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

def destroy
  site_id = @page.site_id
  if @page.destroy
    redirect_to site_pages_url(site_id), notice: "La page a bien été supprimée."
  else
    flash.now[:alert] = "Une erreur s'est produite lors de la suppression de la page."
    render :index
  end
end

#duplicateObject



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

def duplicate
  new_page = @page.deep_copy
  if new_page.save
    redirect_to site_pages_url(@page.site_id), notice: "La page a bien été copiée."
  else
    flash.now[:alert] = "Une erreur s'est produite lors de la copie de la page."
    render :index
  end
end

#editObject



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

def edit
end

#edit_contentObject



94
95
96
97
98
99
100
# File 'app/controllers/sibu/pages_controller.rb', line 94

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
  @edit_section = params[:edit_section]
  render :edit_content, layout: 'sibu/edit_content'
end

#edit_elementObject



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

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] == 'true'
  @children = params[:children] == 'true'
  @size = params[:size].blank? ? :medium : params[:size].to_sym
end

#edit_sectionObject



146
147
148
# File 'app/controllers/sibu/pages_controller.rb', line 146

def edit_section
  @section = @entity.section(params[:section_id])
end

#indexObject



17
18
19
# File 'app/controllers/sibu/pages_controller.rb', line 17

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

#newObject



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

def new
  @page = Sibu::Page.new(site_id: @site.id, source: 'Saisie manuelle')
end

#new_sectionObject



129
130
131
132
133
134
135
136
137
138
139
140
# File 'app/controllers/sibu/pages_controller.rb', line 129

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_sections.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



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'app/controllers/sibu/pages_controller.rb', line 21

def show
  return_code = :ok
  if params[:site_id].blank?
    @page = Sibu::Page.lookup(request.host, params[:path])
    if @page
      @query_path =  params[:path][@page.path.length + 1..-1] unless @page.path.blank?
      @query_params = show_params.except(:controller, :action, :path).to_h
      @site = @page.site
      @links = @site.pages_path_by_id
      view_template = 'show'
    else
      @site = Sibu::Site.where(domain: request.host).first
      view_template = Rails.application.config.sibu[:not_found]
      return_code = :not_found
    end
  else
    @site = Sibu::Site.find(params[:site_id])
    @page = Sibu::Page.find(params[:id])
    @links = @site.pages_path_by_id
    @query_path = params[:path]
    @query_params = show_params.except(:controller, :action, :path).to_h
    view_template = 'show'
  end

  render view_template, layout: 'sibu/site', status: return_code
end

#updateObject



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

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



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

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

#update_sectionObject



150
151
152
153
154
# File 'app/controllers/sibu/pages_controller.rb', line 150

def update_section
  @entity.section(params[:section_id]).merge!(section_params)
  logger.debug @entity.section(params[:section_id])
  @updated = @entity.save
end