sibu 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6916799ff35b88c15850f4911c93517a43e8ba1f
4
- data.tar.gz: ef515f1129ed26fdf3f156794e79ac402a37011d
3
+ metadata.gz: b274fec919e722e48ba571e1ee3379f037af6372
4
+ data.tar.gz: 4da5793bc66501214bbb5c9a5a38b00890b4754e
5
5
  SHA512:
6
- metadata.gz: 471eee1cd3b1388651e1771f65396748f48a5e59826552fda85588373cbd2e8df68fa6d0b0a99f6c33f43b0291cba853dd36ded178aa3ec6f2dadd510d968095
7
- data.tar.gz: 913ed58b8942eb16f66b492536e7466927835ff9be32523335c3ec13dc3a1898d0f81aeeedbfda4eb6e38e41ef7a6491f698b5dccc1e334fb12fc160e255faf9
6
+ metadata.gz: '085bf4d2059a0f51494b062332fa6c9e9ada4313d6be6c4ee4799c8f0418d0fc4967d1c2ac967e7f750651866abb1fb249997e6f10e71d067c912fb5ecb5081e'
7
+ data.tar.gz: f26e18f34db37e935cdf4f891fa7033bc585a78421f32b950974460f1a777e97174cf8b728b9f95c452c6d2ffdd7fff2e82e2fbe6163e235fd5633cd0b250f88
@@ -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
@@ -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")}] :
@@ -187,10 +195,18 @@ module Sibu
187
195
  locals: {sibu: self, sibu_section: s, sibu_attrs: sibu_attributes(s).html_safe}
188
196
  end
189
197
 
198
+ # Page sections attrs
190
199
  def sibu_attributes(section)
191
200
  action_name != 'show' ? ('data-sb-id="' + section['id'] + '" data-sb-entity="page"') : ''
192
201
  end
193
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
+
194
210
  def section(id, tag, html_opts = {}, &block)
195
211
  @sb_section = [id]
196
212
  opts = action_name != 'show' ? html_opts.merge({"data-sb-id" => id, "data-sb-entity" => @sb_entity == @site ? 'site' : 'page'}) : html_opts
@@ -242,7 +258,7 @@ module Sibu
242
258
  end
243
259
 
244
260
  def interactive_map(elt, html_opts = {})
245
- defaults = {"data-lat" => "45.68854", "data-lng" => "5.91587", "data-title" => Sibu::DEFAULT_TEXT}
261
+ defaults = {"data-lat" => "46.1988027", "data-lng" => "5.1748288", "data-title" => Sibu::DEFAULT_TEXT}
246
262
  content = defaults.merge(elt.is_a?(Hash) ? elt : (select_element(elt) || {"id" => elt}))
247
263
  html_opts.merge!({data: {id: elt_id(elt), type: "map"}}) if action_name != 'show'
248
264
  content_tag(:div, nil, content.merge(html_opts))
@@ -2,13 +2,13 @@
2
2
  <html>
3
3
  <head>
4
4
  <title><%= conf[:title] %></title>
5
- <%= stylesheet_link_tag 'sibu/sibu', media: 'all' %>
6
- <%= stylesheet_link_tag conf[:stylesheet], media: 'all' %>
7
- <%= javascript_include_tag "#{conf[:javascript]}-edit" %>
8
5
  <% if @site %>
9
6
  <%= stylesheet_link_tag (conf[:custom_styles] ? @site.style_url : @site.site_template.path), media: "all" %>
10
7
  <%= javascript_include_tag @site.site_template.path %>
11
8
  <% end %>
9
+ <%= stylesheet_link_tag 'sibu/sibu', media: 'all' %>
10
+ <%= stylesheet_link_tag "#{conf[:stylesheet]}-edit", media: 'all' %>
11
+ <%= javascript_include_tag "#{conf[:javascript]}-edit" %>
12
12
  <%= csrf_meta_tags %>
13
13
  <%= yield :styles %>
14
14
  </head>
@@ -44,11 +44,8 @@
44
44
  <%= javascript_include_tag 'sibu/sibu' %>
45
45
  <script>
46
46
  document.addEventListener("DOMContentLoaded", function() {
47
- initOverlays();
47
+ initOverlays("<%= @edit_section || '' %>");
48
48
  sibuCallback("editContent");
49
- <% unless @edit_section.blank? %>
50
- document.querySelector("[data-sb-overlay='<%= @edit_section %>']").click();
51
- <% end %>
52
49
  });
53
50
 
54
51
  function setEditMode(section, overlay, left, top, width, height) {
@@ -232,7 +229,7 @@
232
229
  }
233
230
  }
234
231
 
235
- function initOverlays() {
232
+ function initOverlays(activeSection = "") {
236
233
  setTimeout(function() {
237
234
  var container = document.querySelector("#edit_overlays"), sections = document.querySelectorAll("[data-sb-id]");
238
235
  container.innerHTML = "";
@@ -255,6 +252,9 @@
255
252
  };
256
253
  })(sections[i], sectionBox.left, yOffset, width, height));
257
254
  }
255
+ if (activeSection) {
256
+ document.querySelector("[data-sb-overlay='" + activeSection + "']").click();
257
+ }
258
258
  }, 800);
259
259
  }
260
260
 
@@ -1,5 +1,6 @@
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">
@@ -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">
@@ -8,7 +8,7 @@
8
8
  <tr>
9
9
  <th>Nom</th>
10
10
  <th>Chemin d'accès</th>
11
- <th>Origine</th>
11
+ <th>Référence</th>
12
12
  <th>Mise à jour</th>
13
13
  <th></th>
14
14
  </tr>
@@ -1,3 +1,3 @@
1
1
  module Sibu
2
- VERSION = '1.0.1'
2
+ VERSION = '1.0.2'
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.2
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-06-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails