Class: ImageGallery2017

Inherits:
Object
  • Object
show all
Defined in:
lib/imagegallery2017.rb

Defined Under Namespace

Classes: Gallery, IndexGallery

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(rsc, basepath = '.', log: nil, imgxsl: '../../xsl/images.xsl', default_folder: '../../svg/folder.svg') ⇒ ImageGallery2017

Returns a new instance of ImageGallery2017.



124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# 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
  @basepath = 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

Instance Attribute Details

Returns the value of attribute gallery.



122
123
124
# File 'lib/imagegallery2017.rb', line 122

def gallery
  @gallery
end

#indexObject (readonly)

Returns the value of attribute index.



122
123
124
# File 'lib/imagegallery2017.rb', line 122

def index
  @index
end

Instance Method Details

#add_image(upload_obj, folder = nil) ⇒ Object



149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
# 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) ⇒ Object



172
173
174
# File 'lib/imagegallery2017.rb', line 172

def browse(folder)
  (folder ? @gallery[folder] : @index).render
end

#create_folder(title) ⇒ Object



198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
# 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) ⇒ Object



223
224
225
226
227
228
229
230
231
232
# 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) ⇒ Object



176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
# 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