mirror of
https://github.com/internetee/registry.git
synced 2025-07-25 03:58:27 +02:00
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:
commit
5cce1ed2c8
13 changed files with 632 additions and 3 deletions
46
app/controllers/admin/contact_versions_controller.rb
Normal file
46
app/controllers/admin/contact_versions_controller.rb
Normal 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
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue