diff --git a/Gemfile b/Gemfile
index 5bae11d47..6b48f93b3 100644
--- a/Gemfile
+++ b/Gemfile
@@ -35,4 +35,5 @@ group :development do
gem 'ruby-prof'
gem 'pry'
gem 'awesome_print'
+ gem 'term-ansicolor'
end
diff --git a/Gemfile.lock b/Gemfile.lock
index e9b62f7a7..04de5f7a5 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -159,6 +159,7 @@ GEM
super_exception_notifier (3.0.13)
actionmailer
rake
+ term-ansicolor (1.0.7)
therubyracer (0.11.3)
libv8 (~> 3.11.8.12)
ref
@@ -207,6 +208,7 @@ DEPENDENCIES
simple_form
simplecov
super_exception_notifier
+ term-ansicolor
therubyracer
uglifier (>= 1.0.3)
whenever
diff --git a/app/controllers/post_versions_controller.rb b/app/controllers/post_versions_controller.rb
index 16ec07437..be4e74bc3 100644
--- a/app/controllers/post_versions_controller.rb
+++ b/app/controllers/post_versions_controller.rb
@@ -2,8 +2,7 @@ class PostVersionsController < ApplicationController
respond_to :html, :xml, :json
def index
- @search = PostVersion.search(params[:search])
- @post_versions = @search.order("updated_at desc").paginate(params[:page], :count => 1_000_000)
+ @post_versions = PostVersion.search(params[:search]).order("updated_at desc").paginate(params[:page], :count => 1_000_000)
respond_with(@post_versions)
end
diff --git a/app/helpers/pagination_helper.rb b/app/helpers/pagination_helper.rb
index d283f88f8..c0c8a2340 100644
--- a/app/helpers/pagination_helper.rb
+++ b/app/helpers/pagination_helper.rb
@@ -34,6 +34,7 @@ module PaginationHelper
1.upto(records.total_pages) do |page|
html << numbered_paginator_item(page, records.current_page)
end
+
elsif records.current_page <= window + 2
1.upto(records.current_page + window) do |page|
html << numbered_paginator_item(page, records.current_page)
diff --git a/app/views/post_versions/index.html.erb b/app/views/post_versions/index.html.erb
index 6e1542dd1..698b2b4e4 100644
--- a/app/views/post_versions/index.html.erb
+++ b/app/views/post_versions/index.html.erb
@@ -2,7 +2,7 @@
Changes
- <% if @post_versions.empty? %>
+ <% if @post_versions.all.empty? %>
<%= render "post_sets/blank" %>
<% else %>
<%= render "listing", :post_versions => @post_versions %>
diff --git a/config/initializers/query_trace.rb b/config/initializers/query_trace.rb
new file mode 100644
index 000000000..82a3d89be
--- /dev/null
+++ b/config/initializers/query_trace.rb
@@ -0,0 +1,84 @@
+# yields a stacktrace for each SQL query
+# put this file in config/initializers
+class QueryTrace < ActiveSupport::LogSubscriber
+ include Term::ANSIColor
+ attr_accessor :trace_queries
+
+ def sql(event) #:nodoc:
+ return unless QueryTrace.enabled? && logger.debug? && Rails.env.development?
+ stack = Rails.backtrace_cleaner.clean(caller)
+ first_line = stack.shift
+ return unless first_line
+
+ msg = prefix + bold + cyan + "#{first_line}\n" + reset
+ msg += cyan + stack.join("\n") + reset
+ debug msg
+ end
+
+ # :call-seq:
+ # Klass.enabled?
+ #
+ # yields boolean if SQL queries should be logged or not
+
+ def self.enabled?
+ defined?(@trace_queries) && @trace_queries
+ end
+
+ # :call-seq:
+ # Klass.status
+ #
+ # yields text if QueryTrace has been enabled or not
+
+ def self.status
+ QueryTrace.enabled? ? 'enabled' : 'disabled'
+ end
+
+ # :call-seq:
+ # Klass.enable!
+ #
+ # turn on SQL query origin logging
+
+ def self.enable!
+ @trace_queries = true
+ end
+
+ # :call-seq:
+ # Klass.disable!
+ #
+ # turn off SQL query origin logging
+
+ def self.disable!
+ @trace_queries = false
+ end
+
+ # :call-seq:
+ # Klass.toggle!
+ #
+ # Toggles query tracing yielding a boolean indicating the new state of query
+ # origin tracing
+
+ def self.toggle!
+ enabled? ? disable! : enable!
+ enabled?
+ end
+
+protected
+
+ def prefix #:nodoc:
+ bold(magenta('Called from: ')) + reset
+ end
+end
+
+QueryTrace.attach_to :active_record
+
+trap('QUIT') do
+ # Sending 2 backspace characters removes the ^\ that is
+ # printed to the console.
+ rm_noise = "\b\b"
+
+ QueryTrace.toggle!
+ puts "#{rm_noise}=> QueryTrace #{QueryTrace.status}"
+end
+
+QueryTrace.enable! if ENV['QUERY_TRACE']
+puts "=> QueryTrace #{QueryTrace.status}; CTRL-\\ to toggle"