Merge remote-tracking branch 'origin/108869472-objects_archive' into story/115762063--show-historical-nested

# Conflicts:
#	app/controllers/admin/domain_versions_controller.rb
#	config/locales/en.yml
This commit is contained in:
Vladimir Krylov 2016-03-22 16:03:52 +02:00
commit 5cce1ed2c8
13 changed files with 632 additions and 3 deletions

View file

@ -0,0 +1,46 @@
class Admin::ContactVersionsController < AdminController
load_and_authorize_resource
def index
params[:q] ||= {}
@q = ContactVersion.search(params[:q])
@versions = @q.result.page(params[:page])
search_params = params[:q].deep_dup
whereS = "1=1"
search_params.each do |key, value|
next if value.empty?
case key
when 'event'
whereS += " AND event = '#{value}'"
else
whereS += create_where_string(key, value)
end
end
versions = ContactVersion.includes(:item).where(whereS)
@q = versions.search(params[:q])
@versions = @q.result.page(params[:page])
@versions = @versions.per(params[:results_per_page]) if params[:results_per_page].to_i > 0
end
def show
per_page = 7
@version = ContactVersion.find(params[:id])
@q = ContactVersion.where(item_id: @version.item_id).order(created_at: :asc).search
@versions = @q.result.page(params[:page])
@versions = @versions.per(per_page)
end
def search
render json: ContactVersion.search_by_query(params[:q])
end
def create_where_string(key, value)
" AND object->>'#{key}' ~ '#{value}'"
end
end

View file

@ -2,7 +2,60 @@ class Admin::DomainVersionsController < AdminController
load_and_authorize_resource
def index
@domain = Domain.where(id: params[:domain_id]).includes(versions: :item).first
@versions = @domain.versions
params[:q] ||= {}
@q = DomainVersion.includes(:item).search(params[:q])
@versions = @q.result.page(params[:page])
search_params = params[:q].deep_dup
if search_params[:registrant]
registrant = Contact.find_by(name: search_params[:registrant])
search_params.delete(:registrant)
end
if search_params[:registrar]
registrar = Registrar.find_by(name: search_params[:registrar])
search_params.delete(:registrar)
end
whereS = "1=1"
search_params.each do |key, value|
next if value.empty?
case key
when 'event'
whereS += " AND event = '#{value}'"
else
whereS += create_where_string(key, value)
end
end
whereS += " AND object->>'registrant_id' = '#{registrant.id}'" if registrant
whereS += " AND object->>'registrar_id' = '#{registrar.id}'" if registrar
versions = DomainVersion.includes(:item).where(whereS)
@q = versions.search(params[:q])
@versions = @q.result.page(params[:page])
@versions = @versions.per(params[:results_per_page]) if params[:results_per_page].to_i > 0
render "admin/domain_versions/archive"
end
def show
per_page = 7
@version = DomainVersion.find(params[:id])
@q = DomainVersion.where(item_id: @version.item_id).order(created_at: :desc).search
@versions = @q.result.page(params[:page])
@versions = @versions.per(per_page)
end
def search
render json: DomainVersion.search_by_query(params[:q])
end
def create_where_string(key, value)
" AND object->>'#{key}' ~ '#{value}'"
end
end

View file

@ -77,6 +77,11 @@ class Admin::DomainsController < AdminController
redirect_to [:admin, @domain]
end
def versions
@domain = Domain.where(id: params[:domain_id]).includes({versions: :item}).first
@versions = @domain.versions
end
private
def set_domain