From 3b1d01370ad805e56c89b4f85e39eb1f24bf2dd4 Mon Sep 17 00:00:00 2001 From: albert Date: Fri, 21 Oct 2011 17:56:02 -0400 Subject: [PATCH] fixes #145: add test function for janitor trials --- app/assets/javascripts/janitor_trials.js | 27 ++++++++++++++++++++ app/controllers/janitor_trials_controller.rb | 4 +++ app/logical/janitor_trial_tester.rb | 21 +++++++++++++++ app/views/janitor_trials/new.html.erb | 3 +++ app/views/janitor_trials/test.json.erb | 1 + config/routes.rb | 3 +++ 6 files changed, 59 insertions(+) create mode 100644 app/assets/javascripts/janitor_trials.js create mode 100644 app/logical/janitor_trial_tester.rb create mode 100644 app/views/janitor_trials/test.json.erb diff --git a/app/assets/javascripts/janitor_trials.js b/app/assets/javascripts/janitor_trials.js new file mode 100644 index 000000000..0fe1b004a --- /dev/null +++ b/app/assets/javascripts/janitor_trials.js @@ -0,0 +1,27 @@ +(function() { + Danbooru.JanitorTrials = {}; + + Danbooru.JanitorTrials.initialize_all = function() { + $("#c-janitor-trials input[value=Test]").click(function(e) { + $.ajax({ + type: "get", + url: "/janitor_trials/test.json", + data: { + janitor_trial: { + user_name: $("#janitor_trial_user_name").val() + } + }, + success: function(data) { + $("#test-results").html(data); + } + }); + + e.preventDefault(); + }); + } +})(); + + +$(document).ready(function() { + Danbooru.JanitorTrials.initialize_all(); +}); diff --git a/app/controllers/janitor_trials_controller.rb b/app/controllers/janitor_trials_controller.rb index 73a234cd7..db38f3a2b 100644 --- a/app/controllers/janitor_trials_controller.rb +++ b/app/controllers/janitor_trials_controller.rb @@ -37,4 +37,8 @@ class JanitorTrialsController < ApplicationController format.js end end + + def test + @tester = JanitorTrialTester.new(params[:janitor_trial][:user_name]) + end end diff --git a/app/logical/janitor_trial_tester.rb b/app/logical/janitor_trial_tester.rb new file mode 100644 index 000000000..f2254a5be --- /dev/null +++ b/app/logical/janitor_trial_tester.rb @@ -0,0 +1,21 @@ +class JanitorTrialTester + attr_reader :user + + def initialize(user_name) + @user = User.find_by_name(user_name) + end + + def test + if user.nil? + "User not found" + elsif user.created_at > 1.month.ago + "User signed up within the past month" + elsif user.favorites.count < 100 + "User has fewer than 100 favorites" + elsif user.feedback.negative.count > 0 + "User has negative feedback" + else + "No issues found" + end + end +end diff --git a/app/views/janitor_trials/new.html.erb b/app/views/janitor_trials/new.html.erb index a915bcffb..240fbc80b 100644 --- a/app/views/janitor_trials/new.html.erb +++ b/app/views/janitor_trials/new.html.erb @@ -5,7 +5,10 @@ <%= simple_form_for(@janitor_trial) do |f| %> <%= f.input :user_name %> <%= f.button :submit, "Submit" %> + <%= f.button :submit, "Test" %> <% end %> + +

diff --git a/app/views/janitor_trials/test.json.erb b/app/views/janitor_trials/test.json.erb new file mode 100644 index 000000000..b6a98a878 --- /dev/null +++ b/app/views/janitor_trials/test.json.erb @@ -0,0 +1 @@ +<%= raw @tester.test.to_json %> diff --git a/config/routes.rb b/config/routes.rb index 4b4fc8ca4..f25f7308b 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -66,6 +66,9 @@ Danbooru::Application.routes.draw do end end resources :janitor_trials do + collection do + get :test + end member do put :promote put :demote