class ImageGallery2017

Attributes

index[R]

Public Class Methods

new(rsc, basepath='.', log: nil, imgxsl: '../../xsl/images.xsl', default_folder: '../../svg/folder.svg') click to toggle source
# File lib/imagegallery2017.rb, line 124
def initialize(rsc, basepath='.', log: nil, imgxsl: '../../xsl/images.xsl', 
               default_folder: '../../svg/folder.svg')

  log.info 'ImageGallery/initialize: active' if log
  @rsc, @basepath = rsc, basepath 
  @index = IndexGallery.new rsc, filepath: @basepath, log: log
  @gallery = {}

  @default_folder, @log, @imgxsl = default_folder, log, imgxsl
  
  # load all the folders
  
  log.info 'ImageGallery/initialize: loading galleries' if log
  @index.all.each do |x|

    if x.folder.length > 0 then
      @gallery[x.folder] = Gallery.new rsc, 
          filepath: basepath, folder: x.folder, log: log
      log.info 'ImageGallery/initialize: loaded ' + x.folder if log
    end
    
  end

end

Public Instance Methods

add_image(upload_obj, folder=nil) click to toggle source
# File lib/imagegallery2017.rb, line 149
def add_image(upload_obj, folder=nil)
  
  @log.info 'ImageGallery/add_image: active; folder: ' + folder.to_s if @log
  
  if folder then 
    
    g = @gallery[folder]
    preview_file = g.add_image upload_obj
    
    rx = @index.find_by_folder folder
    rx.preview = preview_file
    rx.imgcount = g.all.length
    
    @index.save
    
  else
    @index.add_image upload_obj
  end
  
  @index.render
  
end
browse(folder) click to toggle source
# File lib/imagegallery2017.rb, line 172
def browse(folder)
  (folder ? @gallery[folder] : @index).render
end
create_folder(title) click to toggle source
# File lib/imagegallery2017.rb, line 198
def create_folder(title)    


  folder = title.downcase.gsub(/\W/,'-').gsub(/-{2,}/,'-').gsub(/^-|-$/,'')
  
  if @log then
    @log.info "ImageGallery/create_folder: title: %s basepath: %s" % 
        [title, @basepath.inspect]
  end
  fg = Gallery.new @rsc, filepath: @basepath, xslfile: @imgxsl, 
      folder: folder, log: @log
  fg.title = title
  fg.summary[:folder] = folder
  fg.save
  
  @log.info 'ImageGallery/create_folder: saved' if @log
  
  @gallery[folder] = fg
  @log.info 'ImageGallery/create_folder: folder: ' + folder.inspect if @log    
  @index.create preview: @default_folder, folder: folder, title: title
  @index.save
  @index.render
  
end
delete_folder(folder) click to toggle source
# File lib/imagegallery2017.rb, line 223
def delete_folder(folder)    

  @gallery.delete folder
  
  rx = @index.find_by_folder folder
  rx.delete
  @index.save
  @index.render
  
end
delete_image(id, folder=nil) click to toggle source
# File lib/imagegallery2017.rb, line 176
def delete_image(id, folder=nil)
  
  if folder then 
    
    g = @gallery[folder]
    g.delete_image id
    preview_file = g.all.any? ? g.all.first.preview : @default_folder
    
    rx = @index.find_by_folder folder
    rx.preview = preview_file
    rx.imgcount = g.all.length
    
    @index.save
    
  else
    @index.delete_image id
  end
  
  @index.render
  
end