hancock_cms_gallery 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/.ruby-gemset +1 -0
  4. data/.ruby-version +1 -0
  5. data/.travis.yml +4 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +54 -0
  9. data/Rakefile +1 -0
  10. data/app/assets/javascripts/hancock/gallery/init.coffee +2 -0
  11. data/app/assets/javascripts/hancock/gallery/loaders/gallery_images_loader.coffee +29 -0
  12. data/app/assets/javascripts/hancock/gallery/loaders/gallery_loader.coffee +29 -0
  13. data/app/assets/javascripts/hancock/gallery/page_selector.coffee +65 -0
  14. data/app/assets/javascripts/hancock/gallery.coffee +11 -0
  15. data/app/controllers/concerns/hancock/gallery/load_gallery.rb +74 -0
  16. data/app/controllers/concerns/hancock/gallery/load_gallery_images.rb +58 -0
  17. data/app/controllers/concerns/rails_admin/jcrop_controller.rb +138 -0
  18. data/app/models/concerns/hancock/gallery/active_record_paperclip.rb +95 -0
  19. data/app/models/concerns/hancock/gallery/auto_crop.rb +86 -0
  20. data/app/models/concerns/hancock/gallery/decorators/embedded_image.rb +47 -0
  21. data/app/models/concerns/hancock/gallery/decorators/gallery.rb +47 -0
  22. data/app/models/concerns/hancock/gallery/decorators/image.rb +52 -0
  23. data/app/models/concerns/hancock/gallery/decorators/original_image.rb +35 -0
  24. data/app/models/concerns/hancock/gallery/gallerable.rb +13 -0
  25. data/app/models/concerns/hancock/gallery/mongoid_paperclip.rb +96 -0
  26. data/app/models/concerns/hancock/gallery/paperclipable.rb +19 -0
  27. data/app/models/concerns/hancock/gallery/watermarkable.rb +117 -0
  28. data/app/models/hancock/gallery/embedded_image.rb +17 -0
  29. data/app/models/hancock/gallery/gallery.rb +16 -0
  30. data/app/models/hancock/gallery/image.rb +16 -0
  31. data/app/models/hancock/gallery/original_image.rb +15 -0
  32. data/app/views/rails_admin/jcrop/edit.html.slim +18 -0
  33. data/bin/console +14 -0
  34. data/bin/setup +7 -0
  35. data/config/initializers/hancock_gallery.rb +29 -0
  36. data/config/initializers/paperclip_fix.rb +4 -0
  37. data/config/locales/hancock.gallery.ru.yml +17 -0
  38. data/hancock_cms_gallery.gemspec +37 -0
  39. data/lib/generators/hancock/gallery/config/install_generator.rb +13 -0
  40. data/lib/generators/hancock/gallery/config/templates/hancock_gallery.erb +9 -0
  41. data/lib/generators/hancock/gallery/migrations/migration_generator.rb +18 -0
  42. data/lib/generators/hancock/gallery/migrations/templates/migration_gallery.rb +51 -0
  43. data/lib/generators/hancock/gallery/models/decorators_generator.rb +21 -0
  44. data/lib/generators/hancock/gallery/models/embedded_image_generator.rb +52 -0
  45. data/lib/generators/hancock/gallery/models/gallery_generator.rb +55 -0
  46. data/lib/generators/hancock/gallery/models/image_generator.rb +51 -0
  47. data/lib/generators/hancock/gallery/models/templates/embedded_image.erb +52 -0
  48. data/lib/generators/hancock/gallery/models/templates/gallery.erb +48 -0
  49. data/lib/generators/hancock/gallery/models/templates/image.erb +50 -0
  50. data/lib/generators/hancock/gallery/models/templates/original_image.erb +34 -0
  51. data/lib/hancock/gallery/admin/embedded_image.rb +41 -0
  52. data/lib/hancock/gallery/admin/gallery.rb +52 -0
  53. data/lib/hancock/gallery/admin/image.rb +45 -0
  54. data/lib/hancock/gallery/admin/original_image.rb +33 -0
  55. data/lib/hancock/gallery/admin.rb +26 -0
  56. data/lib/hancock/gallery/configuration.rb +26 -0
  57. data/lib/hancock/gallery/engine.rb +5 -0
  58. data/lib/hancock/gallery/models/active_record/gallery.rb +19 -0
  59. data/lib/hancock/gallery/models/active_record/image.rb +21 -0
  60. data/lib/hancock/gallery/models/embedded_image.rb +28 -0
  61. data/lib/hancock/gallery/models/gallery.rb +62 -0
  62. data/lib/hancock/gallery/models/image.rb +57 -0
  63. data/lib/hancock/gallery/models/mongoid/embedded_image.rb +12 -0
  64. data/lib/hancock/gallery/models/mongoid/gallery.rb +16 -0
  65. data/lib/hancock/gallery/models/mongoid/image.rb +15 -0
  66. data/lib/hancock/gallery/models/mongoid/original_image.rb +14 -0
  67. data/lib/hancock/gallery/models/original_image.rb +30 -0
  68. data/lib/hancock/gallery/rails_admin_ext/hancock_image.rb +32 -0
  69. data/lib/hancock/gallery/version.rb +5 -0
  70. data/lib/hancock_cms_gallery.rb +66 -0
  71. data/release.sh +6 -0
  72. metadata +176 -0
@@ -0,0 +1,37 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'hancock/gallery/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "hancock_cms_gallery"
8
+ spec.version = Hancock::Gallery::VERSION
9
+ spec.authors = ["Alexander Kiseliev"]
10
+ spec.email = ["dev@redrocks.pro"]
11
+
12
+ spec.description = %q{hancock_cms_gallery}
13
+ spec.summary = %q{hancock_cms_gallery}
14
+ spec.homepage = 'https://github.com/red-rocks/hancock_cms_gallery'
15
+ spec.license = "MIT"
16
+
17
+ # Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
18
+ # delete this section to allow pushing this gem to any host.
19
+ # if spec.respond_to?(:metadata)
20
+ # spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com'"
21
+ # else
22
+ # raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
23
+ # end
24
+
25
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
26
+ spec.bindir = "exe"
27
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
+ spec.require_paths = ["lib"]
29
+
30
+ spec.add_development_dependency "bundler", "~> 1.10"
31
+ spec.add_development_dependency "rake", "~> 10.0"
32
+
33
+ spec.add_dependency 'hancock_cms', [">=1.0", "<=2.0"]
34
+ # spec.add_dependency 'hancock_cms', ["~> 1.0", "~> 2.0"]
35
+
36
+ spec.add_dependency 'ack_rails_admin_jcrop', '~> 0.2.0'
37
+ end
@@ -0,0 +1,13 @@
1
+ require 'rails/generators'
2
+
3
+ module Hancock::Gallery
4
+ class ConfigGenerator < Rails::Generators::Base
5
+ source_root File.expand_path('../templates', __FILE__)
6
+
7
+ desc 'Hancock::Gallery Config generator'
8
+ def config
9
+ template 'hancock_gallery.erb', "config/initializers/hancock_gallery.rb"
10
+ end
11
+
12
+ end
13
+ end
@@ -0,0 +1,9 @@
1
+ Hancock::Gallery.configure do |config|
2
+ ##### defaults #####
3
+ # config.localize = Hancock.config.localize
4
+ #
5
+ # config.model_settings_support = defined?(RailsAdminModelSettings)
6
+ # config.user_abilities_support = defined?(RailsAdminUserAbilities)
7
+ # config.ra_comments_support = defined?(RailsAdminComments)
8
+ # config.watermark_support = defined?(PaperclipWatermark)
9
+ end
@@ -0,0 +1,18 @@
1
+ require 'rails/generators'
2
+ require 'rails/generators/active_record'
3
+
4
+ module Hancock::Gallery
5
+ class MigrationGenerator < Rails::Generators::Base
6
+ include ActiveRecord::Generators::Migration
7
+ source_root File.expand_path('../templates', __FILE__)
8
+
9
+ desc 'Hancock Gallery migration generator'
10
+ def migration
11
+ if Hancock.active_record?
12
+ %w(gallery).each do |table_name|
13
+ migration_template "migration_#{table_name}.rb", "db/migrate/hancock_gallery_create_#{table_name}.rb"
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,51 @@
1
+ class HancockGalleryCreateGallery < ActiveRecord::Migration
2
+ def change
3
+ ########### c #################
4
+ create_table :hancock_gallery_gallery_images do |t|
5
+ t.integer :gallery_id
6
+ t.integer :hancock_gallery_imagable_id
7
+ t.string :hancock_gallery_imagable_type
8
+
9
+ t.boolean :enabled, default: true, null: false
10
+
11
+ if Hancock::Gallery.config.localize
12
+ t.column :name_translations, 'hstore', default: {}
13
+ else
14
+ t.string :name, null: false
15
+ end
16
+
17
+ t.attachment :image
18
+ t.timestamps
19
+ end
20
+
21
+ add_index :hancock_gallery_gallery_images, [:enabled]
22
+ add_index :hancock_gallery_gallery_images, [:gallery_id]
23
+ add_index :hancock_gallery_gallery_images, [:hancock_gallery_imagable_id, :hancock_gallery_imagable_type]
24
+
25
+
26
+
27
+ ########### Galleries #################
28
+ create_table :hancock_gallery_gallery do |t|
29
+ t.boolean :enabled, default: true, null: false
30
+
31
+ if Hancock::Gallery.config.localize
32
+ t.column :name_translations, 'hstore', default: {}
33
+ else
34
+ t.string :name, null: false
35
+ end
36
+
37
+ t.integer :parent_id
38
+ t.integer :lft
39
+ t.integer :rgt
40
+ t.integer :depth
41
+
42
+ t.string :slug, null: false
43
+ t.attachment :image
44
+ t.timestamps
45
+ end
46
+
47
+ add_index :hancock_gallery_galleries, :slug, unique: true
48
+ add_index :hancock_gallery_galleries, [:enabled, :lft]
49
+
50
+ end
51
+ end
@@ -0,0 +1,21 @@
1
+ require 'rails/generators'
2
+
3
+ module Hancock::Gallery::Models
4
+ class DecoratorsGenerator < Rails::Generators::Base
5
+ source_root File.expand_path('../../../../../../app/models/concerns/hancock/gallery/decorators', __FILE__)
6
+ argument :models, type: :array, default: []
7
+
8
+ desc 'Hancock::Gallery Models decorators generator'
9
+ def decorators
10
+ (models == ['all'] ? permitted_models : models & permitted_models).each do |m|
11
+ copy_file "#{m}.rb", "app/models/concerns/hancock/gallery/decorators/#{m}.rb"
12
+ end
13
+ end
14
+
15
+ private
16
+ def permitted_models
17
+ ['embedded_image', 'gallery', 'image', 'original_image']
18
+ end
19
+
20
+ end
21
+ end
@@ -0,0 +1,52 @@
1
+ require 'rails/generators'
2
+
3
+ module Hancock::Gallery::Models
4
+ class EmbeddedImageGenerator < Rails::Generators::Base
5
+ source_root File.expand_path('../templates', __FILE__)
6
+ argument :class_name_arg, type: :string, default: ""
7
+ argument :parent_class_name_arg, type: :string, default: ""
8
+
9
+ desc 'Hancock::Gallery EmbeddedImage Model generator'
10
+ def embedded_image
11
+ template 'embedded_image.erb', "app/models/#{file_name}.rb"
12
+ end
13
+
14
+ private
15
+ def class_name
16
+ class_name_arg.blank? ? "SetClassForEmbeddedImage" : class_name_arg
17
+ end
18
+
19
+ def capitalized_class_name
20
+ class_name.capitalize
21
+ end
22
+
23
+ def camelcased_class_name
24
+ class_name.camelcase
25
+ end
26
+
27
+ def file_name
28
+ underscored_class_name
29
+ end
30
+
31
+ def underscored_class_name
32
+ camelcased_class_name.underscore
33
+ end
34
+
35
+ def underscored_pluralized_class_name
36
+ underscored_class_name.pluralize
37
+ end
38
+
39
+
40
+ def underscored_parent_class_name
41
+ parent_class_name.underscore
42
+ end
43
+
44
+ def camelcased_parent_class_name
45
+ parent_class_name.camelcase
46
+ end
47
+
48
+ def parent_class_name
49
+ parent_class_name_arg.blank? ? "SetParentClassForEmbeddedImage" : parent_class_name_arg
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,55 @@
1
+ require 'rails/generators'
2
+
3
+ module Hancock::Gallery::Models
4
+ class GalleryGenerator < Rails::Generators::Base
5
+ source_root File.expand_path('../templates', __FILE__)
6
+ argument :class_name_arg, type: :string, default: ""
7
+ argument :image_class_name_arg, type: :string, default: ""
8
+
9
+ desc 'Hancock::Gallery Gallery Model generator'
10
+ def gallery
11
+ template 'gallery.erb', "app/models/#{file_name}.rb"
12
+ end
13
+
14
+ private
15
+ def class_name
16
+ class_name_arg.blank? ? "SetClassForGallery" : class_name_arg
17
+ end
18
+
19
+ def capitalized_class_name
20
+ class_name.capitalize
21
+ end
22
+
23
+ def camelcased_class_name
24
+ class_name.camelcase
25
+ end
26
+
27
+ def file_name
28
+ underscored_class_name
29
+ end
30
+
31
+ def underscored_class_name
32
+ camelcased_class_name.underscore
33
+ end
34
+
35
+ def underscored_pluralized_class_name
36
+ underscored_class_name.pluralize
37
+ end
38
+
39
+ def camelcased_class_name
40
+ gallery_class_name.camelcase
41
+ end
42
+
43
+ def underscored_image_class_name
44
+ image_class_name.underscore
45
+ end
46
+
47
+ def camelcased_image_class_name
48
+ image_class_name.camelcase
49
+ end
50
+
51
+ def image_class_name
52
+ image_class_name_arg.blank? ? "#{camelcased_class_name}Image" : image_class_name_arg
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,51 @@
1
+ require 'rails/generators'
2
+
3
+ module Hancock::Gallery::Models
4
+ class ImageGenerator < Rails::Generators::Base
5
+ source_root File.expand_path('../templates', __FILE__)
6
+ argument :class_name_arg, type: :string, default: ""
7
+ argument :gallery_class_name_arg, type: :string, default: ""
8
+
9
+ desc 'Hancock::Gallery Image Model generator'
10
+ def image
11
+ template 'image.erb', "app/models/#{file_name}.rb"
12
+ end
13
+
14
+ private
15
+ def class_name
16
+ class_name_arg.blank? ? "SetClassForImage" : class_name_arg
17
+ end
18
+
19
+ def capitalized_class_name
20
+ class_name.capitalize
21
+ end
22
+
23
+ def camelcased_class_name
24
+ class_name.camelcase
25
+ end
26
+
27
+ def file_name
28
+ underscored_class_name
29
+ end
30
+
31
+ def underscored_class_name
32
+ camelcased_class_name.underscore
33
+ end
34
+
35
+ def underscored_pluralized_class_name
36
+ underscored_class_name.pluralize
37
+ end
38
+
39
+ def camelcased_gallery_class_name
40
+ gallery_class_name.camelcase
41
+ end
42
+
43
+ def underscored_gallery_class_name
44
+ gallery_class_name.underscore
45
+ end
46
+
47
+ def gallery_class_name
48
+ gallery_class_name_arg.blank? ? camelcased_class_name.sub(/Image$/i, "") : gallery_class_name_arg
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,52 @@
1
+ class <%= camelcased_class_name %> < Hancock::Gallery::EmbeddedImage
2
+ embedded_in :<%= underscored_parent_class_name %>, class_name: "<%= camelcased_parent_class_name %>"
3
+
4
+ def self.find(id)
5
+ find_through(<%= camelcased_parent_class_name %>, '<%= underscored_pluralized_class_name %>', id)
6
+ end
7
+
8
+ # # after_save :image_auto_rails_admin_jcrop
9
+ # def image_auto_rails_admin_jcrop
10
+ # auto_rails_admin_jcrop(:image) # or nil for cancel autocrop
11
+ # end
12
+
13
+ # # hancock_cms_attached_file(:image)
14
+ # def image_styles
15
+ # super
16
+ # end
17
+
18
+ # def image_jcrop_options
19
+ # super
20
+ # end
21
+
22
+ ############# rails_admin ##############
23
+ def self.rails_admin_add_fields
24
+ super
25
+ end
26
+
27
+ def self.rails_admin_add_config(config)
28
+ super(config)
29
+ end
30
+
31
+ def admin_can_user_defined_actions
32
+ [].freeze
33
+ end
34
+ def admin_cannot_user_defined_actions
35
+ [].freeze
36
+ end
37
+ def manager_can_user_defined_actions
38
+ [].freeze
39
+ end
40
+ def manager_cannot_user_defined_actions
41
+ [].freeze
42
+ end
43
+ def rails_admin_user_defined_visible_actions
44
+ [].freeze
45
+ end
46
+
47
+ # rails_admin(&Hancock::Gallery::Admin::EmbeddedElement.config(%NAV_LABEL%, rails_admin_add_fields) { |config|
48
+ rails_admin(&Hancock::Gallery::Admin::EmbeddedImage.config(nil, rails_admin_add_fields) { |config|
49
+ rails_admin_add_config(config)
50
+ })
51
+
52
+ end
@@ -0,0 +1,48 @@
1
+ class <%= camelcased_class_name %> < Hancock::Gallery::Gallery
2
+
3
+ # has_many :<%= underscored_image_class_name %>, class_name: "<%= camelcased_image_class_name %>"
4
+
5
+ # # after_save :image_auto_rails_admin_jcrop
6
+ # def image_auto_rails_admin_jcrop
7
+ # auto_rails_admin_jcrop(:image) # or nil for cancel autocrop
8
+ # end
9
+
10
+ # # hancock_cms_attached_file(:image)
11
+ # def image_styles
12
+ # super
13
+ # end
14
+
15
+ # def image_jcrop_options
16
+ # super
17
+ # end
18
+
19
+ ############# rails_admin ##############
20
+ def self.rails_admin_add_fields
21
+ super
22
+ end
23
+
24
+ def self.rails_admin_add_config(config)
25
+ super(config)
26
+ end
27
+
28
+ def admin_can_user_defined_actions
29
+ [].freeze
30
+ end
31
+ def admin_cannot_user_defined_actions
32
+ [].freeze
33
+ end
34
+ def manager_can_user_defined_actions
35
+ [].freeze
36
+ end
37
+ def manager_cannot_user_defined_actions
38
+ [].freeze
39
+ end
40
+ def rails_admin_user_defined_visible_actions
41
+ [].freeze
42
+ end
43
+
44
+ # rails_admin(&Hancock::Gallery::Admin::Gallery.config(%NAV_LABEL%, rails_admin_add_fields) { |config|
45
+ rails_admin(&Hancock::Gallery::Admin::Gallery.config(rails_admin_add_fields) { |config|
46
+ rails_admin_add_config(config)
47
+ })
48
+ end
@@ -0,0 +1,50 @@
1
+ class <%= camelcased_class_name %> < Hancock::Gallery::Image
2
+
3
+ # belongs_to :<%= underscored_gallery_class_name %>, class_name: "<%= camelcased_gallery_class_name %>"
4
+
5
+ # # after_save :image_auto_rails_admin_jcrop
6
+ # def image_auto_rails_admin_jcrop
7
+ # auto_rails_admin_jcrop(:image) # or nil for cancel autocrop
8
+ # end
9
+
10
+ # # hancock_cms_attached_file(:image)
11
+ # def image_styles
12
+ # super
13
+ # end
14
+
15
+ # def image_jcrop_options
16
+ # super
17
+ # end
18
+
19
+ ############# rails_admin ##############
20
+ def self.rails_admin_add_fields
21
+ super
22
+ end
23
+
24
+ def self.rails_admin_add_config(config)
25
+ super(config)
26
+ end
27
+
28
+ def admin_can_user_defined_actions
29
+ [].freeze
30
+ end
31
+ def admin_cannot_user_defined_actions
32
+ [].freeze
33
+ end
34
+ def manager_can_user_defined_actions
35
+ [].freeze
36
+ end
37
+ def manager_cannot_user_defined_actions
38
+ [].freeze
39
+ end
40
+ def rails_admin_user_defined_visible_actions
41
+ [].freeze
42
+ end
43
+
44
+ # rails_admin(&Hancock::Gallery::Admin::Image.config(%NAV_LABEL%, %WITHOUT_GALLERY%, rails_admin_add_fields) { |config|
45
+ # rails_admin(&Hancock::Gallery::Admin::Image.config(%NAV_LABEL%, rails_admin_add_fields) { |config|
46
+ # rails_admin(&Hancock::Gallery::Admin::Image.config(%WITHOUT_GALLERY%, rails_admin_add_fields) { |config|
47
+ rails_admin(&Hancock::Gallery::Admin::Image.config(rails_admin_add_fields) { |config|
48
+ rails_admin_add_config(config)
49
+ })
50
+ end
@@ -0,0 +1,34 @@
1
+ class <%= camelcased_class_name %> < Hancock::Gallery::OriginalImage
2
+
3
+ ############# rails_admin ##############
4
+ def self.rails_admin_add_fields
5
+ super
6
+ end
7
+
8
+ def self.rails_admin_add_config(config)
9
+ super(config)
10
+ end
11
+
12
+ def admin_can_user_defined_actions
13
+ [].freeze
14
+ end
15
+ def admin_cannot_user_defined_actions
16
+ [].freeze
17
+ end
18
+ def manager_can_user_defined_actions
19
+ [].freeze
20
+ end
21
+ def manager_cannot_user_defined_actions
22
+ [].freeze
23
+ end
24
+ def rails_admin_user_defined_visible_actions
25
+ [].freeze
26
+ end
27
+
28
+ # rails_admin(&Hancock::Gallery::Admin::OriginalImage.config(%NAV_LABEL%, %VISIBLE%, rails_admin_add_fields) { |config|
29
+ # rails_admin(&Hancock::Gallery::Admin::OriginalImage.config(%NAV_LABEL%, rails_admin_add_fields) { |config|
30
+ # rails_admin(&Hancock::Gallery::Admin::OriginalImage.config(%VISIBLE%, rails_admin_add_fields) { |config|
31
+ rails_admin(&Hancock::Gallery::Admin::OriginalImage.config(rails_admin_add_fields) { |config|
32
+ rails_admin_add_config(config)
33
+ })
34
+ end
@@ -0,0 +1,41 @@
1
+ module Hancock::Gallery
2
+ module Admin
3
+ module EmbeddedImage
4
+ def self.config(nav_label = I18n.t('hancock.gallery'), fields = {})
5
+ if nav_label.is_a?(Hash)
6
+ nav_label, fields = nav_label[:nav_label], nav_label
7
+ elsif nav_label.is_a?(Array)
8
+ nav_label, fields = nil, nav_label
9
+ end
10
+ nav_label ||= I18n.t('hancock.gallery')
11
+
12
+ if fields
13
+ if fields.is_a?(Hash)
14
+ fields.reverse_merge!({image: :hancock_image})
15
+ else
16
+ finded = false
17
+ fields.each { |g|
18
+ finded = !!g[:fields][:image] unless finded
19
+ }
20
+ unless finded
21
+ fields << {
22
+ name: :default,
23
+ fields: {
24
+ image: :hancock_image
25
+ }
26
+ }
27
+ end
28
+ end
29
+ end
30
+
31
+ if block_given?
32
+ Hancock::Admin::EmbeddedElement.config(nav_label, fields) do |config|
33
+ yield config
34
+ end
35
+ else
36
+ Hancock::Admin::EmbeddedElement.config(nav_label, fields)
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,52 @@
1
+ module Hancock::Gallery
2
+ module Admin
3
+ module Gallery
4
+ def self.config(nav_label = nil, fields = {})
5
+ if nav_label.is_a?(Hash)
6
+ nav_label, fields = nav_label[:nav_label], nav_label
7
+ elsif nav_label.is_a?(Array)
8
+ nav_label, fields = nil, nav_label
9
+ end
10
+
11
+ Proc.new {
12
+ navigation_label(!nav_label.blank? ? nav_label : I18n.t('hancock.gallery'))
13
+ field :enabled, :toggle do
14
+ searchable false
15
+ end
16
+
17
+ field :name, :string do
18
+ searchable true
19
+ end
20
+ group :URL, &Hancock::Admin.url_block
21
+ # group :URL do
22
+ # active false
23
+ # field :slugs, :hancock_slugs
24
+ # field :text_slug
25
+ # end
26
+
27
+ field :image, :hancock_image
28
+
29
+ field :gallerable do
30
+ read_only true
31
+ end
32
+
33
+ nested_set({max_depth: 1, scopes: []})
34
+
35
+ if defined?(RailsAdminMultipleFileUpload)
36
+ multiple_file_upload(
37
+ {
38
+ fields: [:gallery_images]
39
+ }
40
+ )
41
+ end
42
+
43
+ Hancock::RailsAdminGroupPatch::hancock_cms_group(self, fields)
44
+
45
+ if block_given?
46
+ yield self
47
+ end
48
+ }
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,45 @@
1
+ module Hancock::Gallery
2
+ module Admin
3
+ module Image
4
+ def self.config(nav_label = nil, without_gallery = false, fields = {})
5
+ if nav_label.is_a?(Hash)
6
+ nav_label, without_gallery, fields = nav_label[:nav_label], (nav_label[:without_gallery].nil? ? true : nav_label[:without_gallery]), nav_label
7
+ elsif nav_label.is_a?(Array)
8
+ nav_label, without_gallery, fields = nil, true, nav_label
9
+ end
10
+ if nav_label.is_a?(Boolean)
11
+ if without_gallery.is_a?(Hash)
12
+ nav_label, without_gallery, fields = without_gallery[:nav_label], nav_label, without_gallery
13
+ end
14
+ nav_label, without_gallery, fields = fields[:nav_label], nav_label, fields
15
+ end
16
+
17
+ Proc.new {
18
+ navigation_label(!nav_label.blank? ? nav_label : I18n.t('hancock.gallery'))
19
+ field :enabled, :toggle do
20
+ searchable false
21
+ end
22
+ unless without_gallery
23
+ field :gallery do
24
+ searchable :name
25
+ end
26
+ end
27
+ field :name, :string do
28
+ searchable true
29
+ end
30
+ field :image, :hancock_image
31
+
32
+ group :caching, &Hancock::Admin.caching_block
33
+
34
+ nested_set({max_depth: 1, scopes: []})
35
+
36
+ Hancock::RailsAdminGroupPatch::hancock_cms_group(self, fields)
37
+
38
+ if block_given?
39
+ yield self
40
+ end
41
+ }
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,33 @@
1
+ module Hancock::Gallery
2
+ module Admin
3
+ module OriginalImage
4
+ def self.config(nav_label = nil, _visible = false, fields = {})
5
+ if nav_label.is_a?(Hash)
6
+ nav_label, _visible, fields = nav_label[:nav_label], (nav_label[:visible].nil? ? false : nav_label[:visible]), nav_label
7
+ elsif nav_label.is_a?(Array)
8
+ nav_label, _visible, fields = nil, false, nav_label
9
+ end
10
+ if nav_label.is_a?(Boolean)
11
+ if _visible.is_a?(Hash)
12
+ nav_label, _visible, fields = _visible[:nav_label], nav_label, _visible
13
+ end
14
+ nav_label, _visible, fields = fields[:nav_label], nav_label, fields
15
+ end
16
+
17
+ Proc.new {
18
+ navigation_label(!nav_label.blank? ? nav_label : I18n.t('hancock.gallery'))
19
+ visible _visible
20
+
21
+ field :originable
22
+ field :original
23
+
24
+ Hancock::RailsAdminGroupPatch::hancock_cms_group(self, fields)
25
+
26
+ if block_given?
27
+ yield self
28
+ end
29
+ }
30
+ end
31
+ end
32
+ end
33
+ end