enjoy_cms 0.2.1 → 0.3.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 (45) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +33 -3
  3. data/app/controllers/concerns/enjoy/decorators/contacts.rb +5 -0
  4. data/app/controllers/concerns/enjoy/decorators/home.rb +5 -0
  5. data/app/controllers/concerns/enjoy/decorators/news.rb +5 -0
  6. data/app/controllers/concerns/enjoy/decorators/pages.rb +5 -0
  7. data/app/controllers/concerns/enjoy/decorators/search.rb +5 -0
  8. data/app/controllers/enjoy/contacts_controller.rb +2 -0
  9. data/app/controllers/enjoy/home_controller.rb +3 -0
  10. data/app/controllers/enjoy/news_controller.rb +2 -0
  11. data/app/controllers/enjoy/pages_controller.rb +2 -0
  12. data/app/controllers/enjoy/search_controller.rb +2 -0
  13. data/app/models/concerns/enjoy/html_field.rb +23 -0
  14. data/app/models/concerns/enjoy/mongoid_paperclip.rb +13 -0
  15. data/app/models/concerns/enjoy/rails_admin_patch.rb +16 -0
  16. data/app/views/rails_admin/main/_check_boxes.html.slim +1 -1
  17. data/app/views/rails_admin/main/_enjoy_html.html.slim +13 -0
  18. data/app/views/rails_admin/main/_enum_check_boxes.html.slim +1 -1
  19. data/app/views/rails_admin/main/_enum_radio_buttons.html.slim +1 -1
  20. data/config/initializers/simple_captcha.rb +1 -1
  21. data/enjoy_cms.gemspec +6 -0
  22. data/lib/enjoy/admin/news.rb +2 -2
  23. data/lib/enjoy/admin/page.rb +3 -3
  24. data/lib/enjoy/model.rb +2 -1
  25. data/lib/enjoy/models/contact_message.rb +0 -9
  26. data/lib/enjoy/models/embedded_element.rb +0 -9
  27. data/lib/enjoy/models/embedded_gallery_image.rb +0 -9
  28. data/lib/enjoy/models/gallery.rb +0 -9
  29. data/lib/enjoy/models/gallery_image.rb +0 -9
  30. data/lib/enjoy/models/menu.rb +0 -11
  31. data/lib/enjoy/models/mongoid/embedded_gallery_image.rb +6 -0
  32. data/lib/enjoy/models/mongoid/gallery.rb +5 -0
  33. data/lib/enjoy/models/mongoid/gallery_image.rb +4 -0
  34. data/lib/enjoy/models/mongoid/news.rb +6 -3
  35. data/lib/enjoy/models/mongoid/page.rb +4 -2
  36. data/lib/enjoy/models/mongoid/seo.rb +8 -5
  37. data/lib/enjoy/models/news.rb +0 -9
  38. data/lib/enjoy/models/page.rb +0 -9
  39. data/lib/enjoy/models/seo.rb +0 -9
  40. data/lib/enjoy/models/sitemap_data.rb +0 -9
  41. data/lib/enjoy/rails_admin_enjoy_html.rb +40 -0
  42. data/lib/enjoy/version.rb +1 -1
  43. data/lib/enjoy_cms.rb +3 -0
  44. data/template.rb +7 -6
  45. metadata +67 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a9058168d3e015e9c7618246f623a9c5f2a324be
4
- data.tar.gz: 3823a3981ad52b1620ff1e0618acfc3c6ce3ce44
3
+ metadata.gz: a31b07bd2773130f799f9cece76e6d15c7f74522
4
+ data.tar.gz: 3a01393c4a260036190025c18413a9f201991d58
5
5
  SHA512:
6
- metadata.gz: 772b57c08786e0be58c5accbefc841ee8317e9d91349b89aafc73dc4885d9e674cbdc291e9e6175a5d7ae2e5cb09a89ce566c6d28ddb0e5e8669f9182b755e80
7
- data.tar.gz: be0678b89c1ae435d21e9d19352ea2d1b7f7d5974defcc4dddb76f9adb6f7aa27f7407258a12e8204d24983d901b96074ea373e16c8ebc224bacdce0131677b8
6
+ metadata.gz: 6ae824740984bb5108a3a4f9be73e5517b2f4a0022bcb1d70076199292db8872818582b2492c440ec753e7891f10e7ced292fa71568e97cff625b77b0a59a80f
7
+ data.tar.gz: e6df80fe7c147ee781fa6d9d88d48cdb445aaaaaffac512eb5c1000851e887dc5203ae3d1164a865e9be323106cb50977a05d7c259f3572f6dfb6963de9b9b6b
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- enjoy_cms (0.2.1)
4
+ enjoy_cms (0.3.0.2)
5
5
  ack_rails_admin_jcrop
6
6
  addressable
7
7
  ckeditor
@@ -9,13 +9,17 @@ PATH
9
9
  devise
10
10
  geocoder
11
11
  glebtv-simple_captcha
12
+ image_optim
13
+ image_optim_pack
12
14
  jquery-rails
13
15
  kaminari
16
+ paperclip-optimizer
14
17
  rails (= 4.2.4)
15
18
  rails_admin
16
19
  rails_admin_mongoid_localize_field
17
20
  rails_admin_nested_set
18
21
  rails_admin_settings
22
+ rails_admin_sort_embedded
19
23
  rails_admin_toggleable
20
24
  simple-navigation
21
25
  simple_form
@@ -98,8 +102,10 @@ GEM
98
102
  warden (~> 1.2.3)
99
103
  erubis (2.7.0)
100
104
  execjs (2.6.0)
101
- font-awesome-rails (4.5.0.0)
102
- railties (>= 3.2, < 5.0)
105
+ exifr (1.2.4)
106
+ font-awesome-rails (4.5.0.1)
107
+ railties (>= 3.2, < 5.1)
108
+ fspath (2.1.1)
103
109
  geocoder (1.3.0)
104
110
  glebtv-simple_captcha (0.6.7)
105
111
  globalid (0.3.6)
@@ -108,6 +114,17 @@ GEM
108
114
  tilt
109
115
  htmlentities (4.3.4)
110
116
  i18n (0.7.0)
117
+ image_optim (0.22.0)
118
+ exifr (~> 1.2, >= 1.2.2)
119
+ fspath (~> 2.1)
120
+ image_size (~> 1.3)
121
+ in_threads (~> 1.3)
122
+ progress (~> 3.0, >= 3.0.1)
123
+ image_optim_pack (0.2.1.20160119)
124
+ fspath (~> 2.1)
125
+ image_optim (~> 0.19)
126
+ image_size (1.4.1)
127
+ in_threads (1.3.1)
111
128
  jquery-rails (4.1.0)
112
129
  rails-dom-testing (~> 1.0)
113
130
  railties (>= 4.2.0)
@@ -123,6 +140,7 @@ GEM
123
140
  mail (2.6.3)
124
141
  mime-types (>= 1.16, < 3)
125
142
  mime-types (2.99)
143
+ mimemagic (0.3.0)
126
144
  mini_magick (4.4.0)
127
145
  mini_portile2 (2.0.0)
128
146
  minitest (5.8.4)
@@ -138,6 +156,16 @@ GEM
138
156
  mini_portile2 (~> 2.0.0.rc2)
139
157
  origin (2.2.0)
140
158
  orm_adapter (0.5.0)
159
+ paperclip (4.3.5)
160
+ activemodel (>= 3.2.0)
161
+ activesupport (>= 3.2.0)
162
+ cocaine (~> 0.5.5)
163
+ mime-types
164
+ mimemagic (= 0.3.0)
165
+ paperclip-optimizer (2.0.0)
166
+ image_optim (~> 0.19)
167
+ paperclip (>= 3.4)
168
+ progress (3.1.1)
141
169
  rack (1.6.4)
142
170
  rack-pjax (0.8.0)
143
171
  nokogiri (~> 1.5)
@@ -185,6 +213,8 @@ GEM
185
213
  rails_admin_nested_set (0.4.5)
186
214
  rails_admin
187
215
  rails_admin_settings (1.1.3)
216
+ rails_admin_sort_embedded (0.1.4)
217
+ rails_admin
188
218
  rails_admin_toggleable (0.6.0)
189
219
  rails_admin
190
220
  railties (4.2.4)
@@ -0,0 +1,5 @@
1
+ module Enjoy::Decorators
2
+ module Contacts
3
+ extend ActiveSupport::Concern
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module Enjoy::Decorators
2
+ module Home
3
+ extend ActiveSupport::Concern
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module Enjoy::Decorators
2
+ module News
3
+ extend ActiveSupport::Concern
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module Enjoy::Decorators
2
+ module Pages
3
+ extend ActiveSupport::Concern
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module Enjoy::Decorators
2
+ module Search
3
+ extend ActiveSupport::Concern
4
+ end
5
+ end
@@ -1,5 +1,7 @@
1
1
  module Enjoy
2
2
  class ContactsController < ApplicationController
3
3
  include Enjoy::Controllers::Contacts
4
+
5
+ include Enjoy::Decorators::Contacts
4
6
  end
5
7
  end
@@ -1,6 +1,9 @@
1
1
  module Enjoy
2
2
  class HomeController < ApplicationController
3
+
3
4
  def index
4
5
  end
6
+
7
+ include Enjoy::Decorators::Home
5
8
  end
6
9
  end
@@ -1,5 +1,7 @@
1
1
  module Enjoy
2
2
  class NewsController < ApplicationController
3
3
  include Enjoy::Controllers::News
4
+
5
+ include Enjoy::Decorators::News
4
6
  end
5
7
  end
@@ -1,5 +1,7 @@
1
1
  module Enjoy
2
2
  class PagesController < ApplicationController
3
3
  include Enjoy::Controllers::Pages
4
+
5
+ include Enjoy::Decorators::Pages
4
6
  end
5
7
  end
@@ -2,5 +2,7 @@
2
2
  module Enjoy
3
3
  class SearchController < ApplicationController
4
4
  include Enjoy::Controllers::Search
5
+
6
+ include Enjoy::Decorators::Search
5
7
  end
6
8
  end
@@ -0,0 +1,23 @@
1
+ if Enjoy.mongoid?
2
+ module Enjoy::HtmlField
3
+ extend ActiveSupport::Concern
4
+
5
+ module ClassMethods
6
+ def enjoy_cms_html_field(name, opts = {})
7
+ clear_by_default = opts.delete(:clear_by_default)
8
+ clear_by_default = false unless clear_by_default == true
9
+
10
+ field "#{name}_html", opts
11
+ field "#{name}_clear", type: Boolean, default: clear_by_default
12
+
13
+ class_eval <<-EVAL
14
+ def #{name}
15
+ self.#{name}_html ||= ""
16
+ return self.#{name}_html unless self.#{name}_clear
17
+ Rails::Html::FullSanitizer.new.sanitize(self.#{name}_html.strip)
18
+ end
19
+ EVAL
20
+ end
21
+ end
22
+ end
23
+ end
@@ -12,6 +12,13 @@ if Enjoy.mongoid?
12
12
  jcrop_options = opts.delete(:jcrop_options)
13
13
  end
14
14
 
15
+ opts[:processors] ||= []
16
+ opts[:processors] << :paperclip_optimizer
17
+ opts[:processors].flatten!
18
+ opts[:processors].uniq!
19
+
20
+ opts[:convert_options] = {all: "-quality 75 -strip"} if opts[:convert_options].blank?
21
+
15
22
  has_mongoid_attached_file name, opts
16
23
  validates_attachment name, content_type: content_type unless content_type.blank?
17
24
  class_eval <<-EVAL
@@ -23,6 +30,12 @@ if Enjoy.mongoid?
23
30
  file_name = val[0..val.size-extension.size-1]
24
31
  self[:#{name}_file_name] = "\#{file_name.filename_to_slug}.\#{extension.filename_to_slug}"
25
32
  end
33
+
34
+ before_#{name}_post_process do
35
+ p_o = self.#{name}.processors.delete :paperclip_optimizer
36
+ self.#{name}.processors << p_o if p_o
37
+ true
38
+ end
26
39
  EVAL
27
40
  if jcrop_options
28
41
  class_eval <<-EVAL
@@ -0,0 +1,16 @@
1
+ module Enjoy::RailsAdminPatch
2
+ extend ActiveSupport::Concern
3
+
4
+ def rails_admin_model
5
+ self.class.to_param.gsub("::", "~").underscore
6
+ end
7
+
8
+ module ClassMethods
9
+ def rails_admin_add_fields
10
+ {}
11
+ end
12
+
13
+ def rails_admin_add_config(config)
14
+ end
15
+ end
16
+ end
@@ -24,4 +24,4 @@
24
24
  controller.list_entries(config, :index, field.associated_collection_scope, false).map { |o| [o.send(field.associated_object_label_method), o.send(field.associated_primary_key)] }.sort_by {|a| [selected_ids.index(a[1]) || selected_ids.size, i+=1] }
25
25
  end
26
26
 
27
- = form.collection_check_boxes field.method_name, collection, :last, :fienjoyt, {}, {} { |i| i.label( class: 'checkbox' ) { i.check_box + i.text } }
27
+ = form.collection_check_boxes field.method_name, collection, :last, :first, {}, {} { |i| i.label( class: 'checkbox' ) { i.check_box + i.text } }
@@ -0,0 +1,13 @@
1
+ ruby:
2
+ js_data = {
3
+ jspath: field.location ? field.location : field.base_location + "ckeditor.js",
4
+ base_location: field.base_location,
5
+ options: {
6
+ customConfig: field.config_js ? field.config_js : field.base_location + "config.js"
7
+ }
8
+ }
9
+ = form.text_area "#{field.method_name}_html", field.html_attributes.reverse_merge(data: { richtext: 'ckeditor', options: js_data.to_json }).reverse_merge({ value: field.form_value[:html] })
10
+
11
+ label{style='display: block;'}
12
+ span{style='float: left'}= form.send field.boolean_view_helper, "#{field.method_name}_clear", field.html_attributes.reverse_merge({ value: field.form_value[:clear], checked: field.form_value[:clear].in?([true, '1']), required: field.required, class: "form-control"})
13
+ div{style='margin-left: 35px; line-height: 40px;'} Убирать теги
@@ -2,4 +2,4 @@
2
2
  values = form.object.class.send(field.method_name).values.map { |v|
3
3
  [t("enumerize.#{form.object.class.name.downcase}.#{field.method_name}.#{v}", default: t("enumerize.defaults.#{field.method_name}.#{v}")), v]
4
4
  }
5
- = form.collection_check_boxes field.method_name, values, :last, :fienjoyt, {}, {} { |i| i.label( class: 'checkbox' ) { i.check_box + i.text } }
5
+ = form.collection_check_boxes field.method_name, values, :last, :first, {}, {} { |i| i.label( class: 'checkbox' ) { i.check_box + i.text } }
@@ -2,4 +2,4 @@
2
2
  values = form.object.class.send(field.method_name).values.map { |v|
3
3
  [t("enumerize.#{form.object.class.name.downcase}.#{field.method_name}.#{v}", default: t("enumerize.defaults.#{field.method_name}.#{v}")), v]
4
4
  }
5
- = form.collection_radio_buttons field.method_name, values, :last, :fienjoyt, {}, {} { |i| i.label(class: 'radio') { i.radio_button + i.text } }
5
+ = form.collection_radio_buttons field.method_name, values, :last, :first, {}, {} { |i| i.label(class: 'radio') { i.radio_button + i.text } }
@@ -21,7 +21,7 @@ SimpleCaptcha.setup do |sc|
21
21
  sc.length = 4
22
22
  sc.charset = "1234567890"
23
23
 
24
- sc.add_image_style("enjoy_cms_style", ["-alpha set", "-fill '#ffffff'", "-background 'transparent'", "-size 200x50", "xc:transparent"])
24
+ sc.add_image_style("enjoy_cms_style", ["-alpha set", "-fill 'red'", "-background 'transparent'", "-size 200x50", "xc:transparent"])
25
25
 
26
26
  sc.image_style = 'enjoy_cms_style'
27
27
 
data/enjoy_cms.gemspec CHANGED
@@ -50,4 +50,10 @@ Gem::Specification.new do |spec|
50
50
  spec.add_dependency 'stringex'
51
51
  spec.add_dependency 'thor'
52
52
  spec.add_dependency 'smart_excerpt'
53
+
54
+
55
+ spec.add_dependency 'rails_admin_sort_embedded'
56
+ spec.add_dependency 'image_optim'
57
+ spec.add_dependency 'image_optim_pack'
58
+ spec.add_dependency 'paperclip-optimizer'
53
59
  end
@@ -18,7 +18,7 @@ module Enjoy
18
18
  jcrop_options :image_jcrop_options
19
19
  end
20
20
  end
21
- field :excerpt, :ck_editor
21
+ field :excerpt, :enjoy_html
22
22
  field :slugs, :enum do
23
23
  enum_method do
24
24
  :slugs
@@ -37,7 +37,7 @@ module Enjoy
37
37
  end
38
38
 
39
39
  edit do
40
- field :content, :ck_editor
40
+ field :content, :enjoy_html
41
41
  fields.each_pair do |name, type|
42
42
  if type.nil?
43
43
  field name
@@ -18,11 +18,11 @@ module Enjoy
18
18
  field :redirect
19
19
  field :slug
20
20
  end
21
-
21
+
22
22
  edit do
23
23
  field :name
24
- field :excerpt, :ck_editor
25
- field :content, :ck_editor
24
+ field :excerpt, :enjoy_html
25
+ field :content, :enjoy_html
26
26
 
27
27
  group :menu do
28
28
  label I18n.t('enjoy.menu')
data/lib/enjoy/model.rb CHANGED
@@ -21,7 +21,8 @@ module Enjoy
21
21
  if Enjoy.mongoid? && defined?(Trackable)
22
22
  include Trackable
23
23
  end
24
- end
25
24
 
25
+ include Enjoy::RailsAdminPatch
26
+ end
26
27
  end
27
28
  end
@@ -25,15 +25,6 @@ module Enjoy
25
25
  end
26
26
  end
27
27
 
28
- module ClassMethods
29
- def rails_admin_add_fields
30
- {}
31
- end
32
-
33
- def rails_admin_add_config(config)
34
- end
35
- end
36
-
37
28
  def send_emails?
38
29
  true
39
30
  end
@@ -7,15 +7,6 @@ module Enjoy
7
7
  include Enjoy::Sortable
8
8
 
9
9
  include Enjoy.orm_specific('EmbeddedElement')
10
-
11
- module ClassMethods
12
- def rails_admin_add_fields
13
- {}
14
- end
15
-
16
- def rails_admin_add_config(config)
17
- end
18
- end
19
10
  end
20
11
  end
21
12
  end
@@ -11,15 +11,6 @@ module Enjoy
11
11
  included do
12
12
  validates_attachment_content_type :image, content_type: /\Aimage\/.*\Z/, if: :image?
13
13
  end
14
-
15
- module ClassMethods
16
- def rails_admin_add_fields
17
- {}
18
- end
19
-
20
- def rails_admin_add_config(config)
21
- end
22
- end
23
14
  end
24
15
  end
25
16
  end
@@ -16,15 +16,6 @@ module Enjoy
16
16
 
17
17
  validates_attachment_content_type :image, content_type: /\Aimage\/.*\Z/, if: :image?
18
18
  end
19
-
20
- module ClassMethods
21
- def rails_admin_add_fields
22
- {}
23
- end
24
-
25
- def rails_admin_add_config(config)
26
- end
27
- end
28
19
  end
29
20
  end
30
21
  end
@@ -14,15 +14,6 @@ module Enjoy
14
14
 
15
15
  validates_attachment_content_type :image, content_type: /\Aimage\/.*\Z/, if: :image?
16
16
  end
17
-
18
- module ClassMethods
19
- def rails_admin_add_fields
20
- {}
21
- end
22
-
23
- def rails_admin_add_config(config)
24
- end
25
- end
26
17
  end
27
18
  end
28
19
  end
@@ -9,8 +9,6 @@ module Enjoy
9
9
  include Enjoy.orm_specific('Menu')
10
10
 
11
11
  included do
12
-
13
- field :name, type: String
14
12
  manual_slug :name
15
13
 
16
14
  after_save do
@@ -20,15 +18,6 @@ module Enjoy
20
18
  Rails.cache.delete 'menus'
21
19
  end
22
20
  end
23
-
24
- module ClassMethods
25
- def rails_admin_add_fields
26
- {}
27
- end
28
-
29
- def rails_admin_add_config(config)
30
- end
31
- end
32
21
  end
33
22
  end
34
23
  end
@@ -9,13 +9,19 @@ module Enjoy
9
9
 
10
10
  enjoy_cms_mongoid_attached_file(:image,
11
11
  styles: lambda { |attachment| attachment.instance.image_styles },
12
+ convert_options: lambda { |attachment| attachment.instance.image_convert_options },
12
13
  content_type: { content_type: ["image/jpg", "image/jpeg", "image/png"] }
13
14
  )
14
15
  end
15
16
 
17
+
16
18
  def image_styles
17
19
  {}
18
20
  end
21
+ def image_convert_options
22
+ {}
23
+ end
24
+
19
25
  end
20
26
  end
21
27
  end
@@ -14,6 +14,7 @@ module Enjoy
14
14
 
15
15
  enjoy_cms_mongoid_attached_file(:image,
16
16
  styles: lambda { |attachment| attachment.instance.image_styles },
17
+ convert_options: lambda { |attachment| attachment.instance.image_convert_options },
17
18
  content_type: { content_type: ["image/jpg", "image/jpeg", "image/png"] }
18
19
  )
19
20
  end
@@ -21,6 +22,10 @@ module Enjoy
21
22
  def image_styles
22
23
  {}
23
24
  end
25
+ def image_convert_options
26
+ {}
27
+ end
28
+
24
29
  end
25
30
  end
26
31
  end
@@ -12,6 +12,7 @@ module Enjoy
12
12
 
13
13
  enjoy_cms_mongoid_attached_file(:image,
14
14
  styles: lambda { |attachment| attachment.instance.image_styles },
15
+ convert_options: lambda { |attachment| attachment.instance.image_convert_options },
15
16
  content_type: { content_type: ["image/jpg", "image/jpeg", "image/png"] }
16
17
  )
17
18
  end
@@ -19,6 +20,9 @@ module Enjoy
19
20
  def image_styles
20
21
  {}
21
22
  end
23
+ def image_convert_options
24
+ {}
25
+ end
22
26
  end
23
27
  end
24
28
  end
@@ -7,20 +7,23 @@ module Enjoy
7
7
  include Enjoy::MongoidPaperclip
8
8
  end
9
9
 
10
+ include Enjoy::HtmlField
11
+
10
12
  included do
11
13
  field :name, type: String, localize: Enjoy.config.localize, default: ""
12
-
14
+
13
15
  field :time, type: Time
14
16
  index({enabled: 1, time: 1})
15
17
  unless Enjoy.config.news_image_styles.nil?
16
18
  enjoy_cms_mongoid_attached_file(:image,
17
19
  styles: Enjoy.configuration.news_image_styles,
20
+ convert_options: Enjoy.configuration.news_image_convert_options,
18
21
  content_type: { content_type: ["image/jpg", "image/jpeg", "image/png"] }
19
22
  )
20
23
  end
21
24
 
22
- field :excerpt, type: String, localize: Enjoy.configuration.localize, default: ""
23
- field :content, type: String, localize: Enjoy.configuration.localize, default: ""
25
+ enjoy_cms_html_field :excerpt, type: String, localize: Enjoy.configuration.localize, default: ""
26
+ enjoy_cms_html_field :content, type: String, localize: Enjoy.configuration.localize, default: ""
24
27
 
25
28
  scope :after_now, -> { where(:time.lt => Time.now) }
26
29
  scope :by_date, -> { desc(:time) }
@@ -4,13 +4,15 @@ module Enjoy
4
4
  module Page
5
5
  extend ActiveSupport::Concern
6
6
 
7
+ include Enjoy::HtmlField
8
+
7
9
  included do
8
10
  field :name, type: String, localize: Enjoy.config.localize, default: ""
9
11
 
10
12
  field :regexp, type: String, default: ""
11
13
  field :redirect, type: String, default: ""
12
- field :excerpt, type: String, localize: Enjoy.config.localize, default: ""
13
- field :content, type: String, localize: Enjoy.config.localize, default: ""
14
+ enjoy_cms_html_field :excerpt, type: String, localize: Enjoy.config.localize, default: ""
15
+ enjoy_cms_html_field :content, type: String, localize: Enjoy.config.localize, default: ""
14
16
  field :fullpath, type: String, default: ""
15
17
 
16
18
  has_and_belongs_to_many :menus, inverse_of: :pages, class_name: "Enjoy::Menu"
@@ -16,16 +16,19 @@ module Enjoy
16
16
 
17
17
  field :og_title, type: String, localize: Enjoy.config.localize
18
18
  enjoy_cms_mongoid_attached_file(:og_image,
19
- styles: og_image_styles,
19
+ styles: lambda { |attachment| attachment.instance.og_image_styles },
20
+ convert_options: lambda { |attachment| attachment.instance.og_image_convert_options },
20
21
  content_type: { content_type: ["image/jpg", "image/jpeg", "image/png"] }
21
22
  )
22
23
  end
23
24
 
24
- module ClassMethods
25
- def og_image_styles
26
- {thumb: "800x600>"}
27
- end
25
+ def og_image_styles
26
+ {thumb: "800x600>"}
28
27
  end
28
+ def og_image_convert_options
29
+ {}
30
+ end
31
+
29
32
  end
30
33
  end
31
34
  end
@@ -36,15 +36,6 @@ module Enjoy
36
36
  manual_slug :report_slug
37
37
  end
38
38
 
39
- module ClassMethods
40
- def rails_admin_add_fields
41
- {}
42
- end
43
-
44
- def rails_admin_add_config(config)
45
- end
46
- end
47
-
48
39
  def report_slug
49
40
  if time.blank?
50
41
  name
@@ -23,15 +23,6 @@ module Enjoy
23
23
  end
24
24
  end
25
25
 
26
- module ClassMethods
27
- def rails_admin_add_fields
28
- {}
29
- end
30
-
31
- def rails_admin_add_config(config)
32
- end
33
- end
34
-
35
26
  def page_h1
36
27
  _ret = seo ? seo.h1 : nil
37
28
  _ret = name if _ret.blank?
@@ -12,15 +12,6 @@ module Enjoy
12
12
 
13
13
  validates_attachment_content_type :og_image, content_type: /\Aimage\/.*\Z/, if: :og_image?
14
14
  end
15
-
16
- module ClassMethods
17
- def rails_admin_add_fields
18
- {}
19
- end
20
-
21
- def rails_admin_add_config(config)
22
- end
23
- end
24
15
  end
25
16
  end
26
17
  end
@@ -12,15 +12,6 @@ module Enjoy
12
12
  included do
13
13
  belongs_to :sitemap_data_field, polymorphic: true
14
14
  end
15
-
16
- module ClassMethods
17
- def rails_admin_add_fields
18
- {}
19
- end
20
-
21
- def rails_admin_add_config(config)
22
- end
23
- end
24
15
  end
25
16
  end
26
17
  end
@@ -0,0 +1,40 @@
1
+ module RailsAdmin
2
+ module Config
3
+ module Fields
4
+ module Types
5
+ class EnjoyHtml < RailsAdmin::Config::Fields::Types::CKEditor
6
+ # Register field type for the type loader
7
+ RailsAdmin::Config::Fields::Types::register(self)
8
+ include RailsAdmin::Engine.routes.url_helpers
9
+
10
+ register_instance_option :pretty_value do
11
+ bindings[:object].send(name + "_html")
12
+ end
13
+
14
+ register_instance_option :form_value do
15
+ {
16
+ html: bindings[:object].send("#{name}_html"),
17
+ clear: bindings[:object].send("#{name}_clear")
18
+ }
19
+ end
20
+
21
+ register_instance_option :formatted_value do
22
+ pretty_value
23
+ end
24
+
25
+ register_instance_option :export_value do
26
+ pretty_value
27
+ end
28
+
29
+ register_instance_option :boolean_view_helper do
30
+ :check_box
31
+ end
32
+
33
+ register_instance_option :partial do
34
+ :enjoy_html
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
data/lib/enjoy/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Enjoy
2
- VERSION = "0.2.1"
2
+ VERSION = "0.3.0.2"
3
3
  end
data/lib/enjoy_cms.rb CHANGED
@@ -29,10 +29,13 @@ require 'turbolinks'
29
29
  require 'simple-navigation'
30
30
  require 'ack_rails_admin_jcrop'
31
31
 
32
+ require 'paperclip-optimizer'
33
+
32
34
  require 'enjoy/configuration'
33
35
  require 'enjoy/elastic_search'
34
36
  require 'enjoy/model'
35
37
  require 'enjoy/rails_admin_menu'
38
+ require 'enjoy/rails_admin_enjoy_html'
36
39
  require 'enjoy/engine'
37
40
  require 'enjoy/controller'
38
41
 
data/template.rb CHANGED
@@ -15,14 +15,14 @@ create_file 'Gemfile' do <<-TEXT
15
15
  source 'https://rubygems.org'
16
16
 
17
17
  gem 'rails', '4.2.4' #'~> 5.0.0.beta1'
18
- #{if mongoid then "gem 'mongoid', '~> 5.0.0'" else "gem 'pg'" end}
18
+ #{if mongoid then "gem 'mongoid'" else "gem 'pg'" end}
19
19
 
20
- gem 'sass', '~> 3.4.0'
20
+ gem 'sass'
21
21
  gem 'sass-rails'
22
- gem 'compass-rails', '~> 2.0.0'
23
- gem 'compass', '~> 1.0.0'
22
+ gem 'compass-rails'
23
+ gem 'compass'
24
24
 
25
- #{if mongoid then "gem 'enjoy_cms_mongoid'" else "gem 'enjoy_cms_activerecord'" end}, '~> 0.2.0.beta', git: 'https://github.com/enjoycreative/enjoy_cms'
25
+ #{if mongoid then "gem 'enjoy_cms_mongoid'" else "gem 'enjoy_cms_activerecord'" end}, '~> 0.3.0'
26
26
 
27
27
  gem 'devise'
28
28
 
@@ -34,7 +34,8 @@ gem 'cloner'
34
34
  gem 'unicorn'
35
35
  gem 'x-real-ip'
36
36
 
37
- gem 'sentry-raven'
37
+ #temp
38
+ #gem 'sentry-raven'
38
39
 
39
40
  group :development do
40
41
  gem 'better_errors'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: enjoy_cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Kiseliev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-09 00:00:00.000000000 Z
11
+ date: 2016-02-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -374,6 +374,62 @@ dependencies:
374
374
  - - ">="
375
375
  - !ruby/object:Gem::Version
376
376
  version: '0'
377
+ - !ruby/object:Gem::Dependency
378
+ name: rails_admin_sort_embedded
379
+ requirement: !ruby/object:Gem::Requirement
380
+ requirements:
381
+ - - ">="
382
+ - !ruby/object:Gem::Version
383
+ version: '0'
384
+ type: :runtime
385
+ prerelease: false
386
+ version_requirements: !ruby/object:Gem::Requirement
387
+ requirements:
388
+ - - ">="
389
+ - !ruby/object:Gem::Version
390
+ version: '0'
391
+ - !ruby/object:Gem::Dependency
392
+ name: image_optim
393
+ requirement: !ruby/object:Gem::Requirement
394
+ requirements:
395
+ - - ">="
396
+ - !ruby/object:Gem::Version
397
+ version: '0'
398
+ type: :runtime
399
+ prerelease: false
400
+ version_requirements: !ruby/object:Gem::Requirement
401
+ requirements:
402
+ - - ">="
403
+ - !ruby/object:Gem::Version
404
+ version: '0'
405
+ - !ruby/object:Gem::Dependency
406
+ name: image_optim_pack
407
+ requirement: !ruby/object:Gem::Requirement
408
+ requirements:
409
+ - - ">="
410
+ - !ruby/object:Gem::Version
411
+ version: '0'
412
+ type: :runtime
413
+ prerelease: false
414
+ version_requirements: !ruby/object:Gem::Requirement
415
+ requirements:
416
+ - - ">="
417
+ - !ruby/object:Gem::Version
418
+ version: '0'
419
+ - !ruby/object:Gem::Dependency
420
+ name: paperclip-optimizer
421
+ requirement: !ruby/object:Gem::Requirement
422
+ requirements:
423
+ - - ">="
424
+ - !ruby/object:Gem::Version
425
+ version: '0'
426
+ type: :runtime
427
+ prerelease: false
428
+ version_requirements: !ruby/object:Gem::Requirement
429
+ requirements:
430
+ - - ">="
431
+ - !ruby/object:Gem::Version
432
+ version: '0'
377
433
  description: 'EnjoyCMS '
378
434
  email:
379
435
  - dev@enjoycreate.ru
@@ -399,6 +455,11 @@ files:
399
455
  - app/assets/stylesheets/enjoy_cms/flash.sass
400
456
  - app/assets/stylesheets/enjoy_cms/normalize.scss
401
457
  - app/assets/stylesheets/enjoy_cms/powered.sass
458
+ - app/controllers/concerns/enjoy/decorators/contacts.rb
459
+ - app/controllers/concerns/enjoy/decorators/home.rb
460
+ - app/controllers/concerns/enjoy/decorators/news.rb
461
+ - app/controllers/concerns/enjoy/decorators/pages.rb
462
+ - app/controllers/concerns/enjoy/decorators/search.rb
402
463
  - app/controllers/concerns/enjoy/errors.rb
403
464
  - app/controllers/concerns/enjoy/fancybox.rb
404
465
  - app/controllers/concerns/enjoy/localizeable.rb
@@ -426,9 +487,11 @@ files:
426
487
  - app/models/concerns/enjoy/decorators/sitemap_data.rb
427
488
  - app/models/concerns/enjoy/enableable.rb
428
489
  - app/models/concerns/enjoy/geocodeable.rb
490
+ - app/models/concerns/enjoy/html_field.rb
429
491
  - app/models/concerns/enjoy/mappable.rb
430
492
  - app/models/concerns/enjoy/model_localizeable.rb
431
493
  - app/models/concerns/enjoy/mongoid_paperclip.rb
494
+ - app/models/concerns/enjoy/rails_admin_patch.rb
432
495
  - app/models/concerns/enjoy/seoable.rb
433
496
  - app/models/concerns/enjoy/sitemap_data_field.rb
434
497
  - app/models/concerns/enjoy/sort_field.rb
@@ -466,6 +529,7 @@ files:
466
529
  - app/views/errors/error_500.html.slim
467
530
  - app/views/layouts/application.html.slim
468
531
  - app/views/rails_admin/main/_check_boxes.html.slim
532
+ - app/views/rails_admin/main/_enjoy_html.html.slim
469
533
  - app/views/rails_admin/main/_enum_check_boxes.html.slim
470
534
  - app/views/rails_admin/main/_enum_radio_buttons.html.slim
471
535
  - app/views/rails_admin/main/_form_raw.html.slim
@@ -538,6 +602,7 @@ files:
538
602
  - lib/enjoy/models/page.rb
539
603
  - lib/enjoy/models/seo.rb
540
604
  - lib/enjoy/models/sitemap_data.rb
605
+ - lib/enjoy/rails_admin_enjoy_html.rb
541
606
  - lib/enjoy/rails_admin_menu.rb
542
607
  - lib/enjoy/simple_form_patch.rb
543
608
  - lib/enjoy/tasks.rb