diff options
| -rw-r--r-- | app.rb | 17 | ||||
| -rw-r--r-- | views/admin/album.erb | 5 |
2 files changed, 10 insertions, 12 deletions
@@ -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> |
