hancock_cms 1.0.2.3 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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