enjoy_cms_gallery 0.4.0.beta1
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 +7 -0
- data/.gitignore +17 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +4 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +41 -0
- data/Rakefile +1 -0
- data/app/assets/javascripts/enjoy/gallery/init.coffee +2 -0
- data/app/assets/javascripts/enjoy/gallery/loaders/gallery_images_loader.coffee +29 -0
- data/app/assets/javascripts/enjoy/gallery/loaders/gallery_loader.coffee +29 -0
- data/app/assets/javascripts/enjoy/gallery/page_selector.coffee +65 -0
- data/app/assets/javascripts/enjoy/gallery.coffee +11 -0
- data/app/controllers/concerns/enjoy/gallery/load_gallery.rb +55 -0
- data/app/controllers/concerns/enjoy/gallery/load_gallery_images.rb +46 -0
- data/app/models/concerns/enjoy/gallery/active_record_paperclip.rb +56 -0
- data/app/models/concerns/enjoy/gallery/decorators/embedded_image.rb +5 -0
- data/app/models/concerns/enjoy/gallery/decorators/gallery.rb +5 -0
- data/app/models/concerns/enjoy/gallery/decorators/image.rb +5 -0
- data/app/models/concerns/enjoy/gallery/gallerable.rb +22 -0
- data/app/models/concerns/enjoy/gallery/mongoid_paperclip.rb +57 -0
- data/app/models/concerns/enjoy/gallery/paperclipable.rb +17 -0
- data/app/models/enjoy/gallery/embedded_image.rb +16 -0
- data/app/models/enjoy/gallery/gallery.rb +16 -0
- data/app/models/enjoy/gallery/image.rb +16 -0
- data/bin/console +14 -0
- data/bin/setup +7 -0
- data/config/initializers/enjoy_rails_admin.rb +51 -0
- data/config/initializers/paperclip_fix.rb +4 -0
- data/config/locales/enjoy.gallery.ru.yml +16 -0
- data/enjoy_cms_gallery.gemspec +41 -0
- data/lib/enjoy/gallery/admin/embedded_image.rb +38 -0
- data/lib/enjoy/gallery/admin/gallery.rb +56 -0
- data/lib/enjoy/gallery/admin/image.rb +33 -0
- data/lib/enjoy/gallery/admin.rb +4 -0
- data/lib/enjoy/gallery/configuration.rb +21 -0
- data/lib/enjoy/gallery/engine.rb +5 -0
- data/lib/enjoy/gallery/models/active_record/gallery.rb +19 -0
- data/lib/enjoy/gallery/models/active_record/image.rb +21 -0
- data/lib/enjoy/gallery/models/embedded_image.rb +26 -0
- data/lib/enjoy/gallery/models/gallery.rb +36 -0
- data/lib/enjoy/gallery/models/image.rb +30 -0
- data/lib/enjoy/gallery/models/mongoid/embedded_image.rb +12 -0
- data/lib/enjoy/gallery/models/mongoid/gallery.rb +19 -0
- data/lib/enjoy/gallery/models/mongoid/image.rb +18 -0
- data/lib/enjoy/gallery/version.rb +5 -0
- data/lib/enjoy_cms_gallery.rb +68 -0
- data/lib/generators/enjoy/gallery/config/install_generator.rb +13 -0
- data/lib/generators/enjoy/gallery/config/templates/enjoy_gallery.erb +4 -0
- data/lib/generators/enjoy/gallery/migrations/migration_generator.rb +18 -0
- data/lib/generators/enjoy/gallery/migrations/templates/migration_gallery.rb +51 -0
- data/lib/generators/enjoy/gallery/models/embedded_image_generator.rb +48 -0
- data/lib/generators/enjoy/gallery/models/image_generator.rb +43 -0
- data/lib/generators/enjoy/gallery/models/templates/embedded_image.erb +29 -0
- data/lib/generators/enjoy/gallery/models/templates/image.erb +22 -0
- data/release.sh +7 -0
- metadata +212 -0
@@ -0,0 +1,16 @@
|
|
1
|
+
ru:
|
2
|
+
enjoy:
|
3
|
+
gallery: Галерея
|
4
|
+
|
5
|
+
mongoid: &mongoid
|
6
|
+
models:
|
7
|
+
enjoy/gallery/gallery: Фотогалерея
|
8
|
+
enjoy/gallery/image: Фото в фотогалерее
|
9
|
+
enjoy/gallery/embedded_image: Фото в фотогалерее
|
10
|
+
|
11
|
+
attributes:
|
12
|
+
enjoy/gallery/gallery:
|
13
|
+
enjoy/gallery/image:
|
14
|
+
gallery: Фотогалерея
|
15
|
+
gallery_id: Фотогалерея
|
16
|
+
enjoy/gallery/embedded_image:
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'enjoy/gallery/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "enjoy_cms_gallery"
|
8
|
+
spec.version = Enjoy::Gallery::VERSION
|
9
|
+
spec.authors = ["Alexander Kiseliev"]
|
10
|
+
spec.email = ["dev@enjoycreate.ru"]
|
11
|
+
|
12
|
+
spec.description = %q{enjoy_cms_gallery}
|
13
|
+
spec.summary = %q{enjoy_cms_gallery}
|
14
|
+
spec.homepage = 'https://github.com/enjoycreative/enjoy_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 'enjoy_cms', "~> 0.4.0.beta3"
|
34
|
+
|
35
|
+
spec.add_dependency "paperclip"
|
36
|
+
spec.add_dependency 'glebtv-mongoid-paperclip'
|
37
|
+
spec.add_dependency 'ack_rails_admin_jcrop'
|
38
|
+
|
39
|
+
spec.add_dependency "image_optim"
|
40
|
+
spec.add_dependency "paperclip-optimizer"
|
41
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module Enjoy::Gallery
|
2
|
+
module Admin
|
3
|
+
module EmbeddedImage
|
4
|
+
def self.config(fields = {})
|
5
|
+
jcrop_proc = Proc.new do
|
6
|
+
jcrop_options :image_jcrop_options
|
7
|
+
end
|
8
|
+
|
9
|
+
if fields
|
10
|
+
if fields.is_a?(Hash)
|
11
|
+
fields.reverse_merge!({image: [:jcrop, jcrop_proc]})
|
12
|
+
else
|
13
|
+
finded = false
|
14
|
+
fields.each { |g|
|
15
|
+
finded = !!g[:fields][:image] unless finded
|
16
|
+
}
|
17
|
+
unless finded
|
18
|
+
fields << {
|
19
|
+
name: :image,
|
20
|
+
fields: {
|
21
|
+
image: [:jcrop, jcrop_proc]
|
22
|
+
}
|
23
|
+
}
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
if block_given?
|
29
|
+
Enjoy::Admin::EmbeddedElement.config(nil, fields) do |config|
|
30
|
+
yield config
|
31
|
+
end
|
32
|
+
else
|
33
|
+
Enjoy::Admin::EmbeddedElement.config(nil, fields)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
module Enjoy::Gallery
|
2
|
+
module Admin
|
3
|
+
module Gallery
|
4
|
+
def self.config(nav_label = nil, fields = {})
|
5
|
+
Proc.new {
|
6
|
+
navigation_label(nav_label || I18n.t('enjoy.gallery'))
|
7
|
+
field :enabled, :toggle do
|
8
|
+
searchable false
|
9
|
+
end
|
10
|
+
|
11
|
+
field :name, :string do
|
12
|
+
searchable true
|
13
|
+
end
|
14
|
+
group :URL do
|
15
|
+
active false
|
16
|
+
field :slugs, :enum do
|
17
|
+
searchable true
|
18
|
+
enum_method do
|
19
|
+
:slugs
|
20
|
+
end
|
21
|
+
visible do
|
22
|
+
bindings[:view].current_user.admin?
|
23
|
+
end
|
24
|
+
multiple do
|
25
|
+
true
|
26
|
+
end
|
27
|
+
end
|
28
|
+
field :text_slug
|
29
|
+
end
|
30
|
+
|
31
|
+
field :image, :jcrop do
|
32
|
+
jcrop_options :image_jcrop_options
|
33
|
+
end
|
34
|
+
|
35
|
+
# field :gallery_objects do
|
36
|
+
# read_only true
|
37
|
+
# end
|
38
|
+
|
39
|
+
if defined?(RailsAdminMultipleFileUpload)
|
40
|
+
multiple_file_upload(
|
41
|
+
{
|
42
|
+
fields: [:gallery_images]
|
43
|
+
}
|
44
|
+
)
|
45
|
+
end
|
46
|
+
|
47
|
+
Enjoy::RailsAdminGroupPatch::enjoy_cms_group(self, fields)
|
48
|
+
|
49
|
+
if block_given?
|
50
|
+
yield self
|
51
|
+
end
|
52
|
+
}
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Enjoy::Gallery
|
2
|
+
module Admin
|
3
|
+
module Image
|
4
|
+
def self.config(nav_label = nil, without_gallery = false, fields = {})
|
5
|
+
Proc.new {
|
6
|
+
navigation_label(nav_label || I18n.t('enjoy.gallery'))
|
7
|
+
field :enabled, :toggle do
|
8
|
+
searchable false
|
9
|
+
end
|
10
|
+
unless without_gallery
|
11
|
+
field :gallery do
|
12
|
+
searchable :name
|
13
|
+
end
|
14
|
+
end
|
15
|
+
field :name, :string do
|
16
|
+
searchable true
|
17
|
+
end
|
18
|
+
field :image, :jcrop do
|
19
|
+
jcrop_options :image_jcrop_options
|
20
|
+
end
|
21
|
+
|
22
|
+
nested_set({max_depth: 1, scopes: []})
|
23
|
+
|
24
|
+
Enjoy::RailsAdminGroupPatch::enjoy_cms_group(self, fields)
|
25
|
+
|
26
|
+
if block_given?
|
27
|
+
yield self
|
28
|
+
end
|
29
|
+
}
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Enjoy::Gallery
|
2
|
+
def self.configuration
|
3
|
+
@configuration ||= Configuration.new
|
4
|
+
end
|
5
|
+
def self.config
|
6
|
+
@configuration ||= Configuration.new
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.configure
|
10
|
+
yield configuration
|
11
|
+
end
|
12
|
+
|
13
|
+
class Configuration
|
14
|
+
|
15
|
+
attr_accessor :localize
|
16
|
+
|
17
|
+
def initialize
|
18
|
+
@localize = Enjoy.config.localize
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Enjoy::Gallery
|
2
|
+
module Models
|
3
|
+
module ActiveRecord
|
4
|
+
module Gallery
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
|
7
|
+
included do
|
8
|
+
has_paper_trail
|
9
|
+
validates_lengths_from_database
|
10
|
+
if Enjoy::Gallery.config.localize
|
11
|
+
translates :name
|
12
|
+
end
|
13
|
+
|
14
|
+
scope :sorted, -> { order(lft: :asc) }
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Enjoy::Gallery
|
2
|
+
module Models
|
3
|
+
module ActiveRecord
|
4
|
+
module Image
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
|
7
|
+
included do
|
8
|
+
# belongs_to :enjoy_gallery_imagable, polymorphic: true
|
9
|
+
|
10
|
+
has_paper_trail
|
11
|
+
validates_lengths_from_database
|
12
|
+
if Enjoy::Gallery.config.localize
|
13
|
+
translates :name
|
14
|
+
end
|
15
|
+
|
16
|
+
scope :sorted, -> { order(lft: :asc) }
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Enjoy::Gallery
|
2
|
+
module Models
|
3
|
+
module EmbeddedImage
|
4
|
+
if Enjoy::Gallery.mongoid?
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
include Enjoy::Gallery::Paperclipable
|
7
|
+
|
8
|
+
include Enjoy::Gallery.orm_specific('EmbeddedImage')
|
9
|
+
|
10
|
+
included do
|
11
|
+
enjoy_cms_attached_file(:image,
|
12
|
+
styles: lambda { |attachment| attachment.instance.image_styles }
|
13
|
+
)
|
14
|
+
end
|
15
|
+
|
16
|
+
def image_jcrop_options
|
17
|
+
{}
|
18
|
+
end
|
19
|
+
|
20
|
+
def image_styles
|
21
|
+
{}
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module Enjoy::Gallery
|
2
|
+
module Models
|
3
|
+
module Gallery
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
include Enjoy::Model
|
6
|
+
include ManualSlug
|
7
|
+
include Enjoy::Enableable
|
8
|
+
include Enjoy::Gallery::Paperclipable
|
9
|
+
|
10
|
+
include Enjoy::Gallery.orm_specific('Gallery')
|
11
|
+
|
12
|
+
included do
|
13
|
+
manual_slug :name
|
14
|
+
|
15
|
+
has_many :gallery_images, class_name: "Enjoy::Gallery::Image"
|
16
|
+
alias :images :gallery_images
|
17
|
+
|
18
|
+
acts_as_nested_set
|
19
|
+
|
20
|
+
enjoy_cms_attached_file(:image,
|
21
|
+
styles: lambda { |attachment| attachment.instance.image_styles }
|
22
|
+
)
|
23
|
+
|
24
|
+
# has_many :connected_objects, as: :enjoy_gallerable
|
25
|
+
end
|
26
|
+
|
27
|
+
def image_jcrop_options
|
28
|
+
{}
|
29
|
+
end
|
30
|
+
|
31
|
+
def image_styles
|
32
|
+
{}
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Enjoy::Gallery
|
2
|
+
module Models
|
3
|
+
module Image
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
include Enjoy::Model
|
6
|
+
include Enjoy::Enableable
|
7
|
+
include Enjoy::Gallery::Paperclipable
|
8
|
+
|
9
|
+
include Enjoy::Gallery.orm_specific('Image')
|
10
|
+
|
11
|
+
included do
|
12
|
+
belongs_to :gallery, class_name: "Enjoy::Gallery::Gallery"
|
13
|
+
|
14
|
+
acts_as_nested_set
|
15
|
+
|
16
|
+
enjoy_cms_attached_file(:image,
|
17
|
+
styles: lambda { |attachment| attachment.instance.image_styles }
|
18
|
+
)
|
19
|
+
end
|
20
|
+
|
21
|
+
def image_jcrop_options
|
22
|
+
{}
|
23
|
+
end
|
24
|
+
|
25
|
+
def image_styles
|
26
|
+
{}
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Enjoy::Gallery
|
2
|
+
module Models
|
3
|
+
module Mongoid
|
4
|
+
module Gallery
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
|
7
|
+
included do
|
8
|
+
if defined?(RailsAdminComments)
|
9
|
+
include RailsAdminComments::Commentable
|
10
|
+
end
|
11
|
+
field :name, type: String, localize: Enjoy::Gallery.configuration.localize
|
12
|
+
|
13
|
+
scope :sorted, -> { order_by([:lft, :asc]) }
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Enjoy::Gallery
|
2
|
+
module Models
|
3
|
+
module Mongoid
|
4
|
+
module Image
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
|
7
|
+
included do
|
8
|
+
if defined?(RailsAdminComments)
|
9
|
+
include RailsAdminComments::Commentable
|
10
|
+
end
|
11
|
+
field :name, type: String, localize: Enjoy::Gallery.configuration.localize
|
12
|
+
|
13
|
+
scope :sorted, -> { order_by([:lft, :asc]) }
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
unless defined?(Enjoy) && Enjoy.respond_to?(:orm) && [:active_record, :mongoid].include?(Enjoy.orm)
|
2
|
+
puts "please use enjoy_cms_mongoid or enjoy_cms_activerecord"
|
3
|
+
puts "also: please use enjoy_cms_news_mongoid or enjoy_cms_news_activerecord and not enjoy_cms_news directly"
|
4
|
+
exit 1
|
5
|
+
end
|
6
|
+
|
7
|
+
require "enjoy/gallery/version"
|
8
|
+
|
9
|
+
# require 'enjoy_cms'
|
10
|
+
|
11
|
+
if Enjoy.mongoid?
|
12
|
+
require 'glebtv-mongoid-paperclip'
|
13
|
+
elsif Enjoy.active_record?
|
14
|
+
require 'paperclip'
|
15
|
+
end
|
16
|
+
require "image_optim"
|
17
|
+
require "paperclip-optimizer"
|
18
|
+
|
19
|
+
require "ack_rails_admin_jcrop"
|
20
|
+
|
21
|
+
require 'enjoy/gallery/configuration'
|
22
|
+
require 'enjoy/gallery/engine'
|
23
|
+
|
24
|
+
|
25
|
+
module Enjoy::Gallery
|
26
|
+
class << self
|
27
|
+
def orm
|
28
|
+
Enjoy.orm
|
29
|
+
end
|
30
|
+
def mongoid?
|
31
|
+
Enjoy::Gallery.orm == :mongoid
|
32
|
+
end
|
33
|
+
def active_record?
|
34
|
+
Enjoy::Gallery.orm == :active_record
|
35
|
+
end
|
36
|
+
def model_namespace
|
37
|
+
"Enjoy::Gallery::Models::#{Enjoy::Gallery.orm.to_s.camelize}"
|
38
|
+
end
|
39
|
+
def orm_specific(name)
|
40
|
+
"#{model_namespace}::#{name}".constantize
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
autoload :Admin, 'enjoy/gallery/admin'
|
45
|
+
module Admin
|
46
|
+
autoload :Gallery, 'enjoy/gallery/admin/gallery'
|
47
|
+
autoload :Image, 'enjoy/gallery/admin/image'
|
48
|
+
autoload :EmbeddedImage, 'enjoy/gallery/admin/embedded_image'
|
49
|
+
end
|
50
|
+
|
51
|
+
module Models
|
52
|
+
autoload :Gallery, 'enjoy/gallery/models/gallery'
|
53
|
+
autoload :Image, 'enjoy/gallery/models/image'
|
54
|
+
autoload :EmbeddedImage, 'enjoy/gallery/models/embedded_image'
|
55
|
+
|
56
|
+
module Mongoid
|
57
|
+
autoload :Gallery, 'enjoy/gallery/models/mongoid/gallery'
|
58
|
+
autoload :Image, 'enjoy/gallery/models/mongoid/image'
|
59
|
+
autoload :EmbeddedImage, 'enjoy/gallery/models/mongoid/embedded_image'
|
60
|
+
end
|
61
|
+
|
62
|
+
module ActiveRecord
|
63
|
+
autoload :Gallery, 'enjoy/gallery/models/active_record/gallery'
|
64
|
+
autoload :Image, 'enjoy/gallery/models/active_record/image'
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
|
3
|
+
module Enjoy::Gallery
|
4
|
+
class ConfigGenerator < Rails::Generators::Base
|
5
|
+
source_root File.expand_path('../templates', __FILE__)
|
6
|
+
|
7
|
+
desc 'Enjoy::Gallery Config generator'
|
8
|
+
def config
|
9
|
+
template 'enjoy_gallery.erb', "config/initializers/enjoy_gallery.rb"
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
require 'rails/generators/active_record'
|
3
|
+
|
4
|
+
module Enjoy::Gallery
|
5
|
+
class MigrationGenerator < Rails::Generators::Base
|
6
|
+
include ActiveRecord::Generators::Migration
|
7
|
+
source_root File.expand_path('../templates/migrations', __FILE__)
|
8
|
+
|
9
|
+
desc 'Enjoy Gallery migration generator'
|
10
|
+
def migration
|
11
|
+
if Enjoy.active_record?
|
12
|
+
%w(gallery).each do |table_name|
|
13
|
+
migration_template "migration_#{table_name}.rb", "db/migrate/enjoy_gallery_create_#{table_name}.rb"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
class EnjoyGalleryCreateGallery < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
########### c #################
|
4
|
+
create_table :enjoy_gallery_gallery_images do |t|
|
5
|
+
t.integer :gallery_id
|
6
|
+
t.integer :enjoy_gallery_imagable_id
|
7
|
+
t.string :enjoy_gallery_imagable_type
|
8
|
+
|
9
|
+
t.boolean :enabled, default: true, null: false
|
10
|
+
|
11
|
+
if Enjoy::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 :enjoy_gallery_gallery_images, [:enabled]
|
22
|
+
add_index :enjoy_gallery_gallery_images, [:gallery_id]
|
23
|
+
add_index :enjoy_gallery_gallery_images, [:enjoy_gallery_imagable_id, :enjoy_gallery_imagable_type]
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
########### Galleries #################
|
28
|
+
create_table :enjoy_gallery_gallery do |t|
|
29
|
+
t.boolean :enabled, default: true, null: false
|
30
|
+
|
31
|
+
if Enjoy::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 :enjoy_gallery_galleries, :slug, unique: true
|
48
|
+
add_index :enjoy_gallery_galleries, [:enabled, :lft]
|
49
|
+
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
|
3
|
+
module Enjoy::Gallery::Models
|
4
|
+
class EmbeddedImageGenerator < Rails::Generators::Base
|
5
|
+
source_root File.expand_path('../templates', __FILE__)
|
6
|
+
argument :class_name, type: :string
|
7
|
+
argument :parent_class_name, type: :string
|
8
|
+
|
9
|
+
desc 'Enjoy::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 capitalized_class_name
|
16
|
+
class_name.capitalize
|
17
|
+
end
|
18
|
+
|
19
|
+
def camelcased_class_name
|
20
|
+
class_name.camelcase
|
21
|
+
end
|
22
|
+
|
23
|
+
def file_name
|
24
|
+
underscored_class_name
|
25
|
+
end
|
26
|
+
|
27
|
+
def underscored_class_name
|
28
|
+
camelcased_class_name.underscore
|
29
|
+
end
|
30
|
+
|
31
|
+
def underscored_pluralized_class_name
|
32
|
+
underscored_class_name.pluralize
|
33
|
+
end
|
34
|
+
|
35
|
+
|
36
|
+
def underscored_parent_class_name
|
37
|
+
parent_class_name.underscore
|
38
|
+
end
|
39
|
+
|
40
|
+
def camelcased_parent_class_name
|
41
|
+
parent_class_name.camelcase
|
42
|
+
end
|
43
|
+
|
44
|
+
def parent_class_name
|
45
|
+
parent_class_name_arg.blank? ? "SetParentClassForEmbeddedImage" : parent_class_name_arg
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
|
3
|
+
module Enjoy::Gallery::Models
|
4
|
+
class ImageGenerator < Rails::Generators::Base
|
5
|
+
source_root File.expand_path('../templates', __FILE__)
|
6
|
+
argument :class_name, type: :string
|
7
|
+
argument :gallery_class_name_arg, type: :string, default: ""
|
8
|
+
|
9
|
+
desc 'Enjoy::Gallery Image Model generator'
|
10
|
+
def image
|
11
|
+
template 'image.erb', "app/models/#{file_name}.rb"
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
def capitalized_class_name
|
16
|
+
class_name.capitalize
|
17
|
+
end
|
18
|
+
|
19
|
+
def camelcased_class_name
|
20
|
+
class_name.camelcase
|
21
|
+
end
|
22
|
+
|
23
|
+
def file_name
|
24
|
+
underscored_class_name
|
25
|
+
end
|
26
|
+
|
27
|
+
def underscored_class_name
|
28
|
+
camelcased_class_name.underscore
|
29
|
+
end
|
30
|
+
|
31
|
+
def underscored_pluralized_class_name
|
32
|
+
underscored_class_name.pluralize
|
33
|
+
end
|
34
|
+
|
35
|
+
def camelcased_gallery_class_name
|
36
|
+
gallery_class_name.camelcase
|
37
|
+
end
|
38
|
+
|
39
|
+
def gallery_class_name
|
40
|
+
gallery_class_name_arg.blank? ? camelcased_class_name.sub(/Image$/i, "") : gallery_class_name_arg
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|