From bb988253d923c0f86f50e4810f9b409cd397e898 Mon Sep 17 00:00:00 2001 From: Brian 'Phunk' Gadoury Date: Wed, 31 Aug 2016 19:09:14 -0400 Subject: [PATCH] Add admin-only empty playlist display --- app/assets/stylesheets/playlists.css.scss.erb | 20 +++++++++++ app/controllers/playlists_controller.rb | 5 +++ app/models/ability.rb | 2 +- app/views/playlists/empty.html.erb | 36 +++++++++++++++++++ config/initializers/rails_admin.rb | 3 +- config/routes.rb | 1 + 6 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 app/views/playlists/empty.html.erb diff --git a/app/assets/stylesheets/playlists.css.scss.erb b/app/assets/stylesheets/playlists.css.scss.erb index 25afa91f9..356b87dd8 100644 --- a/app/assets/stylesheets/playlists.css.scss.erb +++ b/app/assets/stylesheets/playlists.css.scss.erb @@ -591,3 +591,23 @@ span.private_item { margin-top: 8px; } } + +#empty-playlists td { + padding: 5px; + border: 1px black solid; +} + +#empty-playlists { + width: 1050px; + .url { + width: 110px; + } + .user { + width: 110px; + } + .title { + width: 210px; + } + .description { + } +} diff --git a/app/controllers/playlists_controller.rb b/app/controllers/playlists_controller.rb index df8e7abcd..d4cb39c9d 100644 --- a/app/controllers/playlists_controller.rb +++ b/app/controllers/playlists_controller.rb @@ -46,6 +46,11 @@ def index common_index Playlist end + def empty + sql = "select p.* from playlists p left join playlist_items pi ON p.id = pi.playlist_id where pi.id is null order by p.id desc" + @playlists = Playlist.find_by_sql(sql).paginate(:page => params[:page], :per_page => 75) + end + def show return if redirect_bad_format diff --git a/app/models/ability.rb b/app/models/ability.rb index 4b6a16970..e3be29a81 100644 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -73,7 +73,7 @@ def initialize(user) can :access, :rails_admin can :dashboard, :all - can [:import, :submit_import], :playlists + can [:import, :submit_import, :empty], :playlists can [:index, :show, :export, :export_as, :export_unique, :bulk_delete, :destroy, :view_in_app, :edit_in_app, :edit, :update, :position_update, :update_notes, :delete_inherited_annotations, :save_readable_state], :all diff --git a/app/views/playlists/empty.html.erb b/app/views/playlists/empty.html.erb new file mode 100644 index 000000000..9be17a545 --- /dev/null +++ b/app/views/playlists/empty.html.erb @@ -0,0 +1,36 @@ +

Playlists with Zero Playlist Items - 1

+ +
+
+<%= will_paginate @playlists, container: false, :previous_label => 'Previous', :next_label => 'Next' %> + + + + + + + +<% @playlists.each do |playlist| %> + + + + + + +<% end %> +
IDUserTitleDescription
+ <%= link_to playlist_path(playlist), playlist_path(playlist), target: '_blank' %> + + <%= link_to( + raw("#{user_path(playlist.user)}
#{playlist.user.email_address}"), + user_path(playlist.user), + target: '_blank' + )%> +
+ <%= playlist.name %> + + <%= playlist.description %> +
+ +<%= will_paginate @playlists, container: false, :previous_label => 'Previous', :next_label => 'Next' %> + diff --git a/config/initializers/rails_admin.rb b/config/initializers/rails_admin.rb index c2bc14d5a..c3c3307b0 100644 --- a/config/initializers/rails_admin.rb +++ b/config/initializers/rails_admin.rb @@ -150,7 +150,8 @@ class EditInApp < RailsAdmin::Config::Actions::Base RailsAdmin.config do |config| config.navigation_static_links = { - 'Playlist Importer' => '/playlists/import' + 'Playlist Importer' => '/playlists/import', + 'Empty Playlists' => '/playlists/empty', } config.current_user_method do current_user diff --git a/config/routes.rb b/config/routes.rb index ffde0ea98..5a315711e 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -87,6 +87,7 @@ get 'playlist_lookup' get 'import' post 'submit_import' + get 'empty' end end resources :playlist_items do