sibu 0.1.30 → 0.1.31
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 +4 -4
- data/app/controllers/sibu/sites_controller.rb +9 -0
- data/app/models/concerns/sibu/style_uploader.rb +2 -0
- data/app/models/sibu/dynamic_style.rb +12 -11
- data/app/models/sibu/site.rb +22 -1
- data/app/models/sibu/site_template.rb +1 -0
- data/app/views/layouts/sibu/edit_content.html.erb +1 -7
- data/app/views/layouts/sibu/site.html.erb +1 -7
- data/app/views/sibu/sites/_form.html.erb +1 -1
- data/config/initializers/shrine.rb +2 -0
- data/db/migrate/20180301121902_add_style_data_to_sites.rb +5 -0
- data/db/migrate/20180301152101_add_default_styles_to_templates.rb +5 -0
- data/lib/sibu/version.rb +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a4ce5724416f6921c5a4529d03b9291ffd80876b
|
4
|
+
data.tar.gz: f06dee1f7ecd38a5482fe94b7dbe613f59780894
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 13b0f98002eda8b9fd1af7d8e0fd51f867dada1b1eaa8b1975b6d6b82008d7703fe11aed808a853fb207303482b5eb410367d5e671d70ae0b089d52037b9fc7c
|
7
|
+
data.tar.gz: c018e9f2c7c125eb60342a403943d28f9245ea6575e55b63f27e9e273d36d15d25466cc3998774ae98070af4282e67b34cdd58a27ef4eb42a56eb6f218b94e6d
|
@@ -21,6 +21,7 @@ module Sibu
|
|
21
21
|
def create
|
22
22
|
@site = Sibu::Site.new(site_params)
|
23
23
|
if @site.save_and_init
|
24
|
+
generate_styles
|
24
25
|
redirect_to sites_url, notice: "Le site a bien été créé."
|
25
26
|
else
|
26
27
|
flash.now[:alert] = "Une erreur s'est produite lors de la création du site."
|
@@ -34,6 +35,9 @@ module Sibu
|
|
34
35
|
|
35
36
|
def update
|
36
37
|
if @site.update(site_params)
|
38
|
+
if @site.previous_changes.has_key?(:custom_data)
|
39
|
+
generate_styles
|
40
|
+
end
|
37
41
|
redirect_to (params[:next_page].blank? ? sites_url : params[:next_page]), notice: "Le site a bien été mis à jour."
|
38
42
|
else
|
39
43
|
flash.now[:alert] = "Une erreur s'est produite lors de l'enregistrement du site."
|
@@ -55,5 +59,10 @@ module Sibu
|
|
55
59
|
def site_params
|
56
60
|
params.require(:site).permit!
|
57
61
|
end
|
62
|
+
|
63
|
+
def generate_styles
|
64
|
+
ds = Sibu::DynamicStyle.new(@site.id)
|
65
|
+
ds.compile
|
66
|
+
end
|
58
67
|
end
|
59
68
|
end
|
@@ -5,37 +5,38 @@ module Sibu
|
|
5
5
|
|
6
6
|
def initialize(site_id)
|
7
7
|
@site = Sibu::Site.find(site_id)
|
8
|
-
@filename = "
|
8
|
+
@filename = "#{site_id}_#{Time.current.to_i}"
|
9
9
|
@scss_file = File.new(scss_file_path, 'w')
|
10
|
-
|
11
|
-
@body = ERB.new(File.read(template_file_path)).result(vars_binding)
|
10
|
+
@body = ERB.new(File.read(template_file_path)).result(binding)
|
12
11
|
@env = Rails.application.assets
|
13
12
|
end
|
14
13
|
|
15
|
-
# Todo : la compilation semble marcher
|
16
|
-
# Modifier le fichier cible scss pour que les variables soient directement renseignées (detente.scss.erb)
|
17
|
-
# Tester la compilation SASS puis mettre en place upload du fichier compilé dans Sibu::Site si ça marche
|
18
14
|
def compile
|
19
15
|
find_or_create_scss
|
20
16
|
|
21
17
|
begin
|
22
18
|
scss_file.write generate_css
|
23
19
|
scss_file.flush
|
24
|
-
# site.update(style_url: File.join(site.site_template.path, "#{filename}.css"))
|
25
|
-
ensure
|
26
20
|
scss_file.close
|
27
|
-
|
21
|
+
css_file_path = scss_file_path.gsub('scss', 'css')
|
22
|
+
File.rename(scss_file_path, css_file_path)
|
23
|
+
site.update(style: File.new(css_file_path))
|
24
|
+
rescue Exception => ex
|
25
|
+
logger.error(ex)
|
26
|
+
ensure
|
27
|
+
File.delete(scss_file_path) if File.exist?(scss_file_path)
|
28
|
+
File.delete(css_file_path) if File.exist?(css_file_path)
|
28
29
|
end
|
29
30
|
end
|
30
31
|
|
31
32
|
private
|
32
33
|
|
33
34
|
def template_file_path
|
34
|
-
@template_file_path ||= File.join(Rails.root, '
|
35
|
+
@template_file_path ||= File.join(Rails.root, 'lib', 'assets', '_default_template.scss.erb')
|
35
36
|
end
|
36
37
|
|
37
38
|
def scss_tmpfile_path
|
38
|
-
@scss_file_path ||= File.join(Rails.root, 'app', 'assets', 'stylesheets',
|
39
|
+
@scss_file_path ||= File.join(Rails.root, 'app', 'assets', 'stylesheets', 'templates')
|
39
40
|
FileUtils.mkdir_p(@scss_file_path) unless File.exists?(@scss_file_path)
|
40
41
|
@scss_file_path
|
41
42
|
end
|
data/app/models/sibu/site.rb
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
module Sibu
|
2
2
|
class Site < ApplicationRecord
|
3
|
+
include StyleUploader::Attachment.new(:style, cache: :styles_cache, store: :styles_store)
|
3
4
|
include Sibu::SectionsConcern
|
4
5
|
|
5
6
|
store :custom_data, accessors: [:primary_font, :secondary_font, :primary_color, :secondary_color], coder: JSON
|
6
|
-
store :metadata, accessors: [:analytics_id
|
7
|
+
store :metadata, accessors: [:analytics_id], coder: JSON
|
7
8
|
|
8
9
|
belongs_to :site_template, :class_name => 'Sibu::SiteTemplate'
|
9
10
|
has_many :pages, :class_name => 'Sibu::Page', dependent: :destroy
|
@@ -11,6 +12,26 @@ module Sibu
|
|
11
12
|
|
12
13
|
validates_presence_of :name, :site_template
|
13
14
|
|
15
|
+
def style_url
|
16
|
+
style ? style.url : site_template.path
|
17
|
+
end
|
18
|
+
|
19
|
+
def main_color
|
20
|
+
primary_color.blank? ? site_template.primary_color : primary_color
|
21
|
+
end
|
22
|
+
|
23
|
+
def alt_color
|
24
|
+
secondary_color.blank? ? site_template.secondary_color : secondary_color
|
25
|
+
end
|
26
|
+
|
27
|
+
def main_font
|
28
|
+
primary_font.blank? ? site_template.primary_font : primary_font
|
29
|
+
end
|
30
|
+
|
31
|
+
def alt_font
|
32
|
+
secondary_font.blank? ? site_template.secondary_font : secondary_font
|
33
|
+
end
|
34
|
+
|
14
35
|
def section_template(section)
|
15
36
|
"#{site_template.path}/#{section["template"]}"
|
16
37
|
end
|
@@ -3,6 +3,7 @@ module Sibu
|
|
3
3
|
store :default_sections, accessors: [:sections], coder: JSON
|
4
4
|
store :default_pages, accessors: [:pages], coder: JSON
|
5
5
|
store :default_templates, accessors: [:templates], coder: JSON
|
6
|
+
store :default_styles, accessors: [:primary_font, :secondary_font, :primary_color, :secondary_color], coder: JSON
|
6
7
|
|
7
8
|
def reference
|
8
9
|
name.parameterize.gsub('-', '_')
|
@@ -7,15 +7,9 @@
|
|
7
7
|
<%= javascript_include_tag "#{conf[:javascript]}-edit" %>
|
8
8
|
<%= javascript_include_tag 'sibu/sibu' %>
|
9
9
|
<% if @site %>
|
10
|
-
<%= stylesheet_link_tag @site.
|
10
|
+
<%= stylesheet_link_tag @site.style_url, media: "all" %>
|
11
11
|
<%= javascript_include_tag "#{@site.site_template.path}-core" %>
|
12
12
|
<% end %>
|
13
|
-
<% unless @site.primary_font.blank? %>
|
14
|
-
<%= stylesheet_link_tag "fonts/#{@site.primary_font.downcase}", media: "all" %>
|
15
|
-
<% end %>
|
16
|
-
<% unless @site.secondary_font.blank? %>
|
17
|
-
<%= stylesheet_link_tag "fonts/#{@site.secondary_font.downcase}", media: "all" %>
|
18
|
-
<% end %>
|
19
13
|
<%= csrf_meta_tags %>
|
20
14
|
<%= yield :styles %>
|
21
15
|
</head>
|
@@ -7,15 +7,9 @@
|
|
7
7
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
8
8
|
|
9
9
|
<% if @site %>
|
10
|
-
<%= stylesheet_link_tag @site.
|
10
|
+
<%= stylesheet_link_tag @site.style_url, media: "all" %>
|
11
11
|
<%= javascript_include_tag @site.site_template.path %>
|
12
12
|
<% end %>
|
13
|
-
<% unless @site.primary_font.blank? %>
|
14
|
-
<%= stylesheet_link_tag "fonts/#{@site.primary_font.downcase}", media: "all" %>
|
15
|
-
<% end %>
|
16
|
-
<% unless @site.secondary_font.blank? %>
|
17
|
-
<%= stylesheet_link_tag "fonts/#{@site.secondary_font.downcase}", media: "all" %>
|
18
|
-
<% end %>
|
19
13
|
<%= csrf_meta_tags %>
|
20
14
|
<%= yield :styles %>
|
21
15
|
</head>
|
@@ -66,7 +66,7 @@
|
|
66
66
|
<%= hidden_field_tag :next_page, @next_page %>
|
67
67
|
<%= f.hidden_field :user_id %>
|
68
68
|
<div class="sibu_actions">
|
69
|
-
<%= f.submit 'Valider' %>
|
69
|
+
<%= f.submit 'Valider', data: {disable: 'Enregistrement en cours...'} %>
|
70
70
|
<%= link_to 'Annuler', :back %>
|
71
71
|
</div>
|
72
72
|
<% end %>
|
@@ -4,6 +4,8 @@ require "shrine/storage/file_system"
|
|
4
4
|
Shrine.storages = {
|
5
5
|
cache: Shrine::Storage::FileSystem.new("public", prefix: "uploads/cache"),
|
6
6
|
store: Shrine::Storage::FileSystem.new("public", prefix: "uploads/store"),
|
7
|
+
styles_cache: Shrine::Storage::FileSystem.new("public", prefix: "stylesheets/cache"),
|
8
|
+
styles_store: Shrine::Storage::FileSystem.new("public", prefix: "stylesheets/store")
|
7
9
|
}
|
8
10
|
|
9
11
|
Shrine.plugin :activerecord
|
data/lib/sibu/version.rb
CHANGED
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: 0.1.
|
4
|
+
version: 0.1.31
|
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: 2018-03-
|
11
|
+
date: 2018-03-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -141,6 +141,7 @@ files:
|
|
141
141
|
- app/mailers/sibu/application_mailer.rb
|
142
142
|
- app/models/concerns/sibu/image_uploader.rb
|
143
143
|
- app/models/concerns/sibu/sections_concern.rb
|
144
|
+
- app/models/concerns/sibu/style_uploader.rb
|
144
145
|
- app/models/sibu/application_record.rb
|
145
146
|
- app/models/sibu/dynamic_style.rb
|
146
147
|
- app/models/sibu/image.rb
|
@@ -205,6 +206,8 @@ files:
|
|
205
206
|
- db/migrate/20180210181644_add_defaults_to_site_templates.rb
|
206
207
|
- db/migrate/20180214134653_add_fields_to_sites.rb
|
207
208
|
- db/migrate/20180227151519_add_default_templates_to_site_templates.rb
|
209
|
+
- db/migrate/20180301121902_add_style_data_to_sites.rb
|
210
|
+
- db/migrate/20180301152101_add_default_styles_to_templates.rb
|
208
211
|
- lib/sibu.rb
|
209
212
|
- lib/sibu/engine.rb
|
210
213
|
- lib/sibu/utils.rb
|