hancock_cms 1.0.0 → 1.0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2bb11bbd769e8fe10d0b729feec21bab3dbc0d6f
4
- data.tar.gz: 9c1e705aadab3d37bacde39c8db2f987ce0800c5
3
+ metadata.gz: d1d53055fa4e4e284f13175d853efb63d27b3b85
4
+ data.tar.gz: d2036a23ad9b9a7c268cdb907544608e68f39633
5
5
  SHA512:
6
- metadata.gz: 041b271b62472f1e9a23a554be65e845a47b59115144b2dca7b2485d20b6d598f380dd0b879ec66556ae75d2e1ea3eb690689287ef9ab2b1dd7b87e8c7168f1d
7
- data.tar.gz: e6877df62eb2d1275f466d8bf53d4b0936a272ca86238424b9ffc67cd26c8105bbbaf18cc0890f6469d5ac531e8188a38571ad541c2ee017c5a98ddfe911f3a8
6
+ metadata.gz: d8b8a4b523a035f6788f64110d2fba5d8c23baa3a6b66b20f490621ba98b15c631af0e4267e26de03e2c6603f3afaf0458fcb1e590d7ca8ef19003ffec901324
7
+ data.tar.gz: 7122a9ac480af5c5a8ad32d4ef3beafcdc19f6b4f35e598c98bd427f6a7ce043dd0533b7995f6e11a682d71162284cff865fafcd3f7a4ade2a08a14bc5db9197
data/README.md CHANGED
@@ -50,13 +50,17 @@ If not, uninstall rails and install again
50
50
 
51
51
  Then, for mongoid:
52
52
 
53
- rails new my_app -T -O -m https://raw.githubusercontent.com/red-rocks/hancock_cms/rails4/template.rb
53
+ rails new my_app -B -T -O -m https://raw.githubusercontent.com/red-rocks/hancock_cms/rails4/template.rb
54
+ cd my_app
55
+ rails g hancock:cms:setup
54
56
 
55
57
  for ActiveRecord:
56
58
 
57
- rails new my_app -T --database=postgresql -m https://raw.githubusercontent.com/red-rocks/hancock_cms/rails4/template.rb
59
+ rails new my_app -B -T --database=postgresql -m https://raw.githubusercontent.com/red-rocks/hancock_cms/rails4/template.rb
60
+ cd my_app
61
+ rails g hancock:cms:setup
58
62
 
59
- generator creates a new RVM gemset, so after cd'ing to app dir, you should run `bundle install` again if you use rvm.
63
+ generator creates a new RVM gemset, runs `bundle install` and setup some files (assets, config/initializers/*, routes, etc).
60
64
 
61
65
  ### Localization
62
66
 
@@ -8,7 +8,8 @@
8
8
  overflow: auto
9
9
  white-space: nowrap
10
10
  text-align: center
11
-
11
+ font-family: "Verdana", SansSerif
12
+ font-weight: normal
12
13
  &:before
13
14
  height: 100%
14
15
  display: inline-block
@@ -21,9 +22,7 @@
21
22
  vertical-align: middle
22
23
  text-align: left
23
24
  background: #fff
24
- webkit-box-shadow: 0 8px 17px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19)
25
- -moz-box-shadow: 0 8px 17px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19)
26
- box-shadow: 0 8px 17px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19)
25
+ +box-shadow(0 8px 17px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19))
27
26
  min-width: 400px
28
27
 
29
28
  .white-box
@@ -62,36 +61,30 @@
62
61
  .form-control
63
62
  background-image: linear-gradient(#9675ce, #9675ce), linear-gradient(rgba(120, 130, 140, 0.13), rgba(120, 130, 140, 0.13))
64
63
  border: 0 none
65
- border-radius: 0
66
- box-shadow: none
64
+ +border-radius(0)
65
+ +box-shadow(none)
67
66
  background-color: rgba(0, 0, 0, 0)
68
67
  background-position: center bottom, center calc(99%)
69
68
  background-repeat: no-repeat
70
69
  background-size: 0 2px, 100% 1px
71
70
  background-color: #ffffff
72
- box-shadow: none
73
71
  color: #565656
74
72
  height: 38px
75
73
  width: 100%
76
74
  padding: 7px 12px
77
- transition: all 300ms linear 0s
75
+ +transition(all 300ms linear 0s)
78
76
  display: block
79
77
  font-size: 14px
80
78
  line-height: 1.42857143
81
- -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s
82
- -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s
83
- transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s
79
+ +transition(border-color ease-in-out .15s,box-shadow ease-in-out .15s)
84
80
  input
85
81
  width: 100%
86
- height: 100%
87
82
 
88
83
  .link-to-recover
89
84
  float: right
90
85
  padding-right: 10px
91
86
  a
92
- -webkit-transition: color ease-in-out .15s
93
- -o-transition: color ease-in-out .15s
94
- transition: color ease-in-out .15s
87
+ +transition(color ease-in-out .15s)
95
88
  color: #333C44
96
89
  &:hover
97
90
  color: #EF5350
@@ -123,9 +116,7 @@
123
116
  cursor: pointer
124
117
  max-width: 100%
125
118
  color: #333C44
126
- -webkit-transition: color ease-in-out .15s
127
- -o-transition: color ease-in-out .15s
128
- transition: color ease-in-out .15s
119
+ +transition(color ease-in-out .15s)
129
120
  &:hover
130
121
  label
131
122
  color: #EF5350
@@ -145,9 +136,7 @@
145
136
  padding: 10px 16px
146
137
  font-size: 18px
147
138
  line-height: 1.3333333
148
- -webkit-transition: all ease-in-out .15s
149
- -o-transition: all ease-in-out .15s
150
- transition: all ease-in-out .15s
139
+ +transition(all ease-in-out .15s)
151
140
  &:hover
152
141
  background: rgba(#ee5350, 0.8)
153
142
  border: 1px solid rgba(#ee5350, 0.8)
@@ -155,3 +144,25 @@
155
144
 
156
145
  .form-group.links
157
146
  margin-top: 25px
147
+
148
+ .devise-box .white-box form .form-group .form-control
149
+ padding: 0
150
+ input
151
+ position: relative
152
+ margin: 0
153
+ border: 0px
154
+ border-bottom: 1px solid #ccc
155
+ +transition(all 0.3s)
156
+ &:focus
157
+ border-bottom: 1px solid #3c6085
158
+
159
+ .devise-box .white-box form .form-group .checkbox-primary
160
+ min-height: auto
161
+
162
+ .devise-box .white-box form .form-group .checkbox-primary label
163
+ padding-left: 0px
164
+ input
165
+ margin: 0px
166
+ margin-right: 5px
167
+ display: inline-block
168
+ vertical-align: middle
@@ -608,7 +608,7 @@ a
608
608
  td
609
609
  position: relative
610
610
  vertical-align: middle
611
- text-align: center
611
+ text-align: left
612
612
  padding: 3px 4px 3px 4px
613
613
  td.other.right, td.last.links
614
614
  padding: 6px 10px 6px 0px
@@ -699,5 +699,5 @@ body.rails_admin .form-horizontal .tab-content .tab-pane
699
699
  +box-shadow(inset 0 1px 1px rgba(0, 0, 0, 0.075))
700
700
  +transform(border-color ease-in-out 0.15s box-shadow ease-in-out 0.15s)
701
701
 
702
- body.rails_admin .table td
703
- max-width: 120px
702
+ body.rails_admin .table
703
+ max-width: 120px
@@ -1,4 +1,4 @@
1
- module Hancock::Errors
1
+ module Hancock::CurrentUser
2
2
  extend ActiveSupport::Concern
3
3
 
4
4
  included do
@@ -1,5 +1,6 @@
1
1
  module Hancock::Errors
2
2
  extend ActiveSupport::Concern
3
+
3
4
  included do
4
5
  if Rails.env.production? || Rails.env.staging? || (respond_to?(:hancock_check_errors) and hancock_check_errors)
5
6
  rescue_from Exception, with: :render_500
@@ -90,5 +91,5 @@ module Hancock::Errors
90
91
  def render_error(code = 500)
91
92
  render template: "hancock/errors/error_#{code}", formats: [:html], handlers: [:slim], layout: Hancock.config.error_layout, status: code
92
93
  end
93
-
94
+
94
95
  end
@@ -11,12 +11,13 @@ if Hancock.mongoid?
11
11
  def default_cache_keys
12
12
  self.class.default_cache_keys
13
13
  end
14
-
14
+
15
15
  def cache_keys
16
16
  cache_keys_str.split(/\s+/).map { |k| k.strip }.reject { |k| k.blank? }
17
17
  end
18
18
  field :perform_caching, type: Boolean, default: true
19
19
 
20
+ after_touch :clear_cache
20
21
  after_save :clear_cache
21
22
  after_destroy :clear_cache
22
23
  def clear_cache
@@ -1,10 +1,10 @@
1
1
  if defined?(Mongoid)
2
2
 
3
- module Mongoid
3
+ module Hancock
4
4
 
5
5
  # Helps to override find method in an embedded document.
6
6
  # Usage :
7
- # - add to your model "include Mongoid::EmbeddedFindable"
7
+ # - add to your model "include Hancock::EmbeddedFindable"
8
8
  # - override find method with:
9
9
  # def self.find(id)
10
10
  # find_through(Book, 'chapter', id)
@@ -17,4 +17,4 @@ ul
17
17
  - if logout_path.present?
18
18
  li.footer-nav-link = link_to logout_path, title: "Выйти".freeze, method: logout_method
19
19
  span
20
- i.fa.fa-power-off
20
+ i.fa.fa-power-off
@@ -13,7 +13,7 @@
13
13
  RailsAdmin.I18n.init('#{I18n.locale}', JSON.parse("#{j I18n.t("admin.js").to_json}"))
14
14
 
15
15
  %body.rails_admin
16
-
16
+ #loading.label.label-warning{style: 'display:none; position:fixed; right:20px; bottom:20px; z-index:100000'}= t('admin.loading')
17
17
  %nav.admin-navbar.admin-navbar-fixed.bg-red{:role => "navigation"}
18
18
  = render "layouts/rails_admin/navigation"
19
19
 
@@ -66,3 +66,4 @@
66
66
  -# = render "layouts/rails_admin/sidebar_navigation"
67
67
  -# .col-sm-9.col-sm-offset-3.col-md-10.col-md-offset-2.sidebar-content
68
68
  -# .content{:'data-pjax-container' => true}= render template: 'layouts/rails_admin/pjax'
69
+ 0
data/hancock_cms.gemspec CHANGED
@@ -36,7 +36,7 @@ Gem::Specification.new do |spec|
36
36
  spec.add_dependency 'rails_admin_nested_set'
37
37
  spec.add_dependency 'rails_admin_toggleable'
38
38
 
39
- spec.add_dependency 'ack_rails_admin_settings'
39
+ spec.add_dependency 'ack_rails_admin_settings', '~> 1.2'
40
40
 
41
41
  spec.add_dependency 'kaminari'
42
42
 
@@ -0,0 +1,359 @@
1
+ require 'rails/generators'
2
+ # require "rails/generators/rails/app/app_generator"
3
+
4
+ module Hancock::Cms
5
+ class SetupGenerator < Rails::Generators::Base
6
+
7
+ desc 'Hancock CMS Carcass generator'
8
+ def install
9
+
10
+ ####### DEVISE #######
11
+
12
+ generate "devise:install"
13
+ gsub_file 'config/initializers/devise.rb', "'please-change-me-at-config-initializers-devise@example.com'", "'noreply@#{app_name.dasherize.downcase}.ru'"
14
+ inject_into_file 'config/initializers/devise.rb', after: /^end/ do <<-TEXT
15
+
16
+ Rails.application.config.to_prepare do
17
+ Devise::SessionsController.layout "hancock/devise/sessions"
18
+ Devise::RegistrationsController.layout "hancock/devise/registrations"
19
+ Devise::ConfirmationsController.layout "hancock/devise/confirmations"
20
+ Devise::UnlocksController.layout "hancock/devise/unlocks"
21
+ Devise::PasswordsController.layout "hancock/devise/passwords"
22
+ end
23
+ TEXT
24
+ end
25
+
26
+ generate "devise", "User"
27
+ ####### ROUTES #######
28
+
29
+ remove_file 'config/routes.rb'
30
+ create_file 'config/routes.rb' do <<-TEXT
31
+ Rails.application.routes.draw do
32
+ devise_for :users, controllers: {sessions: 'hancock/sessions'}
33
+
34
+ mount RailsAdmin::Engine => '/admin', as: 'rails_admin'
35
+
36
+ hancock_cms_routes
37
+ end
38
+ TEXT
39
+ end
40
+
41
+
42
+ ####### INITIALIZERS #######
43
+
44
+ inject_into_file 'config/initializers/assets.rb', before: /\z/ do <<-TEXT
45
+ Rails.application.config.assets.precompile += %w( *.svg )
46
+ Rails.application.config.assets.precompile += %w( ckeditor/* )
47
+ Rails.application.config.assets.precompile += %w( codemirror.js codemirror.css codemirror/**/* )
48
+ TEXT
49
+ end
50
+
51
+ if mongoid
52
+ generate "ckeditor:install", "--orm=mongoid", "--backend=paperclip"
53
+ else
54
+ generate "ckeditor:install", "--orm=active_record", "--backend=paperclip"
55
+ end
56
+ gsub_file 'config/initializers/ckeditor.rb', "# config.image_file_types = %w(jpg jpeg png gif tiff)", "config.image_file_types = %w(jpg jpeg png gif tiff svg)"
57
+ gsub_file 'config/initializers/ckeditor.rb', "# config.authorize_with :cancan", "config.authorize_with :cancancan"
58
+ gsub_file 'config/initializers/ckeditor.rb', "# config.assets_languages = ['en', 'uk']", "config.assets_languages = ['en', 'ru']"
59
+
60
+ if mongoid
61
+ remove_file 'config/initializers/cookies_serializer.rb'
62
+ create_file 'config/initializers/cookies_serializer.rb' do <<-TEXT
63
+ # Be sure to restart your server when you modify this file.
64
+ # json serializer breaks Devise + Mongoid. DO NOT ENABLE
65
+ # See https://github.com/plataformatec/devise/pull/2882
66
+ # Rails.application.config.action_dispatch.cookies_serializer = :json
67
+ Rails.application.config.action_dispatch.cookies_serializer = :marshal
68
+ TEXT
69
+ end
70
+ end
71
+
72
+ gsub_file 'config/initializers/filter_parameter_logging.rb', "[:password]", "[:password, :password_confirmation]"
73
+
74
+ # generate 'paperclip_optimizer:install'
75
+ # remove_file 'config/initializers/paperclip_optimizer.rb'
76
+ # generate "hancock:cms:paperclip_optimizer"
77
+
78
+ # generate 'rails_email_preview:install'
79
+ # remove_file 'app/mailer_previews/contact_mailer_preview.rb'
80
+ # create_file 'app/mailer_previews/contact_mailer_preview.rb' do <<-TEXT
81
+ # class ContactMailerPreview
82
+ # def new_message_email
83
+ # Hancock::Feedback::ContactMailer.new_message_email(Hancock::Feedback::ContactMessage.all.to_a.sample)
84
+ # end
85
+ # end
86
+ # TEXT
87
+ # end
88
+
89
+ generate "hancock:cms:config"
90
+
91
+ generate "hancock:cms:rack"
92
+
93
+ generate "hancock:cms:admin"
94
+
95
+ remove_file 'config/initializers/session_store.rb'
96
+ if mongoid
97
+ create_file 'config/initializers/session_store.rb' do <<-TEXT
98
+ # Be sure to restart your server when you modify this file.
99
+
100
+ #Rails.application.config.session_store :cookie_store, key: '_#{app_name.tableize.singularize}_session'
101
+ Rails.application.config.session_store :mongoid_store
102
+ TEXT
103
+ end
104
+ else
105
+ generate 'active_record_store:session_migration'
106
+ create_file 'config/initializers/session_store.rb' do <<-TEXT
107
+ # Be sure to restart your server when you modify this file.
108
+
109
+ #Rails.application.config.session_store :cookie_store, key: '_#{app_name.tableize.singularize}_session'
110
+ Rails.application.config.session_store :active_record_store
111
+ TEXT
112
+ end
113
+ end
114
+
115
+ # unless mongoid
116
+ # generate 'simple_captcha'
117
+ # end
118
+
119
+ generate "simple_form:install"
120
+
121
+
122
+ ####### CONTROLLERS #######
123
+
124
+ remove_file 'app/controllers/application_controller.rb'
125
+ create_file 'app/controllers/application_controller.rb' do <<-TEXT
126
+ class ApplicationController < ActionController::Base
127
+ include Hancock::Controller
128
+ end
129
+ TEXT
130
+ end
131
+
132
+
133
+ ####### MODELS #######
134
+
135
+ generate "hancock:cms:ability"
136
+
137
+ gsub_file 'app/models/user.rb', '# :confirmable, :lockable, :timeoutable and :omniauthable' do <<-TEXT
138
+ include Hancock::Model
139
+ include Hancock::Enableable
140
+ include Hancock::RailsAdminPatch
141
+ def self.manager_can_default_actions
142
+ [:show, :read]
143
+ end
144
+ def manager_cannot_actions
145
+ [:new, :create, :delete, :destroy]
146
+ end
147
+
148
+ cattr_accessor :current_user
149
+
150
+ # Include default devise modules. Others available are:
151
+ # :confirmable, :lockable, :timeoutable and :omniauthable
152
+ TEXT
153
+ end
154
+
155
+ gsub_file 'app/models/user.rb', ':registerable,', ' :lockable,'
156
+ if mongoid
157
+ gsub_file 'app/models/user.rb', '# field :failed_attempts', 'field :failed_attempts'
158
+ gsub_file 'app/models/user.rb', '# field :unlock_token', 'field :unlock_token'
159
+ gsub_file 'app/models/user.rb', '# field :locked_at', 'field :locked_at'
160
+
161
+ inject_into_file 'app/models/user.rb', before: /^end/ do <<-TEXT
162
+
163
+ field :name, type: String
164
+ field :login, type: String
165
+ field :roles, type: Array, default: []
166
+
167
+ before_save do
168
+ self.roles ||= []
169
+ self.roles.reject! { |r| r.blank? }
170
+ end
171
+
172
+ AVAILABLE_ROLES = ["admin", "manager", "client"]
173
+
174
+ AVAILABLE_ROLES.each do |r|
175
+ class_eval <<-EVAL
176
+ def \#{r}?
177
+ self.roles and self.roles.include?("\#{r}")
178
+ end
179
+
180
+ scope :\#{r.pluralize}, -> { any_in(roles: "\#{r}") }
181
+ EVAL
182
+ end
183
+
184
+ def self.generate_first_admin_user
185
+ if ::User.admins.all.count == 0
186
+ _email_pass = 'admin@#{app_name.dasherize.downcase}.ru'
187
+ if ::User.new(roles: ["admin"], email: _email_pass, password: _email_pass, password_confirmation: _email_pass).save
188
+ puts "AdminUser with email and password '\#{_email_pass}' was created!"
189
+ else
190
+ puts 'Creating AdminUser error'
191
+ end
192
+ else
193
+ puts 'AdminUsers are here already'
194
+ end
195
+ end
196
+
197
+ def self.generate_first_manager_user
198
+ if ::User.managers.all.count == 0
199
+ _email_pass = 'manager@#{app_name.dasherize.downcase}.ru'
200
+ if ::User.create(roles: ["manager"], email: _email_pass, password: _email_pass, password_confirmation: _email_pass)
201
+ puts "ManagerUser with email and password '\#{_email_pass}' was created!"
202
+ else
203
+ puts 'Creating ManagerUser error'
204
+ end
205
+ else
206
+ puts 'ManagerUsers are here already'
207
+ end
208
+ end
209
+
210
+ rails_admin do
211
+ list do
212
+ field :email
213
+ field :name
214
+ field :login
215
+ field :roles do
216
+ pretty_value do
217
+ render_object = (bindings[:controller] || bindings[:view])
218
+ render_object.content_tag(:p, bindings[:object].roles.join(", ")) if render_object
219
+ end
220
+ end
221
+ end
222
+
223
+ edit do
224
+ group :login do
225
+ active false
226
+ field :email, :string do
227
+ visible do
228
+ render_object = (bindings[:controller] || bindings[:view])
229
+ render_object and (render_object.current_user.admin? or (render_object.current_user.manager? and render_object.current_user == bindings[:object]))
230
+ end
231
+ end
232
+ field :name, :string
233
+ field :login, :string do
234
+ visible do
235
+ render_object = (bindings[:controller] || bindings[:view])
236
+ render_object and render_object.current_user.admin?
237
+ end
238
+ end
239
+ end
240
+
241
+ group :roles do
242
+ active false
243
+ field :roles, :enum do
244
+ enum do
245
+ AVAILABLE_ROLES
246
+ end
247
+
248
+ multiple do
249
+ true
250
+ end
251
+
252
+ visible do
253
+ render_object = (bindings[:controller] || bindings[:view])
254
+ render_object and render_object.current_user.admin?
255
+ end
256
+ end
257
+ end
258
+
259
+ group :password do
260
+ active false
261
+ field :password do
262
+ visible do
263
+ render_object = (bindings[:controller] || bindings[:view])
264
+ render_object and (render_object.current_user.admin? or render_object.current_user == bindings[:object])
265
+ end
266
+ end
267
+ field :password_confirmation do
268
+ visible do
269
+ render_object = (bindings[:controller] || bindings[:view])
270
+ render_object and (render_object.current_user.admin? or render_object.current_user == bindings[:object])
271
+ end
272
+ end
273
+ end
274
+ end
275
+
276
+ end
277
+ TEXT
278
+ end
279
+ end
280
+
281
+
282
+ ###### HANCOCK OTHERS ######
283
+
284
+ unless mongoid
285
+ generate "hancock:cms:migration"
286
+ generate "rails_admin_settings:migration"
287
+ end
288
+
289
+ remove_file 'app/views/layouts/application.html.erb'
290
+ generate "hancock:cms:layout"
291
+
292
+ unless mongoid
293
+ rake "db:migrate"
294
+ end
295
+
296
+ run 'rails r "User.generate_first_admin_user"'
297
+
298
+ remove_file 'app/assets/stylesheets/application.css'
299
+ remove_file 'app/assets/javascripts/application.js'
300
+ generate "hancock:cms:assets", app_name
301
+
302
+ remove_file 'public/robots.txt'
303
+ generate "hancock:cms:robots", app_name
304
+
305
+ #god+unicorn
306
+ generate "hancock:cms:unicorn_god", app_name
307
+ #scripts
308
+ generate "hancock:cms:scripts", app_name
309
+
310
+ FileUtils.cp(Pathname.new(destination_root).join('config', 'secrets.yml').to_s, Pathname.new(destination_root).join('config', 'secrets.yml.example').to_s)
311
+
312
+ unless mongoid
313
+ generate "paper_trail:install"
314
+ generate "friendly_id"
315
+ rake "db:migrate"
316
+ end
317
+
318
+ generate "rspec:install"
319
+
320
+
321
+ ####### GIT #######
322
+
323
+ remove_file '.gitignore'
324
+ create_file '.gitignore' do <<-TEXT
325
+ # See https://help.github.com/articles/ignoring-files for more about ignoring files.
326
+ #
327
+ # If you find yourself ignoring temporary files generated by your text editor
328
+ # or operating system, you probably want to add a global ignore instead:
329
+ # git config --global core.excludesfile '~/.gitignore_global'
330
+ .idea
331
+ .idea/*
332
+
333
+ /.bundle
334
+ /log/*.log
335
+ /tmp/*
336
+ /public/assets
337
+ /public/ckeditor_assets
338
+ Gemfile.lock
339
+ TEXT
340
+ end
341
+
342
+ create_file 'extra/.gitkeep', ''
343
+
344
+ git :init
345
+ git add: "."
346
+ git commit: %Q{ -m 'Initial commit' }
347
+
348
+ end
349
+
350
+ def mongoid
351
+ defined? Mongoid
352
+ end
353
+
354
+ def app_name
355
+ Rails.application.class.parent_name
356
+ end
357
+
358
+ end
359
+ end
@@ -1,5 +1,5 @@
1
1
  #= require hancock/cms
2
2
 
3
- #= require_tree hancock/app
3
+ #= require hancock/app/back_to_top
4
4
 
5
5
  # require_tree ./app
@@ -27,4 +27,6 @@ Hancock.configure do |config|
27
27
  # config.registration_captcha = config.admin_enter_captcha
28
28
  #
29
29
  # config.captcha_on_development = false
30
+ #
31
+ # config.history_tracking = true
30
32
  end
@@ -3,8 +3,11 @@ module Hancock
3
3
  module EmbeddedElement
4
4
  def self.config(nav_label = nil, fields = {})
5
5
  if nav_label.is_a?(Hash)
6
+ nav_label, fields = nav_label[:nav_label], nav_label
7
+ elsif nav_label.is_a?(Array)
6
8
  nav_label, fields = nil, nav_label
7
9
  end
10
+
8
11
  Proc.new {
9
12
  navigation_label(nav_label || I18n.t('hancock.cms'))
10
13
  field :enabled, :toggle do
@@ -27,6 +27,8 @@ module Hancock
27
27
 
28
28
  attr_accessor :captcha_on_development
29
29
 
30
+ attr_accessor :history_tracking
31
+
30
32
  def initialize
31
33
  @main_index_layout = 'application'
32
34
  @error_layout = 'application'
@@ -43,6 +45,8 @@ module Hancock
43
45
  @registration_captcha = @admin_enter_captcha
44
46
 
45
47
  @captcha_on_development = false
48
+
49
+ @history_tracking = true
46
50
  end
47
51
  end
48
52
  end
@@ -10,39 +10,43 @@ module Hancock
10
10
  # Write default email settings to DB so they can be changed.
11
11
 
12
12
  #temp
13
- # begin
14
- # if Settings and Settings.table_exists?
13
+ begin
14
+ if Settings and Settings.table_exists?
15
15
  # Settings.default_email_from(default: 'noreply@site.domain')
16
16
  # Settings.form_email(default: 'admin@site.domain')
17
17
  # Settings.email_topic(default: 'с сайта')
18
- # end
19
- # rescue
20
- # end
21
- end
22
- initializer 'hancock_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
18
+ Settings.logo_image(kind: :image)
19
+ end
20
+ rescue
21
+ end
32
22
  end
23
+ # initializer 'hancock_cms.paperclip' do
24
+ # # require 'paperclip/style'
25
+ # # module ::Paperclip
26
+ # # class Style
27
+ # # alias_method :processor_options_without_auto_orient, :processor_options
28
+ # # def processor_options
29
+ # # processor_options_without_auto_orient.merge(auto_orient: false)
30
+ # # end
31
+ # # end
32
+ # # end
33
+ # end
33
34
 
34
- config.after_initialize do
35
- # trigger autoload so models are registered in Mongoid::Elasticearch
36
- # Hancock.config.search_models.map(&:constantize)
35
+ # config.after_initialize do
36
+ # # trigger autoload so models are registered in Mongoid::Elasticearch
37
+ # # Hancock.config.search_models.map(&:constantize)
38
+ #
39
+ # # Write default email settings to DB so they can be changed.
40
+ # begin
41
+ # if Settings and Settings.table_exists?
42
+ # # Settings.default_email_from(default: 'noreply@site.domain')
43
+ # # Settings.form_email(default: 'admin@site.domain')
44
+ # # Settings.email_topic(default: 'с сайта')
45
+ # Settings.logo_image(kind: :image)
46
+ # end
47
+ # rescue
48
+ # end
49
+ # end
37
50
 
38
- # Write default email settings to DB so they can be changed.
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
- #
44
- Settings.logo_image(kind: :image)
45
- end
46
- end
47
51
  end
48
52
  end
data/lib/hancock/model.rb CHANGED
@@ -38,11 +38,13 @@ module Hancock
38
38
  include RailsAdminComments::ModelCommentable
39
39
  end
40
40
 
41
- if Hancock.mongoid?
42
- if defined?(TrackablePatch)
43
- include TrackablePatch
44
- elsif defined?(Trackable)
45
- include Trackable
41
+ if Hancock.config.history_tracking
42
+ if Hancock.mongoid?
43
+ if defined?(TrackablePatch)
44
+ include TrackablePatch
45
+ elsif defined?(Trackable)
46
+ include Trackable
47
+ end
46
48
  end
47
49
  end
48
50
 
@@ -4,10 +4,12 @@ module Hancock
4
4
  module EmbeddedElement
5
5
  extend ActiveSupport::Concern
6
6
 
7
+ include Hancock::EmbeddedFindable
8
+
7
9
  included do
8
10
  field :name, type: String, localize: Hancock.configuration.localize, default: ""
9
11
  end
10
-
12
+
11
13
  end
12
14
  end
13
15
  end
@@ -84,19 +84,23 @@ module Hancock
84
84
  if rails_admin_actions.respond_to?(action)
85
85
  rails_admin_actions.send(action) do
86
86
  visible do
87
- ret = false
88
- if bindings[:abstract_model].model.respond_to?(:rails_admin_visible_actions)
89
- ret = bindings[:abstract_model].model.rails_admin_visible_actions.include?(action)
87
+ if !bindings or bindings[:abstract_model].blank?
88
+ true
90
89
  else
91
- if visibility = Hancock.rails_admin_config.actions_visibility[action]
92
- if visibility.is_a?(Proc)
93
- ret = visibility.call(self)
94
- else
95
- ret = visibility.include? bindings[:abstract_model].model_name
90
+ ret = false
91
+ if bindings[:abstract_model].model.respond_to?(:rails_admin_visible_actions)
92
+ ret = bindings[:abstract_model].model.rails_admin_visible_actions.include?(action)
93
+ else
94
+ if visibility = Hancock.rails_admin_config.actions_visibility[action]
95
+ if visibility.is_a?(Proc)
96
+ ret = visibility.call(self)
97
+ else
98
+ ret = visibility.include? bindings[:abstract_model].model_name
99
+ end
96
100
  end
97
- end
98
- end # if bindings[:abstract_model].model.respond_to?(:rails_admin_visible_actions)
99
- ret
101
+ end # if bindings[:abstract_model].model.respond_to?(:rails_admin_visible_actions)
102
+ ret
103
+ end # !bindings or bindings[:abstract_model].blank?
100
104
  end # visible do
101
105
  end # rails_admin_actions.send(action) do
102
106
  end # if rails_admin_actions.respond_to?(action)
@@ -1,3 +1,3 @@
1
1
  module Hancock
2
- VERSION = "1.0.0".freeze
2
+ VERSION = "1.0.0.2".freeze
3
3
  end
data/template.rb CHANGED
@@ -34,13 +34,16 @@ gem 'compass-rails'
34
34
  # gem 'ack-paperclip-meta', github: "red-rocks/paperclip-meta"
35
35
 
36
36
  # gem 'rails_admin_multiple_file_upload'
37
+ gem 'rails_admin_user_abilities', '~> 0.1.0'
37
38
  # gem 'rails_admin_user_abilities', github: "red-rocks/rails_admin_user_abilities"
39
+ gem 'rails_admin_model_settings', '~> 0.2.1'
38
40
  # gem 'rails_admin_model_settings', github: "red-rocks/rails_admin_model_settings"
39
41
 
42
+ # #{if mongoid then "gem 'hancock_cms_mongoid'" else "gem 'hancock_cms_activerecord'" end}, github: 'red-rocks/hancock_cms', branch: 'rails4'
43
+ #{if mongoid then "gem 'hancock_cms_mongoid'" else "gem 'hancock_cms_activerecord'" end}, path: "/home/ack/www/redrocks/hancock"
40
44
 
41
- #{if mongoid then "gem 'hancock_cms_mongoid'" else "gem 'hancock_cms_activerecord'" end}, github: 'red-rocks/hancock_cms', branch: 'rails4'
42
-
43
- gem 'devise'
45
+ # gem 'recaptcha', require: 'recaptcha/rails'
46
+ # gem 'glebtv-simple_captcha'
44
47
 
45
48
  gem 'slim-rails'
46
49
  gem 'rs_russian'
@@ -69,7 +72,8 @@ group :development do
69
72
  # gem 'coffee-rails-source-maps'
70
73
  # gem 'compass-rails-source-maps'
71
74
 
72
- gem 'ack_favicon_maker_rails', github: 'ack43/favicon_maker_rails'
75
+ gem 'ack_favicon_maker_rails', '~> 1.0.1'
76
+ # gem 'ack_favicon_maker_rails', github: 'ack43/favicon_maker_rails'
73
77
 
74
78
  # gem 'rails_email_preview', '~> 1.0.3'
75
79
 
@@ -98,7 +102,7 @@ group :production do
98
102
  gem "god"
99
103
  end
100
104
 
101
- gem 'glebtv_mongoid_userstamp', '0.6.0'
105
+ gem 'glebtv_mongoid_userstamp', '0.6.2'
102
106
  TEXT
103
107
  end
104
108
 
@@ -106,11 +110,9 @@ RVM_RUBY_VERSION = "2.3.1"
106
110
  create_file '.ruby-version', "#{RVM_RUBY_VERSION}\n"
107
111
  create_file '.ruby-gemset', "#{app_name.underscore}\n"
108
112
 
109
- # run "rvm use #{RVM_RUBY_VERSION} && rvm gemset create #{app_name}"
110
- # run "rvm use #{RVM_RUBY_VERSION}@#{app_name} && gem install bundler"
111
- # run "rvm gemset list"
112
- run 'bundle install --without production'
113
-
113
+ run "rvm #{RVM_RUBY_VERSION} do rvm gemset create #{app_name.underscore}"
114
+ run "rvm #{RVM_RUBY_VERSION}@#{app_name.underscore} do gem install bundler"
115
+ run "rvm #{RVM_RUBY_VERSION}@#{app_name.underscore} do bundle install --without production"
114
116
 
115
117
  ####### CONFIG #######
116
118
 
@@ -223,342 +225,3 @@ module #{app_name.underscore.camelcase}
223
225
  end
224
226
  TEXT
225
227
  end
226
-
227
-
228
- ####### DEVISE #######
229
-
230
- generate "devise:install"
231
- gsub_file 'config/initializers/devise.rb', "'please-change-me-at-config-initializers-devise@example.com'", "'noreply@#{app_name.dasherize.downcase}.ru'"
232
- inject_into_file 'config/initializers/devise.rb', after: /^end/ do <<-TEXT
233
- Rails.application.config.to_prepare do
234
- Devise::SessionsController.layout "hancock/devise/sessions"
235
- Devise::RegistrationsController.layout "hancock/devise/registrations"
236
- Devise::ConfirmationsController.layout "hancock/devise/confirmations"
237
- Devise::UnlocksController.layout "hancock/devise/unlocks"
238
- Devise::PasswordsController.layout "hancock/devise/passwords"
239
- end
240
- TEXT
241
- end
242
-
243
- generate "devise", "User"
244
-
245
-
246
- ####### ROUTES #######
247
-
248
- remove_file 'config/routes.rb'
249
- create_file 'config/routes.rb' do <<-TEXT
250
- Rails.application.routes.draw do
251
- devise_for :users, controllers: {sessions: 'hancock/sessions'}
252
-
253
- mount RailsAdmin::Engine => '/admin', as: 'rails_admin'
254
- mount Ckeditor::Engine => '/ckeditor'
255
-
256
- hancock_cms_routes
257
- end
258
- TEXT
259
- end
260
-
261
-
262
- ####### INITIALIZERS #######
263
-
264
- inject_into_file 'config/initializers/assets.rb', before: /\z/ do <<-TEXT
265
- Rails.application.config.assets.precompile += %w( *.svg )
266
- Rails.application.config.assets.precompile += %w( ckeditor/* )
267
- Rails.application.config.assets.precompile += %w( codemirror.js codemirror.css codemirror/**/* )
268
- TEXT
269
- end
270
-
271
- if mongoid
272
- generate "ckeditor:install", "--orm=mongoid", "--backend=paperclip"
273
- else
274
- generate "ckeditor:install", "--orm=active_record", "--backend=paperclip"
275
- end
276
- gsub_file 'config/initializers/ckeditor.rb', "# config.image_file_types = %w(jpg jpeg png gif tiff)", "config.image_file_types = %w(jpg jpeg png gif tiff svg)"
277
- gsub_file 'config/initializers/ckeditor.rb', "# config.authorize_with :cancan", "config.authorize_with :cancancan"
278
- gsub_file 'config/initializers/ckeditor.rb', "# config.assets_languages = ['en', 'uk']", "config.assets_languages = ['en', 'ru']"
279
-
280
- if mongoid
281
- remove_file 'config/initializers/cookies_serializer.rb'
282
- create_file 'config/initializers/cookies_serializer.rb' do <<-TEXT
283
- # Be sure to restart your server when you modify this file.
284
- # json serializer breaks Devise + Mongoid. DO NOT ENABLE
285
- # See https://github.com/plataformatec/devise/pull/2882
286
- # Rails.application.config.action_dispatch.cookies_serializer = :json
287
- Rails.application.config.action_dispatch.cookies_serializer = :marshal
288
- TEXT
289
- end
290
- end
291
-
292
- gsub_file 'config/initializers/filter_parameter_logging.rb', "[:password]", "[:password, :password_confirmation]"
293
-
294
- # generate 'paperclip_optimizer:install'
295
- # remove_file 'config/initializers/paperclip_optimizer.rb'
296
- # generate "hancock:cms:paperclip_optimizer"
297
-
298
- # generate 'rails_email_preview:install'
299
- # remove_file 'app/mailer_previews/contact_mailer_preview.rb'
300
- # create_file 'app/mailer_previews/contact_mailer_preview.rb' do <<-TEXT
301
- # class ContactMailerPreview
302
- # def new_message_email
303
- # Hancock::Feedback::ContactMailer.new_message_email(Hancock::Feedback::ContactMessage.all.to_a.sample)
304
- # end
305
- # end
306
- # TEXT
307
- # end
308
-
309
- generate "hancock:cms:config"
310
-
311
- generate "hancock:cms:rack"
312
-
313
- generate "hancock:cms:admin"
314
-
315
- remove_file 'config/initializers/session_store.rb'
316
- if mongoid
317
- create_file 'config/initializers/session_store.rb' do <<-TEXT
318
- # Be sure to restart your server when you modify this file.
319
-
320
- #Rails.application.config.session_store :cookie_store, key: '_#{app_name.tableize.singularize}_session'
321
- Rails.application.config.session_store :mongoid_store
322
- TEXT
323
- end
324
- else
325
- generate 'active_record_store:session_migration'
326
- create_file 'config/initializers/session_store.rb' do <<-TEXT
327
- # Be sure to restart your server when you modify this file.
328
-
329
- #Rails.application.config.session_store :cookie_store, key: '_#{app_name.tableize.singularize}_session'
330
- Rails.application.config.session_store :active_record_store
331
- TEXT
332
- end
333
- end
334
-
335
- # unless mongoid
336
- # generate 'simple_captcha'
337
- # end
338
-
339
- generate "simple_form:install"
340
-
341
-
342
- ####### CONTROLLERS #######
343
-
344
- remove_file 'app/controllers/application_controller.rb'
345
- create_file 'app/controllers/application_controller.rb' do <<-TEXT
346
- class ApplicationController < ActionController::Base
347
- include Hancock::Controller
348
- end
349
- TEXT
350
- end
351
-
352
-
353
- ####### MODELS #######
354
-
355
- generate "hancock:cms:ability"
356
-
357
- gsub_file 'app/models/user.rb', '# :confirmable, :lockable, :timeoutable and :omniauthable' do <<-TEXT
358
- include Hancock::Model
359
- include Hancock::Enableable
360
- include Hancock::RailsAdminPatch
361
- def self.manager_can_default_actions
362
- [:show, :read]
363
- end
364
- def manager_cannot_actions
365
- [:new, :create, :delete, :destroy]
366
- end
367
-
368
- cattr_accessor :current_user
369
-
370
- # Include default devise modules. Others available are:
371
- # :confirmable, :lockable, :timeoutable and :omniauthable
372
- TEXT
373
- end
374
-
375
- gsub_file 'app/models/user.rb', ':registerable,', ' :lockable,'
376
- if mongoid
377
- gsub_file 'app/models/user.rb', '# field :failed_attempts', 'field :failed_attempts'
378
- gsub_file 'app/models/user.rb', '# field :unlock_token', 'field :unlock_token'
379
- gsub_file 'app/models/user.rb', '# field :locked_at', 'field :locked_at'
380
-
381
- inject_into_file 'app/models/user.rb', before: /^end/ do <<-TEXT
382
-
383
- field :name, type: String
384
- field :login, type: String
385
- field :roles, type: Array, default: []
386
-
387
- before_save do
388
- self.roles ||= []
389
- self.roles.reject! { |r| r.blank? }
390
- end
391
-
392
- AVAILABLE_ROLES = ["admin", "manager", "client"]
393
-
394
- AVAILABLE_ROLES.each do |r|
395
- class_eval <<-EVAL
396
- def \#{r}?
397
- self.roles and self.roles.include?("\#{r}")
398
- end
399
-
400
- scope :\#{r.pluralize}, -> { any_in(roles: "\#{r}") }
401
- EVAL
402
- end
403
-
404
- def self.generate_first_admin_user
405
- if ::User.admins.all.count == 0
406
- _email_pass = 'admin@#{app_name.dasherize.downcase}.ru'
407
- if ::User.new(roles: ["admin"], email: _email_pass, password: _email_pass, password_confirmation: _email_pass).save
408
- puts "AdminUser with email and password '\#{_email_pass}' was created!"
409
- else
410
- puts 'Creating AdminUser error'
411
- end
412
- else
413
- puts 'AdminUsers are here already'
414
- end
415
- end
416
-
417
- def self.generate_first_manager_user
418
- if ::User.managers.all.count == 0
419
- _email_pass = 'manager@#{app_name.dasherize.downcase}.ru'
420
- if ::User.create(roles: ["manager"], email: _email_pass, password: _email_pass, password_confirmation: _email_pass)
421
- puts "ManagerUser with email and password '\#{_email_pass}' was created!"
422
- else
423
- puts 'Creating ManagerUser error'
424
- end
425
- else
426
- puts 'ManagerUsers are here already'
427
- end
428
- end
429
-
430
- rails_admin do
431
- list do
432
- field :email
433
- field :name
434
- field :login
435
- field :roles do
436
- pretty_value do
437
- render_object = (bindings[:controller] || bindings[:view])
438
- render_object.content_tag(:p, bindings[:object].roles.join(", ")) if render_object
439
- end
440
- end
441
- end
442
-
443
- edit do
444
- group :login do
445
- active false
446
- field :email, :string do
447
- visible do
448
- render_object = (bindings[:controller] || bindings[:view])
449
- render_object and (render_object.current_user.admin? or (render_object.current_user.manager? and render_object.current_user == bindings[:object]))
450
- end
451
- end
452
- field :name, :string
453
- field :login, :string do
454
- visible do
455
- render_object = (bindings[:controller] || bindings[:view])
456
- render_object and render_object.current_user.admin?
457
- end
458
- end
459
- end
460
-
461
- group :roles do
462
- active false
463
- field :roles, :enum do
464
- enum do
465
- AVAILABLE_ROLES
466
- end
467
-
468
- multiple do
469
- true
470
- end
471
-
472
- visible do
473
- render_object = (bindings[:controller] || bindings[:view])
474
- render_object and render_object.current_user.admin?
475
- end
476
- end
477
- end
478
-
479
- group :password do
480
- active false
481
- field :password do
482
- visible do
483
- render_object = (bindings[:controller] || bindings[:view])
484
- render_object and (render_object.current_user.admin? or render_object.current_user == bindings[:object])
485
- end
486
- end
487
- field :password_confirmation do
488
- visible do
489
- render_object = (bindings[:controller] || bindings[:view])
490
- render_object and (render_object.current_user.admin? or render_object.current_user == bindings[:object])
491
- end
492
- end
493
- end
494
- end
495
-
496
- end
497
- TEXT
498
- end
499
- end
500
-
501
-
502
- ###### HANCOCK OTHERS ######
503
-
504
- unless mongoid
505
- generate "hancock:cms:migration"
506
- generate "rails_admin_settings:migration"
507
- end
508
-
509
- remove_file 'app/views/layouts/application.html.erb'
510
- generate "hancock:cms:layout"
511
-
512
- unless mongoid
513
- rake "db:migrate"
514
- end
515
-
516
- remove_file 'app/assets/stylesheets/application.css'
517
- remove_file 'app/assets/javascripts/application.js'
518
- generate "hancock:cms:assets", app_name
519
-
520
- remove_file 'public/robots.txt'
521
- generate "hancock:cms:robots", app_name
522
-
523
- #god+unicorn
524
- generate "hancock:cms:unicorn_god", app_name
525
- #scripts
526
- generate "hancock:cms:scripts", app_name
527
-
528
- FileUtils.cp(Pathname.new(destination_root).join('config', 'secrets.yml').to_s, Pathname.new(destination_root).join('config', 'secrets.yml.example').to_s)
529
-
530
- unless mongoid
531
- generate "paper_trail:install"
532
- generate "friendly_id"
533
- rake "db:migrate"
534
- end
535
-
536
- generate "rspec:install"
537
-
538
-
539
- ####### GIT #######
540
-
541
- remove_file '.gitignore'
542
- create_file '.gitignore' do <<-TEXT
543
- # See https://help.github.com/articles/ignoring-files for more about ignoring files.
544
- #
545
- # If you find yourself ignoring temporary files generated by your text editor
546
- # or operating system, you probably want to add a global ignore instead:
547
- # git config --global core.excludesfile '~/.gitignore_global'
548
- .idea
549
- .idea/*
550
-
551
- /.bundle
552
- /log/*.log
553
- /tmp/*
554
- /public/assets
555
- /public/ckeditor_assets
556
- Gemfile.lock
557
- TEXT
558
- end
559
-
560
- create_file 'extra/.gitkeep', ''
561
-
562
- git :init
563
- git add: "."
564
- git commit: %Q{ -m 'Initial commit' }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hancock_cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Kiseliev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-18 00:00:00.000000000 Z
11
+ date: 2016-12-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -188,16 +188,16 @@ dependencies:
188
188
  name: ack_rails_admin_settings
189
189
  requirement: !ruby/object:Gem::Requirement
190
190
  requirements:
191
- - - ">="
191
+ - - "~>"
192
192
  - !ruby/object:Gem::Version
193
- version: '0'
193
+ version: '1.2'
194
194
  type: :runtime
195
195
  prerelease: false
196
196
  version_requirements: !ruby/object:Gem::Requirement
197
197
  requirements:
198
- - - ">="
198
+ - - "~>"
199
199
  - !ruby/object:Gem::Version
200
- version: '0'
200
+ version: '1.2'
201
201
  - !ruby/object:Gem::Dependency
202
202
  name: kaminari
203
203
  requirement: !ruby/object:Gem::Requirement
@@ -293,6 +293,7 @@ files:
293
293
  - app/models/concerns/hancock/boolean_field.rb
294
294
  - app/models/concerns/hancock/cacheable.rb
295
295
  - app/models/concerns/hancock/decorators/embedded_element.rb
296
+ - app/models/concerns/hancock/embedded_findable.rb
296
297
  - app/models/concerns/hancock/enableable.rb
297
298
  - app/models/concerns/hancock/geocodeable.rb
298
299
  - app/models/concerns/hancock/hash_field.rb
@@ -342,7 +343,6 @@ files:
342
343
  - app/views/rails_admin/main/_hancock_html_ml.html.slim
343
344
  - app/views/shared/_admin_link.html.slim
344
345
  - app/views/shared/_messages.html.slim
345
- - config/initializers/embedded_findable.rb
346
346
  - config/initializers/hancock_cms.rb
347
347
  - config/initializers/simple_captcha.rb
348
348
  - config/locales/en.hancock.yml
@@ -371,12 +371,14 @@ files:
371
371
  - lib/generators/hancock/cms/rack_generator.rb
372
372
  - lib/generators/hancock/cms/robots_generator.rb
373
373
  - lib/generators/hancock/cms/scripts_generator.rb
374
+ - lib/generators/hancock/cms/setup_generator.rb
374
375
  - lib/generators/hancock/cms/templates/Gemfile.erb
375
376
  - lib/generators/hancock/cms/templates/ability.erb
376
377
  - lib/generators/hancock/cms/templates/admin.erb
377
378
  - lib/generators/hancock/cms/templates/application.erb
378
379
  - lib/generators/hancock/cms/templates/assets/javascripts/application.coffee.erb
379
380
  - lib/generators/hancock/cms/templates/assets/stylesheets/application.sass.erb
381
+ - lib/generators/hancock/cms/templates/assets/stylesheets/hancock/rails_admin/custom/theming.sass.erb
380
382
  - lib/generators/hancock/cms/templates/hancock_cms.erb
381
383
  - lib/generators/hancock/cms/templates/model.erb
382
384
  - lib/generators/hancock/cms/templates/paperclip_optimizer.erb