sibu 1.0.1 → 1.0.6

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6916799ff35b88c15850f4911c93517a43e8ba1f
4
- data.tar.gz: ef515f1129ed26fdf3f156794e79ac402a37011d
3
+ metadata.gz: 96611f8f7b23adda4d4502b1eef05f34d0a4dea2
4
+ data.tar.gz: 27fe50a309c23dfe80bce28c687d6fc05d96452d
5
5
  SHA512:
6
- metadata.gz: 471eee1cd3b1388651e1771f65396748f48a5e59826552fda85588373cbd2e8df68fa6d0b0a99f6c33f43b0291cba853dd36ded178aa3ec6f2dadd510d968095
7
- data.tar.gz: 913ed58b8942eb16f66b492536e7466927835ff9be32523335c3ec13dc3a1898d0f81aeeedbfda4eb6e38e41ef7a6491f698b5dccc1e334fb12fc160e255faf9
6
+ metadata.gz: 3022613a600e634834e57373d4fefae4e760eda752e7966c5da5f403e7464d9279a0c1dd5277bdd97f9cbac101df450290a0762ea6a58183079362fd87d003c5
7
+ data.tar.gz: 530731b14939afd5615a25df8c1d0834f541c41343484ddfb256b0b1f98b53981fa513ee4b584c1ac6b6067b8d4d20ea0450aa2466955daaf18844509f84ebeb
@@ -229,8 +229,7 @@ $sibu-color3 : #333 !default;
229
229
  padding: 2rem;
230
230
 
231
231
  img {
232
- padding-top: 2rem;
233
- padding-bottom: 2rem;
232
+ margin-bottom: 2rem;
234
233
  border-top: 2px solid $sibu-color1;
235
234
  box-shadow: 0 0 5px #ccc;
236
235
  }
@@ -3,10 +3,21 @@
3
3
  *= require_self
4
4
  */
5
5
 
6
- .sibu_content_panel {
6
+ body.sibu_edit_content, .sibu_content_panel {
7
7
  position: relative
8
8
  }
9
9
 
10
+ body.sibu_edit_content > .sibu_panel:first-child {
11
+ position: fixed;
12
+ width: 100%;
13
+ z-index: 999999;
14
+ top: 0;
15
+ }
16
+
17
+ body.sibu_edit_content > .sibu_content_panel {
18
+ padding-top: 60px;
19
+ }
20
+
10
21
  .sb-editable {
11
22
  cursor: pointer;
12
23
  outline: dashed rgba(94, 219, 255, 0.8) 3px;
@@ -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
@@ -194,5 +196,9 @@ module Sibu
194
196
  def show_params
195
197
  params.permit!
196
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
197
203
  end
198
204
  end
@@ -6,7 +6,11 @@ module Sibu
6
6
  skip_before_action Rails.application.config.sibu[:auth_filter], only: [:show]
7
7
 
8
8
  def index
9
- @sites = Sibu::Site.for_user(sibu_user).order(:name, :version)
9
+ if conf[:admin_filter].call(sibu_user)
10
+ @sites = Sibu::Site.all.order(:name, :version)
11
+ else
12
+ @sites = Sibu::Site.for_user(sibu_user).order(:name, :version)
13
+ end
10
14
  end
11
15
 
12
16
  def show
@@ -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
@@ -58,7 +62,7 @@ module Sibu
58
62
  end
59
63
  else
60
64
  if t == :p
61
- html_output = content_tag(:div, content_tag(t, raw(content["text"]).html_safe, html_opts), html_opts)
65
+ html_output = content_tag(:div, content_tag(t, raw(content["text"]).html_safe), html_opts)
62
66
  else
63
67
  html_output = content_tag(t, raw(content["text"]).html_safe, html_opts)
64
68
  end
@@ -95,8 +99,12 @@ module Sibu
95
99
  (tokens + [suffix]).select {|t| !t.blank?}.join("|")
96
100
  end
97
101
 
98
- def nested_elements(id)
99
- element_id = elt_id(id)
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)
100
108
  element_id_tokens = (@sb_section + element_id.split("|")).uniq
101
109
  nested_elts = @sb_entity.elements(*element_id_tokens)
102
110
  nested_elts.blank? ? [{"id" => element_id.split("|").last, "data-id" => join_tokens(element_id_tokens[1..-1], "#{element_id}0")}] :
@@ -116,25 +124,33 @@ module Sibu
116
124
  wrapper = opts.delete(:wrapper)
117
125
  repeat = opts.delete(:repeat)
118
126
  size = opts.delete(:size)
119
- defaults = {"id" => elt.is_a?(Hash) ? elt["id"] : elt, "src" => Sibu::DEFAULT_IMG}
127
+ t_id = elt.is_a?(Hash) ? elt["id"] : elt
128
+ defaults = {"id" => t_id, "src" => Sibu::DEFAULT_IMG}
120
129
  content = defaults.merge(elt.is_a?(Hash) ? elt : (select_element(elt) || {}))
130
+ @sb_section = (@sb_section || []) + [t_id]
121
131
  if action_name == 'show'
122
132
  content["src"] = ("/#{conf[:deployment_path]}" + content["src"]) if @online && conf[:deployment_path]
123
133
  else
124
- opts.merge!({data: {id: elt_id(elt), type: "media", repeat: repeat, size: size}})
134
+ opts.merge!({data: {id: @sb_section[1..-1].join('|'), type: "media", repeat: repeat, size: size}})
125
135
  end
126
- wrapper ? content_tag(wrapper, content_tag(:img, nil, content.except("id")), opts)
136
+ html_output = wrapper ? content_tag(wrapper, content_tag(:img, nil, content.except("id")), opts)
127
137
  : content_tag(:img, nil, content.except("id").merge(opts.stringify_keys) {|k, old, new| k == 'class' ? [old, new].join(' ') : new})
138
+ @sb_section -= [t_id]
139
+ html_output
128
140
  end
129
141
 
130
142
  def grp(elt, opts = {}, &block)
131
143
  wrapper = opts.delete(:wrapper) || :div
132
144
  repeat = opts.delete(:repeat)
133
145
  children = opts.delete(:children)
134
- defaults = {"id" => elt.is_a?(Hash) ? elt["id"] : elt}
146
+ t_id = elt.is_a?(Hash) ? elt["id"] : elt
147
+ @sb_section = (@sb_section || []) + [t_id]
148
+ defaults = {"id" => t_id}
135
149
  opts = defaults.merge(opts)
136
- opts.merge!({data: {id: elt_id(elt), type: "group", repeat: repeat, children: children}}) if action_name != 'show'
137
- content_tag(wrapper, capture(*elts(elt), &block), opts)
150
+ opts.merge!({data: {id: @sb_section[1..-1].join('|'), type: "group", repeat: repeat, children: children}}) if action_name != 'show'
151
+ html_output = content_tag(wrapper, capture(*elts(elt), &block), opts)
152
+ @sb_section -= [t_id]
153
+ html_output
138
154
  end
139
155
 
140
156
  def empty_tag(elt, tag, type, opts = {})
@@ -187,10 +203,18 @@ module Sibu
187
203
  locals: {sibu: self, sibu_section: s, sibu_attrs: sibu_attributes(s).html_safe}
188
204
  end
189
205
 
206
+ # Page sections attrs
190
207
  def sibu_attributes(section)
191
208
  action_name != 'show' ? ('data-sb-id="' + section['id'] + '" data-sb-entity="page"') : ''
192
209
  end
193
210
 
211
+ # Site sections attrs
212
+ def sibu_attrs(section_id)
213
+ @sb_section = [section_id]
214
+ @sb_entity = @site
215
+ action_name != 'show' ? ('data-sb-id="' + section_id + '" data-sb-entity="site"').html_safe : ''
216
+ end
217
+
194
218
  def section(id, tag, html_opts = {}, &block)
195
219
  @sb_section = [id]
196
220
  opts = action_name != 'show' ? html_opts.merge({"data-sb-id" => id, "data-sb-entity" => @sb_entity == @site ? 'site' : 'page'}) : html_opts
@@ -213,12 +237,14 @@ module Sibu
213
237
  def link(elt, html_opts = {}, &block)
214
238
  repeat = html_opts.delete(:repeat)
215
239
  children = html_opts.delete(:children)
216
- defaults = {"id" => elt_id(elt), "value" => "", "text" => Sibu::DEFAULT_TEXT}
240
+ t_id = elt.is_a?(Hash) ? elt["id"] : elt
241
+ defaults = {"id" => t_id, "value" => "", "text" => Sibu::DEFAULT_TEXT}
217
242
  link_elt = current_elt(elt)
218
243
  content = defaults.merge(link_elt)
219
244
  val = content.delete("value") || ""
220
245
  text = content.delete("text")
221
- html_opts.merge!({data: {id: elt_id(elt), type: "link", repeat: repeat, children: children}}) if action_name != 'show'
246
+ @sb_section = (@sb_section || []) + [t_id]
247
+ html_opts.merge!({data: {id: @sb_section[1..-1].join('|'), type: "link", repeat: repeat, children: children}}) if action_name != 'show'
222
248
  if val.to_s.start_with?('http')
223
249
  content["href"] = val
224
250
  elsif val.to_s.start_with?('#')
@@ -232,17 +258,16 @@ module Sibu
232
258
  content["href"] = @links.keys.include?(val.to_s) ? (action_name == 'show' ? link_path(val) : site_page_edit_content_path(@site.id, val)) : '#'
233
259
  end
234
260
  if block_given?
235
- @sb_section = (@sb_section || []) + [elt_id(elt)]
236
- html_output = content_tag(:a, capture(link_elt, elts(elt), &block), content.merge(html_opts).except("elements"))
237
- @sb_section -= [elt_id(elt)]
238
- html_output
261
+ html_output = content_tag(:a, capture(link_elt, nested_elements(elt), &block), content.merge(html_opts).except("elements"))
239
262
  else
240
- content_tag(:a, raw(text), content.merge(html_opts).except("elements"))
263
+ html_output = content_tag(:a, raw(text), content.merge(html_opts).except("elements"))
241
264
  end
265
+ @sb_section -= [t_id]
266
+ html_output
242
267
  end
243
268
 
244
269
  def interactive_map(elt, html_opts = {})
245
- defaults = {"data-lat" => "45.68854", "data-lng" => "5.91587", "data-title" => Sibu::DEFAULT_TEXT}
270
+ defaults = {"data-lat" => "46.1988027", "data-lng" => "5.1748288", "data-title" => Sibu::DEFAULT_TEXT}
246
271
  content = defaults.merge(elt.is_a?(Hash) ? elt : (select_element(elt) || {"id" => elt}))
247
272
  html_opts.merge!({data: {id: elt_id(elt), type: "map"}}) if action_name != 'show'
248
273
  content_tag(:div, nil, content.merge(html_opts))
@@ -62,5 +62,9 @@ module Sibu
62
62
  save
63
63
  end
64
64
  end
65
+
66
+ def home?
67
+ is_home == 'true' || is_home == '1'
68
+ end
65
69
  end
66
70
  end
@@ -3,16 +3,19 @@
3
3
  <head>
4
4
  <title><%= conf[:title] %></title>
5
5
  <%= stylesheet_link_tag 'sibu/sibu', media: 'all' %>
6
- <%= stylesheet_link_tag conf[:stylesheet], media: 'all' %>
7
- <%= javascript_include_tag "#{conf[:javascript]}-edit" %>
6
+ <%= stylesheet_link_tag "#{conf[:stylesheet]}-edit", media: 'all' %>
8
7
  <% if @site %>
9
8
  <%= stylesheet_link_tag (conf[:custom_styles] ? @site.style_url : @site.site_template.path), media: "all" %>
9
+ <% end %>
10
+
11
+ <% if @site %>
10
12
  <%= javascript_include_tag @site.site_template.path %>
11
13
  <% end %>
14
+ <%= javascript_include_tag "#{conf[:javascript]}-edit" %>
12
15
  <%= csrf_meta_tags %>
13
16
  <%= yield :styles %>
14
17
  </head>
15
- <body>
18
+ <body class="sibu_edit_content">
16
19
  <% [:top_panel, :side_panel, :content_panel, :bottom_panel].each do |panel| %>
17
20
  <% unless conf[panel].blank? %>
18
21
  <div class="<%= panel == :content_panel ? 'sibu_content_panel' : 'sibu_panel' %>">
@@ -44,11 +47,8 @@
44
47
  <%= javascript_include_tag 'sibu/sibu' %>
45
48
  <script>
46
49
  document.addEventListener("DOMContentLoaded", function() {
47
- initOverlays();
50
+ initOverlays("<%= @edit_section || '' %>");
48
51
  sibuCallback("editContent");
49
- <% unless @edit_section.blank? %>
50
- document.querySelector("[data-sb-overlay='<%= @edit_section %>']").click();
51
- <% end %>
52
52
  });
53
53
 
54
54
  function setEditMode(section, overlay, left, top, width, height) {
@@ -77,7 +77,8 @@
77
77
  editMode.querySelector("#new_section_after").style.display = "block";
78
78
  editMode.querySelector("#delete_section").style.display = "block";
79
79
  }
80
- window.scrollTo(0, top);
80
+ var topPadding = top <= 120 ? 60 : 120;
81
+ window.scrollTo(0, top - topPadding);
81
82
  section.classList.add('sb-editing');
82
83
  initInnerOverlays(section);
83
84
  document.querySelector("#edit_overlays").innerHTML = "";
@@ -232,14 +233,14 @@
232
233
  }
233
234
  }
234
235
 
235
- function initOverlays() {
236
+ function initOverlays(activeSection = "") {
236
237
  setTimeout(function() {
237
238
  var container = document.querySelector("#edit_overlays"), sections = document.querySelectorAll("[data-sb-id]");
238
239
  container.innerHTML = "";
239
240
 
240
241
  for (var i = 0; i < sections.length; i++) {
241
- var sectionBox = sections[i].getBoundingClientRect();
242
- var yOffset = sectionBox.top - document.querySelector(".sibu_content_panel").getBoundingClientRect().top;
242
+ var sectionBox = eltBox(sections[i]);
243
+ var yOffset = sectionBox.top;
243
244
  var width = sections[i].offsetWidth, height = (sections[i].offsetHeight === 0 ? childrenHeight(sections[i]) : sections[i].offsetHeight);
244
245
  var overlay = document.createElement("div");
245
246
  overlay.setAttribute("data-sb-overlay", sections[i].getAttribute("data-sb-id"));
@@ -255,9 +256,31 @@
255
256
  };
256
257
  })(sections[i], sectionBox.left, yOffset, width, height));
257
258
  }
259
+ if (activeSection) {
260
+ document.querySelector("[data-sb-overlay='" + activeSection + "']").click();
261
+ }
258
262
  }, 800);
259
263
  }
260
264
 
265
+ function eltBox(elt) {
266
+ var x, y, w, h, bbox = elt.getBoundingClientRect();
267
+ if (isIE()) {
268
+ x = bbox.left + window.scrollX;
269
+ y = bbox.top + window.scrollY;
270
+ } else {
271
+ x = bbox.x + window.scrollX;
272
+ y = bbox.y + window.scrollY;
273
+ }
274
+ w = bbox.width;
275
+ h = bbox.height;
276
+ return {top: y, left: x, width: w, height: h}
277
+ }
278
+
279
+ function isIE() {
280
+ let ua = navigator.userAgent;
281
+ return ua.indexOf("MSIE ") > -1 || ua.indexOf("Trident/") > -1;
282
+ }
283
+
261
284
  function childrenHeight(parentElt) {
262
285
  var height = 0, children = parentElt.querySelectorAll("*");
263
286
  for (var i = 0; i < children.length; i++) {
@@ -1,10 +1,11 @@
1
1
  <h2>Modifier le contenu</h2>
2
2
  <div id="edit_msg"></div>
3
+ <%= render 'element_actions' %>
3
4
  <div class="sibu_edit_form">
4
5
  <form class="edit_element_form" action="<%= update_element_site_page_path(@site.id, @page.id, format: :js) %>" accept-charset="UTF-8" method="patch">
5
6
  <div class="sibu_field">
6
7
  <%= label_tag 'element[code]', "Code d'intégration du contenu" %>
7
- <%= text_area_tag 'element[code]', @element["code"], placeholder: ' ex: <iframe src="..."></iframe>' %>
8
+ <%= text_area_tag 'element[code]', @element["code"], placeholder: 'ex: <iframe src="..."></iframe>' %>
8
9
  </div>
9
10
  <%= hidden_field_tag 'element[id]', @element["id"] %>
10
11
  <%= hidden_field_tag :element_id, @element_id %>
@@ -13,6 +13,13 @@
13
13
  <small>L'adresse (ou URL) de la page, utilisée par les navigateurs web pour y accéder</small>
14
14
  </div>
15
15
  </div>
16
+ <div class="sibu_field">
17
+ <%= f.label :source, "Référence" %>
18
+ <div>
19
+ <%= f.text_field :source, placeholder: "Référence interne optionnelle (Ex: test mise en page 2) " %>
20
+ <small>Un bref descriptif de la page, à usage interne uniquement</small>
21
+ </div>
22
+ </div>
16
23
  <div class="sibu_field">
17
24
  <%= f.label :is_home, "Page d'accueil" %>
18
25
  <div>
@@ -56,6 +63,7 @@
56
63
  </div>
57
64
  </div>
58
65
  <%= f.hidden_field :site_id %>
66
+ <%= f.hidden_field :site_id %>
59
67
  <div class="sibu_actions">
60
68
  <%= f.submit 'Valider' %>
61
69
  <%= link_to 'Annuler', :back %>
@@ -1,5 +1,6 @@
1
1
  <h2>Modifier la carte</h2>
2
2
  <div id="edit_msg"></div>
3
+ <%= render 'element_actions' %>
3
4
  <div class="sibu_edit_form">
4
5
  <form class="edit_element_form" action="<%= update_element_site_page_path(@site.id, @page.id, format: :js) %>" accept-charset="UTF-8" method="patch">
5
6
  <div class="sibu_field">
@@ -2,7 +2,7 @@
2
2
  <div class="actions">
3
3
  <%= link_to 'Retour', :back %>
4
4
  </div>
5
- <h2>Modifier une page</h2>
5
+ <h2>Réglages de la page</h2>
6
6
  <div class="sibu_form">
7
7
  <%= render 'form' %>
8
8
  </div>
@@ -86,8 +86,8 @@ setTimeout(function() {
86
86
  document.querySelector("#clone_elt").style.display = "inline-block";
87
87
  document.querySelector("#duplicate_elt").style.display = "inline-block";
88
88
  <% else %>
89
- document.querySelector("#clone_elt").remove();
90
- document.querySelector("#duplicate_elt").remove();
89
+ if (document.querySelector("#clone_elt")) document.querySelector("#clone_elt").remove();
90
+ if (document.querySelector("#duplicate_elt")) document.querySelector("#duplicate_elt").remove();
91
91
  <% end %>
92
92
 
93
93
  <% if @children %>
@@ -1,6 +1,9 @@
1
1
  <div id="pages" class="sibu_view">
2
2
  <div class="actions">
3
- <%= link_to 'Créer une page', new_site_page_path(@site.id) %> <%= link_to 'Retour', :back %>
3
+ <%= link_to "Bibliothèque d'images", images_path %>
4
+ <%= link_to "Documents", documents_path %>
5
+ <%= link_to 'Créer une page', new_site_page_path(@site.id) %>
6
+ <%= link_to 'Retour', :back %>
4
7
  </div>
5
8
  <h2>Pages du site "<%= @site.name %>"</h2>
6
9
  <table>
@@ -8,7 +11,7 @@
8
11
  <tr>
9
12
  <th>Nom</th>
10
13
  <th>Chemin d'accès</th>
11
- <th>Origine</th>
14
+ <th>Référence</th>
12
15
  <th>Mise à jour</th>
13
16
  <th></th>
14
17
  </tr>
@@ -24,7 +27,7 @@
24
27
  <%= link_to 'Voir', site_page_path(@site.id, p), target: '_blank' %> |
25
28
  <%= link_to 'Editer', site_page_edit_content_path(site_id: @site.id, page_id: p.id) %> |
26
29
  <%= link_to 'Copier', duplicate_site_page_path(@site.id, p), method: :post, data: {confirm: "Copier la page \"#{p.name}\" ?"} %> |
27
- <%= link_to 'Paramétrer', edit_site_page_path(@site.id, p) %> |
30
+ <%= link_to 'Paramétrer cette page', edit_site_page_path(@site.id, p) %> |
28
31
  <%= link_to 'Supprimer', site_page_path(@site.id, p), method: :delete, data: {confirm: "Supprimer la page \"#{p.name}\" ?"} %>
29
32
  </td>
30
33
  </tr>
@@ -16,8 +16,8 @@
16
16
  <div class="sibu_field">
17
17
  <%= f.label :site_template_id, 'Modèle' %>
18
18
  <div>
19
- <%= f.collection_select(:site_template_id, Sibu::SiteTemplate.all, :id, :name, {prompt: 'Sélectionnez un modèle de site'}, disabled: @site.persisted?) %>
20
- <small>Choisissez le gabarit qui servira de modèle pour votre site (non modifiable après création)</small>
19
+ <%= f.collection_select(:site_template_id, Sibu::SiteTemplate.all.order(:name), :id, :name, {prompt: 'Sélectionnez un modèle de site'}, disabled: @site.persisted?) %>
20
+ <small>Choisissez le gabarit qui servira de modèle pour votre site (voir exemples ci-dessous - non modifiable après création)</small>
21
21
  </div>
22
22
  </div>
23
23
  <div class="sibu_field">
@@ -24,7 +24,7 @@
24
24
  <td><%= l s.updated_at %></td>
25
25
  <td colspan="2">
26
26
  <%= link_to 'Pages', site_pages_path(s) %> |
27
- <%= link_to 'Paramétrer', edit_site_path(s) %> |
27
+ <%= link_to 'Réglages du site', edit_site_path(s) %> |
28
28
  <%= link_to 'Copier', duplicate_site_path(s), method: :post, data: {confirm: "Copier le site \"#{s.name}\" ?"} %> |
29
29
  <%= link_to 'Supprimer', site_path(s), method: :delete, data: {confirm: "Supprimer le site \"#{s.name}\" ?"} %>
30
30
  </td>
@@ -8,7 +8,7 @@
8
8
  </div>
9
9
  <h2>Aperçu des modèles</h2>
10
10
  <div>
11
- <% Sibu::SiteTemplate.all.each do |st| %>
11
+ <% Sibu::SiteTemplate.all.order(:name).each do |st| %>
12
12
  <div class="sibu_template">
13
13
  <h3><%= st.name %></h3>
14
14
  <%= image_tag "#{st.path}1.jpg" %>
@@ -1,3 +1,3 @@
1
1
  module Sibu
2
- VERSION = '1.0.1'
2
+ VERSION = '1.0.6'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sibu
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jean-Baptiste Vilain
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-28 00:00:00.000000000 Z
11
+ date: 2020-09-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails