enjoy_cms 0.3.7.4 → 0.4.0.beta3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (213) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.ruby-version +1 -1
  4. data/Gemfile.lock +62 -111
  5. data/app/assets/javascripts/{enjoy_cms → enjoy/cms}/flash.coffee +0 -0
  6. data/app/assets/javascripts/enjoy/cms/init.coffee +1 -0
  7. data/app/assets/javascripts/{enjoy_cms → enjoy/cms}/map.coffee +0 -0
  8. data/app/assets/javascripts/enjoy/cms.coffee +11 -0
  9. data/app/assets/javascripts/enjoy/rails_admin/cms.ui.coffee +26 -0
  10. data/app/assets/javascripts/{enjoy_cms → enjoy}/rails_admin/custom/ui.coffee +0 -0
  11. data/app/assets/javascripts/rails_admin/custom/ui.coffee +2 -2
  12. data/app/assets/stylesheets/{enjoy_cms → enjoy/cms}/flash.sass +0 -0
  13. data/app/assets/stylesheets/{enjoy_cms → enjoy/cms}/normalize.scss +0 -0
  14. data/app/assets/stylesheets/{enjoy_cms → enjoy/cms}/powered.sass +0 -0
  15. data/app/assets/stylesheets/{enjoy_cms.sass → enjoy/cms.sass} +3 -1
  16. data/app/assets/stylesheets/enjoy/rails_admin/cms.ui.sass +117 -0
  17. data/{lib/enjoy/controllers/sitemap_data.rb → app/assets/stylesheets/enjoy/rails_admin/custom/ui.sass} +0 -0
  18. data/app/assets/stylesheets/rails_admin/custom/theming.sass +2 -0
  19. data/app/controllers/concerns/enjoy/errors.rb +1 -1
  20. data/app/controllers/enjoy/registrations_controller.rb +20 -0
  21. data/app/controllers/enjoy/sessions_controller.rb +19 -0
  22. data/app/helpers/enjoy/home_helper.rb +2 -0
  23. data/app/helpers/enjoy/powered_helper.rb +1 -1
  24. data/app/models/concerns/enjoy/html_field.rb +3 -0
  25. data/app/views/blocks/_favicon.html.slim +60 -21
  26. data/app/views/devise/registrations/edit.html.slim +2 -2
  27. data/app/views/devise/registrations/new.html.slim +9 -3
  28. data/app/views/devise/sessions/new.html.slim +8 -2
  29. data/app/views/devise/shared/_links.html.slim +4 -4
  30. data/app/views/{errors → enjoy/errors}/_base.html.slim +0 -0
  31. data/app/views/{errors → enjoy/errors}/error_403.html.slim +0 -0
  32. data/app/views/{errors → enjoy/errors}/error_404.html.slim +0 -0
  33. data/app/views/{errors → enjoy/errors}/error_500.html.slim +0 -0
  34. data/app/views/{simple_captcha → enjoy/simple_captcha}/_simple_captcha.html.slim +0 -0
  35. data/app/views/layouts/application.html.slim +8 -4
  36. data/app/views/layouts/enjoy/devise/confirmations.html.slim +27 -0
  37. data/app/views/layouts/enjoy/devise/passwords.html.slim +27 -0
  38. data/app/views/layouts/enjoy/devise/registrations.html.slim +27 -0
  39. data/app/views/layouts/enjoy/devise/sessions.html.slim +27 -0
  40. data/app/views/layouts/enjoy/devise/unlocks.html.slim +27 -0
  41. data/app/views/rails_admin/main/_setting_value.html.haml +104 -0
  42. data/app/views/shared/_messages.html.slim +1 -1
  43. data/config/initializers/simple_captcha.rb +29 -20
  44. data/config/locales/en.enjoy.yml +1 -1
  45. data/config/locales/ru.enjoy.yml +0 -7
  46. data/config/locales/ru.models.yml +2 -39
  47. data/enjoy_cms.gemspec +7 -20
  48. data/lib/enjoy/configuration.rb +24 -40
  49. data/lib/enjoy/controller.rb +5 -3
  50. data/lib/enjoy/engine.rb +28 -28
  51. data/lib/enjoy/migration.rb +0 -19
  52. data/lib/enjoy/model.rb +5 -2
  53. data/lib/enjoy/rails_admin_ext/config.rb +112 -0
  54. data/lib/enjoy/rails_admin_ext/enjoy_hash.rb +0 -2
  55. data/lib/enjoy/rails_admin_ext/enjoy_slugs.rb +31 -0
  56. data/lib/enjoy/rails_admin_ext/group_patch.rb +2 -1
  57. data/lib/enjoy/rails_admin_settings_patch.rb +7 -0
  58. data/lib/enjoy/routes.rb +1 -26
  59. data/lib/enjoy/version.rb +1 -1
  60. data/lib/enjoy_cms.rb +25 -71
  61. data/lib/filename_to_slug.rb +20 -22
  62. data/lib/generators/enjoy/{ability_generator.rb → cms/ability_generator.rb} +3 -3
  63. data/lib/generators/enjoy/{admin_generator.rb → cms/admin_generator.rb} +2 -2
  64. data/lib/generators/enjoy/cms/application_generator.rb +14 -0
  65. data/lib/generators/enjoy/cms/assets_generator.rb +35 -0
  66. data/lib/generators/enjoy/{config/install_generator.rb → cms/config_generator.rb} +3 -3
  67. data/lib/generators/enjoy/cms/gemfile_generator.rb +13 -0
  68. data/lib/generators/enjoy/{layout_generator.rb → cms/layout_generator.rb} +2 -2
  69. data/lib/generators/enjoy/cms/paperclip_optimizer_generator.rb +13 -0
  70. data/lib/generators/enjoy/cms/rack_generator.rb +12 -0
  71. data/lib/generators/enjoy/cms/robots_generator.rb +12 -0
  72. data/lib/generators/enjoy/cms/scripts_generator.rb +25 -0
  73. data/lib/generators/enjoy/cms/templates/Gemfile.erb +69 -0
  74. data/lib/generators/enjoy/cms/templates/ability.erb +45 -0
  75. data/lib/generators/enjoy/{templates → cms/templates}/admin.erb +5 -26
  76. data/lib/generators/enjoy/cms/templates/application.erb +42 -0
  77. data/lib/generators/enjoy/cms/templates/assets/javascripts/application.coffee.erb +1 -0
  78. data/lib/generators/enjoy/cms/templates/assets/stylesheets/application.sass.erb +15 -0
  79. data/lib/generators/enjoy/cms/templates/assets/stylesheets/enjoy/rails_admin/custom/ui.sass.erb +106 -0
  80. data/lib/generators/enjoy/cms/templates/enjoy_cms.erb +28 -0
  81. data/lib/generators/enjoy/cms/templates/paperclip_optimizer.erb +80 -0
  82. data/lib/generators/enjoy/cms/templates/rack.erb +15 -0
  83. data/lib/generators/enjoy/cms/templates/robots.txt.erb +4 -0
  84. data/lib/generators/enjoy/cms/templates/scripts/assets_precompile.sh +3 -0
  85. data/lib/generators/enjoy/cms/templates/scripts/bundle_production.sh +4 -0
  86. data/lib/generators/enjoy/cms/templates/scripts/db_dump.sh.erb +3 -0
  87. data/lib/generators/enjoy/cms/templates/scripts/db_restore.sh +3 -0
  88. data/lib/generators/enjoy/cms/templates/scripts/full_assets_precompile.sh +4 -0
  89. data/lib/generators/enjoy/cms/templates/scripts/restart_thru_kill.sh +3 -0
  90. data/lib/generators/enjoy/cms/templates/scripts/send_hup.sh +3 -0
  91. data/lib/generators/enjoy/cms/templates/scripts/send_usr2.sh +3 -0
  92. data/lib/generators/enjoy/cms/templates/unicorn.erb +57 -0
  93. data/lib/generators/enjoy/cms/templates/unicorn.god.erb +59 -0
  94. data/lib/generators/enjoy/cms/unicorn_god_generator.rb +15 -0
  95. data/lib/generators/enjoy/{utils.rb → cms/utils.rb} +1 -1
  96. data/lib/rails_admin/custom_show_in_app.rb +13 -13
  97. data/template.rb +197 -543
  98. metadata +73 -325
  99. data/app/assets/javascripts/enjoy_cms/contacts.coffee +0 -11
  100. data/app/assets/javascripts/enjoy_cms/rails_admin/cms.ui.coffee +0 -6
  101. data/app/assets/javascripts/enjoy_cms.coffee +0 -7
  102. data/app/controllers/concerns/enjoy/blocksetable.rb +0 -37
  103. data/app/controllers/concerns/enjoy/decorators/contacts.rb +0 -5
  104. data/app/controllers/concerns/enjoy/decorators/news.rb +0 -5
  105. data/app/controllers/concerns/enjoy/decorators/pages.rb +0 -5
  106. data/app/controllers/concerns/enjoy/decorators/search.rb +0 -5
  107. data/app/controllers/concerns/enjoy/nav_menu.rb +0 -91
  108. data/app/controllers/concerns/enjoy/seo_pages.rb +0 -90
  109. data/app/controllers/enjoy/contacts_controller.rb +0 -7
  110. data/app/controllers/enjoy/news_controller.rb +0 -7
  111. data/app/controllers/enjoy/pages_controller.rb +0 -7
  112. data/app/controllers/enjoy/search_controller.rb +0 -8
  113. data/app/mailers/enjoy/contact_mailer.rb +0 -17
  114. data/app/models/concerns/enjoy/connectable.rb +0 -36
  115. data/app/models/concerns/enjoy/decorators/contact_message.rb +0 -5
  116. data/app/models/concerns/enjoy/decorators/embedded_gallery_image.rb +0 -5
  117. data/app/models/concerns/enjoy/decorators/gallery.rb +0 -5
  118. data/app/models/concerns/enjoy/decorators/gallery_image.rb +0 -5
  119. data/app/models/concerns/enjoy/decorators/menu.rb +0 -5
  120. data/app/models/concerns/enjoy/decorators/news.rb +0 -5
  121. data/app/models/concerns/enjoy/decorators/page.rb +0 -5
  122. data/app/models/concerns/enjoy/decorators/page_block.rb +0 -5
  123. data/app/models/concerns/enjoy/decorators/page_blockset.rb +0 -5
  124. data/app/models/concerns/enjoy/decorators/seo.rb +0 -5
  125. data/app/models/concerns/enjoy/decorators/sitemap_data.rb +0 -5
  126. data/app/models/concerns/enjoy/mongoid_paperclip.rb +0 -51
  127. data/app/models/concerns/enjoy/seoable.rb +0 -36
  128. data/app/models/concerns/enjoy/sitemap_data_field.rb +0 -17
  129. data/app/models/enjoy/contact_message.rb +0 -16
  130. data/app/models/enjoy/embedded_gallery_image.rb +0 -16
  131. data/app/models/enjoy/gallery.rb +0 -13
  132. data/app/models/enjoy/gallery_image.rb +0 -13
  133. data/app/models/enjoy/menu.rb +0 -16
  134. data/app/models/enjoy/news.rb +0 -16
  135. data/app/models/enjoy/page.rb +0 -16
  136. data/app/models/enjoy/page_block.rb +0 -13
  137. data/app/models/enjoy/page_blockset.rb +0 -13
  138. data/app/models/enjoy/seo.rb +0 -16
  139. data/app/models/enjoy/sitemap_data.rb +0 -16
  140. data/app/views/enjoy/contact_mailer/new_message_email.html.slim +0 -15
  141. data/app/views/enjoy/contacts/_form.html.slim +0 -7
  142. data/app/views/enjoy/contacts/_form_with_wrapper.html.slim +0 -2
  143. data/app/views/enjoy/contacts/_success.html.slim +0 -3
  144. data/app/views/enjoy/contacts/index.html.slim +0 -4
  145. data/app/views/enjoy/contacts/new.html.slim +0 -4
  146. data/app/views/enjoy/contacts/sent.html.slim +0 -3
  147. data/app/views/enjoy/news/index.html.slim +0 -9
  148. data/app/views/enjoy/news/show.html.slim +0 -8
  149. data/app/views/enjoy/pages/show.html.slim +0 -1
  150. data/app/views/enjoy/search/index.html.slim +0 -19
  151. data/app/views/rails_admin/main/_enjoy_connectable.html.slim +0 -56
  152. data/config/locales/ru.kaminari.yml +0 -17
  153. data/config/locales/ru.simple_captcha.yml +0 -3
  154. data/config/locales/ru.simple_form.yml +0 -9
  155. data/lib/enjoy/admin/contact_message.rb +0 -42
  156. data/lib/enjoy/admin/embedded_gallery_image.rb +0 -38
  157. data/lib/enjoy/admin/gallery.rb +0 -44
  158. data/lib/enjoy/admin/gallery_image.rb +0 -31
  159. data/lib/enjoy/admin/menu.rb +0 -27
  160. data/lib/enjoy/admin/news.rb +0 -89
  161. data/lib/enjoy/admin/page.rb +0 -96
  162. data/lib/enjoy/admin/page_block.rb +0 -49
  163. data/lib/enjoy/admin/page_blockset.rb +0 -50
  164. data/lib/enjoy/admin/seo.rb +0 -41
  165. data/lib/enjoy/admin/sitemap_data.rb +0 -29
  166. data/lib/enjoy/controllers/contacts.rb +0 -86
  167. data/lib/enjoy/controllers/news.rb +0 -36
  168. data/lib/enjoy/controllers/pages.rb +0 -22
  169. data/lib/enjoy/controllers/search.rb +0 -62
  170. data/lib/enjoy/elastic_search.rb +0 -31
  171. data/lib/enjoy/models/active_record/contact_message.rb +0 -14
  172. data/lib/enjoy/models/active_record/menu.rb +0 -17
  173. data/lib/enjoy/models/active_record/news.rb +0 -26
  174. data/lib/enjoy/models/active_record/page.rb +0 -20
  175. data/lib/enjoy/models/active_record/seo.rb +0 -17
  176. data/lib/enjoy/models/active_record/sitemap_data.rb +0 -11
  177. data/lib/enjoy/models/contact_message.rb +0 -41
  178. data/lib/enjoy/models/embedded_gallery_image.rb +0 -13
  179. data/lib/enjoy/models/gallery.rb +0 -21
  180. data/lib/enjoy/models/gallery_image.rb +0 -19
  181. data/lib/enjoy/models/menu.rb +0 -23
  182. data/lib/enjoy/models/mongoid/contact_message.rb +0 -23
  183. data/lib/enjoy/models/mongoid/embedded_gallery_image.rb +0 -24
  184. data/lib/enjoy/models/mongoid/gallery.rb +0 -32
  185. data/lib/enjoy/models/mongoid/gallery_image.rb +0 -29
  186. data/lib/enjoy/models/mongoid/menu.rb +0 -20
  187. data/lib/enjoy/models/mongoid/news.rb +0 -37
  188. data/lib/enjoy/models/mongoid/page.rb +0 -49
  189. data/lib/enjoy/models/mongoid/page_block.rb +0 -56
  190. data/lib/enjoy/models/mongoid/page_blockset.rb +0 -20
  191. data/lib/enjoy/models/mongoid/seo.rb +0 -35
  192. data/lib/enjoy/models/mongoid/sitemap_data.rb +0 -25
  193. data/lib/enjoy/models/news.rb +0 -58
  194. data/lib/enjoy/models/page.rb +0 -92
  195. data/lib/enjoy/models/page_block.rb +0 -22
  196. data/lib/enjoy/models/page_blockset.rb +0 -24
  197. data/lib/enjoy/models/seo.rb +0 -17
  198. data/lib/enjoy/models/sitemap_data.rb +0 -17
  199. data/lib/enjoy/rails_admin_ext/enjoy_connectable.rb +0 -33
  200. data/lib/enjoy/rails_admin_ext/menu.rb +0 -147
  201. data/lib/generators/enjoy/capify_generator.rb +0 -39
  202. data/lib/generators/enjoy/config/templates/enjoy_cms.erb +0 -27
  203. data/lib/generators/enjoy/migration_generator.rb +0 -18
  204. data/lib/generators/enjoy/templates/Capfile +0 -17
  205. data/lib/generators/enjoy/templates/ability.erb +0 -48
  206. data/lib/generators/enjoy/templates/deploy.erb +0 -47
  207. data/lib/generators/enjoy/templates/dl.erb +0 -30
  208. data/lib/generators/enjoy/templates/migration_contact_messages.rb +0 -15
  209. data/lib/generators/enjoy/templates/migration_news.rb +0 -26
  210. data/lib/generators/enjoy/templates/migration_pages.rb +0 -45
  211. data/lib/generators/enjoy/templates/migration_seos.rb +0 -14
  212. data/lib/generators/enjoy/templates/production.erb +0 -8
  213. data/lib/generators/enjoy/templates/unicorn.erb +0 -66
data/enjoy_cms.gemspec CHANGED
@@ -20,36 +20,23 @@ Gem::Specification.new do |spec|
20
20
  spec.add_development_dependency 'bundler'
21
21
  spec.add_development_dependency 'rake'
22
22
 
23
- spec.add_dependency 'rails', '4.2.4' #'~> 5.0.0.beta3'
23
+ spec.add_dependency 'rails', '4.2.6' #'~> 5.0.0.rc1'
24
24
 
25
25
  spec.add_dependency 'jquery-rails'
26
26
  spec.add_dependency 'simple_form'
27
- spec.add_dependency 'glebtv-simple_captcha'
27
+ # spec.add_dependency 'glebtv-simple_captcha'
28
+ # spec.add_dependency 'galetahub-simple_captcha'
28
29
  spec.add_dependency 'coffee-rails'
29
30
  spec.add_dependency 'devise'
30
- spec.add_dependency 'turbolinks'
31
- spec.add_dependency 'validates_email_format_of'
31
+
32
+ spec.add_dependency 'ckeditor'
33
+ spec.add_dependency 'geocoder'
34
+
32
35
  spec.add_dependency 'rails_admin', '~> 0.8.1'
33
36
  spec.add_dependency 'rails_admin_nested_set'
34
37
  spec.add_dependency 'rails_admin_toggleable'
35
38
 
36
- spec.add_dependency 'ckeditor'
37
39
  spec.add_dependency 'rails_admin_settings'
38
40
 
39
- spec.add_dependency 'geocoder'
40
- spec.add_dependency 'simple-navigation'
41
- spec.add_dependency 'sitemap_generator'
42
41
  spec.add_dependency 'kaminari'
43
- spec.add_dependency 'addressable'
44
-
45
- spec.add_dependency 'x-real-ip'
46
-
47
- spec.add_dependency "rails_admin_mongoid_localize_field"
48
- spec.add_dependency "ack_rails_admin_jcrop"
49
-
50
- spec.add_dependency 'stringex'
51
- spec.add_dependency 'thor'
52
- spec.add_dependency 'smart_excerpt'
53
-
54
- spec.add_dependency 'rails_admin_sort_embedded'
55
42
  end
@@ -11,61 +11,45 @@ module Enjoy
11
11
  end
12
12
 
13
13
  class Configuration
14
- attr_accessor :news_image_styles
15
- attr_accessor :news_per_page
16
- attr_accessor :news_excerpt
17
- attr_accessor :news_content_required
18
-
19
14
  attr_accessor :main_index_layout
20
15
  attr_accessor :error_layout
21
16
  attr_accessor :menu_max_depth
22
17
 
23
- attr_accessor :search_enabled
24
- attr_accessor :search_per_page
25
- attr_accessor :search_models
26
-
27
- attr_accessor :contacts_captcha
28
- attr_accessor :contacts_fields
29
- attr_accessor :contacts_message_required
30
- attr_accessor :contacts_captcha_error_message
31
-
32
18
  attr_accessor :localize
33
19
 
34
- attr_accessor :recreate_contact_message_action
20
+ attr_accessor :ability_manager_config
21
+ attr_accessor :ability_admin_config
35
22
 
36
- def initialize
37
- @news_image_styles = {
38
- main: '400x200>',
39
- thumb: '200x100>'
40
- }
41
- @news_per_page = 10
42
- @news_excerpt = 12
43
- @news_content_required = true
23
+ attr_accessor :admin_enter_captcha
24
+ attr_accessor :registration_captcha
25
+ attr_accessor :recaptcha_support
26
+ attr_accessor :simple_captcha_support
44
27
 
28
+ def initialize
45
29
  @main_index_layout = 'application'
46
30
  @error_layout = 'application'
47
31
  @menu_max_depth = 2
48
32
 
49
- @search_enabled = false
50
- @search_per_page = 10
51
- @search_models = []
52
-
53
- @contacts_captcha = false
54
- @contacts_fields = {}
55
- @contacts_message_required = true
33
+ @localize = false
56
34
 
57
- @contacts_captcha_error_message = "Код проверки введен неверно"
58
- @recreate_contact_message_action = "new"
35
+ @ability_manager_config = []
36
+ @ability_manager_config << {
37
+ method: :can,
38
+ model: RailsAdminSettings::Setting,
39
+ actions: [:edit, :update]
40
+ }
41
+ @ability_admin_config = []
42
+ @ability_admin_config << {
43
+ method: :can,
44
+ model: RailsAdminSettings::Setting,
45
+ actions: :manage
46
+ }
59
47
 
60
- @localize = false
61
- end
48
+ @recaptcha_support = defined?(Recaptcha)
49
+ @simple_captcha_support = defined?(SimpleCaptcha)
62
50
 
63
- def search_enabled=(val)
64
- @search_enabled = val
65
- if @search_enabled
66
- @search_models << 'Page'
67
- @search_models << 'News'
68
- end
51
+ @admin_enter_captcha = @recaptcha_support or @simple_captcha_support
52
+ @registration_captcha = @admin_enter_captcha
69
53
  end
70
54
  end
71
55
  end
@@ -2,10 +2,12 @@ module Enjoy::Controller
2
2
  extend ActiveSupport::Concern
3
3
  included do
4
4
  include Enjoy::Errors
5
- include Enjoy::SeoPages
6
- include Enjoy::NavMenu
7
5
  include Enjoy::Fancybox
8
- include Enjoy::Blocksetable
6
+ if defined?(Enjoy::Pages)
7
+ include Enjoy::Pages::SeoPages
8
+ include Enjoy::Pages::NavMenu
9
+ include Enjoy::Pages::Blocksetable
10
+ end
9
11
  protect_from_forgery with: :exception
10
12
  helper_method :page_title
11
13
  helper_method :hide_ym_ga
data/lib/enjoy/engine.rb CHANGED
@@ -1,46 +1,46 @@
1
1
  module Enjoy
2
- class Engine < ::Rails::Engine
3
- # isolate_namespace Enjoy
2
+ class Engine < ::Rails::Engine
3
+ # isolate_namespace Enjoy
4
4
 
5
- rake_tasks do
6
- require File.expand_path('../tasks', __FILE__)
7
- end
5
+ # rake_tasks do
6
+ # require File.expand_path('../tasks', __FILE__)
7
+ # end
8
8
 
9
9
  initializer "enjoy_cms.email_defaults" do
10
10
  # Write default email settings to DB so they can be changed.
11
11
 
12
12
  #temp
13
- begin
14
- if Settings.table_exists?
15
- Settings.default_email_from(default: 'noreply@site.domain')
16
- Settings.form_email(default: 'admin@site.domain')
17
- Settings.email_topic(default: 'с сайта')
18
- end
19
- rescue
20
- end
13
+ # begin
14
+ # if Settings and Settings.table_exists?
15
+ # Settings.default_email_from(default: 'noreply@site.domain')
16
+ # Settings.form_email(default: 'admin@site.domain')
17
+ # Settings.email_topic(default: 'с сайта')
18
+ # end
19
+ # rescue
20
+ # end
21
21
  end
22
22
  initializer 'enjoy_cms.paperclip' do
23
- require 'paperclip/style'
24
- module ::Paperclip
25
- class Style
26
- alias_method :processor_options_without_auto_orient, :processor_options
27
- def processor_options
28
- processor_options_without_auto_orient.merge(auto_orient: false)
29
- end
30
- end
31
- end
23
+ # require 'paperclip/style'
24
+ # module ::Paperclip
25
+ # class Style
26
+ # alias_method :processor_options_without_auto_orient, :processor_options
27
+ # def processor_options
28
+ # processor_options_without_auto_orient.merge(auto_orient: false)
29
+ # end
30
+ # end
31
+ # end
32
32
  end
33
33
 
34
34
  config.after_initialize do
35
35
  # trigger autoload so models are registered in Mongoid::Elasticearch
36
- Enjoy.config.search_models.map(&:constantize)
36
+ # Enjoy.config.search_models.map(&:constantize)
37
37
 
38
38
  # Write default email settings to DB so they can be changed.
39
- if Settings.table_exists?
40
- Settings.default_email_from(default: 'noreply@site.domain')
41
- Settings.form_email(default: 'admin@site.domain')
42
- Settings.email_topic(default: 'с сайта')
43
- end
39
+ # if Settings and Settings.table_exists?
40
+ # Settings.default_email_from(default: 'noreply@site.domain')
41
+ # Settings.form_email(default: 'admin@site.domain')
42
+ # Settings.email_topic(default: 'с сайта')
43
+ # end
44
44
  end
45
45
  end
46
46
  end
@@ -2,24 +2,6 @@ module Enjoy
2
2
  module Migration
3
3
  extend self
4
4
 
5
- def seo_fields(t)
6
- if Enjoy.config.localize
7
- t.column :h1_translations, 'hstore', default: {}
8
- t.column :title_translations, 'hstore', default: {}
9
- t.column :keywords_translations, 'hstore', default: {}
10
- t.column :description_translations, 'hstore', default: {}
11
- t.column :og_title_translations, 'hstore', default: {}
12
- else
13
- t.string :h1
14
- t.string :title
15
- t.text :keywords
16
- t.text :description
17
- t.string :og_title
18
- end
19
- t.string :robots
20
- t.attachment :og_image
21
- end
22
-
23
5
  def map_fields(t)
24
6
  t.text :address
25
7
  t.text :map_address
@@ -31,4 +13,3 @@ module Enjoy
31
13
  end
32
14
  end
33
15
  end
34
-
data/lib/enjoy/model.rb CHANGED
@@ -15,8 +15,10 @@ module Enjoy
15
15
  include Enjoy::BooleanField
16
16
  include Enjoy::SortField
17
17
 
18
- include SmartExcerpt
19
- include SimpleCaptcha::ModelHelpers
18
+ if Enjoy.mongoid? and defined?(RailsAdminComments)
19
+ include RailsAdminComments::Commentable
20
+ include RailsAdminComments::ModelCommentable
21
+ end
20
22
 
21
23
  if Enjoy.mongoid? && defined?(Trackable)
22
24
  include Trackable
@@ -24,5 +26,6 @@ module Enjoy
24
26
 
25
27
  include Enjoy::RailsAdminPatch
26
28
  end
29
+
27
30
  end
28
31
  end
@@ -0,0 +1,112 @@
1
+ module Enjoy
2
+ class << self
3
+ def rails_admin_configuration
4
+ @rails_admin_configuration ||= RailsAdminConfiguration.new
5
+ end
6
+ def rails_admin_config
7
+ @rails_admin_configuration ||= RailsAdminConfiguration.new
8
+ end
9
+ def rails_admin_configure
10
+ yield rails_admin_configuration
11
+ end
12
+
13
+ def action_visible_for(action_name, model_name)
14
+ rails_admin_config.action_visible_for action_name, model_name
15
+ end
16
+ def action_unvisible_for(action_name, model_name)
17
+ rails_admin_config.action_unvisible_for action_name, model_name
18
+ end
19
+
20
+ def rails_admin_config_for_actions(actions)
21
+ rails_admin_config.actions_config(actions)
22
+ end
23
+
24
+ def cancancan_admin_rules(ability_object)
25
+ rails_admin_config.cancancan_admin_rules(ability_object)
26
+ end
27
+ def cancancan_manager_rules(ability_object)
28
+ rails_admin_config.cancancan_manager_rules(ability_object)
29
+ end
30
+ end
31
+
32
+ class RailsAdminConfiguration
33
+
34
+ attr_reader :actions_list
35
+ attr_reader :actions_visibility
36
+
37
+ def initialize
38
+ @actions_list ||= []
39
+ @actions_visibility ||= {}
40
+
41
+ action_unvisible_for(:custom_show_in_app, Proc.new { false })
42
+ end
43
+
44
+ def add_action(action_name)
45
+ @actions_list << action_name
46
+ @actions_list.uniq
47
+ end
48
+
49
+ def remove_action(action_name)
50
+ @remove_action.delete remove_action
51
+ @actions_list.uniq
52
+ end
53
+
54
+ def action_visible_for(action_name, model_name)
55
+ action_name = action_name.to_sym
56
+ model_name = model_name.to_s
57
+ add_action(action_name) unless @actions_list.include?(action_name)
58
+
59
+ if model_name.is_a?(Proc)
60
+ @actions_visibility[action_name] = model_name
61
+ else
62
+ @actions_visibility[action_name] = [] if @actions_visibility[action_name].is_a?(Proc)
63
+ @actions_visibility[action_name] ||= []
64
+ @actions_visibility[action_name] << model_name.to_s
65
+ end
66
+ end
67
+
68
+ def action_unvisible_for(action_name, model_name)
69
+ action_name = action_name.to_sym
70
+ model_name = model_name.to_s
71
+ add_action(action_name) unless @actions_list.include?(action_name)
72
+
73
+ if model_name.is_a?(Proc)
74
+ # @actions_visibility[action_name] = model_name
75
+ else
76
+ @actions_visibility[action_name] = [] if @actions_visibility[action_name].is_a?(Proc)
77
+ @actions_visibility[action_name] ||= []
78
+ @actions_visibility[action_name].delete model_name.to_s
79
+ end
80
+ end
81
+
82
+ def actions_config(rails_admin_actions)
83
+ @actions_list.each do |action|
84
+ rails_admin_actions.send(action) do
85
+ visible do
86
+ if Enjoy.rails_admin_config.actions_visibility[action].is_a?(Proc)
87
+ Enjoy.rails_admin_config.actions_visibility[action]
88
+ else
89
+ Enjoy.rails_admin_config.actions_visibility[action].include? bindings[:abstract_model].model_name
90
+ end
91
+ end
92
+ end
93
+ end
94
+ end
95
+
96
+ def cancancan_admin_rules(ability_object)
97
+ Enjoy.config.ability_admin_config.each do |config|
98
+ _model = config[:model]
99
+ _model = _model.constantize if _model.is_a?(String)
100
+ ability_object.send(config[:method], config[:actions], _model)
101
+ end
102
+ end
103
+ def cancancan_manager_rules(ability_object)
104
+ Enjoy.config.ability_manager_config.each do |config|
105
+ _model = config[:model]
106
+ _model = _model.constantize if _model.is_a?(String)
107
+ ability_object.send(config[:method], config[:actions], _model)
108
+ end
109
+ end
110
+
111
+ end
112
+ end
@@ -54,8 +54,6 @@ module RailsAdmin
54
54
 
55
55
  register_instance_option :formatted_value do
56
56
  if localized?
57
- puts bindings[:object].send((hash_method.to_s + '_translations').to_sym)
58
- puts '__'
59
57
  _val = bindings[:object].send((hash_method.to_s + '_translations').to_sym)
60
58
  _val.each_pair { |l, _hash|
61
59
  begin
@@ -0,0 +1,31 @@
1
+ require 'rails_admin/config/fields/types/enum'
2
+
3
+ module RailsAdmin
4
+ module Config
5
+ module Fields
6
+ module Types
7
+ class EnjoySlugs < RailsAdmin::Config::Fields::Types::Enum
8
+ # Register field type for the type loader
9
+ RailsAdmin::Config::Fields::Types::register(self)
10
+
11
+ register_instance_option :enum_method do
12
+ :slugs
13
+ end
14
+
15
+ register_instance_option :visible do
16
+ bindings[:view].current_user.admin?
17
+ end
18
+
19
+ register_instance_option :multiple do
20
+ true
21
+ end
22
+
23
+ register_instance_option :pretty_value do
24
+ value.join("<br>").html_safe if value
25
+ end
26
+
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -8,7 +8,7 @@ module Enjoy::RailsAdminGroupPatch
8
8
  config.group _group[:name] do
9
9
  active (_group[:active] || false)
10
10
  _group[:fields].each_pair do |name, type|
11
- if type.nil?
11
+ if type.blank?
12
12
  field name
13
13
  else
14
14
  if type.is_a?(Array)
@@ -20,6 +20,7 @@ module Enjoy::RailsAdminGroupPatch
20
20
  end
21
21
  end
22
22
  end
23
+
23
24
  else
24
25
  fields.each_pair do |name, type|
25
26
  if type.nil?
@@ -0,0 +1,7 @@
1
+ module RailsAdminSettings
2
+ module_eval <<-EVAL
3
+ def self.kinds
4
+ #{RailsAdminSettings.kinds.to_a.to_s} + ['js', 'css']
5
+ end
6
+ EVAL
7
+ end
data/lib/enjoy/routes.rb CHANGED
@@ -3,40 +3,15 @@ module ActionDispatch::Routing
3
3
 
4
4
  def enjoy_cms_routes(config = {})
5
5
  routes_config = {
6
- use_contacts_path: true,
7
- use_search_path: true,
8
- use_news_path: true,
9
- root_path: "home#index",
10
- use_slug_path: true,
11
- use_pages_path: true
6
+ root_path: "home#index"
12
7
  }
13
8
  routes_config.merge!(config)
14
9
 
15
10
  scope module: 'enjoy' do
16
- if routes_config[:use_contacts_path]
17
- get 'contacts' => 'contacts#new', as: :enjoy_contacts
18
- post 'contacts' => 'contacts#create', as: :create_enjoy_contacts
19
- get 'contacts/sent' => 'contacts#sent', as: :enjoy_contacts_sent
20
- end
21
-
22
- if routes_config[:use_search_path]
23
- get 'search' => 'search#index', as: :enjoy_search
24
- end
25
-
26
- if routes_config[:use_news_path]
27
- resources :news, only: [:index, :show], as: :enjoy_news
28
- end
29
11
 
30
12
  if routes_config[:root_path]
31
13
  root to: routes_config[:root_path]
32
14
  end
33
-
34
- if routes_config[:use_slug_path]
35
- get '*slug' => 'pages#show'
36
- end
37
- if routes_config[:use_pages_path]
38
- resources :pages, only: [:show], as: :enjoy_pages
39
- end
40
15
  end
41
16
 
42
17
  end
data/lib/enjoy/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Enjoy
2
- VERSION = "0.3.7.4"
2
+ VERSION = "0.4.0.beta3"
3
3
  end
data/lib/enjoy_cms.rb CHANGED
@@ -4,6 +4,7 @@ unless defined?(Enjoy) && Enjoy.respond_to?(:orm) && [:active_record, :mongoid].
4
4
  end
5
5
 
6
6
  require 'enjoy/version'
7
+ require 'enjoy/configuration'
7
8
  require 'devise'
8
9
  require 'enjoy/routes'
9
10
 
@@ -12,37 +13,32 @@ require 'enjoy/simple_form_patch'
12
13
 
13
14
  require 'geocoder'
14
15
 
15
- require 'glebtv-simple_captcha'
16
- require 'validates_email_format_of'
17
- require 'smart_excerpt'
16
+ # require 'simple_captcha'
17
+ # require 'validates_email_format_of'
18
18
  require 'filename_to_slug'
19
19
 
20
20
  require 'rails_admin'
21
+ require 'enjoy/rails_admin_ext/config'
21
22
 
22
- require 'enjoy/rails_admin_ext/enjoy_connectable'
23
23
  require 'enjoy/rails_admin_ext/enjoy_hash'
24
24
  require 'enjoy/rails_admin_ext/enjoy_html'
25
+ require 'enjoy/rails_admin_ext/enjoy_slugs'
25
26
  require 'enjoy/rails_admin_ext/group_patch'
26
- require 'enjoy/rails_admin_ext/menu'
27
27
 
28
28
  require 'rails_admin_nested_set'
29
29
  require 'rails_admin_toggleable'
30
+
30
31
  require 'rails_admin_settings'
31
- require 'rails_admin_sort_embedded'
32
+ require 'enjoy/rails_admin_settings_patch'
32
33
 
33
- require 'x-real-ip'
34
+ # require 'x-real-ip'
34
35
 
35
36
  require 'ckeditor'
36
37
 
37
- require 'sitemap_generator'
38
- require 'kaminari'
39
- require 'addressable/uri'
40
- require 'turbolinks'
41
- require 'simple-navigation'
42
- require 'ack_rails_admin_jcrop'
38
+ # require 'kaminari'
39
+ # require 'addressable/uri'
40
+ # require 'turbolinks'
43
41
 
44
- require 'enjoy/configuration'
45
- require 'enjoy/elastic_search'
46
42
  require 'enjoy/model'
47
43
  require 'enjoy/engine'
48
44
  require 'enjoy/controller'
@@ -62,83 +58,41 @@ module Enjoy
62
58
  def orm_specific(name)
63
59
  "#{model_namespace}::#{name}".constantize
64
60
  end
61
+
62
+ def clear_history_from_empty_objects
63
+ ::HistoryTracker.all.map do |h|
64
+ begin
65
+ begin
66
+ h.delete if h.trackable.nil?
67
+ rescue
68
+ h.delete
69
+ end
70
+ rescue
71
+ end
72
+ end
73
+ end
74
+
65
75
  end
66
76
 
67
77
  autoload :Migration, 'enjoy/migration'
68
78
 
69
- # module Mongoid
70
- # autoload :Paperclip 'enjoy/mongoid/paperlcip'
71
- # end
72
-
73
79
  autoload :Admin, 'enjoy/admin'
74
80
  module Admin
75
- autoload :SitemapData, 'enjoy/admin/sitemap_data'
76
- autoload :Seo, 'enjoy/admin/seo'
77
- autoload :Menu, 'enjoy/admin/menu'
78
- autoload :Page, 'enjoy/admin/page'
79
- autoload :News, 'enjoy/admin/news'
80
- autoload :ContactMessage, 'enjoy/admin/contact_message'
81
-
82
81
  autoload :EmbeddedElement, 'enjoy/admin/embedded_element'
83
-
84
- autoload :EmbeddedGalleryImage, 'enjoy/admin/embedded_gallery_image'
85
- autoload :GalleryImage, 'enjoy/admin/gallery_image'
86
- autoload :Gallery, 'enjoy/admin/gallery'
87
-
88
- autoload :PageBlock, 'enjoy/admin/page_block'
89
- autoload :PageBlockset, 'enjoy/admin/page_blockset'
90
82
  end
91
83
 
92
84
  module Models
93
- autoload :SitemapData, 'enjoy/models/sitemap_data'
94
- autoload :Seo, 'enjoy/models/seo'
95
- autoload :Menu, 'enjoy/models/menu'
96
- autoload :Page, 'enjoy/models/page'
97
- autoload :News, 'enjoy/models/news'
98
- autoload :ContactMessage, 'enjoy/models/contact_message'
99
-
100
85
  autoload :EmbeddedElement, 'enjoy/models/embedded_element'
101
86
 
102
- autoload :EmbeddedGalleryImage, 'enjoy/models/embedded_gallery_image'
103
- autoload :GalleryImage, 'enjoy/models/gallery_image'
104
- autoload :Gallery, 'enjoy/models/gallery'
105
-
106
- autoload :PageBlock, 'enjoy/models/page_block'
107
- autoload :PageBlockset, 'enjoy/models/page_blockset'
108
-
109
87
  module Mongoid
110
- autoload :SitemapData, 'enjoy/models/mongoid/sitemap_data'
111
- autoload :Seo, 'enjoy/models/mongoid/seo'
112
- autoload :Menu, 'enjoy/models/mongoid/menu'
113
- autoload :Page, 'enjoy/models/mongoid/page'
114
- autoload :News, 'enjoy/models/mongoid/news'
115
- autoload :ContactMessage, 'enjoy/models/mongoid/contact_message'
116
-
117
88
  autoload :EmbeddedElement, 'enjoy/models/mongoid/embedded_element'
118
-
119
- autoload :EmbeddedGalleryImage, 'enjoy/models/mongoid/embedded_gallery_image'
120
- autoload :GalleryImage, 'enjoy/models/mongoid/gallery_image'
121
- autoload :Gallery, 'enjoy/models/mongoid/gallery'
122
-
123
- autoload :PageBlock, 'enjoy/models/mongoid/page_block'
124
- autoload :PageBlockset, 'enjoy/models/mongoid/page_blockset'
125
89
  end
126
90
 
127
91
  module ActiveRecord
128
- autoload :SitemapData, 'enjoy/models/active_record/sitemap_data'
129
- autoload :Seo, 'enjoy/models/active_record/seo'
130
- autoload :Menu, 'enjoy/models/active_record/menu'
131
- autoload :Page, 'enjoy/models/active_record/page'
132
- autoload :News, 'enjoy/models/active_record/news'
133
- autoload :ContactMessage, 'enjoy/models/active_record/contact_message'
134
92
  end
135
93
  end
136
94
 
137
95
  module Controllers
138
- autoload :Contacts, 'enjoy/controllers/contacts'
139
- autoload :News, 'enjoy/controllers/news'
140
- autoload :Pages, 'enjoy/controllers/pages'
141
- autoload :Search, 'enjoy/controllers/search'
142
96
  end
143
97
  end
144
98