lib/refinerycms-page-images.rb in refinerycms-page-images-0.9.9 vs lib/refinerycms-page-images.rb in refinerycms-page-images-1.0
- old
+ new
@@ -14,14 +14,25 @@
# accepts_nested_attributes_for MUST come before def images_attributes=
# this is because images_attributes= overrides accepts_nested_attributes_for.
accepts_nested_attributes_for :images, :allow_destroy => false
def images_attributes=(data)
- self.images.clear
- data.reject!{|i, d| d['id'].blank?}
- self.images += (0..(data.length-1)).collect { |i|
- (Image.find(data[i.to_s]['id'].to_i) rescue nil)
- }.compact
+ ImagePage.delete_all(:page_id => self.id)
+
+ (0..(data.length-1)).each do |i|
+ unless (image_data = data[i.to_s]).nil? or image_data['id'].blank?
+ image_page = self.image_pages.new(:image_id => image_data['id'].to_i, :position => i)
+ # Add caption if supported
+ if RefinerySetting.find_or_set(:page_images_captions, false)
+ image_page.caption = image_data['caption']
+ end
+ self.image_pages << image_page
+ end
+ end
+ end
+
+ def caption_for_image_index(index)
+ self.image_pages[index].try(:caption).presence || ""
end
end
end
config.after_initialize do