sibu 0.9.3 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +81 -4
  3. data/app/assets/javascripts/sibu/sibu.js.erb +17 -3
  4. data/app/assets/javascripts/tabs/van11y-accessible-tab-panel-aria.js +122 -124
  5. data/app/assets/stylesheets/sibu/defaults.scss +76 -80
  6. data/app/assets/stylesheets/sibu/sibu.css +8 -0
  7. data/app/controllers/sibu/application_controller.rb +8 -0
  8. data/app/controllers/sibu/pages_controller.rb +11 -4
  9. data/app/controllers/sibu/sites_controller.rb +4 -0
  10. data/app/helpers/sibu/application_helper.rb +1 -1
  11. data/app/helpers/sibu/pages_helper.rb +104 -23
  12. data/app/models/sibu/page.rb +3 -3
  13. data/app/models/sibu/site.rb +15 -1
  14. data/app/models/sibu/site_template.rb +1 -1
  15. data/app/views/layouts/sibu/edit_content.html.erb +184 -125
  16. data/app/views/sibu/images/edit.js.erb +5 -3
  17. data/app/views/sibu/pages/_code_edit_panel.html.erb +3 -2
  18. data/app/views/sibu/pages/_form.html.erb +8 -0
  19. data/app/views/sibu/pages/_link_edit_panel.html.erb +6 -6
  20. data/app/views/sibu/pages/_map_edit_panel.html.erb +3 -2
  21. data/app/views/sibu/pages/_media_edit_panel.html.erb +6 -6
  22. data/app/views/sibu/pages/_new_section_panel.html.erb +1 -1
  23. data/app/views/sibu/pages/_paragraph_edit_panel.html.erb +2 -2
  24. data/app/views/sibu/pages/_text_edit_panel.html.erb +2 -2
  25. data/app/views/sibu/pages/child_element.js.erb +2 -2
  26. data/app/views/sibu/pages/clone_element.js.erb +2 -2
  27. data/app/views/sibu/pages/create_section.js.erb +1 -1
  28. data/app/views/sibu/pages/delete_element.js.erb +1 -1
  29. data/app/views/sibu/pages/delete_section.js.erb +1 -1
  30. data/app/views/sibu/pages/edit_element.js.erb +68 -66
  31. data/app/views/sibu/pages/edit_section.js.erb +6 -5
  32. data/app/views/sibu/pages/index.html.erb +2 -2
  33. data/app/views/sibu/pages/new_section.js.erb +22 -13
  34. data/app/views/sibu/pages/update_element.js.erb +2 -2
  35. data/app/views/sibu/pages/update_section.js.erb +3 -3
  36. data/config/initializers/constants.rb +5 -3
  37. data/db/migrate/20200401130601_add_ref_to_site_templates.rb +5 -0
  38. data/lib/sibu/engine.rb +0 -2
  39. data/lib/sibu/version.rb +1 -1
  40. metadata +3 -18
  41. data/app/views/sibu/pages/destroy.html.erb +0 -2
  42. data/app/views/sibu/pages/update.html.erb +0 -2
@@ -41,6 +41,10 @@ $sibu-color3 : #333 !default;
41
41
  font-weight: bold;
42
42
  }
43
43
  }
44
+
45
+ img {
46
+ max-height: 45vh;
47
+ }
44
48
  }
45
49
 
46
50
  .sibu_image {
@@ -234,101 +238,93 @@ $sibu-color3 : #333 !default;
234
238
  }
235
239
 
236
240
  #sections_panel {
237
- position: relative;
238
-
239
- &:before {
240
- box-shadow: 0 -15px 15px -15px inset;
241
- content: " ";
242
- width: 100%;
243
- left: 0;
244
- top: -15px;
245
- position: absolute;
246
- z-index: 0;
247
- height: 15px;
248
- opacity: 0.4;
249
- color: $sibu-color3;
250
- }
251
-
252
- .sibu_sections_tabs, .tabs {
253
- height: 100%;
254
- }
255
-
256
- .sibu_sections {
241
+ .sibu_site_content {
257
242
  padding: 2rem;
258
243
  max-height: 60vh;
259
244
  overflow-y: scroll;
260
245
 
261
- .tabs__list {
262
- margin: 0;
263
- padding: 0;
264
- display: table;
265
- width: 100%;
266
- }
267
- .tabs__item {
268
- display: table-cell;
269
- > a {
270
- text-decoration: none;
271
- }
272
- }
246
+ & > .sibu_sections_tabs {
247
+ height: 100%;
273
248
 
274
- .tabs__link {
275
- display: inline-block;
276
- cursor: pointer;
277
- margin-bottom: -2px;
278
- padding: 1rem 2.5rem;
279
- border-bottom: 4px solid transparent;
280
- color: $sibu-color1;
281
- text-decoration: none;
282
- border-radius: 0 0 0 0;
283
- transition: .25s;
284
- transition-property: color, border, background-color;
285
- font-size: 2rem;
286
- &:focus {
287
- border-bottom-color: $sibu-color2;
288
- color: $sibu-color2;
289
- outline: 0;
290
- }
291
- }
249
+ & > .tabs {
250
+ height: 100%;
292
251
 
293
- [aria-selected="true"].tabs__link {
294
- border-bottom-color: $sibu-color2;
295
- color: $sibu-color2;
296
- outline: 0;
297
- }
252
+ & > .tabs__list {
253
+ margin: 0;
254
+ padding: 0;
255
+ display: table;
256
+ width: 100%;
298
257
 
299
- .tabs__content {
300
- padding: 2rem 0;
301
- background-color: white;
302
- max-height: calc(100% - 40px);
303
- overflow-y: scroll;
258
+ .tabs__item {
259
+ display: table-cell;
304
260
 
305
- > * {
306
- padding: 4px 0;
307
- margin: 0 1rem 2rem 1rem;
308
- min-height: auto;
309
- box-shadow: 0 0 5px #cdcdcd;
261
+ > a {
262
+ text-decoration: none;
263
+ }
264
+ }
310
265
 
311
- &:hover {
312
- cursor: pointer;
313
- outline: dashed $sibu-color2 4px;
314
- outline-offset: -5px;
315
- }
266
+ .tabs__link {
267
+ display: inline-block;
268
+ cursor: pointer;
269
+ margin-bottom: -2px;
270
+ padding: 1rem 2.5rem;
271
+ border-bottom: 4px solid transparent;
272
+ color: $sibu-color1;
273
+ text-decoration: none;
274
+ border-radius: 0 0 0 0;
275
+ transition: .25s;
276
+ transition-property: color, border, background-color;
277
+ font-size: 2rem;
278
+
279
+ &:focus {
280
+ border-bottom-color: $sibu-color2;
281
+ color: $sibu-color2;
282
+ outline: 0;
283
+ }
284
+ }
316
285
 
317
- &.selected {
318
- outline: solid $sibu-color1 5px;
319
- outline-offset: -5px;
286
+ [aria-selected="true"].tabs__link {
287
+ border-bottom-color: $sibu-color2;
288
+ color: $sibu-color2;
289
+ outline: 0;
290
+ }
320
291
  }
321
292
 
322
- > * {
323
- margin-top: 0 !important;
324
- margin-bottom: 0 !important;
293
+ & > .tabs__content {
294
+ padding: 2rem 0;
295
+ background-color: white;
296
+ max-height: calc(100% - 40px);
297
+ overflow-y: scroll;
298
+
299
+ > * {
300
+ padding: 4px 0;
301
+ margin: 0 1rem 2rem 1rem;
302
+ min-height: auto;
303
+ box-shadow: 0 0 5px #cdcdcd;
304
+
305
+ &:hover {
306
+ cursor: pointer;
307
+ outline: dashed $sibu-color2 4px;
308
+ outline-offset: -5px;
309
+ }
310
+
311
+ &.selected {
312
+ outline: solid $sibu-color1 5px;
313
+ outline-offset: -5px;
314
+ }
315
+
316
+ > * {
317
+ margin-top: 0 !important;
318
+ margin-bottom: 0 !important;
319
+ }
320
+ }
321
+
322
+ &[aria-hidden="true"] {
323
+ display: none;
324
+ }
325
325
  }
326
326
  }
327
327
  }
328
-
329
- [aria-hidden="true"].tabs__content {
330
- display: none;
331
- }
332
328
  }
333
329
 
334
330
  .sibu_actions {
@@ -63,6 +63,10 @@
63
63
  background-color: white;
64
64
  }
65
65
 
66
+ #edit_panel.active, #sections_panel.active {
67
+ display: block;
68
+ }
69
+
66
70
  #element_actions button {
67
71
  display: none;
68
72
  }
@@ -78,6 +82,10 @@
78
82
  cursor: pointer;
79
83
  }
80
84
 
85
+ #edit_overlays > *:hover {
86
+ opacity: 1;
87
+ }
88
+
81
89
  .sb-editing [data-type] {
82
90
  min-width: 1em;
83
91
  min-height: 0.5em;
@@ -10,5 +10,13 @@ module Sibu
10
10
  def sibu_user
11
11
  send(conf[:current_user])
12
12
  end
13
+
14
+ def check_site_ownership!
15
+ if conf[:multi_user] && conf[:admin_filter]
16
+ unless @site.nil? || @site.user_id == sibu_user.id || conf[:admin_filter].call(sibu_user)
17
+ redirect_to main_app.root_url, alert: "Vous n'êtes pas autorisé(e) à consulter cette page."
18
+ end
19
+ end
20
+ end
13
21
  end
14
22
  end
@@ -2,6 +2,7 @@ require_dependency "sibu/application_controller"
2
2
 
3
3
  module Sibu
4
4
  class PagesController < ApplicationController
5
+ before_action :compile_assets, only: [:show, :edit_content]
5
6
  before_action :set_page, only: [:edit, :update, :destroy, :duplicate, :edit_element, :update_element, :clone_element,
6
7
  :delete_element, :child_element, :new_section, :create_section, :edit_section,
7
8
  :update_section, :delete_section]
@@ -10,6 +11,7 @@ module Sibu
10
11
  :child_element, :new_section, :create_section, :edit_section,
11
12
  :update_section, :delete_section]
12
13
  before_action :set_online, only: [:show, :edit]
14
+
13
15
  skip_before_action Rails.application.config.sibu[:auth_filter], only: [:show]
14
16
 
15
17
  def index
@@ -44,7 +46,7 @@ module Sibu
44
46
  end
45
47
 
46
48
  def new
47
- @page = Sibu::Page.new(site_id: @site.id)
49
+ @page = Sibu::Page.new(site_id: @site.id, source: 'Saisie manuelle')
48
50
  end
49
51
 
50
52
  def create
@@ -101,9 +103,9 @@ module Sibu
101
103
  @content_type = params[:content_type]
102
104
  @links = @site.pages_path_by_id if @site
103
105
  @element = @entity.element(*@section_id.split('|'), *@element_id.split('|'))
104
- @repeat = params[:repeat]
106
+ @repeat = params[:repeat] == 'true'
107
+ @children = params[:children] == 'true'
105
108
  @size = params[:size].blank? ? :medium : params[:size].to_sym
106
- @children = params[:children]
107
109
  end
108
110
 
109
111
  def update_element
@@ -146,7 +148,6 @@ module Sibu
146
148
  end
147
149
 
148
150
  def update_section
149
- # {"utf8"=>"✓", "section"=>{"color"=>"#AFCA0B", "filters"=>"school_camps"}, "section_id"=>"cs1536301729", "refresh"=>"true", "commit"=>"Valider", "site_id"=>"3", "id"=>"1392"}
150
151
  @entity.section(params[:section_id]).merge!(section_params)
151
152
  logger.debug @entity.section(params[:section_id])
152
153
  @updated = @entity.save
@@ -161,10 +162,12 @@ module Sibu
161
162
  def set_page
162
163
  @page = Sibu::Page.find(params[:id])
163
164
  @site = Sibu::Site.includes(:pages).find(@page.site_id) if @page
165
+ check_site_ownership!
164
166
  end
165
167
 
166
168
  def set_site
167
169
  @site = Sibu::Site.find(params[:site_id])
170
+ check_site_ownership!
168
171
  end
169
172
 
170
173
  def set_edit_context
@@ -193,5 +196,9 @@ module Sibu
193
196
  def show_params
194
197
  params.permit!
195
198
  end
199
+
200
+ def compile_assets
201
+ Sibu::DynamicStyle.new(params[:site_id]).compile if Rails.env.development? && conf[:custom_styles] && !params[:site_id].blank?
202
+ end
196
203
  end
197
204
  end
@@ -37,6 +37,9 @@ module Sibu
37
37
  if conf[:custom_styles] && @site.previous_changes.has_key?(:custom_data)
38
38
  generate_styles(@site)
39
39
  end
40
+ if @site.previous_changes.has_key?(:version)
41
+ @site.update_paths
42
+ end
40
43
  redirect_to sites_url, notice: "Le site a bien été mis à jour."
41
44
  else
42
45
  flash.now[:alert] = "Une erreur s'est produite lors de l'enregistrement du site."
@@ -67,6 +70,7 @@ module Sibu
67
70
 
68
71
  def set_site
69
72
  @site = Sibu::Site.find(params[:id])
73
+ check_site_ownership!
70
74
  end
71
75
 
72
76
  def site_params
@@ -5,7 +5,7 @@ module Sibu
5
5
  end
6
6
 
7
7
  def sibu_user
8
- send(Rails.application.config.sibu[:current_user])
8
+ send(conf[:current_user])
9
9
  end
10
10
  end
11
11
  end
@@ -7,6 +7,10 @@ module Sibu
7
7
  p ? (request.host == conf[:host] ? site_page_path(@site.id, p.id) : (conf[:deployment_path] ? "/#{conf[:deployment_path]}/#{p.path}" : "/#{p.path}")) : "#"
8
8
  end
9
9
 
10
+ def is_current_page(link_val)
11
+ /\d+/.match?(link_val) && link_val.to_i == @page.id
12
+ end
13
+
10
14
  def sections_templates
11
15
  @site.site_template.available_sections
12
16
  end
@@ -35,27 +39,78 @@ module Sibu
35
39
  end
36
40
  end
37
41
 
38
- [:h1, :h2, :h3, :h4, :h5, :h6, :span].each do |t|
39
- define_method(t) do |elt, html_opts = {}|
40
- defaults = {"id" => elt.is_a?(Hash) ? elt["id"] : elt, "text" => DEFAULT_TEXT}
42
+ [:h1, :h2, :h3, :h4, :h5, :h6, :span, :p, :li].each do |t|
43
+ define_method(t) do |elt, opts = {}, &block|
44
+ t_id = elt.is_a?(Hash) ? elt["id"] : elt
45
+ defaults = {"id" => t_id, "text" => (t == :p ? Sibu::DEFAULT_PARAGRAPH : Sibu::DEFAULT_TEXT)}
41
46
  content = defaults.merge(elt.is_a?(Hash) ? elt : (select_element(elt) || {}))
42
- html_opts.merge!({data: {id: elt_id(elt), type: "text"}}) if action_name != 'show'
43
- content_tag(t, raw(content["text"]).html_safe, html_opts)
47
+ html_opts = {"id" => t_id}.merge(opts.except(:repeat, :children).stringify_keys)
48
+ @sb_section = (@sb_section || []) + [t_id]
49
+ if action_name != 'show'
50
+ html_opts.merge!({
51
+ "data-id" => @sb_section[1..-1].join('|'),
52
+ "data-type" => (t == :p ? "paragraph" : "text"),
53
+ "data-repeat" => opts.delete(:repeat),
54
+ "data-children" => opts.delete(:children)
55
+ })
56
+ end
57
+ if block
58
+ if t == :p
59
+ html_output = content_tag(:div, content_tag(t, capture(content, nested_elements(elt), &block)), html_opts)
60
+ else
61
+ html_output = content_tag(t, capture(content, nested_elements(t_id), &block), html_opts)
62
+ end
63
+ else
64
+ if t == :p
65
+ html_output = content_tag(:div, content_tag(t, raw(content["text"]).html_safe), html_opts)
66
+ else
67
+ html_output = content_tag(t, raw(content["text"]).html_safe, html_opts)
68
+ end
69
+ end
70
+ @sb_section -= [t_id]
71
+ html_output
44
72
  end
45
73
  end
46
74
 
47
- def p(elt, opts = {})
48
- repeat = opts.delete(:repeat)
49
- defaults = {"id" => elt.is_a?(Hash) ? elt["id"] : elt, "text" => DEFAULT_PARAGRAPH}
50
- content = defaults.merge(elt.is_a?(Hash) ? elt : (select_element(elt) || {}))
51
- opts.merge!({data: {id: elt_id(elt), repeat: repeat, type: "paragraph"}}) if action_name != 'show'
52
- content_tag(:div, content_tag(:p, raw(content["text"]).html_safe), opts)
75
+ [:div, :section, :article, :aside, :header, :footer, :nav, :main, :ul, :ol, :wrapper].each do |t|
76
+ define_method(t) do |elt, opts = {}, &block|
77
+ t_id = elt.is_a?(Hash) ? elt["id"] : elt
78
+ @sb_section = (@sb_section || []) + [t_id]
79
+ html_opts = {"id" => t_id}.merge(opts.except(:repeat, :children).stringify_keys)
80
+ if action_name != 'show'
81
+ html_opts.merge!({
82
+ "data-id" => @sb_section[1..-1].join('|'),
83
+ "data-type" => "group",
84
+ "data-repeat" => opts.delete(:repeat),
85
+ "data-children" => opts.delete(:children)
86
+ })
87
+ end
88
+ html_output = t == :wrapper ? capture(current_elt(elt), nested_elements(t_id), &block) : content_tag(t, capture(current_elt(elt), nested_elements(t_id), &block), html_opts)
89
+ @sb_section -= [t_id]
90
+ html_output
91
+ end
53
92
  end
54
93
 
55
94
  def sb
56
95
  self
57
96
  end
58
97
 
98
+ def join_tokens(tokens, suffix)
99
+ (tokens + [suffix]).select {|t| !t.blank?}.join("|")
100
+ end
101
+
102
+ # Note : the best option is probably a "section" helper that is instantiated from the section hash
103
+ # and that provides all the logic for elements manipulation (ex: section.h3(), section.elements, section.elements(nested_id), etc...)
104
+ # That will also remove the entity type references (site / page) from the partials (but is still has to be figured out by Sibu)
105
+ # Note : add "each_with_elements" and "elements" on section/elts enumerables
106
+ def nested_elements(elt_or_id)
107
+ element_id = elt_id(elt_or_id)
108
+ element_id_tokens = (@sb_section + element_id.split("|")).uniq
109
+ nested_elts = @sb_entity.elements(*element_id_tokens)
110
+ nested_elts.blank? ? [{"id" => element_id.split("|").last, "data-id" => join_tokens(element_id_tokens[1..-1], "#{element_id}0")}] :
111
+ nested_elts.map {|e| e.merge({"data-id" => join_tokens(element_id_tokens[1..-1], e['id'])})}
112
+ end
113
+
59
114
  def select_element(id)
60
115
  @sb_entity.element(*@sb_section, id)
61
116
  end
@@ -69,7 +124,7 @@ module Sibu
69
124
  wrapper = opts.delete(:wrapper)
70
125
  repeat = opts.delete(:repeat)
71
126
  size = opts.delete(:size)
72
- defaults = {"id" => elt.is_a?(Hash) ? elt["id"] : elt, "src" => DEFAULT_IMG}
127
+ defaults = {"id" => elt.is_a?(Hash) ? elt["id"] : elt, "src" => Sibu::DEFAULT_IMG}
73
128
  content = defaults.merge(elt.is_a?(Hash) ? elt : (select_element(elt) || {}))
74
129
  if action_name == 'show'
75
130
  content["src"] = ("/#{conf[:deployment_path]}" + content["src"]) if @online && conf[:deployment_path]
@@ -99,7 +154,7 @@ module Sibu
99
154
  end
100
155
 
101
156
  def form_label(elt, html_opts = {}, &block)
102
- defaults = {"id" => elt.is_a?(Hash) ? elt["id"] : elt, "text" => DEFAULT_TEXT}
157
+ defaults = {"id" => elt.is_a?(Hash) ? elt["id"] : elt, "text" => Sibu::DEFAULT_TEXT}
103
158
  content = defaults.merge(elt.is_a?(Hash) ? elt : (select_element(elt) || {}))
104
159
  html_opts.merge!({data: {id: elt_id(elt), type: "text"}}) if action_name != 'show'
105
160
  content_tag(:label, raw(content["text"]).html_safe, html_opts)
@@ -133,9 +188,28 @@ module Sibu
133
188
 
134
189
  alias site sb_site
135
190
 
191
+ def render_page_section(s)
192
+ @sb_section = [s['id']]
193
+ @sb_entity = @page
194
+ render partial: "shared/#{@site.section_template(s)}",
195
+ locals: {sibu: self, sibu_section: s, sibu_attrs: sibu_attributes(s).html_safe}
196
+ end
197
+
198
+ # Page sections attrs
199
+ def sibu_attributes(section)
200
+ action_name != 'show' ? ('data-sb-id="' + section['id'] + '" data-sb-entity="page"') : ''
201
+ end
202
+
203
+ # Site sections attrs
204
+ def sibu_attrs(section_id)
205
+ @sb_section = [section_id]
206
+ @sb_entity = @site
207
+ action_name != 'show' ? ('data-sb-id="' + section_id + '" data-sb-entity="site"').html_safe : ''
208
+ end
209
+
136
210
  def section(id, tag, html_opts = {}, &block)
137
211
  @sb_section = [id]
138
- opts = action_name != 'show' ? html_opts.merge({"data-sb-id" => id, "data-sb-repeat" => @sb_entity != @site, "data-sb-entity" => @sb_entity == @site ? 'site' : 'page'}) : html_opts
212
+ opts = action_name != 'show' ? html_opts.merge({"data-sb-id" => id, "data-sb-entity" => @sb_entity == @site ? 'site' : 'page'}) : html_opts
139
213
  content_tag(tag, capture(self, &block), opts)
140
214
  end
141
215
 
@@ -155,8 +229,9 @@ module Sibu
155
229
  def link(elt, html_opts = {}, &block)
156
230
  repeat = html_opts.delete(:repeat)
157
231
  children = html_opts.delete(:children)
158
- defaults = {"id" => elt_id(elt), "value" => "", "text" => DEFAULT_TEXT}
159
- content = defaults.merge(elt.is_a?(Hash) ? elt : (select_element(elt) || {}))
232
+ defaults = {"id" => elt_id(elt), "value" => "", "text" => Sibu::DEFAULT_TEXT}
233
+ link_elt = current_elt(elt)
234
+ content = defaults.merge(link_elt)
160
235
  val = content.delete("value") || ""
161
236
  text = content.delete("text")
162
237
  html_opts.merge!({data: {id: elt_id(elt), type: "link", repeat: repeat, children: children}}) if action_name != 'show'
@@ -172,16 +247,18 @@ module Sibu
172
247
  else
173
248
  content["href"] = @links.keys.include?(val.to_s) ? (action_name == 'show' ? link_path(val) : site_page_edit_content_path(@site.id, val)) : '#'
174
249
  end
175
- # Note : sends elts in given order
176
250
  if block_given?
177
- content_tag(:a, capture(*([raw(text)] + elts(elt)), &block), content.merge(html_opts).except("elements"))
251
+ @sb_section = (@sb_section || []) + [elt_id(elt)]
252
+ html_output = content_tag(:a, capture(link_elt, elts(elt), &block), content.merge(html_opts).except("elements"))
253
+ @sb_section -= [elt_id(elt)]
254
+ html_output
178
255
  else
179
256
  content_tag(:a, raw(text), content.merge(html_opts).except("elements"))
180
257
  end
181
258
  end
182
259
 
183
260
  def interactive_map(elt, html_opts = {})
184
- defaults = {"data-lat" => "45.68854", "data-lng" => "5.91587", "data-title" => DEFAULT_TEXT}
261
+ defaults = {"data-lat" => "46.1988027", "data-lng" => "5.1748288", "data-title" => Sibu::DEFAULT_TEXT}
185
262
  content = defaults.merge(elt.is_a?(Hash) ? elt : (select_element(elt) || {"id" => elt}))
186
263
  html_opts.merge!({data: {id: elt_id(elt), type: "map"}}) if action_name != 'show'
187
264
  content_tag(:div, nil, content.merge(html_opts))
@@ -191,16 +268,20 @@ module Sibu
191
268
  elt.is_a?(Hash) ? (elt["data-id"] || elt["id"]) : elt
192
269
  end
193
270
 
271
+ def current_elt(elt)
272
+ (elt.is_a?(Hash) ? elt : (select_element(elt) || {})).except('elements')
273
+ end
274
+
194
275
  def default_content(type)
195
276
  case type
196
277
  when "text"
197
- {"text" => DEFAULT_TEXT}
278
+ {"text" => Sibu::DEFAULT_TEXT}
198
279
  when "link"
199
- {"value" => "", "text" => DEFAULT_TEXT}
280
+ {"value" => "", "text" => Sibu::DEFAULT_TEXT}
200
281
  when "paragraph"
201
- {"text" => DEFAULT_PARAGRAPH}
282
+ {"text" => Sibu::DEFAULT_PARAGRAPH}
202
283
  when "media"
203
- {"src" => DEFAULT_IMG}
284
+ {"src" => Sibu::DEFAULT_IMG}
204
285
  when "embed"
205
286
  {"code" => '<p>Contenu HTML personnalisé (iframe, etc...)</p>'}
206
287
  end