From 55c6bac1d84727b59ff451d09e39ee2399d618ef Mon Sep 17 00:00:00 2001 From: Stas Date: Wed, 13 Apr 2016 19:12:58 +0300 Subject: [PATCH 01/21] 108869472-archive_modifications --- app/views/admin/contact_versions/index.haml | 2 + app/views/admin/contact_versions/show.haml | 39 +++++++++++--------- app/views/admin/domain_versions/archive.haml | 14 ++++--- app/views/admin/domain_versions/show.haml | 11 ++++-- 4 files changed, 38 insertions(+), 28 deletions(-) diff --git a/app/views/admin/contact_versions/index.haml b/app/views/admin/contact_versions/index.haml index 68e74c547..f89cbec69 100644 --- a/app/views/admin/contact_versions/index.haml +++ b/app/views/admin/contact_versions/index.haml @@ -79,6 +79,8 @@ .col-md-6 = paginate @versions .col-md-6.text-right + .pagination + = t(:result_count, count: @versions.total_count) :coffee diff --git a/app/views/admin/contact_versions/show.haml b/app/views/admin/contact_versions/show.haml index 555c301dc..f5d7ec63b 100644 --- a/app/views/admin/contact_versions/show.haml +++ b/app/views/admin/contact_versions/show.haml @@ -1,5 +1,7 @@ = render 'shared/title', name: @version.reify.name +- contact = @version.reify + .row .col-md-8 .panel.panel-default{:style => "min-height:420px;"} @@ -11,55 +13,56 @@ .panel-body %dl.dl-horizontal %dt= t(:id) - %dd= @version.reify.code + %dd= contact.code %dt= t(:ident) - %dd= ident_for(@version.reify) + %dd= ident_for(contact) %dt= t(:email) - %dd= @version.reify.email + %dd= contact.email - %dt= t(:phone) - %dd= @version.reify.phone + - if contact.phone + %dt= t(:phone) + %dd= contact.phone - - if @version.reify.fax + - if contact.fax %dt= t(:fax) - %dd= @version.reify.fax + %dd= contact.fax %br %dt= t(:created) %dd - = l(@version.reify.created_at, format: :short) + = l(contact.created_at, format: :short) %dt= t(:updated) %dd - = l(@version.reify.updated_at, format: :short) + = l(contact.updated_at, format: :short) %dt= t(:registrar) %dd - - if @version.reify.registrar.present? - = link_to(@version.reify.registrar, admin_registrar_path(@version.reify.registrar)) + - if contact.registrar.present? + = link_to(contact.registrar, admin_registrar_path(contact.registrar)) %dl.dl-horizontal - - if @version.reify.org_name.present? + - if contact.org_name.present? %dt= t(:org_name) - %dd= @version.reify.org_name + %dd= contact.org_name %dt= t(:street) - %dd= @version.reify.street.to_s.gsub("\n", '
').html_safe + %dd= contact.street.to_s.gsub("\n", '
').html_safe %dt= t(:city) - %dd= @version.reify.city + %dd= contact.city %dt= t(:zip) - %dd= @version.reify.zip + %dd= contact.zip %dt= t(:state) - %dd= @version.reify.state + %dd= contact.state %dt= t(:country) - %dd= @version.reify.country + %dd= contact.country %span{:style => "padding-right:10px; float: right;"} diff --git a/app/views/admin/domain_versions/archive.haml b/app/views/admin/domain_versions/archive.haml index f50f18d06..c607e559a 100644 --- a/app/views/admin/domain_versions/archive.haml +++ b/app/views/admin/domain_versions/archive.haml @@ -55,15 +55,15 @@ = t(:action) %tbody - @versions.each do |version| - - if version.reify + - if domain = version.reify %tr - %td= link_to(version.reify.name, admin_domain_version_path(version.id)) + %td= link_to(domain.name, admin_domain_version_path(version.id)) %td - - if version.reify.registrant - = link_to(version.reify.registrant, admin_registrant_path(version.reify.registrant)) + - if domain.registrant + = domain.registrant %td - - if version.reify.registrar - = link_to(version.reify.registrar, admin_registrar_path(version.reify.registrar)) + - if domain.registrar + = link_to(domain.registrar, admin_registrar_path(domain.registrar)) %td= l(version.created_at, format: :short) %td= version.event @@ -72,6 +72,8 @@ .col-md-6 = paginate @versions .col-md-6.text-right + .pagination + = t(:result_count, count: @versions.total_count) :coffee diff --git a/app/views/admin/domain_versions/show.haml b/app/views/admin/domain_versions/show.haml index e6076a3db..69063b6fc 100644 --- a/app/views/admin/domain_versions/show.haml +++ b/app/views/admin/domain_versions/show.haml @@ -8,6 +8,7 @@ - registrant = Contact.where(id: children[:registrant]) - event = @version.event - creator = plain_username(@version.terminator) + - domain = @version.reify .row @@ -21,11 +22,13 @@ .panel-body %dl.dl-horizontal %dt= t(:name) - %dd= link_to(@version.reify.name, admin_domain_path(@version.item_id)) + %dd= link_to(domain.name, admin_domain_path(@version.item_id)) + %dt= t(:registered_at) + %dd= l(domain.registered_at, format: :short) %dt= t(:statuses) %dd - - if @version.reify.statuses.present? - - @version.reify.statuses.each do |s| + - if domain.statuses.present? + - domain.statuses.each do |s| = s %dt= t(:registrant) %dd @@ -59,7 +62,7 @@ = ns[:ipv6] %br %dt= t(:registrar) - %dd= @version.reify.registrar.name + %dd= domain.registrar.name %span{:style => "padding-right:10px; padding-top:40px; float: right; bottom: 10px;"} - if @version.previous = link_to(t(:previous), From 014c466c47cc2be05d5ded4b94af05702b6b786a Mon Sep 17 00:00:00 2001 From: Stas Date: Thu, 14 Apr 2016 17:16:24 +0300 Subject: [PATCH 02/21] 108869472-modification_for_archive --- .../admin/domain_versions_controller.rb | 4 ++-- app/views/admin/contact_versions/index.haml | 19 +++++++++++-------- app/views/admin/contact_versions/show.haml | 5 +++-- app/views/admin/domain_versions/archive.haml | 7 +++++-- app/views/admin/domain_versions/show.haml | 6 +++--- 5 files changed, 24 insertions(+), 17 deletions(-) diff --git a/app/controllers/admin/domain_versions_controller.rb b/app/controllers/admin/domain_versions_controller.rb index 0d85e047f..463bd8739 100644 --- a/app/controllers/admin/domain_versions_controller.rb +++ b/app/controllers/admin/domain_versions_controller.rb @@ -9,12 +9,12 @@ class Admin::DomainVersionsController < AdminController search_params = params[:q].deep_dup if search_params[:registrant] - registrant = Contact.find_by(name: search_params[:registrant]) + registrant = Contact.find_by(name: search_params[:registrant].strip) search_params.delete(:registrant) end if search_params[:registrar] - registrar = Registrar.find_by(name: search_params[:registrar]) + registrar = Registrar.find_by(name: search_params[:registrar].strip) search_params.delete(:registrar) end diff --git a/app/views/admin/contact_versions/index.haml b/app/views/admin/contact_versions/index.haml index f89cbec69..e39c20b1f 100644 --- a/app/views/admin/contact_versions/index.haml +++ b/app/views/admin/contact_versions/index.haml @@ -25,7 +25,7 @@ .col-md-3 .form-group = label_tag :action - = select_tag '[q][event]', options_for_select([['Update', 'update'], ['Destroy', 'destroy']], params[:q][:event]), { include_blank:true, multiple: false, placeholder: t(:choose), class: 'form-control js-combobox' } + = select_tag '[q][event]', options_for_select([['Update', 'update'], ['Destroy', 'destroy'], ['Create', 'create']], params[:q][:event]), { include_blank:true, multiple: false, placeholder: t(:choose), class: 'form-control js-combobox' } .col-md-3 .form-group = label_tag t(:results_per_page) @@ -62,15 +62,18 @@ = t(:action) %tbody - @versions.each do |version| - - if version.reify + - if version + - contact = Contact.new(version.object.to_h) + - version.object_changes.to_h.each{|k,v| contact[k]=v.last} + %tr - %td= link_to(version.reify.name, admin_contact_version_path(version.id)) - %td= version.reify.code - %td= ident_for(version.reify) - %td= version.reify.phone + %td= link_to(contact.name, admin_contact_version_path(version.id)) + %td= contact.code + %td= ident_for(contact) + %td= contact.phone %td - - if version.reify.registrar - = link_to(version.reify.registrar, admin_registrar_path(version.reify.registrar)) + - if contact.registrar + = link_to(contact.registrar, admin_registrar_path(contact.registrar)) %td= l(version.created_at, format: :short) %td= version.event diff --git a/app/views/admin/contact_versions/show.haml b/app/views/admin/contact_versions/show.haml index f5d7ec63b..3d4785159 100644 --- a/app/views/admin/contact_versions/show.haml +++ b/app/views/admin/contact_versions/show.haml @@ -1,6 +1,7 @@ -= render 'shared/title', name: @version.reify.name +- contact = Contact.new(@version.object.to_h) +- @version.object_changes.to_h.each{|k,v| contact[k]=v.last} -- contact = @version.reify += render 'shared/title', name: contact.name .row .col-md-8 diff --git a/app/views/admin/domain_versions/archive.haml b/app/views/admin/domain_versions/archive.haml index c607e559a..31fb9bc9d 100644 --- a/app/views/admin/domain_versions/archive.haml +++ b/app/views/admin/domain_versions/archive.haml @@ -19,7 +19,7 @@ .col-md-3 .form-group = label_tag :action - = select_tag '[q][event]', options_for_select([['Update', 'update'], ['Destroy', 'destroy']], params[:q][:event]), { include_blank:true, multiple: false, placeholder: t(:choose), class: 'form-control js-combobox' } + = select_tag '[q][event]', options_for_select([['Update', 'update'], ['Destroy', 'destroy'], ['Create', 'create']], params[:q][:event]), { include_blank:true, multiple: false, placeholder: t(:choose), class: 'form-control js-combobox' } .row .col-md-3 .col-md-3 @@ -55,7 +55,10 @@ = t(:action) %tbody - @versions.each do |version| - - if domain = version.reify + - if version + - domain = Domain.new(version.object.to_h) + - version.object_changes.to_h.each{|k,v| domain[k]=v.last} + %tr %td= link_to(domain.name, admin_domain_version_path(version.id)) %td diff --git a/app/views/admin/domain_versions/show.haml b/app/views/admin/domain_versions/show.haml index 69063b6fc..9143abeed 100644 --- a/app/views/admin/domain_versions/show.haml +++ b/app/views/admin/domain_versions/show.haml @@ -1,5 +1,3 @@ -= render 'shared/title', name: @version.reify.name - - if @version - children = HashWithIndifferentAccess.new(@version.children) - nameservers = Nameserver.where(id: children[:nameservers]) @@ -8,8 +6,10 @@ - registrant = Contact.where(id: children[:registrant]) - event = @version.event - creator = plain_username(@version.terminator) - - domain = @version.reify + - domain = Domain.new(@version.object.to_h) + - @version.object_changes.to_h.each{|k,v| domain[k]=v.last} += render 'shared/title', name: domain.name .row .col-md-8 From ff33eaa03137327ea4efb78ddb86052777b11a85 Mon Sep 17 00:00:00 2001 From: Stas Date: Wed, 20 Apr 2016 18:59:13 +0300 Subject: [PATCH 03/21] 108869472-like_query --- app/controllers/admin/domain_versions_controller.rb | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/app/controllers/admin/domain_versions_controller.rb b/app/controllers/admin/domain_versions_controller.rb index 463bd8739..88e681b8b 100644 --- a/app/controllers/admin/domain_versions_controller.rb +++ b/app/controllers/admin/domain_versions_controller.rb @@ -9,12 +9,14 @@ class Admin::DomainVersionsController < AdminController search_params = params[:q].deep_dup if search_params[:registrant] - registrant = Contact.find_by(name: search_params[:registrant].strip) + #registrants = Contact.find_by(name: search_params[:registrant].strip) + registrants = Contact.where("name like ?", "%#{search_params[:registrant].strip}%") search_params.delete(:registrant) end if search_params[:registrar] - registrar = Registrar.find_by(name: search_params[:registrar].strip) + #registrar = Registrar.find_by(name: search_params[:registrar].strip) + registrars = Registrar.where("name like ?", "%#{search_params[:registrar].strip}%") search_params.delete(:registrar) end @@ -30,8 +32,8 @@ class Admin::DomainVersionsController < AdminController end end - whereS += " AND object->>'registrant_id' = '#{registrant.id}'" if registrant - whereS += " AND object->>'registrar_id' = '#{registrar.id}'" if registrar + whereS += " AND object->>'registrant_id' IN (#{registrants.map { |r| "'#{r.id.to_s}'" }.join ','})" if registrants + whereS += " AND object->>'registrar_id' IN (#{registrars.map { |r| "'#{r.id.to_s}'" }.join ','})" if registrars versions = DomainVersion.includes(:item).where(whereS) @q = versions.search(params[:q]) From a09e6b1a42679e02bd57010322bef4518ab2f2f3 Mon Sep 17 00:00:00 2001 From: Stas Date: Thu, 21 Apr 2016 15:21:59 +0300 Subject: [PATCH 04/21] 108869472-new_qieries_and_views --- .../admin/contact_versions_controller.rb | 4 +-- app/views/admin/contact_versions/index.haml | 2 +- app/views/admin/contact_versions/show.haml | 34 +++++++++++-------- app/views/admin/domain_versions/show.haml | 20 ++++++++--- 4 files changed, 39 insertions(+), 21 deletions(-) diff --git a/app/controllers/admin/contact_versions_controller.rb b/app/controllers/admin/contact_versions_controller.rb index 215d6203c..9c8d05e61 100644 --- a/app/controllers/admin/contact_versions_controller.rb +++ b/app/controllers/admin/contact_versions_controller.rb @@ -30,7 +30,7 @@ class Admin::ContactVersionsController < AdminController def show per_page = 7 @version = ContactVersion.find(params[:id]) - @q = ContactVersion.where(item_id: @version.item_id).order(created_at: :asc).search + @q = ContactVersion.where(item_id: @version.item_id).order(created_at: :desc).search @versions = @q.result.page(params[:page]) @versions = @versions.per(per_page) end @@ -40,7 +40,7 @@ class Admin::ContactVersionsController < AdminController end def create_where_string(key, value) - " AND object->>'#{key}' ~ '#{value}'" + " AND object->>'#{key}' LIKE '%#{value}%'" end end diff --git a/app/views/admin/contact_versions/index.haml b/app/views/admin/contact_versions/index.haml index e39c20b1f..0e513f37b 100644 --- a/app/views/admin/contact_versions/index.haml +++ b/app/views/admin/contact_versions/index.haml @@ -11,7 +11,7 @@ .col-md-3 .form-group = f.label :id - = f.search_field :id, value: params[:q][:id], class: 'form-control', placeholder: t(:id) + = f.search_field :code, value: params[:q][:code], class: 'form-control', placeholder: t(:id) .col-md-3 .form-group = f.label :ident diff --git a/app/views/admin/contact_versions/show.haml b/app/views/admin/contact_versions/show.haml index 3d4785159..d48f22be6 100644 --- a/app/views/admin/contact_versions/show.haml +++ b/app/views/admin/contact_versions/show.haml @@ -19,14 +19,15 @@ %dt= t(:ident) %dd= ident_for(contact) - %dt= t(:email) - %dd= contact.email + - if contact.email.present? + %dt= t(:email) + %dd= contact.email - - if contact.phone + - if contact.phone.present? %dt= t(:phone) %dd= contact.phone - - if contact.fax + - if contact.fax.present? %dt= t(:fax) %dd= contact.fax @@ -50,20 +51,25 @@ %dt= t(:org_name) %dd= contact.org_name - %dt= t(:street) - %dd= contact.street.to_s.gsub("\n", '
').html_safe + - if contact.street.present? + %dt= t(:street) + %dd= contact.street.to_s.gsub("\n", '
').html_safe - %dt= t(:city) - %dd= contact.city + - if contact.city.present? + %dt= t(:city) + %dd= contact.city - %dt= t(:zip) - %dd= contact.zip + - if contact.zip.present? + %dt= t(:zip) + %dd= contact.zip - %dt= t(:state) - %dd= contact.state + - if contact.state.present? + %dt= t(:state) + %dd= contact.state - %dt= t(:country) - %dd= contact.country + - if contact.country.present? + %dt= t(:country) + %dd= contact.country %span{:style => "padding-right:10px; float: right;"} diff --git a/app/views/admin/domain_versions/show.haml b/app/views/admin/domain_versions/show.haml index 9143abeed..206c274a2 100644 --- a/app/views/admin/domain_versions/show.haml +++ b/app/views/admin/domain_versions/show.haml @@ -13,7 +13,7 @@ .row .col-md-8 - .panel.panel-default{:style => "min-height:400px;"} + .panel.panel-default{:style => "min-height:450px;"} .panel-heading %h3.panel-title = l(@version.created_at, format: :short) @@ -24,7 +24,19 @@ %dt= t(:name) %dd= link_to(domain.name, admin_domain_path(@version.item_id)) %dt= t(:registered_at) - %dd= l(domain.registered_at, format: :short) + %dd + = l(domain.registered_at, format: :short) + + %dt= t(:created) + %dd + = l(domain.created_at, format: :short) + + %dt= t(:updated) + %dd + = l(domain.updated_at, format: :short) + + %br + %dt= t(:statuses) %dd - if domain.statuses.present? @@ -63,7 +75,7 @@ %br %dt= t(:registrar) %dd= domain.registrar.name - %span{:style => "padding-right:10px; padding-top:40px; float: right; bottom: 10px;"} + %span{:style => "padding-right:10px; float: right; bottom: 10px;"} - if @version.previous = link_to(t(:previous), admin_domain_version_path(@version.previous.id), @@ -80,7 +92,7 @@ %span= t(:next) .col-md-4 - .panel.panel-default{:style => "min-height:400px;"} + .panel.panel-default{:style => "min-height:450px;"} %ul.nav.nav-pills.nav-stacked - @versions.each do |vs| - if vs.id == @version.id and vs.reify From 76d5c96612d17ab829fa74cea8375c51bb069357 Mon Sep 17 00:00:00 2001 From: Stas Date: Thu, 21 Apr 2016 16:19:47 +0300 Subject: [PATCH 05/21] 108869472-deleted_old_code --- app/controllers/admin/domain_versions_controller.rb | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/app/controllers/admin/domain_versions_controller.rb b/app/controllers/admin/domain_versions_controller.rb index 88e681b8b..cbc3205a3 100644 --- a/app/controllers/admin/domain_versions_controller.rb +++ b/app/controllers/admin/domain_versions_controller.rb @@ -8,14 +8,12 @@ class Admin::DomainVersionsController < AdminController @versions = @q.result.page(params[:page]) search_params = params[:q].deep_dup - if search_params[:registrant] - #registrants = Contact.find_by(name: search_params[:registrant].strip) + if search_params[:registrant].present? registrants = Contact.where("name like ?", "%#{search_params[:registrant].strip}%") search_params.delete(:registrant) end - if search_params[:registrar] - #registrar = Registrar.find_by(name: search_params[:registrar].strip) + if search_params[:registrar].present? registrars = Registrar.where("name like ?", "%#{search_params[:registrar].strip}%") search_params.delete(:registrar) end From 95dce72bd69707349c6b38e5af02eeb4102c7b00 Mon Sep 17 00:00:00 2001 From: Stas Date: Thu, 21 Apr 2016 16:21:19 +0300 Subject: [PATCH 06/21] 108869472-template_view_modified --- app/views/admin/domain_versions/show.haml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/views/admin/domain_versions/show.haml b/app/views/admin/domain_versions/show.haml index 206c274a2..c384e4efb 100644 --- a/app/views/admin/domain_versions/show.haml +++ b/app/views/admin/domain_versions/show.haml @@ -1,3 +1,6 @@ +- domain = Domain.new(@version.object.to_h) +- @version.object_changes.to_h.each{|k,v| domain[k]=v.last} + - if @version - children = HashWithIndifferentAccess.new(@version.children) - nameservers = Nameserver.where(id: children[:nameservers]) @@ -6,8 +9,6 @@ - registrant = Contact.where(id: children[:registrant]) - event = @version.event - creator = plain_username(@version.terminator) - - domain = Domain.new(@version.object.to_h) - - @version.object_changes.to_h.each{|k,v| domain[k]=v.last} = render 'shared/title', name: domain.name From 09f28e04702d4dd426f8fd9592e0287a34235fe5 Mon Sep 17 00:00:00 2001 From: Stas Date: Thu, 28 Apr 2016 18:57:20 +0300 Subject: [PATCH 07/21] 108869472-default_page_handler --- app/controllers/admin/domain_versions_controller.rb | 13 ++++++++++++- app/views/admin/domain_versions/archive.haml | 2 +- app/views/admin/domain_versions/show.haml | 12 ++++++------ 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/app/controllers/admin/domain_versions_controller.rb b/app/controllers/admin/domain_versions_controller.rb index cbc3205a3..17748b482 100644 --- a/app/controllers/admin/domain_versions_controller.rb +++ b/app/controllers/admin/domain_versions_controller.rb @@ -45,7 +45,18 @@ class Admin::DomainVersionsController < AdminController 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]) + + if (@q.result.count > per_page) && params[:page] == 'default' + page = 1 + @q.result.each_with_index do |v, i| + break if v.id == @version.id and page = (i / per_page) + 1 + end + params[:page] = page + @versions = @q.result.page(page) + else + @versions = @q.result.page(params[:page]) + end + @versions = @versions.per(per_page) end diff --git a/app/views/admin/domain_versions/archive.haml b/app/views/admin/domain_versions/archive.haml index 31fb9bc9d..de81af1e4 100644 --- a/app/views/admin/domain_versions/archive.haml +++ b/app/views/admin/domain_versions/archive.haml @@ -60,7 +60,7 @@ - version.object_changes.to_h.each{|k,v| domain[k]=v.last} %tr - %td= link_to(domain.name, admin_domain_version_path(version.id)) + %td= link_to(domain.name, admin_domain_version_path(version.id, :page => 'default')) %td - if domain.registrant = domain.registrant diff --git a/app/views/admin/domain_versions/show.haml b/app/views/admin/domain_versions/show.haml index c384e4efb..f169174f5 100644 --- a/app/views/admin/domain_versions/show.haml +++ b/app/views/admin/domain_versions/show.haml @@ -76,17 +76,17 @@ %br %dt= t(:registrar) %dd= domain.registrar.name - %span{:style => "padding-right:10px; float: right; bottom: 10px;"} + %div{:style => "margin: 20px 20px; clear:both;"} - if @version.previous = link_to(t(:previous), - admin_domain_version_path(@version.previous.id), + admin_domain_version_path(@version.previous.id, :page => 'default'), class: 'btn btn-primary') - else %a.btn.btn-primary.disabled{:href => "#"} %span= t(:previous) - if @version.next = link_to(t(:next), - admin_domain_version_path(@version.next.id), + admin_domain_version_path(@version.next.id, :page => 'default'), class: 'btn btn-default') - else %a.btn.btn-default.disabled{:href => "#"} @@ -96,14 +96,14 @@ .panel.panel-default{:style => "min-height:450px;"} %ul.nav.nav-pills.nav-stacked - @versions.each do |vs| - - if vs.id == @version.id and vs.reify + - if vs.id == @version.id %li.active - = link_to admin_domain_version_path(vs.id) do + = link_to admin_domain_version_path(vs.id, :page => 'default') do = l(vs.created_at, format: :short) = vs.event - else %li - = link_to admin_domain_version_path(vs.id) do + = link_to admin_domain_version_path(vs.id, :page => 'default') do = l(vs.created_at, format: :short) = vs.event %span{:style => "padding-left:10px; position: absolute; bottom: 10px;"} From 97c4bf00976475211d9e1daa60ddfd85c029230f Mon Sep 17 00:00:00 2001 From: Stas Date: Fri, 29 Apr 2016 14:18:44 +0300 Subject: [PATCH 08/21] 108869472-pagination_modification --- .../admin/domain_versions_controller.rb | 20 +++++++++---------- app/views/admin/domain_versions/archive.haml | 2 +- app/views/admin/domain_versions/show.haml | 10 +++++----- .../kaminari/admin/_first_page.html.haml | 11 ++++++++++ app/views/kaminari/admin/_gap.html.haml | 8 ++++++++ app/views/kaminari/admin/_last_page.html.haml | 9 +++++++++ app/views/kaminari/admin/_next_page.html.haml | 9 +++++++++ app/views/kaminari/admin/_page.html.haml | 12 +++++++++++ app/views/kaminari/admin/_paginator.html.haml | 18 +++++++++++++++++ app/views/kaminari/admin/_prev_page.html.haml | 11 ++++++++++ 10 files changed, 93 insertions(+), 17 deletions(-) create mode 100644 app/views/kaminari/admin/_first_page.html.haml create mode 100644 app/views/kaminari/admin/_gap.html.haml create mode 100644 app/views/kaminari/admin/_last_page.html.haml create mode 100644 app/views/kaminari/admin/_next_page.html.haml create mode 100644 app/views/kaminari/admin/_page.html.haml create mode 100644 app/views/kaminari/admin/_paginator.html.haml create mode 100644 app/views/kaminari/admin/_prev_page.html.haml diff --git a/app/controllers/admin/domain_versions_controller.rb b/app/controllers/admin/domain_versions_controller.rb index 17748b482..1a469ddeb 100644 --- a/app/controllers/admin/domain_versions_controller.rb +++ b/app/controllers/admin/domain_versions_controller.rb @@ -43,21 +43,19 @@ class Admin::DomainVersionsController < AdminController def show per_page = 7 - @version = DomainVersion.find(params[:id]) - @q = DomainVersion.where(item_id: @version.item_id).order(created_at: :desc).search + @version = DomainVersion.find(params[:id]) + @versions = DomainVersion.where(item_id: @version.item_id).order(created_at: :desc) - if (@q.result.count > per_page) && params[:page] == 'default' - page = 1 - @q.result.each_with_index do |v, i| - break if v.id == @version.id and page = (i / per_page) + 1 - end + # what we do is calc amount of results until needed version + # then we cacl which page it is + if params[:page].blank? + counter = @versions.where("created_at > ?", @version.created_at).count + page = counter / per_page + page += 1 if (counter % per_page) != 0 params[:page] = page - @versions = @q.result.page(page) - else - @versions = @q.result.page(params[:page]) end - @versions = @versions.per(per_page) + @versions = @versions.page(params[:page]).per(per_page) end def search diff --git a/app/views/admin/domain_versions/archive.haml b/app/views/admin/domain_versions/archive.haml index de81af1e4..31fb9bc9d 100644 --- a/app/views/admin/domain_versions/archive.haml +++ b/app/views/admin/domain_versions/archive.haml @@ -60,7 +60,7 @@ - version.object_changes.to_h.each{|k,v| domain[k]=v.last} %tr - %td= link_to(domain.name, admin_domain_version_path(version.id, :page => 'default')) + %td= link_to(domain.name, admin_domain_version_path(version.id)) %td - if domain.registrant = domain.registrant diff --git a/app/views/admin/domain_versions/show.haml b/app/views/admin/domain_versions/show.haml index f169174f5..2a245ab1f 100644 --- a/app/views/admin/domain_versions/show.haml +++ b/app/views/admin/domain_versions/show.haml @@ -79,14 +79,14 @@ %div{:style => "margin: 20px 20px; clear:both;"} - if @version.previous = link_to(t(:previous), - admin_domain_version_path(@version.previous.id, :page => 'default'), + admin_domain_version_path(@version.previous.id), class: 'btn btn-primary') - else %a.btn.btn-primary.disabled{:href => "#"} %span= t(:previous) - if @version.next = link_to(t(:next), - admin_domain_version_path(@version.next.id, :page => 'default'), + admin_domain_version_path(@version.next.id), class: 'btn btn-default') - else %a.btn.btn-default.disabled{:href => "#"} @@ -98,13 +98,13 @@ - @versions.each do |vs| - if vs.id == @version.id %li.active - = link_to admin_domain_version_path(vs.id, :page => 'default') do + = link_to admin_domain_version_path(vs) do = l(vs.created_at, format: :short) = vs.event - else %li - = link_to admin_domain_version_path(vs.id, :page => 'default') do + = link_to admin_domain_version_path(vs) do = l(vs.created_at, format: :short) = vs.event %span{:style => "padding-left:10px; position: absolute; bottom: 10px;"} - = paginate @versions + = paginate @versions, theme: :admin diff --git a/app/views/kaminari/admin/_first_page.html.haml b/app/views/kaminari/admin/_first_page.html.haml new file mode 100644 index 000000000..c5bbf13e1 --- /dev/null +++ b/app/views/kaminari/admin/_first_page.html.haml @@ -0,0 +1,11 @@ +-# Link to the "First" page +-# available local variables +-# url: url to the first page +-# current_page: a page object for the currently displayed page +-# total_pages: total number of pages +-# per_page: number of items to fetch per page +-# remote: data-remote +%span.first + - param_name = current_page.instance_variable_get("@options")[:param_name] || Kaminari.config.param_name + - urlik = url_for( params.merge(param_name => 1, :only_path => true)) + = link_to_unless current_page.first?, t('views.pagination.first').html_safe, urlik, :remote => remote diff --git a/app/views/kaminari/admin/_gap.html.haml b/app/views/kaminari/admin/_gap.html.haml new file mode 100644 index 000000000..dd5789cc1 --- /dev/null +++ b/app/views/kaminari/admin/_gap.html.haml @@ -0,0 +1,8 @@ +-# Non-link tag that stands for skipped pages... +-# available local variables +-# current_page: a page object for the currently displayed page +-# total_pages: total number of pages +-# per_page: number of items to fetch per page +-# remote: data-remote +%span.page.gap + = t('views.pagination.truncate').html_safe diff --git a/app/views/kaminari/admin/_last_page.html.haml b/app/views/kaminari/admin/_last_page.html.haml new file mode 100644 index 000000000..cdddb9e7c --- /dev/null +++ b/app/views/kaminari/admin/_last_page.html.haml @@ -0,0 +1,9 @@ +-# Link to the "Last" page +-# available local variables +-# url: url to the last page +-# current_page: a page object for the currently displayed page +-# total_pages: total number of pages +-# per_page: number of items to fetch per page +-# remote: data-remote +%span.last + = link_to_unless current_page.last?, t('views.pagination.last').html_safe, url, :remote => remote diff --git a/app/views/kaminari/admin/_next_page.html.haml b/app/views/kaminari/admin/_next_page.html.haml new file mode 100644 index 000000000..2865dcd0c --- /dev/null +++ b/app/views/kaminari/admin/_next_page.html.haml @@ -0,0 +1,9 @@ +-# Link to the "Next" page +-# available local variables +-# url: url to the next page +-# current_page: a page object for the currently displayed page +-# total_pages: total number of pages +-# per_page: number of items to fetch per page +-# remote: data-remote +%span.next + = link_to_unless current_page.last?, t('views.pagination.next').html_safe, url, :rel => 'next', :remote => remote diff --git a/app/views/kaminari/admin/_page.html.haml b/app/views/kaminari/admin/_page.html.haml new file mode 100644 index 000000000..d583c58f1 --- /dev/null +++ b/app/views/kaminari/admin/_page.html.haml @@ -0,0 +1,12 @@ +-# Link showing page number +-# available local variables +-# page: a page object for "this" page +-# url: url to this page +-# current_page: a page object for the currently displayed page +-# total_pages: total number of pages +-# per_page: number of items to fetch per page +-# remote: data-remote +%span{:class => "page#{' current' if page.current?}"} + - param_name = current_page.instance_variable_get("@options")[:param_name] || Kaminari.config.param_name + - urlik = url_for( params.merge(param_name => page.to_i, :only_path => true)) + = link_to_unless page.current?, page, urlik, {:remote => remote, :rel => page.next? ? 'next' : page.prev? ? 'prev' : nil} diff --git a/app/views/kaminari/admin/_paginator.html.haml b/app/views/kaminari/admin/_paginator.html.haml new file mode 100644 index 000000000..4f33e2dee --- /dev/null +++ b/app/views/kaminari/admin/_paginator.html.haml @@ -0,0 +1,18 @@ +-# The container tag +-# available local variables +-# current_page: a page object for the currently displayed page +-# total_pages: total number of pages +-# per_page: number of items to fetch per page +-# remote: data-remote +-# paginator: the paginator that renders the pagination tags inside += paginator.render do + %nav.pagination + = first_page_tag unless current_page.first? + = prev_page_tag unless current_page.first? + - each_page do |page| + - if page.left_outer? || page.right_outer? || page.inside_window? + = page_tag page + - elsif !page.was_truncated? + = gap_tag + = next_page_tag unless current_page.last? + = last_page_tag unless current_page.last? diff --git a/app/views/kaminari/admin/_prev_page.html.haml b/app/views/kaminari/admin/_prev_page.html.haml new file mode 100644 index 000000000..3b565fa6f --- /dev/null +++ b/app/views/kaminari/admin/_prev_page.html.haml @@ -0,0 +1,11 @@ +-# Link to the "Previous" page +-# available local variables +-# url: url to the previous page +-# current_page: a page object for the currently displayed page +-# total_pages: total number of pages +-# per_page: number of items to fetch per page +-# remote: data-remote +%span.prev + - param_name = current_page.instance_variable_get("@options")[:param_name] || Kaminari.config.param_name + - urlik = url_for( params.merge(param_name => current_page.to_i - 1, :only_path => true)) + = link_to_unless current_page.first?, t('views.pagination.previous').html_safe, urlik, :rel => 'prev', :remote => remote From 4b9ba0fe13d5afdfe19e4ae77a1c66d02add0ea7 Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Wed, 25 May 2016 11:09:06 +0300 Subject: [PATCH 09/21] Story#108869472 - contact history uses same pagination what domain history does --- .../admin/contact_versions_controller.rb | 17 +++++++++++++---- app/views/admin/contact_versions/show.haml | 16 +++++----------- app/views/admin/domain_versions/show.haml | 14 ++++---------- 3 files changed, 22 insertions(+), 25 deletions(-) diff --git a/app/controllers/admin/contact_versions_controller.rb b/app/controllers/admin/contact_versions_controller.rb index 9c8d05e61..cf7648720 100644 --- a/app/controllers/admin/contact_versions_controller.rb +++ b/app/controllers/admin/contact_versions_controller.rb @@ -29,10 +29,19 @@ class Admin::ContactVersionsController < AdminController def show per_page = 7 - @version = ContactVersion.find(params[:id]) - @q = ContactVersion.where(item_id: @version.item_id).order(created_at: :desc).search - @versions = @q.result.page(params[:page]) - @versions = @versions.per(per_page) + @version = ContactVersion.find(params[:id]) + @versions = ContactVersion.where(item_id: @version.item_id).order(created_at: :desc) + + # what we do is calc amount of results until needed version + # then we cacl which page it is + if params[:page].blank? + counter = @versions.where("created_at > ?", @version.created_at).count + page = counter / per_page + page += 1 if (counter % per_page) != 0 + params[:page] = page + end + + @versions = @versions.page(params[:page]).per(per_page) end def search diff --git a/app/views/admin/contact_versions/show.haml b/app/views/admin/contact_versions/show.haml index d48f22be6..6bfe88ecc 100644 --- a/app/views/admin/contact_versions/show.haml +++ b/app/views/admin/contact_versions/show.haml @@ -92,15 +92,9 @@ .panel.panel-default{:style => "min-height:420px;"} %ul.nav.nav-pills.nav-stacked - @versions.each do |vs| - - if vs.id == @version.id - %li.active - = link_to admin_contact_version_path(vs.id) do - = l(vs.created_at, format: :short) - = vs.event - - else - %li - = link_to admin_contact_version_path(vs.id) do - = l(vs.created_at, format: :short) - = vs.event + %li{class: (vs.id == @version.id) && :active} + = link_to admin_contact_version_path(vs.id, page: params[:page]) do + = l(vs.created_at, format: :short) + = vs.event %span{:style => "padding-left:10px; position: absolute; bottom: 10px;"} - = paginate @versions \ No newline at end of file + = paginate @versions, theme: :admin \ No newline at end of file diff --git a/app/views/admin/domain_versions/show.haml b/app/views/admin/domain_versions/show.haml index 2a245ab1f..999714ad3 100644 --- a/app/views/admin/domain_versions/show.haml +++ b/app/views/admin/domain_versions/show.haml @@ -96,15 +96,9 @@ .panel.panel-default{:style => "min-height:450px;"} %ul.nav.nav-pills.nav-stacked - @versions.each do |vs| - - if vs.id == @version.id - %li.active - = link_to admin_domain_version_path(vs) do - = l(vs.created_at, format: :short) - = vs.event - - else - %li - = link_to admin_domain_version_path(vs) do - = l(vs.created_at, format: :short) - = vs.event + %li{class: (vs.id == @version.id) && :active} + = link_to admin_domain_version_path(vs) do + = l(vs.created_at, format: :short) + = vs.event %span{:style => "padding-left:10px; position: absolute; bottom: 10px;"} = paginate @versions, theme: :admin From a1dc8043ec16f26a4af2c16400ce501f0811eeb5 Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Wed, 25 May 2016 11:20:45 +0300 Subject: [PATCH 10/21] Story#120259603 - sort versions by id as otherwise postgresql becomes crazy on offset --- app/controllers/admin/contact_versions_controller.rb | 4 ++-- app/controllers/admin/domain_versions_controller.rb | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/controllers/admin/contact_versions_controller.rb b/app/controllers/admin/contact_versions_controller.rb index cf7648720..e318c0e9c 100644 --- a/app/controllers/admin/contact_versions_controller.rb +++ b/app/controllers/admin/contact_versions_controller.rb @@ -30,12 +30,12 @@ class Admin::ContactVersionsController < AdminController def show per_page = 7 @version = ContactVersion.find(params[:id]) - @versions = ContactVersion.where(item_id: @version.item_id).order(created_at: :desc) + @versions = ContactVersion.where(item_id: @version.item_id).order(id: :desc) # what we do is calc amount of results until needed version # then we cacl which page it is if params[:page].blank? - counter = @versions.where("created_at > ?", @version.created_at).count + counter = @versions.where("id > ?", @version.id).count page = counter / per_page page += 1 if (counter % per_page) != 0 params[:page] = page diff --git a/app/controllers/admin/domain_versions_controller.rb b/app/controllers/admin/domain_versions_controller.rb index 1a469ddeb..debf628cf 100644 --- a/app/controllers/admin/domain_versions_controller.rb +++ b/app/controllers/admin/domain_versions_controller.rb @@ -44,12 +44,12 @@ class Admin::DomainVersionsController < AdminController def show per_page = 7 @version = DomainVersion.find(params[:id]) - @versions = DomainVersion.where(item_id: @version.item_id).order(created_at: :desc) + @versions = DomainVersion.where(item_id: @version.item_id).order(id: :desc) # what we do is calc amount of results until needed version # then we cacl which page it is if params[:page].blank? - counter = @versions.where("created_at > ?", @version.created_at).count + counter = @versions.where("id > ?", @version.id).count page = counter / per_page page += 1 if (counter % per_page) != 0 params[:page] = page From c0a6737f1f417413efc129e531c9ca115f6447d8 Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Wed, 25 May 2016 12:07:02 +0300 Subject: [PATCH 11/21] Story#120259603 - remove phone number and rename column name in contact history --- app/views/admin/contact_versions/index.haml | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/app/views/admin/contact_versions/index.haml b/app/views/admin/contact_versions/index.haml index 0e513f37b..93699d4e3 100644 --- a/app/views/admin/contact_versions/index.haml +++ b/app/views/admin/contact_versions/index.haml @@ -16,16 +16,13 @@ .form-group = f.label :ident = f.search_field :ident, value: params[:q][:ident], class: 'form-control', placeholder: t(:ident) - .col-md-3 - .form-group - = f.label :phone - = f.search_field :phone, value: params[:q][:phone], class: 'form-control', placeholder: t(:phone) - .row - .col-md-3 .col-md-3 .form-group = label_tag :action = select_tag '[q][event]', options_for_select([['Update', 'update'], ['Destroy', 'destroy'], ['Create', 'create']], params[:q][:event]), { include_blank:true, multiple: false, placeholder: t(:choose), class: 'form-control js-combobox' } + .row + .col-md-3 + .col-md-3 .col-md-3 .form-group = label_tag t(:results_per_page) @@ -52,14 +49,12 @@ = t(:id) %th{class: 'col-xs-2'} = t(:ident) - %th{class: 'col-xs-2'} - = t(:phone) %th{class: 'col-xs-2'} = t(:registrar) - %th{class: 'col-xs-2'} - = t(:action_date) %th{class: 'col-xs-2'} = t(:action) + %th{class: 'col-xs-2'} + = t(:created_at) %tbody - @versions.each do |version| - if version @@ -70,12 +65,11 @@ %td= link_to(contact.name, admin_contact_version_path(version.id)) %td= contact.code %td= ident_for(contact) - %td= contact.phone %td - if contact.registrar = link_to(contact.registrar, admin_registrar_path(contact.registrar)) - %td= l(version.created_at, format: :short) %td= version.event + %td= l(version.created_at, format: :short) .row From 51bdd72f465a079294bcd5f086ede77f2bd7f884 Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Wed, 25 May 2016 12:31:53 +0300 Subject: [PATCH 12/21] Story#120259603 - remove registrered_at from pure domain history --- app/views/admin/domain_versions/show.haml | 3 --- 1 file changed, 3 deletions(-) diff --git a/app/views/admin/domain_versions/show.haml b/app/views/admin/domain_versions/show.haml index 999714ad3..c00200b88 100644 --- a/app/views/admin/domain_versions/show.haml +++ b/app/views/admin/domain_versions/show.haml @@ -24,9 +24,6 @@ %dl.dl-horizontal %dt= t(:name) %dd= link_to(domain.name, admin_domain_path(@version.item_id)) - %dt= t(:registered_at) - %dd - = l(domain.registered_at, format: :short) %dt= t(:created) %dd From e9a8cf086babda2a2f1a2703e9ea93a95ecb5b0f Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Wed, 25 May 2016 12:45:20 +0300 Subject: [PATCH 13/21] Story#120259603 - versions search is case insensitive --- app/controllers/admin/contact_versions_controller.rb | 2 +- app/controllers/admin/domain_versions_controller.rb | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/controllers/admin/contact_versions_controller.rb b/app/controllers/admin/contact_versions_controller.rb index e318c0e9c..dca7f8e7d 100644 --- a/app/controllers/admin/contact_versions_controller.rb +++ b/app/controllers/admin/contact_versions_controller.rb @@ -49,7 +49,7 @@ class Admin::ContactVersionsController < AdminController end def create_where_string(key, value) - " AND object->>'#{key}' LIKE '%#{value}%'" + " AND object->>'#{key}' ILIKE '%#{value}%'" end end diff --git a/app/controllers/admin/domain_versions_controller.rb b/app/controllers/admin/domain_versions_controller.rb index debf628cf..32fe3885d 100644 --- a/app/controllers/admin/domain_versions_controller.rb +++ b/app/controllers/admin/domain_versions_controller.rb @@ -9,12 +9,12 @@ class Admin::DomainVersionsController < AdminController search_params = params[:q].deep_dup if search_params[:registrant].present? - registrants = Contact.where("name like ?", "%#{search_params[:registrant].strip}%") + registrants = Contact.where("name ilike ?", "%#{search_params[:registrant].strip}%") search_params.delete(:registrant) end if search_params[:registrar].present? - registrars = Registrar.where("name like ?", "%#{search_params[:registrar].strip}%") + registrars = Registrar.where("name ilike ?", "%#{search_params[:registrar].strip}%") search_params.delete(:registrar) end @@ -63,7 +63,7 @@ class Admin::DomainVersionsController < AdminController end def create_where_string(key, value) - " AND object->>'#{key}' ~ '#{value}'" + " AND object->>'#{key}' ~* '#{value}'" end From 00b9d50c088d77c310e7a7303377a0b0909b2853 Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Tue, 31 May 2016 08:18:21 +0300 Subject: [PATCH 14/21] Story#108869472 - domain history search not failing whenregistrants not found --- app/controllers/admin/domain_versions_controller.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/controllers/admin/domain_versions_controller.rb b/app/controllers/admin/domain_versions_controller.rb index 32fe3885d..8812f443c 100644 --- a/app/controllers/admin/domain_versions_controller.rb +++ b/app/controllers/admin/domain_versions_controller.rb @@ -30,8 +30,10 @@ class Admin::DomainVersionsController < AdminController end end - whereS += " AND object->>'registrant_id' IN (#{registrants.map { |r| "'#{r.id.to_s}'" }.join ','})" if registrants - whereS += " AND object->>'registrar_id' IN (#{registrars.map { |r| "'#{r.id.to_s}'" }.join ','})" if registrars + whereS += " AND object->>'registrant_id' IN (#{registrants.map { |r| "'#{r.id.to_s}'" }.join ','})" if registrants.present? + whereS += " AND 1=0" if registrants == [] + whereS += " AND object->>'registrar_id' IN (#{registrars.map { |r| "'#{r.id.to_s}'" }.join ','})" if registrars.present? + whereS += " AND 1=0" if registrars == [] versions = DomainVersion.includes(:item).where(whereS) @q = versions.search(params[:q]) From e032eafc0bf2302beaa0c503927f1768ba0959ce Mon Sep 17 00:00:00 2001 From: Stas Date: Thu, 2 Jun 2016 15:45:10 +0300 Subject: [PATCH 15/21] 108869472-template_fix --- app/views/admin/domain_versions/archive.haml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/views/admin/domain_versions/archive.haml b/app/views/admin/domain_versions/archive.haml index 31fb9bc9d..4e8cc5a0c 100644 --- a/app/views/admin/domain_versions/archive.haml +++ b/app/views/admin/domain_versions/archive.haml @@ -49,10 +49,10 @@ = t(:registrant) %th{class: 'col-xs-2'} = t(:registrar) - %th{class: 'col-xs-2'} - = t(:action_date) %th{class: 'col-xs-2'} = t(:action) + %th{class: 'col-xs-2'} + = t(:created_at) %tbody - @versions.each do |version| - if version @@ -67,8 +67,8 @@ %td - if domain.registrar = link_to(domain.registrar, admin_registrar_path(domain.registrar)) - %td= l(version.created_at, format: :short) %td= version.event + %td= l(version.created_at, format: :short) .row From 4a2bbdda7b0ec8c971ef0fb51954ff570b0fc0e8 Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Fri, 10 Jun 2016 14:08:13 +0300 Subject: [PATCH 16/21] Strory#108869472 - get deleted registrars by history --- app/views/admin/domain_versions/archive.haml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/views/admin/domain_versions/archive.haml b/app/views/admin/domain_versions/archive.haml index 4e8cc5a0c..2ed111083 100644 --- a/app/views/admin/domain_versions/archive.haml +++ b/app/views/admin/domain_versions/archive.haml @@ -56,14 +56,19 @@ %tbody - @versions.each do |version| - if version - - domain = Domain.new(version.object.to_h) - - version.object_changes.to_h.each{|k,v| domain[k]=v.last} + - domain = Domain.new(version.object.to_h) + - version.object_changes.to_h.each{|k,v| domain[k]=v.last} %tr %td= link_to(domain.name, admin_domain_version_path(version.id)) %td - if domain.registrant - = domain.registrant + = domain.registrant.name + - else + - contact = Contact.all_versions_for([domain.registrant_id], version.created_at).first + - if contact.nil? && ver = ContactVersion.where(item_id: domain.registrant_id).last + - contact = Contact.new(ver.object.to_h.merge(ver.object_changes.to_h.each_with_object({}){|(k,v), o| o[k]=v.last } )) + = contact.try(:name) %td - if domain.registrar = link_to(domain.registrar, admin_registrar_path(domain.registrar)) From 8d35fe9e776f00dfd8ecb72d858b852a6c6cb850 Mon Sep 17 00:00:00 2001 From: Stas Date: Tue, 21 Jun 2016 13:39:49 +0300 Subject: [PATCH 17/21] 108869472-empty_version_fix --- app/views/admin/domain_versions/show.haml | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/app/views/admin/domain_versions/show.haml b/app/views/admin/domain_versions/show.haml index abdc6809e..d4dfa15f2 100644 --- a/app/views/admin/domain_versions/show.haml +++ b/app/views/admin/domain_versions/show.haml @@ -24,7 +24,11 @@ .panel-body %dl.dl-horizontal %dt= t(:name) - %dd= link_to(domain.name, admin_domain_path(@version.item_id)) + - if !domain.name + - domain_name = Domain.find(@version.item_id).try(:name) + - else + - domain_name = domain.name + %dd= link_to(domain_name, admin_domain_path(@version.item_id)) %dt= t(:created) %dd @@ -93,11 +97,12 @@ \...#{ns[:public_key].to_s[-20,20]} %br - %dt= t(:registrar) - %dd{class: changing_css_class(@version,"registrar_id")} - = link_to admin_registrar_path(domain.registrar), target: "registrar_#{domain.registrar.id}" do - = domain.registrar.name - %span{:style => "margin: 20px 20px; clear:both;"} + - if domain.registrar + %dt= t(:registrar) + %dd{class: changing_css_class(@version,"registrar_id")} + = link_to admin_registrar_path(domain.registrar), target: "registrar_#{domain.registrar.id}" do + = domain.registrar.name + %span{:style => "margin: 20px 20px; clear:both;"} - if @version.previous = link_to(t(:previous), From b013acad7cd9f7ab37904819daf5b3cccbf9de8f Mon Sep 17 00:00:00 2001 From: Stas Date: Fri, 8 Jul 2016 11:28:27 +0300 Subject: [PATCH 18/21] 108869472-filter_and_view_fixes --- app/controllers/admin/domain_versions_controller.rb | 5 ++++- app/views/admin/domain_versions/archive.haml | 2 ++ app/views/admin/domain_versions/show.haml | 8 ++++---- config/locales/en.yml | 1 + 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/app/controllers/admin/domain_versions_controller.rb b/app/controllers/admin/domain_versions_controller.rb index 8812f443c..6eb47fa64 100644 --- a/app/controllers/admin/domain_versions_controller.rb +++ b/app/controllers/admin/domain_versions_controller.rb @@ -25,6 +25,8 @@ class Admin::DomainVersionsController < AdminController case key when 'event' whereS += " AND event = '#{value}'" + when 'name' + whereS += " AND (object->>'name' ~* '#{value}' OR object_changes->>'name' ~* '#{value}')" else whereS += create_where_string(key, value) end @@ -47,11 +49,12 @@ class Admin::DomainVersionsController < AdminController per_page = 7 @version = DomainVersion.find(params[:id]) @versions = DomainVersion.where(item_id: @version.item_id).order(id: :desc) + @versions_map = @versions.all.map(&:id) # what we do is calc amount of results until needed version # then we cacl which page it is if params[:page].blank? - counter = @versions.where("id > ?", @version.id).count + counter = @versions_map.index(@version.id) + 1 page = counter / per_page page += 1 if (counter % per_page) != 0 params[:page] = page diff --git a/app/views/admin/domain_versions/archive.haml b/app/views/admin/domain_versions/archive.haml index 2ed111083..4e06f5ccb 100644 --- a/app/views/admin/domain_versions/archive.haml +++ b/app/views/admin/domain_versions/archive.haml @@ -69,6 +69,8 @@ - if contact.nil? && ver = ContactVersion.where(item_id: domain.registrant_id).last - contact = Contact.new(ver.object.to_h.merge(ver.object_changes.to_h.each_with_object({}){|(k,v), o| o[k]=v.last } )) = contact.try(:name) + = " ".html_safe + = "(#{t(:deleted)})" %td - if domain.registrar = link_to(domain.registrar, admin_registrar_path(domain.registrar)) diff --git a/app/views/admin/domain_versions/show.haml b/app/views/admin/domain_versions/show.haml index d4dfa15f2..bd937b0c5 100644 --- a/app/views/admin/domain_versions/show.haml +++ b/app/views/admin/domain_versions/show.haml @@ -104,16 +104,16 @@ = domain.registrar.name %span{:style => "margin: 20px 20px; clear:both;"} - - if @version.previous + - if prev = @versions_map[(@versions_map.index(@version.id) - 1)] = link_to(t(:previous), - admin_domain_version_path(@version.previous.id), + admin_domain_version_path(prev), class: 'btn btn-primary') - else %a.btn.btn-primary.disabled{:href => "#"} %span= t(:previous) - - if @version.next + - if nxt = @versions_map[(@versions_map.index(@version.id) + 1)] = link_to(t(:next), - admin_domain_version_path(@version.next.id), + admin_domain_version_path(nxt), class: 'btn btn-default') - else %a.btn.btn-default.disabled{:href => "#"} diff --git a/config/locales/en.yml b/config/locales/en.yml index 400985d16..c42a4728d 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -959,3 +959,4 @@ en: verified_confirm: 'Verified status is for cases when current registrant is the one applying for the update. Legal document signed by the registrant is required. Are you sure this update is properly verified with the registrant?' verified: 'Verified' only_estonian_residets_can_signin: "Access currently available only to Estonian citizens and e-residents with Estonian ID-card or Mobile-ID." + deleted: 'Deleted' \ No newline at end of file From d2ce612078cf6d3dc50bf0f348ce428ac298cb59 Mon Sep 17 00:00:00 2001 From: Stas Date: Thu, 28 Jul 2016 15:35:19 +0300 Subject: [PATCH 19/21] 108869472-sorting_changes --- app/controllers/admin/contact_versions_controller.rb | 7 ++++--- app/controllers/admin/domain_versions_controller.rb | 2 +- app/views/admin/contact_versions/show.haml | 12 ++++++------ app/views/admin/domain_versions/show.haml | 2 +- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/app/controllers/admin/contact_versions_controller.rb b/app/controllers/admin/contact_versions_controller.rb index dca7f8e7d..2538350be 100644 --- a/app/controllers/admin/contact_versions_controller.rb +++ b/app/controllers/admin/contact_versions_controller.rb @@ -30,12 +30,13 @@ class Admin::ContactVersionsController < AdminController def show per_page = 7 @version = ContactVersion.find(params[:id]) - @versions = ContactVersion.where(item_id: @version.item_id).order(id: :desc) + @versions = ContactVersion.where(item_id: @version.item_id).order(created_at: :desc, id: :desc) + @versions_map = @versions.all.map(&:id) # what we do is calc amount of results until needed version # then we cacl which page it is if params[:page].blank? - counter = @versions.where("id > ?", @version.id).count + counter = @versions_map.index(@version.id) + 1 page = counter / per_page page += 1 if (counter % per_page) != 0 params[:page] = page @@ -49,7 +50,7 @@ class Admin::ContactVersionsController < AdminController end def create_where_string(key, value) - " AND object->>'#{key}' ILIKE '%#{value}%'" + " AND object->>'#{key}' ~* '#{value}'" end end diff --git a/app/controllers/admin/domain_versions_controller.rb b/app/controllers/admin/domain_versions_controller.rb index 6eb47fa64..1ca67b33d 100644 --- a/app/controllers/admin/domain_versions_controller.rb +++ b/app/controllers/admin/domain_versions_controller.rb @@ -48,7 +48,7 @@ class Admin::DomainVersionsController < AdminController def show per_page = 7 @version = DomainVersion.find(params[:id]) - @versions = DomainVersion.where(item_id: @version.item_id).order(id: :desc) + @versions = DomainVersion.where(item_id: @version.item_id).order(created_at: :desc, id: :desc) @versions_map = @versions.all.map(&:id) # what we do is calc amount of results until needed version diff --git a/app/views/admin/contact_versions/show.haml b/app/views/admin/contact_versions/show.haml index dbf38dba9..fc5c48352 100644 --- a/app/views/admin/contact_versions/show.haml +++ b/app/views/admin/contact_versions/show.haml @@ -81,27 +81,27 @@ %span{:style => "padding-right:10px; float: right;"} - - if @version.previous + - if (prev = @versions_map[(@versions_map.index(@version.id) - 1)]) && @versions_map.index(@version.id) != 0 = link_to(t(:previous), - admin_contact_version_path(@version.previous.id), + admin_contact_version_path(prev), class: 'btn btn-primary') - else %a.btn.btn-primary.disabled{:href => "#"} %span= t(:previous) - - if @version.next + - if nxt = @versions_map[(@versions_map.index(@version.id) + 1)] = link_to(t(:next), - admin_contact_version_path(@version.next.id), + admin_contact_version_path(nxt), class: 'btn btn-default') - else %a.btn.btn-default.disabled{:href => "#"} %span= t(:next) .col-md-4 - .panel.panel-default{:style => "min-height:420px;"} + .panel.panel-default{:style => "min-height:450px;"} %ul.nav.nav-pills.nav-stacked - @versions.each do |vs| %li{class: (vs.id == @version.id) && :active} - = link_to admin_contact_version_path(vs.id, page: params[:page]) do + = link_to admin_contact_version_path(vs) do = l(vs.created_at, format: :short) = vs.event %span{:style => "padding-left:10px; position: absolute; bottom: 10px;"} diff --git a/app/views/admin/domain_versions/show.haml b/app/views/admin/domain_versions/show.haml index bd937b0c5..add5920fb 100644 --- a/app/views/admin/domain_versions/show.haml +++ b/app/views/admin/domain_versions/show.haml @@ -104,7 +104,7 @@ = domain.registrar.name %span{:style => "margin: 20px 20px; clear:both;"} - - if prev = @versions_map[(@versions_map.index(@version.id) - 1)] + - if (prev = @versions_map[(@versions_map.index(@version.id) - 1)]) && @versions_map.index(@version.id) != 0 = link_to(t(:previous), admin_domain_version_path(prev), class: 'btn btn-primary') From 19e5fbdffadf709590bf3959f325b453a7041fd1 Mon Sep 17 00:00:00 2001 From: Stas Paaslane Date: Tue, 2 Aug 2016 23:05:28 +0300 Subject: [PATCH 20/21] 108869472-main_version_page_sorting --- app/controllers/admin/contact_versions_controller.rb | 2 +- app/controllers/admin/domain_versions_controller.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/admin/contact_versions_controller.rb b/app/controllers/admin/contact_versions_controller.rb index 2538350be..491daf083 100644 --- a/app/controllers/admin/contact_versions_controller.rb +++ b/app/controllers/admin/contact_versions_controller.rb @@ -20,7 +20,7 @@ class Admin::ContactVersionsController < AdminController end end - versions = ContactVersion.includes(:item).where(whereS) + versions = ContactVersion.includes(:item).where(whereS).order(created_at: :desc, id: :desc) @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 diff --git a/app/controllers/admin/domain_versions_controller.rb b/app/controllers/admin/domain_versions_controller.rb index 1ca67b33d..8e350c247 100644 --- a/app/controllers/admin/domain_versions_controller.rb +++ b/app/controllers/admin/domain_versions_controller.rb @@ -37,7 +37,7 @@ class Admin::DomainVersionsController < AdminController whereS += " AND object->>'registrar_id' IN (#{registrars.map { |r| "'#{r.id.to_s}'" }.join ','})" if registrars.present? whereS += " AND 1=0" if registrars == [] - versions = DomainVersion.includes(:item).where(whereS) + versions = DomainVersion.includes(:item).where(whereS).order(created_at: :desc, id: :desc) @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 From 1182a20ba4f003cb0173a71cf78bf9c174cacff1 Mon Sep 17 00:00:00 2001 From: Stas Paaslane Date: Thu, 4 Aug 2016 19:23:18 +0300 Subject: [PATCH 21/21] 108869472-locales_merge --- config/locales/en.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/config/locales/en.yml b/config/locales/en.yml index f7f4193c8..5cc0031af 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -959,4 +959,5 @@ en: verified_confirm: 'Verified status is for cases when current registrant is the one applying for the update. Legal document signed by the registrant is required. Are you sure this update is properly verified with the registrant?' verified: 'Verified' only_estonian_residets_can_signin: "Access currently available only to Estonian citizens and e-residents with Estonian ID-card or Mobile-ID." - deleted: 'Deleted' cant_match_version: 'Impossible match version with request' + deleted: 'Deleted' + cant_match_version: 'Impossible match version with request'