diff --git a/app/controllers/admin/keyrelays_controller.rb b/app/controllers/admin/keyrelays_controller.rb index 092e4a276..bfafc86af 100644 --- a/app/controllers/admin/keyrelays_controller.rb +++ b/app/controllers/admin/keyrelays_controller.rb @@ -1,5 +1,10 @@ class Admin::KeyrelaysController < AdminController load_and_authorize_resource + def index + @q = Keyrelay.includes(:requester, :accepter).search(params[:q]) + @keyrelays = @q.result.page(params[:page]) + end + def show; end end diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index ba39047af..1acd32396 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -10,7 +10,7 @@ class ApplicationController < ActionController::Base end def after_sign_in_path_for(_resource) - return session[:user_return_to].to_s if session[:user_return_to] + return session[:user_return_to].to_s if session[:user_return_to] && session[:user_return_to] != login_path admin_root_path end end diff --git a/app/helpers/epp/keyrelay_helper.rb b/app/helpers/epp/keyrelay_helper.rb index 91062c979..c3e98ac8f 100644 --- a/app/helpers/epp/keyrelay_helper.rb +++ b/app/helpers/epp/keyrelay_helper.rb @@ -12,8 +12,6 @@ module Epp::KeyrelayHelper render '/epp/shared/success' end - # rubocop: enable Metrics/PerceivedComplexity - # rubocop: enable Metrics/CyclomaticComplexity private @@ -46,6 +44,9 @@ module Epp::KeyrelayHelper epp_errors.empty? end + # rubocop: enable Metrics/PerceivedComplexity + # rubocop: enable Metrics/CyclomaticComplexity + def find_domain_for_keyrelay domain_name = parsed_frame.css('name').text.strip.downcase domain = Epp::EppDomain.find_by(name: domain_name) diff --git a/app/models/keyrelay.rb b/app/models/keyrelay.rb index 90dc4ef59..255695050 100644 --- a/app/models/keyrelay.rb +++ b/app/models/keyrelay.rb @@ -19,7 +19,7 @@ class Keyrelay < ActiveRecord::Base end def expiry - if expiry_relative + if expiry_relative.present? pa_date + ISO8601::Duration.new(expiry_relative).to_seconds elsif expiry_absolute expiry_absolute diff --git a/app/views/admin/keyrelays/index.haml b/app/views/admin/keyrelays/index.haml new file mode 100644 index 000000000..87f868823 --- /dev/null +++ b/app/views/admin/keyrelays/index.haml @@ -0,0 +1,44 @@ +.row + .col-sm-12 + %h2.text-center-xs= t('keyrelays') +%hr +.row + .col-md-12 + = search_form_for [:admin, @q], html: { class: 'form-horizontal' } do |f| + .col-md-11 + .form-group + = f.search_field :domain_name_cont, class: 'form-control', placeholder: t('domain_name') + .col-md-1.text-right.text-center-xs + .form-group + %button.btn.btn-primary +   + %span.glyphicon.glyphicon-search +   +%hr +.row + .col-md-12 + .table-responsive + %table.table.table-hover.table-bordered.table-condensed + %thead + %tr + %th{class: 'col-xs-4'} + = sort_link(@q, 'pa_date', t('uploaded_at')) + %th{class: 'col-xs-3'} + = t('expiry') + %th{class: 'col-xs-2'} + = sort_link(@q, 'requester_name', t('requester')) + %th{class: 'col-xs-2'} + = sort_link(@q, 'accepter_name', t('accepter')) + %th{class: 'col-xs-1'} + = t('status') + %tbody + - @keyrelays.each do |x| + %tr + %td= link_to(x.pa_date, [:admin, x]) + %td= x.expiry + %td= link_to(x.requester, [:admin, x.requester]) + %td= link_to(x.accepter, [:admin, x.accepter]) + %td= x.status +.row + .col-md-12 + = paginate @keyrelays diff --git a/app/views/layouts/application.haml b/app/views/layouts/application.haml index c770a69ed..411d877d8 100644 --- a/app/views/layouts/application.haml +++ b/app/views/layouts/application.haml @@ -26,6 +26,7 @@ %li= link_to t('domains'), admin_domains_path %li= link_to t('contacts'), admin_contacts_path %li= link_to t('registrars'), admin_registrars_path + %li= link_to t('keyrelays'), admin_keyrelays_path - if can?(:access, :settings_menu) %li.dropdown %a.dropdown-toggle{"data-toggle" => "dropdown", href: "#"} diff --git a/config/locales/en.yml b/config/locales/en.yml index 00a85fa6c..be23b37f0 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -455,3 +455,4 @@ en: accepter: 'Accepter' keyrelay_details: 'Keyrelay details' unknown_expiry_absolute_pattern: 'Expiry absolute must be compatible to ISO 8601' + domain_name: 'Domain name' diff --git a/config/routes.rb b/config/routes.rb index f1a757920..b73587b29 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -13,6 +13,7 @@ Rails.application.routes.draw do resources :zonefile_settings + resources :keyrelays resources :domains resources :settings resources :registrars do @@ -35,6 +36,7 @@ Rails.application.routes.draw do resource :dashboard + root 'domains#index' end