ecm_pictures2 1.1.2 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/MIT-LICENSE +1 -1
- data/README.rdoc +21 -6
- data/Rakefile +2 -5
- data/app/admin/ecm_pictures_attached_pictures.rb +2 -3
- data/app/admin/ecm_pictures_picture_galleries.rb +21 -22
- data/app/admin/ecm_pictures_pictures.rb +13 -14
- data/app/controllers/ecm/pictures/picture_galleries_controller.rb +1 -1
- data/app/controllers/ecm/pictures/pictures_controller.rb +1 -1
- data/app/helpers/ecm/pictures_helper.rb +29 -30
- data/app/helpers/markup_helper.rb +3 -3
- data/app/models/ecm/pictures/attached_picture.rb +4 -5
- data/app/models/ecm/pictures/picture.rb +18 -13
- data/app/models/ecm/pictures/picture_gallery.rb +24 -12
- data/app/views/ecm/pictures/picture_galleries/_picture_gallery.html.erb +8 -0
- data/app/views/ecm/pictures/picture_galleries/_picture_gallery_for_index.html.erb +7 -0
- data/app/views/ecm/pictures/pictures/_picture.html.erb +9 -0
- data/config/locales/ecm.pictures.picture.de.yml +1 -0
- data/config/locales/ecm.pictures.picture.en.yml +1 -0
- data/db/migrate/001_create_ecm_pictures_picture_galleries.rb +3 -3
- data/db/migrate/002_create_ecm_pictures_pictures.rb +3 -3
- data/db/migrate/003_create_ecm_pictures_attached_pictures.rb +1 -2
- data/lib/ecm/pictures/active_admin/pictureable_helper.rb +51 -49
- data/lib/ecm/pictures/configuration.rb +0 -4
- data/lib/ecm/pictures/engine.rb +2 -3
- data/lib/ecm/pictures/routing.rb +7 -8
- data/lib/ecm/pictures/version.rb +1 -2
- data/lib/ecm_pictures2.rb +2 -3
- data/lib/generators/ecm/pictures/install/install_generator.rb +13 -7
- data/lib/generators/ecm/pictures/install/templates/{ecm_pictures.rb → initializer.rb} +4 -5
- data/lib/generators/ecm/pictures/install/templates/routes.source +5 -0
- data/lib/generators/ecm/pictures/locales/locales_generator.rb +9 -10
- data/lib/tasks/ecm_pictures_tasks.rake +24 -26
- metadata +42 -32
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b99e9ac880d8683dcaeb685655a7b05ae393419f
|
4
|
+
data.tar.gz: 9ec6f5096b217ca3a69e315d72722c90bb684b14
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0b1fc42b5eb37bd331f8a2efeb23731550d38a27bd55b4ad1b31a558dd0ed0fefd650121c93554d884f78ea0fda2654314d417b15cd57380859e35490ac94c09
|
7
|
+
data.tar.gz: 988e2c4dcd4502061a81776a801961b72e73864e50618fb5810b0b75e14e78e3b5ac08af8daa82964955d070c786f3e3f74b509fb572bcfe21b332f8f66122e8
|
data/MIT-LICENSE
CHANGED
data/README.rdoc
CHANGED
@@ -5,11 +5,26 @@
|
|
5
5
|
Create and administrate picture galleries in active admin and display them on
|
6
6
|
in your ruby on rails applictation. Orangebox is used for lightbox support.
|
7
7
|
|
8
|
-
|
8
|
+
= Migrating from 1.x.x to 2.0.0
|
9
|
+
|
10
|
+
Add active_admin-awesome_nested_set to your gemfile, if you are using activeadmin:
|
11
|
+
|
12
|
+
# Gemfile
|
13
|
+
gem 'active_admin-acts_as_list'
|
14
|
+
|
15
|
+
|
16
|
+
= Prerequisites
|
9
17
|
|
10
18
|
* Ruby on Rails 4.x
|
11
19
|
* Twitter Bootstrap 3
|
12
20
|
|
21
|
+
= Prerequisites when using active admin
|
22
|
+
|
23
|
+
if you are using activeadmin as backend, ecm_cms2 comes with admin files to provide a backend. In that case, you'll need active_admin-acts_as_list. Add it to your gemfile:
|
24
|
+
|
25
|
+
# Gemfile
|
26
|
+
gem 'active_admin-acts_as_list'
|
27
|
+
|
13
28
|
= Features
|
14
29
|
|
15
30
|
* Drop in module for active admin.
|
@@ -73,12 +88,12 @@ Once you have a gallery, you can display it like this:
|
|
73
88
|
|
74
89
|
<%= render_picture_gallery 'Holidays 2012' %>
|
75
90
|
|
76
|
-
=
|
91
|
+
= Running specs
|
77
92
|
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
93
|
+
gem install bundler
|
94
|
+
bundle
|
95
|
+
cd spec/dummy && rake db:migrate RAILS_ENV=test && cd ../..
|
96
|
+
guard
|
82
97
|
|
83
98
|
= License
|
84
99
|
|
data/Rakefile
CHANGED
@@ -14,15 +14,12 @@ end
|
|
14
14
|
|
15
15
|
RDoc::Task.new(:rdoc) do |rdoc|
|
16
16
|
rdoc.rdoc_dir = 'rdoc'
|
17
|
-
rdoc.title = '
|
17
|
+
rdoc.title = 'ECM Pictures 2'
|
18
18
|
rdoc.options << '--line-numbers'
|
19
19
|
rdoc.rdoc_files.include('README.rdoc')
|
20
20
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
21
21
|
end
|
22
22
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
23
|
Bundler::GemHelper.install_tasks
|
27
24
|
|
28
|
-
require 'rails/dummy/tasks'
|
25
|
+
require 'rails/dummy/tasks'
|
@@ -6,9 +6,8 @@ ActiveAdmin.register Ecm::Pictures::AttachedPicture do
|
|
6
6
|
controller do
|
7
7
|
def destroy
|
8
8
|
destroy! do |format|
|
9
|
-
|
9
|
+
format.html { redirect_to :back }
|
10
10
|
end
|
11
11
|
end
|
12
12
|
end
|
13
|
-
end
|
14
|
-
|
13
|
+
end if Gem::Specification.find_all_by_name('activeadmin').any?
|
@@ -1,7 +1,7 @@
|
|
1
|
-
include ActiveAdmin::ActsAsList::Helper if
|
1
|
+
include ActiveAdmin::ActsAsList::Helper if Gem::Specification.find_all_by_name('activeadmin').any?
|
2
2
|
|
3
3
|
ActiveAdmin.register Ecm::Pictures::PictureGallery do
|
4
|
-
menu :
|
4
|
+
menu parent: I18n.t('ecm.pictures.active_admin.menu')
|
5
5
|
|
6
6
|
permit_params :description,
|
7
7
|
:link_images,
|
@@ -23,7 +23,7 @@ ActiveAdmin.register Ecm::Pictures::PictureGallery do
|
|
23
23
|
config.sort_order = 'position'
|
24
24
|
sortable_member_actions
|
25
25
|
|
26
|
-
form :
|
26
|
+
form html: { enctype: 'multipart/form-data' } do |f|
|
27
27
|
f.inputs do
|
28
28
|
f.input :name
|
29
29
|
f.input :description
|
@@ -31,23 +31,23 @@ ActiveAdmin.register Ecm::Pictures::PictureGallery do
|
|
31
31
|
end
|
32
32
|
|
33
33
|
f.inputs do
|
34
|
-
f.input :markup_language, :
|
34
|
+
f.input :markup_language, as: :select, collection: Ecm::Pictures::Configuration.markup_languages
|
35
35
|
end
|
36
36
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
37
|
+
f.inputs do
|
38
|
+
f.has_many :pictures do |p|
|
39
|
+
p.input :name
|
40
|
+
if p.object.persisted?
|
41
|
+
p.input :_destroy, as: :boolean, label: I18n.t('active_admin.delete')
|
42
|
+
end
|
43
|
+
p.input :image, as: :file, hint: p.template.image_tag(p.object.image.url(:default_thumb))
|
44
|
+
p.input :description
|
45
45
|
|
46
|
-
|
47
|
-
|
46
|
+
p.inputs do
|
47
|
+
p.input :markup_language, as: :select, collection: Ecm::Pictures::Configuration.markup_languages
|
48
|
+
end
|
48
49
|
end
|
49
50
|
end
|
50
|
-
end
|
51
51
|
|
52
52
|
f.actions
|
53
53
|
end
|
@@ -78,25 +78,25 @@ ActiveAdmin.register Ecm::Pictures::PictureGallery do
|
|
78
78
|
end
|
79
79
|
|
80
80
|
panel Ecm::Pictures::PictureGallery.human_attribute_name(:pictures) do
|
81
|
-
table_for ecm_pictures_picture_gallery.pictures, :
|
81
|
+
table_for ecm_pictures_picture_gallery.pictures, i18n: Ecm::Pictures::Picture do
|
82
82
|
sortable_columns
|
83
83
|
column :thumbnail do |picture|
|
84
84
|
link_to(image_tag(picture.image.url(:default_thumb)), [:admin, picture])
|
85
85
|
end # column
|
86
86
|
column :name
|
87
|
-
column :image_file_size, :
|
87
|
+
column :image_file_size, sortable: :image_file_size do |picture|
|
88
88
|
number_to_human_size(picture.image_file_size)
|
89
89
|
end # column
|
90
90
|
column :created_at
|
91
91
|
column do |picture|
|
92
|
-
link_to(I18n.t('active_admin.view'), [:admin, picture], :
|
93
|
-
|
92
|
+
link_to(I18n.t('active_admin.view'), [:admin, picture], class: 'member_link view_link') +
|
93
|
+
link_to(I18n.t('active_admin.edit'), [:edit, :admin, picture], class: 'member_link edit_link')
|
94
94
|
end # column
|
95
95
|
end # table_for
|
96
96
|
end # panel
|
97
97
|
end # show
|
98
98
|
|
99
|
-
sidebar Ecm::Pictures::PictureGallery.human_attribute_name(:details), :
|
99
|
+
sidebar Ecm::Pictures::PictureGallery.human_attribute_name(:details), only: :show do
|
100
100
|
attributes_table_for ecm_pictures_picture_gallery do
|
101
101
|
row :name
|
102
102
|
row :pictures_count
|
@@ -107,5 +107,4 @@ ActiveAdmin.register Ecm::Pictures::PictureGallery do
|
|
107
107
|
row :updated_at
|
108
108
|
end
|
109
109
|
end # sidebar
|
110
|
-
end if
|
111
|
-
|
110
|
+
end if Gem::Specification.find_all_by_name('activeadmin').any?
|
@@ -1,7 +1,7 @@
|
|
1
|
-
include ActiveAdmin::ActsAsList::Helper if
|
1
|
+
include ActiveAdmin::ActsAsList::Helper if Gem::Specification.find_all_by_name('activeadmin').any?
|
2
2
|
|
3
3
|
ActiveAdmin.register Ecm::Pictures::Picture do
|
4
|
-
menu :
|
4
|
+
menu parent: I18n.t('ecm.pictures.active_admin.menu')
|
5
5
|
|
6
6
|
permit_params :description,
|
7
7
|
:image,
|
@@ -22,16 +22,16 @@ ActiveAdmin.register Ecm::Pictures::Picture do
|
|
22
22
|
# end
|
23
23
|
# end
|
24
24
|
|
25
|
-
form :
|
25
|
+
form html: { enctype: 'multipart/form-data' } do |f|
|
26
26
|
f.inputs do
|
27
27
|
f.input :picture_gallery
|
28
28
|
f.input :name
|
29
|
-
f.input :image, :
|
29
|
+
f.input :image, as: :file, hint: f.template.image_tag(f.object.image.url(:thumb))
|
30
30
|
f.input :description
|
31
31
|
end
|
32
32
|
|
33
33
|
f.inputs do
|
34
|
-
f.input :markup_language, :
|
34
|
+
f.input :markup_language, as: :select, collection: Ecm::Pictures::Configuration.markup_languages
|
35
35
|
end
|
36
36
|
|
37
37
|
f.actions
|
@@ -44,7 +44,7 @@ ActiveAdmin.register Ecm::Pictures::Picture do
|
|
44
44
|
end
|
45
45
|
column :picture_gallery
|
46
46
|
column :name
|
47
|
-
column :image_file_size, :
|
47
|
+
column :image_file_size, sortable: :image_file_size do |picture|
|
48
48
|
number_to_human_size(picture.image_file_size)
|
49
49
|
end
|
50
50
|
column :created_at
|
@@ -53,7 +53,7 @@ ActiveAdmin.register Ecm::Pictures::Picture do
|
|
53
53
|
|
54
54
|
show do
|
55
55
|
panel Ecm::Pictures::Picture.human_attribute_name(:image) do
|
56
|
-
div
|
56
|
+
div { image_tag ecm_pictures_picture.image.url }
|
57
57
|
end
|
58
58
|
|
59
59
|
panel Ecm::Pictures::Picture.human_attribute_name(:description) do
|
@@ -72,16 +72,16 @@ ActiveAdmin.register Ecm::Pictures::Picture do
|
|
72
72
|
panel type.constantize.model_name.human do
|
73
73
|
table_for attached_pictures.map(&:pictureable) do
|
74
74
|
column :to_s
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
75
|
+
column do |obj|
|
76
|
+
link_to(I18n.t('active_admin.view'), [:admin, obj], class: 'member_link view_link') +
|
77
|
+
link_to(I18n.t('active_admin.edit'), [:edit, :admin, obj], class: 'member_link edit_link')
|
78
|
+
end # column
|
79
79
|
end # table_for
|
80
80
|
end # panel
|
81
81
|
end # each
|
82
82
|
end # show
|
83
83
|
|
84
|
-
sidebar Ecm::Pictures::Picture.human_attribute_name(:details), :
|
84
|
+
sidebar Ecm::Pictures::Picture.human_attribute_name(:details), only: :show do
|
85
85
|
attributes_table_for ecm_pictures_picture do
|
86
86
|
row :picture_gallery
|
87
87
|
row :name
|
@@ -94,5 +94,4 @@ ActiveAdmin.register Ecm::Pictures::Picture do
|
|
94
94
|
row :updated_at
|
95
95
|
end
|
96
96
|
end # sidebar
|
97
|
-
end if
|
98
|
-
|
97
|
+
end if Gem::Specification.find_all_by_name('activeadmin').any?
|
@@ -8,23 +8,25 @@ module Ecm::PicturesHelper
|
|
8
8
|
#
|
9
9
|
# <%= render_picture_gallery 'Holidays 2012' %>
|
10
10
|
def render_picture_gallery(name, options = {})
|
11
|
-
|
12
|
-
options = {:preview_style => :thumb}.merge(options)
|
11
|
+
options = { preview_style: :thumb }.merge(options)
|
13
12
|
|
14
|
-
|
15
|
-
|
13
|
+
gallery = Ecm::Pictures::PictureGallery.where(name: name.to_s).first
|
14
|
+
gallery_identifier = begin
|
15
|
+
gallery.to_param
|
16
|
+
rescue
|
17
|
+
'missing'
|
18
|
+
end
|
16
19
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
end
|
21
|
-
else
|
22
|
-
render gallery
|
20
|
+
if gallery.nil?
|
21
|
+
content_tag(:div, class: 'warning missing picture-gallery') do
|
22
|
+
content_tag(:p, I18n.t('ecm.pictures.picture_gallery.warnings.missing', name: name.to_s))
|
23
23
|
end
|
24
|
-
|
25
|
-
|
26
|
-
return e.message
|
24
|
+
else
|
25
|
+
render gallery
|
27
26
|
end
|
27
|
+
|
28
|
+
rescue Exception => e
|
29
|
+
return e.message
|
28
30
|
end
|
29
31
|
|
30
32
|
# helper method to build link options for images inside a gallery.
|
@@ -35,35 +37,32 @@ module Ecm::PicturesHelper
|
|
35
37
|
link_options[:rel] = "lightbox[#{gallery_identifier}]"
|
36
38
|
|
37
39
|
# Add thumbnail class for twitter bootstrap
|
38
|
-
link_options[:class] =
|
40
|
+
link_options[:class] = 'thumbnail'
|
39
41
|
|
40
42
|
# build the caption
|
41
|
-
caption =
|
43
|
+
caption = ''
|
42
44
|
caption << "<div class=\"caption-name\">#{picture.name}</div>" unless picture.name.blank?
|
43
45
|
caption << "<div class=\"caption-description\">#{picture.description}</div>" unless picture.description.blank?
|
44
46
|
link_options[:"data-ob_caption"] = caption if caption.size > 0
|
45
47
|
|
46
|
-
|
48
|
+
link_options
|
47
49
|
end
|
48
50
|
|
49
51
|
def render_picture(name, options = {})
|
50
|
-
|
51
|
-
options = {:preview_style => :thumb}.merge(options)
|
52
|
+
options = { preview_style: :thumb }.merge(options)
|
52
53
|
|
53
|
-
|
54
|
-
|
54
|
+
picture = Ecm::Pictures::Picture.where(name: name.to_s).first
|
55
|
+
# gallery_identifier = gallery.to_param rescue 'missing'
|
55
56
|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
end
|
60
|
-
else
|
61
|
-
render picture
|
57
|
+
if picture.nil?
|
58
|
+
content_tag(:div, class: 'warning missing picture') do
|
59
|
+
content_tag(:p, I18n.t('ecm.pictures.picture.warnings.missing', name: name.to_s))
|
62
60
|
end
|
63
|
-
|
64
|
-
|
65
|
-
return e.message
|
61
|
+
else
|
62
|
+
render picture
|
66
63
|
end
|
64
|
+
|
65
|
+
rescue Exception => e
|
66
|
+
return e.message
|
67
67
|
end
|
68
68
|
end
|
69
|
-
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module MarkupHelper
|
2
2
|
def mu(object, method)
|
3
3
|
handler = object.send(method)
|
4
|
-
erb_string = ::ERB.new(object[method.to_sym].to_s, 0).result(binding
|
5
|
-
|
6
|
-
end
|
4
|
+
erb_string = ::ERB.new(object[method.to_sym].to_s, 0).result(binding)
|
5
|
+
handler.class.new(erb_string).to_html.html_safe
|
6
|
+
end
|
7
7
|
end
|
@@ -3,14 +3,13 @@ module Ecm::Pictures
|
|
3
3
|
self.table_name = 'ecm_pictures_attached_pictures'
|
4
4
|
|
5
5
|
# associations
|
6
|
-
belongs_to :picture, :
|
7
|
-
belongs_to :pictureable, :
|
6
|
+
belongs_to :picture, foreign_key: 'ecm_pictures_picture_id'
|
7
|
+
belongs_to :pictureable, polymorphic: true
|
8
8
|
|
9
9
|
# attributes
|
10
10
|
attr_accessible :ecm_pictures_picture_id if respond_to?(:attr_accessible)
|
11
11
|
|
12
12
|
# validations
|
13
|
-
validates :picture, :pictureable, :
|
13
|
+
validates :picture, :pictureable, presence: true
|
14
14
|
end # class AttachedPicture < ActiveRecord::Base
|
15
|
-
end# module Ecm::Pictures
|
16
|
-
|
15
|
+
end # module Ecm::Pictures
|
@@ -2,8 +2,8 @@ class Ecm::Pictures::Picture < ActiveRecord::Base
|
|
2
2
|
self.table_name = 'ecm_pictures_pictures'
|
3
3
|
|
4
4
|
# associations
|
5
|
-
belongs_to :picture_gallery, :
|
6
|
-
has_many :attached_pictures, :
|
5
|
+
belongs_to :picture_gallery, counter_cache: true
|
6
|
+
has_many :attached_pictures, foreign_key: 'ecm_pictures_picture_id'
|
7
7
|
# attributes
|
8
8
|
attr_accessible :description,
|
9
9
|
:image,
|
@@ -13,39 +13,41 @@ class Ecm::Pictures::Picture < ActiveRecord::Base
|
|
13
13
|
:position if respond_to?(:attr_accessible)
|
14
14
|
|
15
15
|
# acts as list
|
16
|
-
acts_as_list :
|
16
|
+
acts_as_list scope: :picture_gallery
|
17
17
|
|
18
18
|
# acts as markup
|
19
|
-
acts_as_markup :
|
19
|
+
acts_as_markup language: :variable, columns: [:description, :description]
|
20
20
|
|
21
21
|
# callbacks
|
22
22
|
after_initialize :set_defaults
|
23
|
-
before_validation :set_name_from_image_file_name, :
|
23
|
+
before_validation :set_name_from_image_file_name, if: proc { |p| (p.name.nil? || p.name.empty?) }
|
24
24
|
|
25
25
|
# default scope
|
26
26
|
default_scope { order(:picture_gallery_id, :position) }
|
27
27
|
# friendly id
|
28
28
|
extend FriendlyId
|
29
|
-
friendly_id :name, :
|
29
|
+
friendly_id :name, use: [:slugged, :finders]
|
30
30
|
# paperclip
|
31
31
|
has_attached_file :image, Ecm::Pictures::Configuration.paperclip_options
|
32
32
|
|
33
|
+
# tagging
|
34
|
+
acts_as_taggable if respond_to?(:acts_as_taggable)
|
35
|
+
|
33
36
|
# validations
|
34
|
-
validates :image, :
|
37
|
+
validates :image, attachment_presence: true
|
35
38
|
# validates_attachment_presence :image
|
36
39
|
validates_attachment :image, content_type: { content_type: /\Aimage\/.*\Z/ }
|
37
40
|
|
38
|
-
validates :markup_language, :
|
39
|
-
:
|
40
|
-
validates :name, :
|
41
|
+
validates :markup_language, presence: true,
|
42
|
+
inclusion: Ecm::Pictures::Configuration.markup_languages
|
43
|
+
validates :name, presence: true
|
41
44
|
|
42
45
|
def display_code(style)
|
43
46
|
case style
|
44
47
|
when :erb
|
45
|
-
"<%= render_picture '#{
|
48
|
+
"<%= render_picture '#{name}' %>"
|
46
49
|
when :textile
|
47
50
|
"!#{image.url}!".gsub(/(\?[0-9]{1,})/, '')
|
48
|
-
else
|
49
51
|
end
|
50
52
|
end
|
51
53
|
|
@@ -53,6 +55,10 @@ class Ecm::Pictures::Picture < ActiveRecord::Base
|
|
53
55
|
name
|
54
56
|
end
|
55
57
|
|
58
|
+
def human
|
59
|
+
name
|
60
|
+
end
|
61
|
+
|
56
62
|
private
|
57
63
|
|
58
64
|
def set_defaults
|
@@ -65,4 +71,3 @@ class Ecm::Pictures::Picture < ActiveRecord::Base
|
|
65
71
|
self.name = File.basename(image_file_name, File.extname(image_file_name)) unless image_file_name.nil?
|
66
72
|
end
|
67
73
|
end
|
68
|
-
|
@@ -3,8 +3,8 @@ class Ecm::Pictures::PictureGallery < ActiveRecord::Base
|
|
3
3
|
|
4
4
|
# associations
|
5
5
|
has_many :pictures,
|
6
|
-
:
|
7
|
-
|
6
|
+
dependent: :destroy # ,
|
7
|
+
# :order => 'position'
|
8
8
|
|
9
9
|
# attributes
|
10
10
|
attr_accessible :description,
|
@@ -13,43 +13,55 @@ class Ecm::Pictures::PictureGallery < ActiveRecord::Base
|
|
13
13
|
:name,
|
14
14
|
:pictures_attributes,
|
15
15
|
:position if respond_to?(:attr_accessible)
|
16
|
-
accepts_nested_attributes_for :pictures, :
|
16
|
+
accepts_nested_attributes_for :pictures, allow_destroy: true
|
17
17
|
|
18
18
|
# acts as list
|
19
19
|
acts_as_list
|
20
20
|
default_scope { order(:position) }
|
21
21
|
|
22
22
|
# acts as markup
|
23
|
-
acts_as_markup :
|
23
|
+
acts_as_markup language: :variable, columns: [:description]
|
24
24
|
|
25
25
|
# callbacks
|
26
26
|
after_initialize :set_defaults
|
27
27
|
|
28
28
|
# friendly id
|
29
29
|
extend FriendlyId
|
30
|
-
friendly_id :name, :
|
30
|
+
friendly_id :name, use: [:slugged, :finders]
|
31
|
+
|
32
|
+
# tagging
|
33
|
+
acts_as_taggable if respond_to?(:acts_as_taggable)
|
31
34
|
|
32
35
|
# validations
|
33
|
-
validates :markup_language, :
|
34
|
-
:
|
35
|
-
validates :name, :
|
36
|
-
:
|
36
|
+
validates :markup_language, presence: true,
|
37
|
+
inclusion: Ecm::Pictures::Configuration.markup_languages
|
38
|
+
validates :name, presence: true,
|
39
|
+
uniqueness: true
|
37
40
|
|
38
41
|
def display_code
|
39
|
-
"<%= render_picture_gallery '#{
|
42
|
+
"<%= render_picture_gallery '#{name}' %>"
|
43
|
+
end
|
44
|
+
|
45
|
+
def picture_images=(picture_images)
|
46
|
+
picture_images.each do |image|
|
47
|
+
pictures.build(image: image)
|
48
|
+
end
|
40
49
|
end
|
41
50
|
|
42
51
|
def to_s
|
43
52
|
name
|
44
53
|
end
|
45
54
|
|
55
|
+
def human
|
56
|
+
name
|
57
|
+
end
|
58
|
+
|
46
59
|
private
|
47
60
|
|
48
61
|
def set_defaults
|
49
62
|
if self.new_record?
|
50
|
-
self.link_images = true if
|
63
|
+
self.link_images = true if link_images.nil?
|
51
64
|
self.markup_language ||= Ecm::Pictures::Configuration.default_markup_language
|
52
65
|
end
|
53
66
|
end
|
54
67
|
end
|
55
|
-
|
@@ -3,6 +3,14 @@
|
|
3
3
|
<%= mu picture_gallery, :description %>
|
4
4
|
</div>
|
5
5
|
|
6
|
+
<% if picture_gallery.respond_to?(:tag_list) %>
|
7
|
+
<div class="tags bottom-margin-1">
|
8
|
+
<% picture_gallery.tag_list.each do |tag| %>
|
9
|
+
<span class="label label-default"><%= tag %></span>
|
10
|
+
<% end %>
|
11
|
+
</div>
|
12
|
+
<% end %>
|
13
|
+
|
6
14
|
<div class="picture-gallery-pictures row" data-target="#modal-gallery" data-toggle="modal-gallery">
|
7
15
|
<%= render picture_gallery.pictures %>
|
8
16
|
</div>
|
@@ -5,6 +5,13 @@
|
|
5
5
|
<% end %>
|
6
6
|
<div class="caption">
|
7
7
|
<h4><%= picture_gallery.name %></h4>
|
8
|
+
<% if picture_gallery.respond_to?(:tag_list) %>
|
9
|
+
<div class="tags bottom-margin-1">
|
10
|
+
<% picture_gallery.tag_list.each do |tag| %>
|
11
|
+
<span class="label label-default"><%= tag %></span>
|
12
|
+
<% end %>
|
13
|
+
</div>
|
14
|
+
<% end %>
|
8
15
|
<div class="truncate lines-3 bottom-margin-1"><%= mu(picture_gallery, :description) %></div>
|
9
16
|
<p><%= link_to t('ecm.pictures.actions.view'), picture_gallery, :class => 'btn btn-primary', :role => 'button' %></p>
|
10
17
|
</div>
|
@@ -2,6 +2,15 @@
|
|
2
2
|
<div class="col-xs-6 col-md-3">
|
3
3
|
<%= link_to("#{picture.image.url}#{File.extname(picture.image_file_name).downcase}", :'data-gallery' => "gallery", :class => 'thumbnail') do %>
|
4
4
|
<%= image_tag(picture.image.url(:default_thumb)) %>
|
5
|
+
<!--
|
6
|
+
<% if picture.respond_to?(:tag_list) && picture.tag_list.any? %>
|
7
|
+
<div class="tags">
|
8
|
+
<% picture.tag_list.each do |tag| %>
|
9
|
+
<span class="label label-default"><%= tag %></span>
|
10
|
+
<% end %>
|
11
|
+
</div>
|
12
|
+
<% end %>
|
13
|
+
-->
|
5
14
|
<% end %>
|
6
15
|
</div>
|
7
16
|
<%= Ecm::Pictures::Configuration.prevent_textile_rendering_in_html ? '</notextile>'.html_safe : '' %>
|
@@ -6,14 +6,14 @@ class CreateEcmPicturesPictureGalleries < ActiveRecord::Migration
|
|
6
6
|
t.boolean :link_images
|
7
7
|
|
8
8
|
# associations
|
9
|
-
t.integer :pictures_count, :
|
10
|
-
|
9
|
+
t.integer :pictures_count, default: 0, null: false
|
10
|
+
|
11
11
|
# acts as list
|
12
12
|
t.integer :position
|
13
13
|
|
14
14
|
# acts as markup
|
15
15
|
t.string :markup_language
|
16
|
-
|
16
|
+
|
17
17
|
# friendly id
|
18
18
|
t.string :slug
|
19
19
|
|
@@ -6,16 +6,16 @@ class CreateEcmPicturesPictures < ActiveRecord::Migration
|
|
6
6
|
|
7
7
|
# associations
|
8
8
|
t.references :picture_gallery
|
9
|
-
|
9
|
+
|
10
10
|
# acts as list
|
11
11
|
t.integer :position
|
12
12
|
|
13
13
|
# acts as markup
|
14
14
|
t.string :markup_language
|
15
|
-
|
15
|
+
|
16
16
|
# friendly id
|
17
17
|
t.string :slug
|
18
|
-
|
18
|
+
|
19
19
|
# paperclip
|
20
20
|
# t.attachment :image
|
21
21
|
t.string :image_file_name
|