diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb index c7cbd62..726b31c 100644 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb @@ -11,6 +11,9 @@ class AdminController < ApplicationController def integration end + def moderate_list + end + def logs logs = Log diff --git a/app/controllers/my_controller.rb b/app/controllers/my_controller.rb index 09d3ceb..d72fce2 100644 --- a/app/controllers/my_controller.rb +++ b/app/controllers/my_controller.rb @@ -13,6 +13,29 @@ class MyController < ApplicationController 'screenshots.id' => @current_users_screenshots) end + def moderate_list + # First package with pending screenshots + @packages = Package.joins(:screenshots).where('screenshots.approved=false or screenshots.markedfordelete=true').distinct(:name) + + # # # List of screenshots that were reported (to be removed) + # # @reported_screenshots = Screenshot.where(markedfordelete: true) + # # # First package with reported screenshots + # # @reported_package = Package.joins(:screenshots).where('screenshots.markedfordelete=true').distinct(:name).first + + # if @package + # # List of screenshots to be moderated + # @pending_screenshots = @package.screenshots_pending + # # Number of screenshots that were already moderated (during this session) + # session[:already_moderated] ||= 0 + # @moderated_screenshots = session[:already_moderated] + + # # BUG: calculation is wrong when pending and reported screenshots are in the queue + # # Percentage of already moderated screenshots + # @percent_moderated = 100 * (@moderated_screenshots+1) / (@moderated_screenshots + @pending_screenshots.count) + # # @percent_moderated = 100 * (@moderated_screenshots+1) / (@moderated_screenshots + @pending_screenshots.count + @reported_screenshots.count) + # end + end + # def welcome # end diff --git a/app/models/screenshot.rb b/app/models/screenshot.rb index c8189b8..11d8a29 100644 --- a/app/models/screenshot.rb +++ b/app/models/screenshot.rb @@ -71,15 +71,15 @@ class Screenshot < ApplicationRecord end # Brief text describing the status of this screenshots (for admins) - # def adminstatus - # if self.markedfordelete - # "Removal requested > #{self.delete_reason}" - # elsif self.approved - # 'Public' - # else - # fa_icon('hourglass') + 'Waiting for approval' - # end - # end + def adminstatus + if self.markedfordelete + "Removal requested > #{self.delete_reason}" + elsif self.approved + 'Public' + else + fa_icon('hourglass') + 'Waiting for approval' + end + end # Publish a screenshot from the moderation queue def approve! diff --git a/app/views/my/_menu.slim b/app/views/my/_menu.slim index 45e8042..5eb9c1e 100644 --- a/app/views/my/_menu.slim +++ b/app/views/my/_menu.slim @@ -3,6 +3,9 @@ li class=('active' if action_name=='profile') = link_to my_profile_path = fa_icon 'user-o 2x', text: 'Myself' + li class=('active' if action_name=='moderate_list') + = link_to moderate_list_path + = fa_icon 'check 2x', text: 'Moderate' // Add link if user has uploaded screenshots - if @current_users_screenshots and @current_users_screenshots.any? li class=('active' if controller_name=='my' and action_name=='uploads') diff --git a/config/routes.rb b/config/routes.rb index 061ba04..e3c3467 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -22,6 +22,7 @@ Rails.application.routes.draw do get 'my/profile' get 'my/uploads' get 'my/welcome' + get 'my/moderate_list', as: :moderate_list get 'package/:name' => 'packages#details', as: :package, name: /[^\/]+/ get 'package_reviews/:name' => 'packages#reviews', as: :package_reviews, name: /[^\/]+/ get 'upload', to: redirect('/packages'), as: :upload_legacy # legacy upload form