coalla-cms 0.5.2.4 → 0.6.0.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/Gemfile +1 -1
- data/app/assets/javascripts/admin/admin.js +233 -34
- data/app/assets/stylesheets/admin/admin.scss +1 -2
- data/app/assets/stylesheets/admin/vendor/bootstrap.min.css +6242 -4
- data/app/assets/stylesheets/admin/vendor/token-input-bootstrap.scss +144 -0
- data/app/controllers/admin/autocomplete_controller.rb +3 -1
- data/app/controllers/admin/base_controller.rb +35 -0
- data/app/controllers/concerns/admin/editable_columns.rb +55 -0
- data/app/controllers/concerns/admin/sortable_columns.rb +16 -0
- data/app/controllers/{admin/sortable_controller.rb → concerns/admin/sortable_models.rb} +1 -5
- data/app/helpers/admin/alerts_helper.rb +31 -0
- data/app/helpers/admin/content_helper.rb +29 -0
- data/app/helpers/admin/form_helper.rb +50 -0
- data/app/helpers/admin/resource_helpers.rb +102 -0
- data/app/helpers/admin/search_helper.rb +44 -40
- data/app/helpers/admin/table_helper.rb +40 -0
- data/app/helpers/common_helper.rb +2 -2
- data/app/models/file_upload.rb +1 -1
- data/app/models/lookup.rb +1 -1
- data/app/models/site_meta_tags.rb +2 -2
- data/app/views/admin/common/_menu_section.haml +1 -1
- data/app/views/admin/common/_nested_fields_for.html.haml +10 -5
- data/app/views/admin/common/_nested_fields_for_element.html.haml +21 -5
- data/app/views/admin/common/_table_template.html.haml +26 -7
- data/app/views/admin/common/_upload_form.html.haml +2 -1
- data/app/views/admin/editable_columns/edit/_boolean.haml +2 -0
- data/app/views/admin/editable_columns/edit/_date.haml +2 -0
- data/app/views/admin/editable_columns/edit/_datetime.haml +3 -0
- data/app/views/admin/editable_columns/edit/_enumerize.haml +2 -0
- data/app/views/admin/editable_columns/edit/_string.haml +2 -0
- data/app/views/admin/editable_columns/edit/_text.haml +2 -0
- data/app/views/admin/editable_columns/edit/_time.haml +3 -0
- data/app/views/admin/editable_columns/edit_column.haml +8 -0
- data/app/views/admin/editable_columns/result/_boolean.haml +2 -0
- data/app/views/admin/editable_columns/result/_date.haml +1 -0
- data/app/views/admin/editable_columns/result/_datetime.haml +1 -0
- data/app/views/admin/editable_columns/result/_enumerize.haml +1 -0
- data/app/views/admin/editable_columns/result/_string.haml +1 -0
- data/app/views/admin/editable_columns/result/_text.haml +1 -0
- data/app/views/admin/editable_columns/result/_time.haml +1 -0
- data/app/views/admin/site_meta_tags/index.html.haml +2 -2
- data/app/views/layouts/admin.html.haml +12 -0
- data/app/views/structure/_section.haml +2 -9
- data/coalla-cms.gemspec +10 -11
- data/lib/coalla/builders/actions_column_definition.rb +44 -0
- data/lib/coalla/builders/admin_structure.rb +86 -0
- data/lib/coalla/builders/column_definition.rb +9 -0
- data/lib/coalla/builders/form_builder.rb +291 -0
- data/lib/coalla/builders/link_renderer.rb +43 -0
- data/lib/coalla/builders/policy.rb +30 -0
- data/lib/coalla/builders/table_builder.rb +99 -0
- data/lib/coalla/builders/table_formatter.rb +133 -0
- data/lib/coalla/builders/text_formatter.rb +22 -0
- data/lib/coalla/cms/engine.rb +3 -2
- data/lib/coalla/cms/version.rb +2 -2
- data/lib/coalla/ext/mapper.rb +7 -0
- data/lib/coalla/orm/{relation.rb → multi_field.rb} +7 -8
- data/lib/coalla/orm/page_slider.rb +2 -28
- data/lib/coalla/orm/sanitized.rb +1 -5
- data/lib/coalla/orm/sortable_association.rb +30 -0
- data/lib/coalla/uploaders/file_uploader.rb +9 -0
- data/lib/coalla/uploaders/image_uploader.rb +62 -0
- data/lib/coalla/uploaders/meta_image_uploader.rb +7 -0
- data/lib/coalla-cms.rb +10 -0
- data/lib/generators/coalla/cms/create_admin_administrators_generator.rb +5 -7
- data/lib/generators/coalla/cms/create_admin_generator.rb +9 -7
- data/lib/generators/coalla/cms/create_admin_login_view_generator.rb +4 -6
- data/lib/generators/coalla/cms/create_markup_generator.rb +2 -2
- data/lib/generators/coalla/cms/file_uploads/install_generator.rb +0 -17
- data/lib/generators/coalla/cms/file_uploads/mount_generator.rb +4 -7
- data/lib/generators/coalla/cms/image/install_generator.rb +0 -3
- data/lib/generators/coalla/cms/image/mount_generator.rb +0 -3
- data/lib/generators/coalla/cms/image/templates/mount/uploader.rb.erb +1 -1
- data/lib/generators/coalla/cms/image/templates/uploader.rb.erb +1 -1
- data/lib/generators/coalla/cms/init_generator.rb +42 -49
- data/lib/generators/coalla/cms/lookups/install_generator.rb +0 -3
- data/lib/generators/coalla/cms/meta_tags/install_generator.rb +0 -2
- data/lib/generators/coalla/cms/scaffold_generator.rb +7 -7
- data/lib/generators/coalla/cms/setup_admin_generator.rb +9 -9
- data/lib/generators/coalla/cms/setup_routes_generator.rb +3 -3
- data/lib/generators/coalla/cms/slider/init_generator.rb +1 -3
- data/lib/generators/coalla/cms/slider/templates/slider_image.rb.erb +0 -1
- data/lib/generators/coalla/cms/slider/templates/slider_image_uploader.rb.erb +1 -1
- data/lib/generators/coalla/cms/templates/.gitignore +3 -3
- data/lib/generators/coalla/cms/templates/controllers/admin/administrators_controller.rb +2 -40
- data/lib/generators/coalla/cms/templates/controllers/admin/scaffold_controller_template.rb.erb +0 -39
- data/lib/generators/coalla/cms/templates/initializers/carrierwave.rb +0 -90
- data/lib/generators/coalla/cms/templates/locales/activerecord.en.yml +14 -1
- data/lib/generators/coalla/cms/templates/views/admin/administrators/_form.html.haml +1 -1
- data/lib/generators/coalla/cms/templates/views/admin/administrators/edit.html.haml +1 -1
- data/lib/generators/coalla/cms/templates/views/admin/administrators/index.html.haml +5 -5
- data/lib/generators/coalla/cms/templates/views/admin/administrators/new.html.haml +1 -1
- data/lib/generators/coalla/cms/templates/views/admin/scaffold_template/_form.html.haml.erb +1 -1
- data/lib/generators/coalla/cms/templates/views/admin/scaffold_template/edit.html.haml.erb +1 -1
- data/lib/generators/coalla/cms/templates/views/admin/scaffold_template/index.html.haml.erb +5 -5
- data/lib/generators/coalla/cms/templates/views/admin/scaffold_template/new.html.haml.erb +1 -1
- data/lib/generators/coalla/cms/templates/views/administrators/sessions/new.html.haml +1 -1
- data/lib/generators/coalla/cms/utils/orm.rb +29 -0
- data/lib/generators/coalla/cms/utils/scaffold.rb +11 -0
- metadata +57 -100
- data/Gemfile.lock +0 -198
- data/app/assets/stylesheets/admin/vendor/token-input-facebook.patched.css +0 -126
- data/app/assets/stylesheets/admin/vendor/token-input.patched.css +0 -116
- data/app/controllers/admin/notifier_controller.rb +0 -7
- data/app/helpers/admin_helper.rb +0 -29
- data/app/helpers/nested_fields_helper.rb +0 -12
- data/app/helpers/static_text_formatter.rb +0 -25
- data/app/helpers/twitter_builder_helper.rb +0 -253
- data/app/helpers/twitter_form_builder.rb +0 -202
- data/app/uploaders/file_uploader.rb +0 -10
- data/app/uploaders/generic_image_uploader.rb +0 -75
- data/app/uploaders/meta_tags_image_uploader.rb +0 -5
- data/app/utils/admin_structure.rb +0 -82
- data/app/utils/bootstrap_link_renderer.rb +0 -40
- data/app/utils/table_helpers.rb +0 -196
- data/lib/generators/coalla/cms/market/install_generator.rb +0 -71
- data/lib/generators/coalla/cms/market/templates/controllers/categories_controller.rb +0 -47
- data/lib/generators/coalla/cms/market/templates/controllers/products_controller.rb +0 -50
- data/lib/generators/coalla/cms/market/templates/controllers/properties_controller.rb +0 -59
- data/lib/generators/coalla/cms/market/templates/market.rb +0 -5
- data/lib/generators/coalla/cms/market/templates/market.ru.yml +0 -53
- data/lib/generators/coalla/cms/market/templates/migrations/create_categories.rb +0 -15
- data/lib/generators/coalla/cms/market/templates/migrations/create_product_properties.rb +0 -18
- data/lib/generators/coalla/cms/market/templates/migrations/create_products.rb +0 -18
- data/lib/generators/coalla/cms/market/templates/migrations/create_properties.rb +0 -11
- data/lib/generators/coalla/cms/market/templates/models/category.rb +0 -36
- data/lib/generators/coalla/cms/market/templates/models/product.rb +0 -16
- data/lib/generators/coalla/cms/market/templates/models/product_property.rb +0 -14
- data/lib/generators/coalla/cms/market/templates/models/property.rb +0 -7
- data/lib/generators/coalla/cms/market/templates/views/categories/_form.html.haml +0 -10
- data/lib/generators/coalla/cms/market/templates/views/categories/edit.html.haml +0 -5
- data/lib/generators/coalla/cms/market/templates/views/categories/index.html.haml +0 -17
- data/lib/generators/coalla/cms/market/templates/views/categories/new.html.haml +0 -4
- data/lib/generators/coalla/cms/market/templates/views/products/_form.html.haml +0 -17
- data/lib/generators/coalla/cms/market/templates/views/products/_product_property_fields.html.haml +0 -13
- data/lib/generators/coalla/cms/market/templates/views/products/edit.html.haml +0 -5
- data/lib/generators/coalla/cms/market/templates/views/products/index.html.haml +0 -17
- data/lib/generators/coalla/cms/market/templates/views/products/new.html.haml +0 -4
- data/lib/generators/coalla/cms/market/templates/views/properties/_form.html.haml +0 -9
- data/lib/generators/coalla/cms/market/templates/views/properties/edit.html.haml +0 -5
- data/lib/generators/coalla/cms/market/templates/views/properties/index.html.haml +0 -15
- data/lib/generators/coalla/cms/market/templates/views/properties/new.html.haml +0 -4
- data/lib/generators/coalla/cms/news/scaffold_generator.rb +0 -50
- data/lib/generators/coalla/cms/news/templates/entity.rb.erb +0 -10
- data/lib/generators/coalla/cms/news/templates/entity_controller_template.rb.erb +0 -47
- data/lib/generators/coalla/cms/news/templates/entity_image_uploader.rb.erb +0 -7
- data/lib/generators/coalla/cms/news/templates/migration.rb.erb +0 -15
- data/lib/generators/coalla/cms/news/templates/views/_form.haml.erb +0 -16
- data/lib/generators/coalla/cms/news/templates/views/edit.haml.erb +0 -5
- data/lib/generators/coalla/cms/news/templates/views/index.haml.erb +0 -18
- data/lib/generators/coalla/cms/news/templates/views/new.haml.erb +0 -5
- data/lib/generators/coalla/cms/orm_helpers.rb +0 -31
- data/lib/generators/coalla/cms/scaffold_helper.rb +0 -11
- data/lib/generators/coalla/cms/templates/controllers/admin/base_controller.rb.erb +0 -35
- /data/{lib/generators/coalla/cms/templates/controllers/admin/home_controller.rb.erb → app/controllers/admin/home_controller.rb} +0 -0
@@ -1,7 +1,5 @@
|
|
1
1
|
module Coalla
|
2
|
-
|
3
2
|
module PageSlider
|
4
|
-
|
5
3
|
def slider(collection_name, options = {})
|
6
4
|
class_name = options.delete(:class_name) || 'SliderImage'
|
7
5
|
slider_type = slider_type(collection_name)
|
@@ -10,6 +8,7 @@ module Coalla
|
|
10
8
|
define_method "sorted_#{collection_name}" do
|
11
9
|
send(collection_name).sort_by(&:position)
|
12
10
|
end
|
11
|
+
sortable_association(collection_name.to_sym)
|
13
12
|
end
|
14
13
|
|
15
14
|
def slider_type(collection_name)
|
@@ -24,32 +23,7 @@ module Coalla
|
|
24
23
|
@@slider_metadata << slider_type
|
25
24
|
slider_type
|
26
25
|
end
|
27
|
-
|
28
|
-
def self.extended(klass)
|
29
|
-
klass.class_eval <<-EOV
|
30
|
-
include ::Coalla::PageSlider::InstanceMethods
|
31
|
-
EOV
|
32
|
-
end
|
33
|
-
|
34
|
-
module InstanceMethods
|
35
|
-
|
36
|
-
def assign_nested_attributes_for_collection_association(association_name, attributes_collection)
|
37
|
-
association_class = self.class.reflect_on_association(association_name).klass
|
38
|
-
if association_class.attribute_names.include?('position')
|
39
|
-
attributes_collection.each_with_index do |(key, value), index|
|
40
|
-
if value.is_a?(Hash)
|
41
|
-
value[:position] = index
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
super
|
46
|
-
end
|
47
|
-
|
48
|
-
end
|
49
26
|
end
|
50
|
-
|
51
27
|
end
|
52
28
|
|
53
|
-
|
54
|
-
ActiveRecord::Base.extend Coalla::PageSlider
|
55
|
-
end
|
29
|
+
ActiveRecord::Base.extend(Coalla::PageSlider)
|
data/lib/coalla/orm/sanitized.rb
CHANGED
@@ -1,16 +1,12 @@
|
|
1
1
|
module Coalla
|
2
|
-
|
3
2
|
module Sanitized
|
4
|
-
|
5
3
|
def sanitize_html(attribute, config = Sanitize::Config::DEFAULT)
|
6
4
|
before_save do
|
7
5
|
sanitize_attr = Sanitize.fragment(send(attribute), config)
|
8
6
|
send("#{attribute}=", sanitize_attr)
|
9
7
|
end
|
10
8
|
end
|
11
|
-
|
12
9
|
end
|
13
|
-
|
14
10
|
end
|
15
11
|
|
16
|
-
ActiveRecord::Base.extend
|
12
|
+
ActiveRecord::Base.extend(Coalla::Sanitized)
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Coalla
|
2
|
+
module SortableAssociation
|
3
|
+
def sortable_association(*args)
|
4
|
+
unless respond_to?(:sortable_associations)
|
5
|
+
class_attribute :sortable_associations, instance_writer: false
|
6
|
+
self.sortable_associations = []
|
7
|
+
end
|
8
|
+
|
9
|
+
self.sortable_associations += args
|
10
|
+
|
11
|
+
class_eval do
|
12
|
+
def assign_nested_attributes_for_collection_association(association_name, attributes_collection)
|
13
|
+
association_class = self.class.reflect_on_association(association_name).klass
|
14
|
+
if sortable_associations.include?(association_name) && association_class.attribute_names.include?('position')
|
15
|
+
attributes_collection.each_with_index do |(key, value), index|
|
16
|
+
if key.is_a?(Hash)
|
17
|
+
key[:position] = index
|
18
|
+
elsif value.is_a?(Hash)
|
19
|
+
value[:position] = index
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
super
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
ActiveRecord::Base.extend(Coalla::SortableAssociation)
|
@@ -0,0 +1,62 @@
|
|
1
|
+
#encoding: utf-8
|
2
|
+
require 'shellwords'
|
3
|
+
|
4
|
+
module Coalla
|
5
|
+
class ImageUploader < CarrierWave::Uploader::Base
|
6
|
+
include CarrierWave::RMagick
|
7
|
+
|
8
|
+
storage :file
|
9
|
+
|
10
|
+
def store_dir
|
11
|
+
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
|
12
|
+
end
|
13
|
+
|
14
|
+
# You can call this method in your model
|
15
|
+
# For example
|
16
|
+
# before_save if: :image_changed? do
|
17
|
+
# image.set_image_properties
|
18
|
+
# end
|
19
|
+
def set_image_properties
|
20
|
+
return if !model || !file
|
21
|
+
|
22
|
+
model.send(setter(:file_name), file.filename) if model.respond_to?(setter(:file_name))
|
23
|
+
model.send(setter(:size), file.size) if model.respond_to?(setter(:size))
|
24
|
+
model.send(setter(:content_type), file.content_type) if model.respond_to?(setter(:content_type))
|
25
|
+
if model.respond_to?(setter(:width)) && model.respond_to?(setter(:height))
|
26
|
+
w, h = `identify -format "%wx %h" #{file.path.shellescape}`.split(/x/).map { |dim| dim.to_i }
|
27
|
+
model.send(setter(:width), w)
|
28
|
+
model.send(setter(:height), h)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
# You can call this method with process in your uploader
|
33
|
+
def watermark
|
34
|
+
return if !model || !model.respond_to?(getter(:watermarked?)) || !model.send(getter(:watermarked?))
|
35
|
+
|
36
|
+
manipulate! do |img|
|
37
|
+
logo = Magick::Image.read(Rails.root.join('app/assets/images/watermark.png')).first
|
38
|
+
img.composite(logo, Magick::SouthEastGravity, 0, 0, Magick::OverCompositeOp)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
def setter(name)
|
45
|
+
opt = model.class.uploader_options[mounted_as] || {}
|
46
|
+
if opt[:prefixed]
|
47
|
+
"#{mounted_as}_#{name}="
|
48
|
+
else
|
49
|
+
"#{name}="
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def getter(name)
|
54
|
+
opt = model.class.uploader_options[mounted_as] || {}
|
55
|
+
if opt[:prefixed]
|
56
|
+
"#{mounted_as}_#{name}"
|
57
|
+
else
|
58
|
+
"#{name}"
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
data/lib/coalla-cms.rb
CHANGED
@@ -15,3 +15,13 @@ require 'will_paginate'
|
|
15
15
|
require 'coalla/cms/engine'
|
16
16
|
require 'coalla/cms/version'
|
17
17
|
require 'coalla/ext/mapper'
|
18
|
+
|
19
|
+
require 'coalla/uploaders/file_uploader'
|
20
|
+
require 'coalla/uploaders/image_uploader'
|
21
|
+
require 'coalla/uploaders/meta_image_uploader'
|
22
|
+
|
23
|
+
require 'coalla/builders/policy'
|
24
|
+
require 'coalla/builders/form_builder'
|
25
|
+
require 'coalla/builders/table_builder'
|
26
|
+
require 'coalla/builders/link_renderer'
|
27
|
+
require 'coalla/builders/admin_structure'
|
@@ -1,11 +1,10 @@
|
|
1
|
-
require 'rails/generators/
|
1
|
+
require 'rails/generators/named_base'
|
2
2
|
|
3
3
|
module Coalla
|
4
4
|
module Cms
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
source_root File.expand_path("../templates", __FILE__)
|
5
|
+
class CreateAdminAdministratorsGenerator < Rails::Generators::NamedBase
|
6
|
+
argument :name, type: :string, default: ''
|
7
|
+
source_root File.expand_path('../templates', __FILE__)
|
9
8
|
|
10
9
|
def setup_directory
|
11
10
|
copy_file 'controllers/admin/administrators_controller.rb', 'app/controllers/admin/administrators_controller.rb'
|
@@ -16,12 +15,11 @@ module Coalla
|
|
16
15
|
def setup_routes
|
17
16
|
sentinel = /namespace :admin do\s*$/
|
18
17
|
|
19
|
-
routing_code =
|
18
|
+
routing_code = ' resources :administrators'
|
20
19
|
in_root do
|
21
20
|
inject_into_file 'config/routes.rb', "\n #{routing_code}", {after: sentinel}
|
22
21
|
end
|
23
22
|
end
|
24
|
-
|
25
23
|
end
|
26
24
|
end
|
27
25
|
end
|
@@ -1,25 +1,27 @@
|
|
1
|
+
require 'rails'
|
1
2
|
require 'rails/generators/active_record'
|
2
|
-
require 'generators/coalla/cms/
|
3
|
+
require 'generators/coalla/cms/utils/orm'
|
3
4
|
|
4
5
|
module Coalla
|
5
6
|
module Cms
|
6
7
|
class CreateAdminGenerator < ActiveRecord::Generators::Base
|
7
|
-
|
8
|
+
include Coalla::Cms::Utils::Orm
|
8
9
|
|
9
|
-
|
10
|
-
|
10
|
+
argument :name, :type => :string, :default => 'Administrator'
|
11
|
+
|
12
|
+
source_root File.expand_path('../templates', __FILE__)
|
11
13
|
|
12
14
|
def copy_devise_migration
|
13
15
|
if (behavior == :invoke && model_exists?) || (behavior == :revoke && migration_exists?(table_name))
|
14
|
-
migration_template
|
16
|
+
migration_template 'migration_existing.rb', "db/migrate/add_admin_role_to_#{table_name}.rb"
|
15
17
|
else
|
16
|
-
migration_template
|
18
|
+
migration_template 'migration.rb', "db/migrate/create_#{table_name}_model.rb"
|
17
19
|
end
|
18
20
|
end
|
19
21
|
|
20
22
|
def generate_model
|
21
23
|
unless model_exists? && behavior == :invoke
|
22
|
-
invoke
|
24
|
+
invoke 'active_record:model', [name],
|
23
25
|
migration: false,
|
24
26
|
fixture: false,
|
25
27
|
test_framework: false
|
@@ -1,18 +1,16 @@
|
|
1
|
-
require 'rails/generators/
|
1
|
+
require 'rails/generators/named_base'
|
2
2
|
|
3
3
|
module Coalla
|
4
4
|
module Cms
|
5
5
|
|
6
|
-
class CreateAdminLoginViewGenerator <
|
7
|
-
argument :name, type: :string, default:
|
8
|
-
source_root File.expand_path(
|
6
|
+
class CreateAdminLoginViewGenerator < Rails::Generators::NamedBase
|
7
|
+
argument :name, type: :string, default: ''
|
8
|
+
source_root File.expand_path('../templates', __FILE__)
|
9
9
|
|
10
10
|
def setup_directory
|
11
11
|
empty_directory 'app/views/administrators/sessions'
|
12
12
|
empty_directory 'app/controllers/admin'
|
13
13
|
|
14
|
-
template 'controllers/admin/base_controller.rb.erb', 'app/controllers/admin/base_controller.rb'
|
15
|
-
template 'controllers/admin/home_controller.rb.erb', 'app/controllers/admin/home_controller.rb'
|
16
14
|
template 'views/administrators/sessions/new.html.haml', 'app/views/administrators/sessions/new.html.haml'
|
17
15
|
end
|
18
16
|
|
@@ -1,9 +1,9 @@
|
|
1
|
-
require 'rails/generators/
|
1
|
+
require 'rails/generators/named_base'
|
2
2
|
|
3
3
|
module Coalla
|
4
4
|
module Cms
|
5
5
|
|
6
|
-
class CreateMarkupGenerator <
|
6
|
+
class CreateMarkupGenerator < Rails::Generators::NamedBase
|
7
7
|
argument :name, type: :string, default: ""
|
8
8
|
source_root File.expand_path('../templates', __FILE__)
|
9
9
|
|
@@ -4,7 +4,6 @@ require 'rails/generators/active_record'
|
|
4
4
|
module Coalla
|
5
5
|
module Cms
|
6
6
|
module FileUploads
|
7
|
-
|
8
7
|
class InstallGenerator < ActiveRecord::Generators::Base
|
9
8
|
argument :name, type: :string, default: ""
|
10
9
|
source_root File.expand_path("../templates", __FILE__)
|
@@ -12,24 +11,8 @@ module Coalla
|
|
12
11
|
|
13
12
|
def copy_files
|
14
13
|
migration_template "migration.rb", "db/migrate/create_file_upload.rb"
|
15
|
-
|
16
|
-
#if options.copy?
|
17
|
-
# [ 'app/views/admin/lookups/_form.html.haml',
|
18
|
-
# 'app/views/admin/lookups/edit.html.haml',
|
19
|
-
# 'app/views/admin/lookups/index.html.haml',
|
20
|
-
# 'app/views/admin/lookups/new.html.haml',
|
21
|
-
# 'app/views/admin/lookups/show.html.haml',
|
22
|
-
# 'app/controllers/admin/lookups_controller.rb',
|
23
|
-
# 'app/models/lookup.rb',
|
24
|
-
# 'app/helpers/lookup_helper.rb'
|
25
|
-
# ].each do |path|
|
26
|
-
# copy_file path, path
|
27
|
-
# end
|
28
|
-
#end
|
29
14
|
end
|
30
|
-
|
31
15
|
end
|
32
|
-
|
33
16
|
end
|
34
17
|
end
|
35
18
|
end
|
@@ -4,11 +4,10 @@ require 'rails/generators/active_record'
|
|
4
4
|
module Coalla
|
5
5
|
module Cms
|
6
6
|
module FileUploads
|
7
|
-
|
8
7
|
class MountGenerator < ActiveRecord::Generators::Base
|
9
8
|
argument :name, type: :string
|
10
9
|
argument :field_name, type: :string
|
11
|
-
source_root File.expand_path(
|
10
|
+
source_root File.expand_path('../templates', __FILE__)
|
12
11
|
|
13
12
|
def setup_names
|
14
13
|
@model_name = name.camelize
|
@@ -21,14 +20,12 @@ module Coalla
|
|
21
20
|
|
22
21
|
def mount_uploader
|
23
22
|
inject_into_class "app/models/#{@model_name.underscore}.rb", @model_name.constantize do
|
24
|
-
"
|
25
|
-
mount_uploader :#{@field_name}, FileUploader
|
26
|
-
"
|
23
|
+
"
|
24
|
+
mount_uploader :#{@field_name}, Coalla::FileUploader
|
25
|
+
"
|
27
26
|
end
|
28
27
|
end
|
29
|
-
|
30
28
|
end
|
31
|
-
|
32
29
|
end
|
33
30
|
end
|
34
31
|
end
|
@@ -4,7 +4,6 @@ require 'rails/generators/active_record'
|
|
4
4
|
module Coalla
|
5
5
|
module Cms
|
6
6
|
module Image
|
7
|
-
|
8
7
|
class InstallGenerator < ActiveRecord::Generators::Base
|
9
8
|
argument :name, type: :string, default: ""
|
10
9
|
source_root File.expand_path("../templates", __FILE__)
|
@@ -31,9 +30,7 @@ module Coalla
|
|
31
30
|
template "model.rb.erb", "app/models/#{name.underscore}.rb"
|
32
31
|
template "uploader.rb.erb", "app/uploaders/#{name.underscore}_uploader.rb"
|
33
32
|
end
|
34
|
-
|
35
33
|
end
|
36
|
-
|
37
34
|
end
|
38
35
|
end
|
39
36
|
end
|
@@ -4,7 +4,6 @@ require 'rails/generators/active_record'
|
|
4
4
|
module Coalla
|
5
5
|
module Cms
|
6
6
|
module Image
|
7
|
-
|
8
7
|
class MountGenerator < ActiveRecord::Generators::Base
|
9
8
|
argument :name, type: :string
|
10
9
|
argument :field, type: :string
|
@@ -42,9 +41,7 @@ module Coalla
|
|
42
41
|
" mount_uploader :#{@image_field}, #{@class_name}#{@image_field.camelize}Uploader#{@prefixed? ", prefixed: true" : ""}\n"
|
43
42
|
end
|
44
43
|
end
|
45
|
-
|
46
44
|
end
|
47
|
-
|
48
45
|
end
|
49
46
|
end
|
50
47
|
end
|
@@ -1,52 +1,18 @@
|
|
1
|
-
require 'rails/generators/
|
1
|
+
require 'rails/generators/named_base'
|
2
2
|
require 'securerandom'
|
3
3
|
|
4
4
|
module Coalla
|
5
5
|
module Cms
|
6
6
|
|
7
|
-
class InitGenerator <
|
7
|
+
class InitGenerator < Rails::Generators::NamedBase
|
8
8
|
argument :name, type: :string
|
9
|
-
source_root File.expand_path(
|
9
|
+
source_root File.expand_path('../templates', __FILE__)
|
10
10
|
|
11
11
|
def setup_names
|
12
12
|
@name = name.underscore
|
13
13
|
end
|
14
14
|
|
15
|
-
def
|
16
|
-
#add_source 'http://gems.coalla.ru'
|
17
|
-
|
18
|
-
gem 'pg', '0.18.1'
|
19
|
-
gem 'russian', '0.6.0'
|
20
|
-
gem 'acts_as_list', '0.6.0'
|
21
|
-
gem 'remotipart', '1.2.1'
|
22
|
-
gem 'rmagick', '2.15.4', require: false
|
23
|
-
gem 'cancancan', '1.13.1'
|
24
|
-
gem 'active_attr', '0.8.5'
|
25
|
-
gem 'sitemap_generator', '5.0.5'
|
26
|
-
gem 'whenever', '0.9.4'
|
27
|
-
gem 'holder_rails', '2.6.0'
|
28
|
-
gem 'tzinfo-data', '~> 1.2015.7'
|
29
|
-
gem 'jbuilder', '2.2.13'
|
30
|
-
gem 'uglifier', '2.7.1'
|
31
|
-
gem 'sprockets', '3.5.2'
|
32
|
-
gem 'meta-tags', '2.1.0'
|
33
|
-
|
34
|
-
gem_group :development do
|
35
|
-
gem 'ruby-prof', '0.15.9'
|
36
|
-
gem 'thin', '1.6.4'
|
37
|
-
gem 'eventmachine', '1.0.8'
|
38
|
-
gem 'haml-rails', '0.9.0'
|
39
|
-
gem 'letter_opener', '1.4.1'
|
40
|
-
gem 'quiet_assets', '1.1.0'
|
41
|
-
gem 'byebug', '8.2.1'
|
42
|
-
gem 'web-console', '2.2.1'
|
43
|
-
gem 'spring', '1.6.2'
|
44
|
-
end
|
45
|
-
|
46
|
-
gem_group :production, :staging do
|
47
|
-
gem 'exception_notification', '4.1.4'
|
48
|
-
end
|
49
|
-
|
15
|
+
def setup_common_parts
|
50
16
|
copy_file 'locales/activerecord.ru.yml', 'config/locales/activerecord.ru.yml'
|
51
17
|
copy_file 'locales/activerecord.en.yml', 'config/locales/activerecord.en.yml'
|
52
18
|
copy_file 'initializers/carrierwave.rb', 'config/initializers/carrierwave.rb'
|
@@ -73,20 +39,14 @@ module Coalla
|
|
73
39
|
|
74
40
|
remove_file 'config/database.yml'
|
75
41
|
template 'database.yml.erb', 'config/database.yml'
|
76
|
-
|
77
|
-
inside ::Rails.root do
|
78
|
-
run "bundle update"
|
79
|
-
end
|
80
|
-
|
81
|
-
rake "db:create"
|
82
42
|
end
|
83
43
|
|
84
44
|
def setup_devise
|
85
|
-
generate
|
86
|
-
gsub_file 'config/initializers/devise.rb',
|
87
|
-
gsub_file 'config/initializers/devise.rb',
|
88
|
-
gsub_file 'config/initializers/devise.rb',
|
89
|
-
gsub_file 'config/initializers/devise.rb',
|
45
|
+
generate 'devise:install'
|
46
|
+
gsub_file 'config/initializers/devise.rb', 'please-change-me-at-config-initializers-devise@example.com', "no-reply@#{name}.ru"
|
47
|
+
gsub_file 'config/initializers/devise.rb', '# config.password_length = 6..128', 'config.password_length = 4..128'
|
48
|
+
gsub_file 'config/initializers/devise.rb', '# config.scoped_views = false', 'config.scoped_views = true'
|
49
|
+
gsub_file 'config/initializers/devise.rb', '# config.sign_out_all_scopes = true', 'config.sign_out_all_scopes = false'
|
90
50
|
remove_file 'config/locales/devise.ru.yml'
|
91
51
|
copy_file 'locales/devise.ru.yml', 'config/locales/devise.ru.yml'
|
92
52
|
end
|
@@ -123,6 +83,39 @@ module Coalla
|
|
123
83
|
template 'assets.rb', 'config/initializers/assets.rb'
|
124
84
|
end
|
125
85
|
|
86
|
+
def include_common_gems
|
87
|
+
add_source 'http://gems.coalla.ru'
|
88
|
+
|
89
|
+
gem 'russian'
|
90
|
+
gem 'acts_as_list'
|
91
|
+
gem 'enumerize'
|
92
|
+
gem 'remotipart'
|
93
|
+
gem 'rmagick', require: false
|
94
|
+
gem 'cancancan'
|
95
|
+
gem 'sitemap_generator'
|
96
|
+
gem 'whenever'
|
97
|
+
gem 'tzinfo-data'
|
98
|
+
gem 'uglifier'
|
99
|
+
gem 'sprockets'
|
100
|
+
gem 'meta-tags'
|
101
|
+
|
102
|
+
gem_group :development do
|
103
|
+
gem 'ruby-prof'
|
104
|
+
gem 'thin'
|
105
|
+
gem 'haml-rails'
|
106
|
+
gem 'letter_opener'
|
107
|
+
gem 'byebug'
|
108
|
+
gem 'web-console'
|
109
|
+
gem 'spring'
|
110
|
+
gem 'awesome_print', require: 'ap'
|
111
|
+
gem 'annotate'
|
112
|
+
end
|
113
|
+
|
114
|
+
gem_group :production, :staging do
|
115
|
+
gem 'exception_notification'
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
126
119
|
private
|
127
120
|
|
128
121
|
def generate_password(ln=15)
|
@@ -4,7 +4,6 @@ require 'rails/generators/active_record'
|
|
4
4
|
module Coalla
|
5
5
|
module Cms
|
6
6
|
module Lookups
|
7
|
-
|
8
7
|
class InstallGenerator < ActiveRecord::Generators::Base
|
9
8
|
argument :name, type: :string, default: ''
|
10
9
|
source_root File.expand_path('../../../../../../', __FILE__)
|
@@ -46,9 +45,7 @@ module Coalla
|
|
46
45
|
def add_section
|
47
46
|
append_to_file 'config/structure.rb', "\nlookup_section"
|
48
47
|
end
|
49
|
-
|
50
48
|
end
|
51
|
-
|
52
49
|
end
|
53
50
|
end
|
54
51
|
end
|
@@ -4,7 +4,6 @@ require 'rails/generators/active_record'
|
|
4
4
|
module Coalla
|
5
5
|
module Cms
|
6
6
|
module MetaTags
|
7
|
-
|
8
7
|
class InstallGenerator < ActiveRecord::Generators::Base
|
9
8
|
argument :name, type: :string, default: ''
|
10
9
|
source_root File.expand_path('../../../../../../', __FILE__)
|
@@ -51,7 +50,6 @@ module Coalla
|
|
51
50
|
def add_section
|
52
51
|
append_to_file 'config/structure.rb', "\nmeta_tags_section"
|
53
52
|
end
|
54
|
-
|
55
53
|
end
|
56
54
|
end
|
57
55
|
end
|
@@ -1,15 +1,15 @@
|
|
1
1
|
require 'rails'
|
2
|
-
require 'rails/generators/
|
3
|
-
require 'generators/coalla/cms/
|
2
|
+
require 'rails/generators/named_base'
|
3
|
+
require 'generators/coalla/cms/utils/scaffold'
|
4
4
|
|
5
5
|
module Coalla
|
6
6
|
module Cms
|
7
|
-
class ScaffoldGenerator <
|
8
|
-
|
7
|
+
class ScaffoldGenerator < Rails::Generators::NamedBase
|
8
|
+
include Coalla::Cms::Utils::Scaffold
|
9
9
|
|
10
|
-
|
10
|
+
argument :name, type: :string
|
11
11
|
|
12
|
-
|
12
|
+
source_root File.expand_path('../templates', __FILE__)
|
13
13
|
|
14
14
|
def setup_names
|
15
15
|
@instance_name = name.underscore
|
@@ -30,7 +30,7 @@ module Coalla
|
|
30
30
|
end
|
31
31
|
|
32
32
|
def create_views
|
33
|
-
dir =
|
33
|
+
dir = 'views/admin/'
|
34
34
|
empty_directory "app/#{dir}/#{@collection_name}"
|
35
35
|
|
36
36
|
templates = %w{_form edit index new}
|
@@ -1,16 +1,16 @@
|
|
1
|
-
require 'rails/generators/
|
1
|
+
require 'rails/generators/named_base'
|
2
2
|
|
3
3
|
module Coalla
|
4
4
|
module Cms
|
5
5
|
|
6
|
-
class SetupAdminGenerator <
|
7
|
-
argument :name, :type => :string, :default =>
|
8
|
-
source_root File.expand_path(
|
6
|
+
class SetupAdminGenerator < Rails::Generators::NamedBase
|
7
|
+
argument :name, :type => :string, :default => ''
|
8
|
+
source_root File.expand_path('../templates', __FILE__)
|
9
9
|
|
10
10
|
def setup_directory
|
11
|
-
invoke
|
12
|
-
invoke
|
13
|
-
invoke
|
11
|
+
invoke 'coalla:cms:create_admin'
|
12
|
+
invoke 'coalla:cms:setup_routes'
|
13
|
+
invoke 'coalla:cms:create_admin_login_view'
|
14
14
|
end
|
15
15
|
|
16
16
|
def copy_structure
|
@@ -23,7 +23,7 @@ module Coalla
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def setup_default_views
|
26
|
-
invoke
|
26
|
+
invoke 'coalla:cms:create_admin_administrators'
|
27
27
|
end
|
28
28
|
|
29
29
|
def patch_application_controller
|
@@ -40,7 +40,7 @@ module Coalla
|
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
43
|
-
def after_sign_in_path_for
|
43
|
+
def after_sign_in_path_for(resource)
|
44
44
|
case resource
|
45
45
|
when Administrator
|
46
46
|
admin_dashboard_path
|
@@ -1,10 +1,10 @@
|
|
1
|
-
require 'rails/generators/
|
1
|
+
require 'rails/generators/named_base'
|
2
2
|
#require 'generators/coalla/cms/orm_helpers'
|
3
3
|
|
4
4
|
module Coalla
|
5
5
|
module Cms
|
6
|
-
class SetupRoutesGenerator <
|
7
|
-
argument :name, :type => :string, :default =>
|
6
|
+
class SetupRoutesGenerator < Rails::Generators::NamedBase
|
7
|
+
argument :name, :type => :string, :default => 'administrator'
|
8
8
|
|
9
9
|
def create_route
|
10
10
|
route "devise_for :#{name.pluralize}
|