summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app.rb17
-rw-r--r--views/admin/album.erb5
2 files changed, 10 insertions, 12 deletions
diff --git a/app.rb b/app.rb
index be88e37..f5c52d4 100644
--- a/app.rb
+++ b/app.rb
@@ -113,19 +113,21 @@ helpers do
sub_data = load_album(sub_dir)
next if sub_data['visible'] == false && !admin?
{
- name: name,
- title: sub_data['title'] || name,
- cover: album_cover(sub_dir, sub_data),
- dynamic: sub_data['cover_dynamic'] == true,
+ name: name,
+ title: sub_data['title'] || name,
+ cover: album_cover(sub_dir, sub_data),
}
end
data['sort_reverse'] ? albums.reverse : albums
end
def album_cover(dir, data)
- if (cover = data['cover'])
- return cover if File.exist?(File.join(dir, cover))
+ cover = data['cover']
+ if cover == '__random__'
+ candidates = Dir.children(dir).select { |n| (IMAGE_EXTS + VIDEO_EXTS).include?(File.extname(n).downcase.delete_prefix('.')) }
+ return candidates.sample
end
+ return cover if cover && File.exist?(File.join(dir, cover))
Dir.children(dir).sort.find { |n| (IMAGE_EXTS + VIDEO_EXTS).include?(File.extname(n).downcase.delete_prefix('.')) }
end
@@ -323,8 +325,7 @@ def save_edits(rel, dir)
data = load_album(dir)
data['title'] = blank_to_nil(params['album_title'])
data['description'] = blank_to_nil(params['album_description'])
- data['cover'] = blank_to_nil(params['album_cover'])
- data['cover_dynamic'] = params['album_cover_dynamic'] == '1'
+ data['cover'] = blank_to_nil(params['album_cover'])
data['sort_reverse'] = params['album_sort_reverse'] == '1'
data['visible'] = params['album_visible'] == '1'
diff --git a/views/admin/album.erb b/views/admin/album.erb
index f6b80d6..afe4da0 100644
--- a/views/admin/album.erb
+++ b/views/admin/album.erb
@@ -28,16 +28,13 @@
<label>Cover image
<select name="album_cover">
<option value="">— auto (first image) —</option>
+ <option value="__random__"<%= ' selected' if @data['cover'] == '__random__' %>>— random image —</option>
<% @files.each do |name| %>
<option value="<%= name %>"<%= ' selected' if @data['cover'] == name %>><%= name %></option>
<% end %>
</select>
</label>
<label class="checkbox-label">
- <input type="checkbox" name="album_cover_dynamic" value="1"<%= ' checked' if @data['cover_dynamic'] %>>
- Dynamic cover
- </label>
- <label class="checkbox-label">
<input type="checkbox" name="album_sort_reverse" value="1"<%= ' checked' if @data['sort_reverse'] %>>
Reverse sub-album order
</label>