refinerycms-photo-gallery 0.0.2.dev → 0.1.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.
- data/Changelog.md +18 -0
- data/README.md +40 -22
- data/Rakefile +20 -0
- data/app/assets/javascripts/refinery/photo_gallery/admin/{photo_gallery.js → photo_gallery.js.erb} +26 -1
- data/app/assets/javascripts/refinery/photo_gallery/photo_gallery.js +28 -0
- data/app/controllers/refinery/photo_gallery/admin/albums_controller.rb +2 -1
- data/app/controllers/refinery/photo_gallery/admin/photos_controller.rb +2 -0
- data/app/helpers/refinery/photo_gallery/admin/photos_helper.rb +4 -2
- data/app/helpers/refinery/photo_gallery/photo_gallery_helper.rb +1 -50
- data/app/models/refinery/album_page.rb +11 -0
- data/app/models/refinery/photo_gallery/album.rb +7 -14
- data/app/models/refinery/photo_gallery/collection.rb +3 -2
- data/app/models/refinery/photo_gallery/photo.rb +7 -5
- data/app/sweepers/refinery/photo_gallery/admin/album_sweeper.rb +33 -0
- data/app/sweepers/refinery/photo_gallery/admin/photo_sweeper.rb +27 -0
- data/app/uploaders/refinery/photo_gallery/admin/file_uploader.rb +20 -29
- data/app/views/refinery/admin/pages/tabs/_form.html.erb +13 -0
- data/app/views/refinery/admin/pages/tabs/_photo_gallery.html.erb +12 -0
- data/app/views/refinery/admin/pages/tabs/_photo_pages_bar.html.erb +4 -0
- data/app/views/refinery/photo_gallery/admin/_submenu.html.erb +43 -36
- data/app/views/refinery/photo_gallery/admin/albums/index.html.erb +2 -2
- data/app/views/refinery/photo_gallery/admin/photos/_form_fields.html.erb +1 -1
- data/app/views/refinery/photo_gallery/admin/photos/upload.html.erb +2 -13
- data/app/views/refinery/photo_gallery/albums/_photos.html.erb +20 -0
- data/app/views/refinery/photo_gallery/albums/_photos.js.erb +5 -0
- data/app/views/refinery/photo_gallery/albums/_show.html.erb +18 -0
- data/config/locales/en.yml +45 -27
- data/config/locales/sk.yml +47 -27
- data/config/routes.rb +1 -11
- data/db/migrate/20120805222126_create_album_pages.rb +19 -0
- data/lib/generators/refinery/templates/config/initializers/refinery/photo_gallery.rb.erb +3 -7
- data/lib/refinery/photo_gallery.rb +5 -3
- data/lib/refinery/photo_gallery/configuration.rb +7 -9
- data/lib/refinery/photo_gallery/engine.rb +17 -2
- data/lib/refinery/photo_gallery/extensions/pages_controller_extension.rb +30 -0
- data/lib/refinery/photo_gallery/extensions/pages_extension.rb +50 -0
- data/lib/refinery/photo_gallery/version.rb +2 -2
- data/{refinerycms-balder-photo-gallery.gemspec → refinerycms-photo-gallery.gemspec} +0 -0
- data/screenshots/13_pages.png +0 -0
- metadata +23 -16
- data/app/controllers/refinery/photo_gallery/albums_controller.rb +0 -22
- data/app/controllers/refinery/photo_gallery/collections_controller.rb +0 -28
- data/app/middleware/refinery/photo_gallery/admin/flash_session_cookie_middleware.rb +0 -27
- data/app/views/refinery/photo_gallery/albums/show.html.erb +0 -34
- data/app/views/refinery/photo_gallery/collections/index.html.erb +0 -9
- data/app/views/refinery/photo_gallery/collections/show.html.erb +0 -19
- data/app/views/refinery/photo_gallery/shared/_layout.html.erb +0 -22
- data/app/views/refinery/photo_gallery/shared/_submenu.html.erb +0 -4
- data/config/initializers/session_store.rb +0 -10
data/Changelog.md
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
## 0.1.0 [24 September 2012]
|
2
|
+
* drop collection thumbnail version
|
3
|
+
* support for old fancybox v1.3
|
4
|
+
* auto photo orientation, by default
|
5
|
+
* added admin tab to pages, enable attach photo album to page
|
6
|
+
* added fragment caching for photos on frontend
|
7
|
+
* added ajaxified pagination with history.pushState for photos on frontend
|
8
|
+
* taking filename before uploading as photo title (fixes problems with filenames with diacritic - it took filename after carrierwave preprocessing as photo title - with broken diacritic)
|
9
|
+
* fixed backend searching
|
10
|
+
|
11
|
+
## 0.0.3.dev [16 August 2012]
|
12
|
+
* bugfixes
|
13
|
+
|
14
|
+
## 0.0.2.dev [11 August 2012]
|
15
|
+
* bugfixes
|
16
|
+
|
17
|
+
## 0.0.1.dev [8 August 2012]
|
18
|
+
* initial commit
|
data/README.md
CHANGED
@@ -6,23 +6,22 @@ __Photo gallery engine for Refinery CMS.__
|
|
6
6
|
|
7
7
|
This version of refinerycms-photo-gallery supports Rails 3.2.x and Refinery CMS ~> 2.0.3.
|
8
8
|
|
9
|
-
Client side image resizing with Plupload is possible on Firefox 3.5+ (with fixed quality) and Chrome.
|
10
|
-
Safari doesn't support direct data access to the selected files. Opera 12.00 + supports drag&drop and also client side image resizing.
|
11
|
-
|
12
|
-
|
13
9
|
## Features
|
14
10
|
|
15
11
|
* Multiple photo uploading with [Plupload](http://www.plupload.com/) 1.5.4
|
16
|
-
*
|
12
|
+
* Currently supported HTML5 runtime, flash implementation is broken
|
17
13
|
* Client side photo resizing to do faster uploading on slow connections
|
18
14
|
* Server side resizing with Carrierwave
|
15
|
+
* Attach album to page. One album can be attached to many pages.
|
19
16
|
* Grouping albums to collections. Album can be placed in one or more collections.
|
20
|
-
*
|
17
|
+
* Ajaxified photo editation during uploading
|
21
18
|
* Reading EXIF records from file - GPS latitude/longitude, photo title, photo description (In Linux you can put EXIF data using [digiKam](www.digikam.org/) )
|
22
19
|
* Multiple photo editing at once
|
23
|
-
* Fully configurable,
|
20
|
+
* Fully configurable, searchable
|
24
21
|
* Using [Fancybox](http://fancyapps.com/fancybox/) 2.0.6 for frontend image slideshow. Read Fancybox license before you
|
25
22
|
use it on profit websites.
|
23
|
+
* Fragment caching on frontend
|
24
|
+
* Ajaxified pagination with history.pushState on frontend
|
26
25
|
|
27
26
|
## Screenshots
|
28
27
|
|
@@ -53,11 +52,10 @@ TODO
|
|
53
52
|
Gem is fully translated to slovak and english. Plupload is translated to 24 languages. You can add your own to
|
54
53
|
photo_gallery/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n and enable it in config.plupload_locale
|
55
54
|
|
55
|
+
## Browser support
|
56
|
+
Client side image resizing with Plupload is possible on Firefox 3.5+ (with fixed quality) and Chrome.
|
57
|
+
Safari doesn't support direct data access to the selected files. Opera 12.00 + supports drag&drop and also client side image resizing.
|
56
58
|
|
57
|
-
## Working status
|
58
|
-
|
59
|
-
This is development snapshot. It is not suitable to production now, I'm going to fix bug list and todo list and then I will create stable branch/version.
|
60
|
-
But gem works, so if you want, feel free to try it and contribute :).
|
61
59
|
|
62
60
|
## Installation
|
63
61
|
|
@@ -75,7 +73,7 @@ Instructions for installation you can find under [www.sno.phy.queensu.ca/~phil/e
|
|
75
73
|
Open up your ``Gemfile`` and add at the bottom this line:
|
76
74
|
|
77
75
|
```ruby
|
78
|
-
gem 'refinerycms-photo-gallery', '~> 0.
|
76
|
+
gem 'refinerycms-photo-gallery', '~> 0.1.0', :git => 'git://github.com/Matho/refinerycms-photo-gallery.git', :branch=>'0-1-stable'
|
79
77
|
```
|
80
78
|
|
81
79
|
Now, run
|
@@ -104,6 +102,8 @@ rake db:seed
|
|
104
102
|
|
105
103
|
You can configure gem in ``your_app_name/config/initializers/refinery/photo_gallery.rb``
|
106
104
|
|
105
|
+
If you want to use ajaxy pagination, copy ``app/assets/javascripts/refinery/photo_gallery/photo_gallery.js`` to your app's asset and add to manifest.
|
106
|
+
|
107
107
|
Check, if you have ``jquery.js`` included in your backend.
|
108
108
|
|
109
109
|
If you want to use Fancybox in frontend, copy ``photo_gallery/app/assets/images/refinery/photo_gallery/fancybox``, ``photo_gallery/app/assets/javascripts/refinery/photo_gallery/fancybox``, ``photo_gallery/app/assets/refinery/photo_gallery/stylesheets/fancybox`` to your
|
@@ -154,6 +154,30 @@ in your app, override it using rake refinery:override command and add this line
|
|
154
154
|
</script>
|
155
155
|
```
|
156
156
|
|
157
|
+
If you want to use Fancybox 1.3, use this javascipt to initialize:
|
158
|
+
```javascript
|
159
|
+
<script type="text/javascript">
|
160
|
+
$(document).ready(function() {
|
161
|
+
var load_fancybox = function loadFancybox() {
|
162
|
+
$("a[rel=group]").fancybox({
|
163
|
+
'transitionIn' : 'none',
|
164
|
+
'transitionOut' : 'none',
|
165
|
+
'titlePosition' : 'over',
|
166
|
+
'titleFormat' : function(title, currentArray, currentIndex, currentOpts) {
|
167
|
+
return '<span id="fancybox-title-over">Image ' + (currentIndex + 1) + ' / ' + currentArray.length + (title.length ? ' ' + title : '') + '</span>';
|
168
|
+
}
|
169
|
+
});
|
170
|
+
};
|
171
|
+
load_fancybox();
|
172
|
+
|
173
|
+
$("#photo_gallery").on("gallery_loaded", function() {
|
174
|
+
load_fancybox();
|
175
|
+
});
|
176
|
+
|
177
|
+
});
|
178
|
+
</script>
|
179
|
+
```
|
180
|
+
|
157
181
|
Before production, don't forget to precompile assets by:
|
158
182
|
|
159
183
|
```ruby
|
@@ -185,17 +209,13 @@ Remove gem from Gemfile
|
|
185
209
|
|
186
210
|
## Todo list
|
187
211
|
|
188
|
-
* fix support for refinerycms-search gem in backend/frontend
|
189
|
-
* add support for amazon S3 storage
|
190
212
|
* create app tests
|
191
|
-
* repair problems with Flash runtime and test gears, silverlight and HTML4 runtime
|
192
213
|
* show live links in admin
|
193
|
-
*
|
194
|
-
* set albums public/not public.
|
214
|
+
* create pop-up window to upload photos from pages area, like page-images
|
195
215
|
* add checkboxes to delete multiple/all photos in album
|
196
216
|
* stop uploading
|
217
|
+
* add support for amazon S3 storage
|
197
218
|
* travis, codeclimate
|
198
|
-
* push to rubygem
|
199
219
|
|
200
220
|
|
201
221
|
## Known bugs
|
@@ -208,11 +228,9 @@ file extensions to upload queue. ( But server side validation reject these files
|
|
208
228
|
|
209
229
|
## Road map ?
|
210
230
|
|
211
|
-
* album/photo tags using acts_as_taggable
|
212
|
-
* show photo location on google maps
|
213
|
-
* caching ?
|
214
231
|
* GPS editing in degrees,minute,seconds format
|
215
|
-
* album
|
232
|
+
* album/photo tags using acts_as_taggable ?
|
233
|
+
* show photo location on google maps ?
|
216
234
|
|
217
235
|
## Testing
|
218
236
|
|
data/Rakefile
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
#!/usr/bin/env rake
|
2
|
+
begin
|
3
|
+
require 'bundler/setup'
|
4
|
+
rescue LoadError
|
5
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
6
|
+
end
|
7
|
+
|
8
|
+
ENGINE_PATH = File.dirname(__FILE__)
|
9
|
+
APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
|
10
|
+
|
11
|
+
if File.exists?(APP_RAKEFILE)
|
12
|
+
load 'rails/tasks/engine.rake'
|
13
|
+
end
|
14
|
+
|
15
|
+
require "refinerycms-testing"
|
16
|
+
Refinery::Testing::Railtie.load_tasks
|
17
|
+
Refinery::Testing::Railtie.load_dummy_tasks(ENGINE_PATH)
|
18
|
+
|
19
|
+
load File.expand_path('../tasks/testing.rake', __FILE__)
|
20
|
+
load File.expand_path('../tasks/rspec.rake', __FILE__)
|
data/app/assets/javascripts/refinery/photo_gallery/admin/{photo_gallery.js → photo_gallery.js.erb}
RENAMED
@@ -1,3 +1,5 @@
|
|
1
|
+
<%# encoding: utf-8 %>
|
2
|
+
|
1
3
|
$(function() {
|
2
4
|
$('form#form_edit_photos').on("click", ".form-photo-field .form-actions-right .confirm-delete", function() {
|
3
5
|
if ( confirm( $(this).attr('data-confirm') ) ) {
|
@@ -23,6 +25,29 @@ $(function() {
|
|
23
25
|
}, 250);
|
24
26
|
});
|
25
27
|
|
26
|
-
$(".chzn-select").chosen(
|
28
|
+
$(".chzn-select").chosen(
|
29
|
+
{
|
30
|
+
no_results_text: "<%= I18n.t('chosen.no_results') %>"
|
31
|
+
}
|
32
|
+
);
|
33
|
+
|
34
|
+
|
35
|
+
$(".chzn-select-deselect").chosen({
|
36
|
+
no_results_text: "<%= I18n.t('chosen.no_results') %>",
|
37
|
+
allow_single_deselect:true}
|
38
|
+
);
|
39
|
+
|
40
|
+
|
41
|
+
$('#photo_gallery_wym_editation').on("click", ".form-actions .button", function() {
|
42
|
+
|
43
|
+
$.ajax({
|
44
|
+
type: "POST",
|
45
|
+
dataType: 'script',
|
46
|
+
data: { '_method': $(this).attr('data-method') },
|
47
|
+
url: this.href
|
48
|
+
});
|
49
|
+
|
50
|
+
return false;
|
51
|
+
});
|
27
52
|
|
28
53
|
});
|
@@ -0,0 +1,28 @@
|
|
1
|
+
if (history && history.pushState) {
|
2
|
+
function slide_to(target){
|
3
|
+
var scrollToPosition = $(target).offset().top;
|
4
|
+
console.log(scrollToPosition);
|
5
|
+
|
6
|
+
$('html').animate({ 'scrollTop': scrollToPosition }, 600, function(){
|
7
|
+
//window.location.hash = "" + target;
|
8
|
+
// This hash change will jump the page to the top of the div with the same id
|
9
|
+
// so we need to force the page to back to the end of the animation
|
10
|
+
$('html').animate({ 'scrollTop': scrollToPosition }, 0);
|
11
|
+
});
|
12
|
+
|
13
|
+
}
|
14
|
+
|
15
|
+
$(document).ready(function(){
|
16
|
+
|
17
|
+
$('#photo_gallery').on("click", ".pagination a[href]", function() {
|
18
|
+
slide_to($('#photo_gallery'));
|
19
|
+
$.getScript(this.href);
|
20
|
+
history.pushState(null,"",this.href);
|
21
|
+
return false;
|
22
|
+
});
|
23
|
+
|
24
|
+
$(window).bind("popstate", function() {
|
25
|
+
$.getScript(location.href);
|
26
|
+
});
|
27
|
+
});
|
28
|
+
}
|
@@ -2,7 +2,7 @@ module Refinery
|
|
2
2
|
module PhotoGallery
|
3
3
|
module Admin
|
4
4
|
class AlbumsController < ::Refinery::AdminController
|
5
|
-
|
5
|
+
cache_sweeper AlbumSweeper
|
6
6
|
crudify :'refinery/photo_gallery/album', :order => "created_at DESC" , :xhr_paging => true
|
7
7
|
|
8
8
|
def create
|
@@ -17,6 +17,7 @@ module Refinery
|
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
+
|
20
21
|
end
|
21
22
|
end
|
22
23
|
end
|
@@ -6,6 +6,7 @@ module Refinery
|
|
6
6
|
class PhotosController < ::Refinery::AdminController
|
7
7
|
include PhotosHelper
|
8
8
|
helper :"refinery/photo_gallery/admin/photos"
|
9
|
+
cache_sweeper PhotoSweeper
|
9
10
|
|
10
11
|
#TODO delete update method from routes
|
11
12
|
#TODO delete edit action from routes
|
@@ -19,6 +20,7 @@ module Refinery
|
|
19
20
|
def create
|
20
21
|
@photo = Photo.new(params[:photo])
|
21
22
|
@photo.file = params[:file]
|
23
|
+
@photo.title = get_filename_part(params[:name])
|
22
24
|
|
23
25
|
if @photo.save!
|
24
26
|
render :partial=> 'form_fields', :locals => {:photo => @photo }
|
@@ -2,57 +2,8 @@ module Refinery
|
|
2
2
|
module PhotoGallery
|
3
3
|
module PhotoGalleryHelper
|
4
4
|
|
5
|
-
def message_albums_length_is_zero
|
6
|
-
if @albums.length == 0
|
7
|
-
t('.no_albums')
|
8
|
-
end
|
9
|
-
end
|
10
5
|
|
11
|
-
def message_photos_length_is_zero
|
12
|
-
if @photos.length == 0
|
13
|
-
t('.no_photos')
|
14
|
-
end
|
15
|
-
end
|
16
6
|
|
17
|
-
def message_collections_length_is_zero
|
18
|
-
if @collections.length == 0
|
19
|
-
t('.no_collections')
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
def generate_photo_gallery_menu( collections, albums, options = {} )
|
26
|
-
content_tag(:ul, {}, options[:ul] ) do
|
27
|
-
collections.each do |collection|
|
28
|
-
|
29
|
-
if params[:collection_id].present? && params[:id].present? # in albums controller
|
30
|
-
collection_id = params[:collection_id]
|
31
|
-
elsif params[:id].present? #in collection controller
|
32
|
-
collection_id = params[:id]
|
33
|
-
else
|
34
|
-
collection_id = 0 #only ensure initialization
|
35
|
-
end
|
36
|
-
|
37
|
-
concat(content_tag(:li, {}, options[:li]) do
|
38
|
-
concat(link_to collection.title, refinery.photo_gallery_collection_path(collection))
|
39
|
-
|
40
|
-
# display albums of active collection
|
41
|
-
concat(content_tag(:ul, {}, options[:ul] ) do
|
42
|
-
if collection_id == collection.id.to_s
|
43
|
-
albums.each do |album|
|
44
|
-
concat(content_tag(:li, {}, options[:li]) do
|
45
|
-
link_to album.title, refinery.photo_gallery_collection_album_path({:id=> album.id, :collection_id => collection_id})
|
46
|
-
end )
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end )
|
50
|
-
|
51
|
-
|
52
|
-
end)
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
7
|
end
|
57
8
|
end
|
58
|
-
end
|
9
|
+
end
|
@@ -5,6 +5,7 @@ module Refinery
|
|
5
5
|
has_many :collection_albums , :dependent => :destroy
|
6
6
|
has_many :collections, :through => :collection_albums
|
7
7
|
|
8
|
+
|
8
9
|
before_validation :set_path
|
9
10
|
validates :title, :presence => true
|
10
11
|
validates :path, :presence => true, :uniqueness => true
|
@@ -15,26 +16,18 @@ module Refinery
|
|
15
16
|
|
16
17
|
self.per_page = Refinery::PhotoGallery.albums_per_page
|
17
18
|
|
19
|
+
|
20
|
+
def self.with_collection_id
|
21
|
+
select("refinery_photo_gallery_albums.*, refinery_photo_gallery_collection_albums.collection_id ").joins(:collection_albums)
|
22
|
+
end
|
23
|
+
|
18
24
|
scope :find_by_collection_id, lambda {|collection_id|
|
19
|
-
|
25
|
+
select("refinery_photo_gallery_albums.*").
|
20
26
|
joins(:collection_albums).
|
21
27
|
where("refinery_photo_gallery_collection_albums.collection_id = ?
|
22
28
|
", collection_id).
|
23
29
|
order('created_at DESC, title ASC')
|
24
30
|
}
|
25
|
-
=begin
|
26
|
-
#TODO marked photo as photo album preview
|
27
|
-
scope :find_by_collection_id, lambda {|collection_id|
|
28
|
-
select("refinery_photo_gallery_albums.*, refinery_photo_gallery_photos.file").
|
29
|
-
joins(:collection_albums, :photos).
|
30
|
-
where("refinery_photo_gallery_collection_albums.collection_id = ? AND
|
31
|
-
refinery_photo_gallery_photos.album_id = refinery_photo_gallery_albums.id AND
|
32
|
-
refinery_photo_gallery_photos.preview_image = true
|
33
|
-
", collection_id).
|
34
|
-
order('created_at DESC, title ASC')
|
35
|
-
}
|
36
|
-
=end
|
37
|
-
|
38
31
|
|
39
32
|
def collection_ids
|
40
33
|
Refinery::PhotoGallery::CollectionAlbum.select('collection_id').where("album_id = ?", self.id ).map{|ca| ca.collection_id }
|
@@ -13,11 +13,12 @@ module Refinery
|
|
13
13
|
|
14
14
|
self.per_page = Refinery::PhotoGallery.collections_per_page
|
15
15
|
|
16
|
-
|
16
|
+
def self.has_albums
|
17
17
|
select("refinery_photo_gallery_collections.*").uniq.
|
18
18
|
joins(:collection_albums).
|
19
19
|
order('created_at DESC, title ASC')
|
20
|
-
|
20
|
+
end
|
21
|
+
|
21
22
|
=begin
|
22
23
|
def to_param
|
23
24
|
"#{id}-#{title.parameterize}"
|
@@ -27,22 +27,23 @@ module Refinery
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def exif_read
|
30
|
-
|
30
|
+
begin
|
31
31
|
photo = MiniExiftool.new(self.file.file.file, {:numerical=> true})
|
32
32
|
|
33
|
+
self.title = photo.DocumentName if !photo.DocumentName.nil?
|
33
34
|
self.longitude = photo.GPSLongitude if self.longitude.nil?
|
34
35
|
self.latitude = photo.GPSLatitude if self.latitude.nil?
|
35
|
-
self.title = photo.DocumentName if photo.DocumentName.present?
|
36
36
|
self.description = photo.ImageDescription if self.description.nil? && photo.ImageDescription != 'Exif_JPEG_PICTURE'
|
37
|
-
|
37
|
+
# TODO read keywords from exif
|
38
38
|
rescue
|
39
39
|
p "ERROR raised exception during MiniExiftool reading"
|
40
|
-
|
40
|
+
|
41
|
+
ensure
|
41
42
|
self.description = "" if self.description.nil? # Because description is concating in helpers, this can't be null
|
42
43
|
end
|
43
|
-
end
|
44
44
|
end
|
45
45
|
|
46
|
+
|
46
47
|
=begin
|
47
48
|
#TODO add checkbox to check if it should be writed to exif, globally on/off writing
|
48
49
|
def exif_write
|
@@ -60,3 +61,4 @@ module Refinery
|
|
60
61
|
end
|
61
62
|
end
|
62
63
|
end
|
64
|
+
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Refinery
|
2
|
+
module PhotoGallery
|
3
|
+
module Admin
|
4
|
+
class AlbumSweeper < ActionController::Caching::Sweeper
|
5
|
+
observe Album
|
6
|
+
|
7
|
+
|
8
|
+
def sweep_album(album)
|
9
|
+
expire_fragment("refinery/photo_gallery/albums/#{album.id}")
|
10
|
+
end
|
11
|
+
|
12
|
+
def sweep_album_with_photos(album)
|
13
|
+
sweep_album(album)
|
14
|
+
|
15
|
+
# only file store supports regexp
|
16
|
+
begin
|
17
|
+
# This is slow, but I was unable to get the actual cache folder path.
|
18
|
+
expire_fragment( %r{refinery/photo_gallery/albums/#{photo.album_id}/page/\d*})
|
19
|
+
rescue NotImplementedError
|
20
|
+
Rails.cache.clear
|
21
|
+
warn "**** [REFINERY PHOTO GALLERY] The cache store you are using is not compatible with this engine. Only file_store is supported. Clearing entire cache instead ***"
|
22
|
+
ensure
|
23
|
+
return true
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
alias_method :after_create, :sweep_album
|
28
|
+
alias_method :after_update, :sweep_album
|
29
|
+
alias_method :after_destroy, :sweep_album_with_photos
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|