hancock_cms 1.0.2.3 → 2.0.0

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 (137) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-gemset +1 -1
  3. data/.ruby-version +1 -1
  4. data/README.md +9 -13
  5. data/app/assets/images/{hancock/rails_admin → rails-admin}/hancock_logo.svg +0 -0
  6. data/app/assets/javascripts/hancock/cms.coffee +1 -1
  7. data/app/assets/javascripts/hancock/rails_admin/cms.ui.coffee +38 -10
  8. data/app/assets/javascripts/jquery.placeholder.js +2 -3
  9. data/app/assets/javascripts/rails_admin/custom/ui.coffee +0 -1
  10. data/app/assets/stylesheets/hancock/cms/devise.sass +22 -36
  11. data/app/assets/stylesheets/hancock/rails_admin/cms.theming.sass +147 -364
  12. data/app/assets/stylesheets/rails_admin/custom/theming.sass +1 -1
  13. data/app/controllers/concerns/hancock/current_user.rb +1 -1
  14. data/app/controllers/concerns/hancock/decorators/home.rb +1 -1
  15. data/app/controllers/concerns/hancock/errors.rb +7 -6
  16. data/app/controllers/concerns/hancock/no_cache.rb +12 -0
  17. data/app/controllers/hancock/registrations_controller.rb +7 -2
  18. data/app/controllers/hancock/sessions_controller.rb +7 -3
  19. data/app/helpers/hancock/powered_helper.rb +3 -3
  20. data/app/models/concerns/hancock/boolean_field.rb +2 -7
  21. data/app/models/concerns/hancock/cacheable.rb +33 -0
  22. data/app/models/concerns/hancock/decorators/embedded_element.rb +9 -1
  23. data/app/models/concerns/hancock/enableable.rb +0 -1
  24. data/app/models/concerns/hancock/hash_field.rb +8 -9
  25. data/app/models/concerns/hancock/html_field.rb +3 -6
  26. data/app/models/concerns/hancock/mappable.rb +0 -1
  27. data/app/models/concerns/hancock/model_localizeable.rb +1 -4
  28. data/app/models/concerns/hancock/rails_admin_patch.rb +3 -22
  29. data/app/models/concerns/hancock/sort_field.rb +3 -26
  30. data/app/models/concerns/hancock/sortable.rb +0 -3
  31. data/app/views/blocks/_footer.html.slim +1 -1
  32. data/app/views/devise/passwords/edit.html.slim +2 -0
  33. data/app/views/devise/passwords/new.html.slim +2 -0
  34. data/app/views/devise/registrations/edit.html.slim +2 -0
  35. data/app/views/devise/registrations/new.html.slim +2 -0
  36. data/app/views/devise/sessions/new.html.slim +2 -0
  37. data/app/views/hancock/home/index.html.slim +1 -4
  38. data/app/views/layouts/application.html.slim +11 -20
  39. data/app/views/layouts/hancock/devise/confirmations.html.slim +4 -7
  40. data/app/views/layouts/hancock/devise/passwords.html.slim +4 -7
  41. data/app/views/layouts/hancock/devise/registrations.html.slim +4 -7
  42. data/app/views/layouts/hancock/devise/sessions.html.slim +4 -7
  43. data/app/views/layouts/hancock/devise/unlocks.html.slim +4 -7
  44. data/app/views/layouts/rails_admin/_footer.html.slim +2 -2
  45. data/app/views/layouts/rails_admin/_footer_navigation.html.slim +5 -21
  46. data/app/views/layouts/rails_admin/_navigation.html.slim +47 -13
  47. data/app/views/layouts/rails_admin/_secondary_navigation.html.slim +12 -5
  48. data/app/views/layouts/rails_admin/application.html.haml +39 -4
  49. data/app/views/rails_admin/main/_hancock_html.html.slim +2 -2
  50. data/app/views/rails_admin/main/_hancock_html_ml.html.slim +34 -31
  51. data/app/views/shared/_admin_link.html.slim +2 -4
  52. data/{app/models/concerns/hancock → config/initializers}/embedded_findable.rb +2 -2
  53. data/config/locales/en.hancock.yml +0 -1
  54. data/config/locales/ru.devise.yml +18 -22
  55. data/config/locales/ru.hancock.yml +5 -5
  56. data/config/locales/ru.rails_admin.yml +0 -3
  57. data/hancock_cms.gemspec +3 -6
  58. data/lib/filename_to_slug.rb +20 -0
  59. data/lib/generators/hancock/cms/ability_generator.rb +0 -1
  60. data/lib/generators/hancock/cms/admin_generator.rb +0 -1
  61. data/lib/generators/hancock/cms/application_generator.rb +0 -1
  62. data/lib/generators/hancock/cms/assets_generator.rb +0 -1
  63. data/lib/generators/hancock/cms/layout_generator.rb +0 -1
  64. data/lib/generators/hancock/cms/model_generator.rb +0 -1
  65. data/lib/generators/hancock/cms/models/templates/embedded_element.erb +2 -2
  66. data/lib/generators/hancock/cms/rack_generator.rb +0 -1
  67. data/lib/generators/hancock/cms/robots_generator.rb +0 -1
  68. data/lib/generators/hancock/cms/scripts_generator.rb +0 -1
  69. data/lib/generators/hancock/cms/templates/Gemfile.erb +4 -1
  70. data/lib/generators/hancock/cms/templates/ability.erb +1 -1
  71. data/lib/generators/hancock/cms/templates/admin.erb +6 -12
  72. data/lib/generators/hancock/cms/templates/assets/javascripts/application.coffee.erb +1 -1
  73. data/lib/generators/hancock/cms/templates/hancock_cms.erb +2 -4
  74. data/lib/generators/hancock/cms/templates/model.erb +6 -5
  75. data/lib/generators/hancock/cms/templates/robots.txt.erb +1 -5
  76. data/lib/generators/hancock/cms/templates/scripts/db_dump.sh.erb +1 -1
  77. data/lib/generators/hancock/cms/templates/scripts/server.sh +1 -1
  78. data/lib/generators/hancock/cms/templates/scripts/server_alt.sh +1 -1
  79. data/lib/generators/hancock/cms/unicorn_god_generator.rb +0 -1
  80. data/lib/generators/hancock/cms/utils.rb +0 -2
  81. data/lib/hancock/admin/embedded_element.rb +2 -10
  82. data/lib/hancock/admin.rb +21 -132
  83. data/lib/hancock/configuration.rb +2 -6
  84. data/lib/hancock/controller.rb +1 -10
  85. data/lib/hancock/engine.rb +34 -34
  86. data/lib/hancock/model.rb +5 -29
  87. data/lib/hancock/models/embedded_element.rb +0 -2
  88. data/lib/hancock/models/mongoid/embedded_element.rb +1 -20
  89. data/lib/hancock/plugin_configuration.rb +1 -1
  90. data/lib/hancock/rails_admin_ext/config.rb +14 -45
  91. data/lib/hancock/rails_admin_ext/hancock_hash.rb +1 -8
  92. data/lib/hancock/rails_admin_ext/hancock_html.rb +2 -17
  93. data/lib/hancock/rails_admin_ext/hancock_multiselect.rb +5 -1
  94. data/lib/hancock/rails_admin_ext/hancock_slugs.rb +6 -2
  95. data/lib/hancock/rails_admin_ext/patches/field_patch.rb +1 -2
  96. data/lib/hancock/rails_admin_ext/patches/group_patch.rb +0 -9
  97. data/lib/hancock/rails_admin_ext/patches/hancock_cms_group.rb +0 -2
  98. data/lib/hancock/version.rb +1 -1
  99. data/lib/hancock_cms.rb +13 -21
  100. data/lib/manual_slug/active_record.rb +8 -8
  101. data/lib/rails_admin/custom_show_in_app.rb +32 -21
  102. data/release.sh +1 -1
  103. data/template.rb +386 -37
  104. metadata +15 -88
  105. data/.gitattributes +0 -4
  106. data/app/assets/javascripts/hancock/rails_admin/en_ru_switcher.coffee +0 -90
  107. data/app/assets/javascripts/hancock/rails_admin/enum_with_custom.coffee +0 -41
  108. data/app/assets/javascripts/hancock/rails_admin/form_controls_fixed.coffee +0 -44
  109. data/app/assets/javascripts/hancock/rails_admin/leftside_hider.coffee +0 -106
  110. data/app/assets/javascripts/hancock/rails_admin/multiselect.coffee +0 -8
  111. data/app/assets/javascripts/hancock/rails_admin/navigation_dropdown.coffee +0 -25
  112. data/app/assets/javascripts/hancock/rails_admin/navigation_filter.coffee +0 -108
  113. data/app/assets/javascripts/hancock/rails_admin/navigation_scroll.coffee +0 -12
  114. data/app/assets/stylesheets/hancock/rails_admin/fieldsets.sass +0 -198
  115. data/app/helpers/hancock/settings_helper.rb +0 -44
  116. data/app/helpers/rails_admin/application/hancock_helper.rb +0 -19
  117. data/app/helpers/rails_admin/hancock/form_builder.rb +0 -44
  118. data/app/helpers/rails_admin/main/hancock_helper.rb +0 -27
  119. data/app/models/concerns/hancock/insertion_field.rb +0 -115
  120. data/app/views/blocks/_preloader.html.slim +0 -0
  121. data/app/views/layouts/rails_admin/_sidebar_navigation.html.slim +0 -2
  122. data/app/views/layouts/rails_admin/_sidebar_navigation_filter.html.slim +0 -3
  123. data/app/views/rails_admin/main/_enum_for_settings_kinds.html.slim +0 -24
  124. data/app/views/rails_admin/main/_form_hancock_enum.html.slim +0 -18
  125. data/app/views/rails_admin/main/_form_hancock_enum_with_custom.slim +0 -20
  126. data/app/views/rails_admin/main/edit.html.haml +0 -18
  127. data/app/views/rails_admin/main/new.html.haml +0 -17
  128. data/config/initializers/rails_admin_mongoid_patch.rb +0 -27
  129. data/lib/generators/hancock/cms/setup_generator.rb +0 -488
  130. data/lib/generators/hancock/cms/templates/assets/stylesheets/hancock/rails_admin/custom/theming.sass.erb +0 -0
  131. data/lib/hancock/rails_admin_ext/hancock_array.rb +0 -19
  132. data/lib/hancock/rails_admin_ext/hancock_enum.rb +0 -33
  133. data/lib/hancock/rails_admin_ext/hancock_enum_with_custom.rb +0 -34
  134. data/lib/hancock/rails_admin_ext/patches/fieldset_patch.rb +0 -14
  135. data/lib/hancock/rails_admin_ext/patches/has_fields.rb +0 -27
  136. data/lib/hancock/rails_admin_ext/patches/navigation_patch.rb +0 -25
  137. data/lib/hancock/rails_admin_settings_patch.rb +0 -216
@@ -1,6 +1,5 @@
1
1
  module Hancock::Errors
2
2
  extend ActiveSupport::Concern
3
-
4
3
  included do
5
4
  if Rails.env.production? || Rails.env.staging? || (respond_to?(:hancock_check_errors) and hancock_check_errors)
6
5
  rescue_from Exception, with: :render_500
@@ -26,10 +25,12 @@ module Hancock::Errors
26
25
  unless exception.nil?
27
26
  Rails.logger.error exception.message
28
27
  Rails.logger.error exception.backtrace.join("\n")
29
- Raven.capture_exception(exception) if defined?(Raven)
28
+ capture_exception(exception) if defined?(Raven)
30
29
  end
31
30
  Rails.logger.error "__________________________"
32
31
  if !user_signed_in?
32
+ #scope = rails_admin? ? main_app : self
33
+ #redirect_to scope.new_user_session_path, alert: "Необходимо авторизоваться"
33
34
  authenticate_user!
34
35
  else
35
36
  if rails_admin? and can?(:access, :rails_admin)
@@ -42,7 +43,7 @@ module Hancock::Errors
42
43
  end
43
44
 
44
45
  rescue_from ActionController::InvalidAuthenticityToken do |exception|
45
- redirect_back(fallback_location: root_path, alert: t('hancock.errors.form_expired'))
46
+ redirect_to :back, alert: t('hancock.errors.form_expired')
46
47
  end
47
48
  end
48
49
 
@@ -55,7 +56,7 @@ module Hancock::Errors
55
56
  unless exception.nil?
56
57
  Rails.logger.error exception.message
57
58
  Rails.logger.error exception.backtrace.join("\n")
58
- Raven.capture_exception(exception) if defined?(Raven)
59
+ capture_exception(exception) if defined?(Raven)
59
60
  end
60
61
  Rails.logger.error "__________________________".freeze
61
62
  render_error(404)
@@ -74,7 +75,7 @@ module Hancock::Errors
74
75
  Rails.logger.error "__________________________".freeze
75
76
  begin
76
77
  if rails_admin?
77
- render plain: t('hancock.errors.internal_error_full', klass: exception.class.name, message: exception.message), status: 500
78
+ render text: t('hancock.errors.internal_error_full', klass: exception.class.name, message: exception.message), status: 500
78
79
  return
79
80
  end
80
81
  rescue Exception => e
@@ -89,5 +90,5 @@ module Hancock::Errors
89
90
  def render_error(code = 500)
90
91
  render template: "hancock/errors/error_#{code}", formats: [:html], handlers: [:slim], layout: Hancock.config.error_layout, status: code
91
92
  end
92
-
93
+
93
94
  end
@@ -0,0 +1,12 @@
1
+ module Hancock::NoCache
2
+ extend ActiveSupport::Concern
3
+ included do
4
+ before_filter :set_cache_buster
5
+ end
6
+
7
+ protected
8
+ def set_cache_buster
9
+ expires_now()
10
+ response.headers["Pragma"] = "no-cache"
11
+ end
12
+ end
@@ -1,15 +1,20 @@
1
1
  class Hancock::RegistrationsController < Devise::RegistrationsController
2
2
  prepend_before_action :check_recaptcha, only: [:create]
3
3
 
4
- # private :check_recaptcha
4
+ private
5
5
  def check_recaptcha
6
6
  if Hancock.config.recaptcha_support and (!Rails.env.development? or Hancock.config.captcha_on_development)
7
- unless verify_recaptcha
7
+ if verify_recaptcha
8
+ true
9
+ else
8
10
  self.resource = resource_class.new sign_up_params
9
11
  self.resource.valid?
10
12
  @recaptcha_error = "Вы робот?".freeze
11
13
  respond_with_navigational(resource) { render :new }
12
14
  end
15
+
16
+ else
17
+ true
13
18
  end
14
19
  end
15
20
 
@@ -1,17 +1,21 @@
1
1
  class Hancock::SessionsController < Devise::SessionsController
2
2
  prepend_before_action :check_recaptcha, only: [:create]
3
- prepend_before_action :require_no_authentication, :only => [ :new, :create ]
4
3
 
5
- # private :check_recaptcha
4
+ private
6
5
  def check_recaptcha
7
6
  if Hancock.config.recaptcha_support and (!Rails.env.development? or Hancock.config.captcha_on_development)
8
- unless verify_recaptcha
7
+ if verify_recaptcha
8
+ true
9
+ else
9
10
  self.resource = resource_class.new sign_in_params
10
11
  resource.errors.add(:email, "Неверный e-mail или пароль".freeze)
11
12
  resource.errors.add(:password, "Неверный e-mail или пароль".freeze)
12
13
  @recaptcha_error = "Вы робот?".freeze
13
14
  respond_with_navigational(resource) { render :new }
14
15
  end
16
+
17
+ else
18
+ true
15
19
  end
16
20
  end
17
21
 
@@ -15,7 +15,7 @@ module Hancock::PoweredHelper
15
15
  # "hancock-goto-disabled": true
16
16
  # }
17
17
  # }
18
- # ret << link_to("Hancock CMS", "https://hancock.redrocks.pro/", _attrs)
18
+ # ret << link_to("Hancock CMS", "http://hancock.redrocks.pro/", _attrs)
19
19
  # ret.join.html_safe
20
20
  # end
21
21
  # end
@@ -29,12 +29,12 @@ module Hancock::PoweredHelper
29
29
  _attrs = {
30
30
  class: "created_by",
31
31
  target: "_blank",
32
- title: "Redrocks Creative studio",
32
+ title: "Hancock Creative studio",
33
33
  data: {
34
34
  "hancock-goto-disabled": true
35
35
  }
36
36
  }.freeze
37
- ret << link_to("Redrocks studio".freeze, "https://redrocks.pro/".freeze, _attrs)
37
+ ret << link_to("Redrocks studio".freeze, "http://redrocks.pro/".freeze, _attrs)
38
38
  ret.join.html_safe
39
39
  end
40
40
  end
@@ -1,13 +1,11 @@
1
1
  module Hancock::BooleanField
2
2
  extend ActiveSupport::Concern
3
-
4
- class_methods do
5
-
3
+ module ClassMethods
6
4
  def boolean_field(name, default = true)
7
5
  if default.is_a?(Hash)
8
6
  default = default[:default]
9
7
  end
10
-
8
+
11
9
  if Hancock.mongoid?
12
10
  field name, type: Mongoid::Boolean, default: default
13
11
  end
@@ -18,9 +16,6 @@ module Hancock::BooleanField
18
16
  elsif name == 'enabled'
19
17
  scope :disabled, -> { where(enabled: false) }
20
18
  end
21
-
22
19
  end
23
-
24
20
  end
25
-
26
21
  end
@@ -0,0 +1,33 @@
1
+ if Hancock.mongoid?
2
+
3
+ module Hancock::Cacheable
4
+ extend ActiveSupport::Concern
5
+
6
+ included do
7
+ field :cache_keys_str, type: String, default: -> { default_cache_keys.join("\n") }
8
+ def self.default_cache_keys
9
+ []
10
+ end
11
+ def default_cache_keys
12
+ self.class.default_cache_keys
13
+ end
14
+
15
+ def cache_keys
16
+ cache_keys_str.split(/\s+/).map { |k| k.strip }.reject { |k| k.blank? }
17
+ end
18
+ field :perform_caching, type: Boolean, default: true
19
+
20
+ after_save :clear_cache
21
+ after_destroy :clear_cache
22
+ def clear_cache
23
+ if perform_caching
24
+ cache_keys.each do |k|
25
+ Rails.cache.delete(k)
26
+ end
27
+ end
28
+ end
29
+
30
+ end
31
+ end
32
+
33
+ end
@@ -3,7 +3,15 @@ module Hancock::Decorators
3
3
  extend ActiveSupport::Concern
4
4
 
5
5
  included do
6
-
6
+
7
+ # def image_styles
8
+ # super
9
+ # end
10
+ #
11
+ # def image_jcrop_options
12
+ # super
13
+ # end
14
+ #
7
15
  # ############# rails_admin ##############
8
16
  # def self.rails_admin_add_fields
9
17
  # [] #super
@@ -5,5 +5,4 @@ module Hancock::Enableable
5
5
  included do
6
6
  boolean_field(:enabled)
7
7
  end
8
-
9
8
  end
@@ -2,7 +2,7 @@ if Hancock.mongoid?
2
2
  module Hancock::HashField
3
3
  extend ActiveSupport::Concern
4
4
 
5
- class_methods do
5
+ module ClassMethods
6
6
  def hancock_cms_hash_field(name, opts = {})
7
7
  opts.merge!({type: Hash, default: {}})
8
8
  field "#{name}_hash", opts
@@ -14,7 +14,7 @@ if Hancock.mongoid?
14
14
  if opts[:localize]
15
15
  meth_str_t = "#{meth_str}_translations".freeze
16
16
  meth_hsh_t = "#{meth_hsh}_translations".freeze
17
- class_eval <<-RUBY
17
+ class_eval <<-EVAL
18
18
  def #{meth_str_t}=(val)
19
19
  return self.#{meth_hsh_t} = {} if val.blank?
20
20
  _hash = {}
@@ -63,10 +63,10 @@ if Hancock.mongoid?
63
63
  end
64
64
  true
65
65
  end
66
- RUBY
66
+ EVAL
67
67
 
68
68
  else
69
- class_eval <<-RUBY
69
+ class_eval <<-EVAL
70
70
  def #{meth_str}=(val)
71
71
  return self.#{meth_hsh} = {} if val.blank?
72
72
  if val.is_a?(String)
@@ -105,10 +105,9 @@ if Hancock.mongoid?
105
105
  true
106
106
  end
107
107
  end
108
- RUBY
109
- end #if opts[:localize]
110
- end #def hancock_cms_hash_field(name, opts = {})
111
- end # class_methods do
112
-
108
+ EVAL
109
+ end
110
+ end
111
+ end
113
112
  end
114
113
  end
@@ -2,7 +2,7 @@ if Hancock.mongoid?
2
2
  module Hancock::HtmlField
3
3
  extend ActiveSupport::Concern
4
4
 
5
- class_methods do
5
+ module ClassMethods
6
6
  def hancock_cms_html_field(name, opts = {})
7
7
  clear_by_default = opts.delete(:clear_by_default)
8
8
  clear_by_default = false unless clear_by_default == true
@@ -12,9 +12,7 @@ if Hancock.mongoid?
12
12
  field _html_field_name, opts
13
13
  field "#{name}_clear", type: Boolean, default: clear_by_default, localize: opts[:localize]
14
14
 
15
- insertions_for(name) if respond_to?(:insertions_for)
16
-
17
- class_eval <<-RUBY
15
+ class_eval <<-EVAL
18
16
  def #{name}
19
17
  self.#{_html_field_name} ||= ""
20
18
  return self.#{_html_field_name} unless self.#{name}_clear
@@ -28,9 +26,8 @@ if Hancock.mongoid?
28
26
  self.#{_html_field_name} ||= ""
29
27
  Rails::Html::FullSanitizer.new.sanitize(self.#{_html_field_name}.strip)
30
28
  end
31
- RUBY
29
+ EVAL
32
30
  end
33
31
  end
34
-
35
32
  end
36
33
  end
@@ -88,5 +88,4 @@ module Hancock::Mappable
88
88
  map_address
89
89
  end
90
90
  end
91
-
92
91
  end
@@ -1,14 +1,12 @@
1
1
  module Hancock::ModelLocalizeable
2
2
  extend ActiveSupport::Concern
3
3
 
4
- class_methods do
5
-
4
+ module ClassMethods
6
5
  def convert2localize
7
6
  self.all.to_a.map do |p|
8
7
  p.convert2localize
9
8
  end
10
9
  end
11
-
12
10
  end
13
11
 
14
12
  def convert2localize(save_it = true)
@@ -32,5 +30,4 @@ module Hancock::ModelLocalizeable
32
30
  end
33
31
  self.save if save_it
34
32
  end
35
-
36
33
  end
@@ -5,25 +5,9 @@ module Hancock::RailsAdminPatch
5
5
  self.class.rails_admin_model
6
6
  end
7
7
 
8
- def admin_can_actions
9
- self.class.admin_can_actions
10
- end
11
- def admin_cannot_actions
12
- self.class.admin_cannot_actions
13
- end
14
- def manager_can_actions
15
- self.class.manager_can_actions
16
- end
17
- def manager_cannot_actions
18
- self.class.manager_cannot_actions
19
- end
20
-
21
- class_methods do
8
+ module ClassMethods
22
9
  def rails_admin_model
23
- name.split('::').collect(&:underscore).join('~')
24
- end
25
- def rails_admin_param_key
26
- name.split('::').collect(&:underscore).join('_')
10
+ to_param.gsub("::", "~").underscore
27
11
  end
28
12
 
29
13
  def rails_admin_add_fields
@@ -33,9 +17,6 @@ module Hancock::RailsAdminPatch
33
17
  def rails_admin_add_config(config)
34
18
  end
35
19
 
36
- def rails_admin_name_synonyms
37
- ''.freeze
38
- end
39
20
 
40
21
 
41
22
  def admin_can_default_actions
@@ -76,7 +57,7 @@ module Hancock::RailsAdminPatch
76
57
  (manager_can_default_actions + manager_can_add_actions + manager_can_user_defined_actions).uniq.freeze
77
58
  end
78
59
  def manager_cannot_default_actions
79
- [:model_accesses, :user_abilities].freeze
60
+ [].freeze
80
61
  end
81
62
  def manager_cannot_add_actions
82
63
  [].freeze
@@ -1,17 +1,12 @@
1
1
  module Hancock::SortField
2
2
  extend ActiveSupport::Concern
3
3
 
4
- class_methods do
5
-
6
- def sort_field(prefix = '', opts = {type: Integer, default: 0})
7
- if prefix.is_a?(Hash)
8
- opts = prefix
9
- prefix = opts.delete(:prefix) || ""
10
- end
4
+ module ClassMethods
5
+ def sort_field(prefix = '')
11
6
  prefix = "#{prefix}_" unless prefix == ''
12
7
 
13
8
  if Hancock.mongoid?
14
- field "#{prefix}order".to_sym, opts
9
+ field "#{prefix}order".to_sym, type: Integer
15
10
  alias_method "#{prefix}sort", "#{prefix}order"
16
11
  scope "#{prefix}ordered".to_sym, -> { asc("#{prefix}order".to_sym) }
17
12
  scope "#{prefix}sorted".to_sym, -> { asc("#{prefix}order".to_sym) }
@@ -20,24 +15,6 @@ module Hancock::SortField
20
15
  scope "#{prefix}ordered".to_sym, -> { order("#{prefix}order".to_sym => :asc) }
21
16
  scope "#{prefix}sorted".to_sym, -> { order("#{prefix}order".to_sym => :asc) }
22
17
  end
23
-
24
-
25
- class_eval <<-RUBY
26
- def set_default_#{prefix}order_value
27
- if (_embed_method = self.try(:embed_method_for_parent))
28
- begin
29
- if (self.#{prefix}order.nil? or self.#{prefix}order == 0) and (_parent = self._parent)
30
- self.#{prefix}order = _parent.send(_embed_method).max("#{prefix}order").to_i + 1
31
- end
32
- rescue
33
- end
34
- end
35
- self.#{prefix}order ||= 0
36
- self
37
- end
38
- RUBY
39
18
  end
40
-
41
19
  end
42
-
43
20
  end
@@ -4,8 +4,5 @@ module Hancock::Sortable
4
4
 
5
5
  included do
6
6
  sort_field
7
-
8
- before_create :set_default_order_value
9
7
  end
10
-
11
8
  end
@@ -1 +1 @@
1
- p = Settings.copyright(default: "© Copyright {{year|2017}} | Etc", kind: :html).html_safe
1
+ p = Settings.copyright(default: "© Copyright {{year|2016}} | Etc", kind: :html).html_safe
@@ -1,3 +1,4 @@
1
+ / h2 Change your password
1
2
  .devise-box
2
3
  .white-box
3
4
  = simple_form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :put }) do |f|
@@ -14,6 +15,7 @@
14
15
 
15
16
  .form-group
16
17
  / = f.label :password_confirmation
18
+ / br
17
19
  / .form-control = f.password_field :password_confirmation, label: I18n.t("shared.password_confirmation"), autocomplete: "off", placeholder: I18n.t("shared.password_confirmation")
18
20
  = f.input :password_confirmation, as: :password, autocomplete: 'off', title: I18n.t("shared.password_confirmation"), placeholder: I18n.t("shared.password_confirmation"), label: false, wrapper_html: {class: "form-control"}
19
21
 
@@ -1,3 +1,4 @@
1
+ / h2 Forgot your password?
1
2
  .devise-box
2
3
  .white-box
3
4
  = simple_form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post }) do |f|
@@ -5,6 +6,7 @@
5
6
  h2.title Забыли пароль?
6
7
  .form-group
7
8
  / = f.label :email
9
+ / br/
8
10
  / .form-control = f.email_field :email, autofocus: true, placeholder: I18n.t("shared.email")
9
11
  = f.input :email, as: :email, autocomplete: 'off', title: I18n.t("shared.email"), placeholder: I18n.t("shared.email"), label: false, wrapper_html: {class: "form-control"}
10
12
 
@@ -1,3 +1,4 @@
1
+ / h2 Редактирование профиля
1
2
  .devise-box
2
3
  .white-box
3
4
  = simple_form_for(resource, as: resource_name, url: user_registration_path) do |f|
@@ -17,6 +18,7 @@
17
18
 
18
19
  .form-group
19
20
  / = f.label :password_confirmation
21
+ / br
20
22
  / .form-control = f.password_field :password_confirmation, label: I18n.t("shared.password_confirmation"), autocomplete: "off", placeholder: I18n.t("shared.password_confirmation")
21
23
  = f.input :password_confirmation, as: :password, autocomplete: 'off', title: I18n.t("shared.password_confirmation"), placeholder: I18n.t("shared.password_confirmation"), label: false, wrapper_html: {class: "form-control"}
22
24
 
@@ -1,3 +1,4 @@
1
+ /h2 Регистрация
1
2
  .devise-box
2
3
  .white-box
3
4
  = simple_form_for(resource, as: resource_name, url: user_registration_path) do |f|
@@ -17,6 +18,7 @@
17
18
 
18
19
  .form-group
19
20
  / = f.label :password_confirmation
21
+ / br
20
22
  / .form-control = f.password_field :password_confirmation, label: I18n.t("shared.password_confirmation"), autocomplete: "off", placeholder: I18n.t("shared.password_confirmation")
21
23
  = f.input :password_confirmation, as: :password, autocomplete: 'off', title: I18n.t("shared.password_confirmation"), placeholder: I18n.t("shared.password_confirmation"), label: false, wrapper_html: {class: "form-control"}
22
24
 
@@ -1,4 +1,6 @@
1
+ / h2= I18n.t("shared.enter_site")
1
2
  .devise-box
3
+ / = resource.errors.inspect if resource
2
4
  .white-box
3
5
  = simple_form_for(resource, as: resource_name, url: user_session_path) do |f|
4
6
  / = devise_error_messages!
@@ -1,4 +1 @@
1
- div Hancock CMS Application
2
-
3
- - if defined?(Hancock::Pages) and @seo_page
4
- = render file: "hancock/pages/pages/show"
1
+ div hancock_cms test app
@@ -6,28 +6,19 @@ html lang="ru"
6
6
  title= yield(:title) || page_title
7
7
  = yield :meta
8
8
  = csrf_meta_tags
9
-
10
- / - cache 'favicons', skip_digest: true do
11
- / = render partial: 'blocks/favicon'
12
-
9
+ = render partial: 'blocks/favicon'
10
+
13
11
  - async = false #Rails.env.production?
14
- - defer = true #Rails.env.production?
15
- = stylesheet_link_tag "application", media: "all", async: async, defer: defer
16
- = javascript_include_tag "application", async: async, defer: defer
12
+ = stylesheet_link_tag "application", media: "all", async: async
13
+ = javascript_include_tag "application", async: async
17
14
  /[if lt IE 9]
18
- = javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js", async: async, defer: defer
19
- - cache 'layouts/application/custom_head', skip_digest: true do
20
- - _cache_key = ['views/layouts/application/custom_head']
21
- css:
22
- #{{Settings.ns('application_layout').custom_css(default: '', kind: :css, label: "Дополнительный CSS", cache_keys: _cache_key)}}
23
- javascript:
24
- #{{Settings.ns('application_layout').custom_js(default: '', kind: :js, label: "Дополнительный JS", cache_keys: _cache_key)}}
15
+ = javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js", async: async
16
+ css:
17
+ #{Settings.custom_css(default: '', kind: :css, label: "Дополнительный CSS")}
18
+ javascript:
19
+ #{Settings.custom_js(default: '', kind: :js, label: "Дополнительный JS")}
25
20
 
26
- body{class="application_layout #{controller_name} #{action_name} #{controller_name}_#{action_name}"}
27
-
28
- - cache 'preloader', skip_digest: true do
29
- = render partial: 'blocks/preloader'
30
-
21
+ body{class="#{controller_name} #{action_name} #{controller_name}_#{action_name}"}
31
22
  #root role="main"
32
23
 
33
24
  header#header
@@ -41,4 +32,4 @@ html lang="ru"
41
32
  footer#footer
42
33
  = render partial: 'blocks/footer'
43
34
 
44
- = render partial: 'hancock/toplink/toplink'
35
+ = render partial: 'hancock/toplink/toplink'
@@ -6,16 +6,13 @@ html lang="ru"
6
6
  title= yield(:title) || page_title
7
7
  = yield :meta
8
8
  = csrf_meta_tags
9
-
10
- / - cache 'favicons', skip_digest: true do
11
- / = render partial: 'blocks/favicon'
9
+ = render partial: 'blocks/favicon'
12
10
 
13
11
  - async = false #Rails.env.production?
14
- - defer = false #Rails.env.production?
15
- = stylesheet_link_tag "application", media: "all", defer: defer
16
- = javascript_include_tag "application", defer: defer
12
+ = stylesheet_link_tag "application", media: "all", async: async
13
+ = javascript_include_tag "application", async: async
17
14
  /[if lt IE 9]
18
- = javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js", defer: defer
15
+ = javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js", async: async
19
16
 
20
17
  body
21
18
  #preloader
@@ -6,16 +6,13 @@ html lang="ru"
6
6
  title= yield(:title) || page_title
7
7
  = yield :meta
8
8
  = csrf_meta_tags
9
-
10
- / - cache 'favicons', skip_digest: true do
11
- / = render partial: 'blocks/favicon'
9
+ = render partial: 'blocks/favicon'
12
10
 
13
11
  - async = false #Rails.env.production?
14
- - defer = false #Rails.env.production?
15
- = stylesheet_link_tag "application", media: "all", defer: defer
16
- = javascript_include_tag "application", defer: defer
12
+ = stylesheet_link_tag "application", media: "all", async: async
13
+ = javascript_include_tag "application", async: async
17
14
  /[if lt IE 9]
18
- = javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js", defer: defer
15
+ = javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js", async: async
19
16
 
20
17
  body
21
18
  #preloader
@@ -6,16 +6,13 @@ html lang="ru"
6
6
  title= yield(:title) || page_title
7
7
  = yield :meta
8
8
  = csrf_meta_tags
9
-
10
- / - cache 'favicons', skip_digest: true do
11
- / = render partial: 'blocks/favicon'
9
+ = render partial: 'blocks/favicon'
12
10
 
13
11
  - async = false #Rails.env.production?
14
- - defer = false #Rails.env.production?
15
- = stylesheet_link_tag "application", media: "all", defer: defer
16
- = javascript_include_tag "application", defer: defer
12
+ = stylesheet_link_tag "application", media: "all", async: async
13
+ = javascript_include_tag "application", async: async
17
14
  /[if lt IE 9]
18
- = javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js", defer: defer
15
+ = javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js", async: async
19
16
 
20
17
  body
21
18
  #preloader
@@ -6,16 +6,13 @@ html lang="ru"
6
6
  title= yield(:title) || page_title
7
7
  = yield :meta
8
8
  = csrf_meta_tags
9
-
10
- / - cache 'favicons', skip_digest: true do
11
- / = render partial: 'blocks/favicon'
9
+ = render partial: 'blocks/favicon'
12
10
 
13
11
  - async = false #Rails.env.production?
14
- - defer = false #Rails.env.production?
15
- = stylesheet_link_tag "application", media: "all", defer: defer
16
- = javascript_include_tag "application", defer: defer
12
+ = stylesheet_link_tag "application", media: "all", async: async
13
+ = javascript_include_tag "application", async: async
17
14
  /[if lt IE 9]
18
- = javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js", defer: defer
15
+ = javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js", async: async
19
16
 
20
17
  body
21
18
  #preloader