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