From 65f50c23f07888d4c0f1a2fd39a34047f8b120c3 Mon Sep 17 00:00:00 2001 From: Priit Tark Date: Tue, 7 Apr 2015 15:33:41 +0300 Subject: [PATCH] Depp vendorized --- Gemfile | 3 +- Gemfile.lock | 52 ++- depp | 1 + vendor/gems/depp/Gemfile | 17 + vendor/gems/depp/Gemfile.lock | 182 +++++++++++ vendor/gems/depp/MIT-LICENSE | 20 ++ vendor/gems/depp/README.md | 23 ++ vendor/gems/depp/Rakefile | 37 +++ vendor/gems/depp/TODO | 1 + vendor/gems/depp/app/assets/images/depp/.keep | 0 .../depp/app/assets/images/depp/bg-alpha.png | Bin 0 -> 7089 bytes .../app/assets/images/depp/bg-development.png | Bin 0 -> 14496 bytes .../app/assets/images/depp/bg-staging.png | Bin 0 -> 12294 bytes .../depp/app/assets/images/depp/favicon.ico | 0 .../javascripts/depp/application.coffee | 31 ++ .../assets/stylesheets/depp/application.scss | 3 + .../stylesheets/depp/custom-boostrap.scss | 5 + .../app/assets/stylesheets/depp/general.sass | 226 +++++++++++++ .../assets/stylesheets/depp/overwrites.sass | 1 + .../depp/application_controller.rb | 54 ++++ .../controllers/depp/contacts_controller.rb | 84 +++++ .../controllers/depp/domains_controller.rb | 107 +++++++ .../controllers/depp/keyrelays_controller.rb | 17 + .../app/controllers/depp/polls_controller.rb | 50 +++ .../depp/xml_consoles_controller.rb | 23 ++ .../app/helpers/depp/application_helper.rb | 29 ++ .../gems/depp/app/models/depp/concerns/.keep | 0 vendor/gems/depp/app/models/depp/contact.rb | 293 +++++++++++++++++ vendor/gems/depp/app/models/depp/dnskey.rb | 25 ++ vendor/gems/depp/app/models/depp/domain.rb | 300 ++++++++++++++++++ vendor/gems/depp/app/models/depp/keyrelay.rb | 41 +++ vendor/gems/depp/app/models/depp/user.rb | 92 ++++++ .../depp/app/views/depp/contacts/_form.haml | 24 ++ .../depp/app/views/depp/contacts/check.haml | 33 ++ .../depp/app/views/depp/contacts/delete.haml | 18 ++ .../depp/app/views/depp/contacts/edit.haml | 3 + .../depp/contacts/form_partials/_address.haml | 33 ++ .../depp/contacts/form_partials/_code.haml | 9 + .../contacts/form_partials/_disclose.haml | 41 +++ .../depp/contacts/form_partials/_general.haml | 50 +++ .../form_partials/_legal_document.haml | 12 + .../depp/app/views/depp/contacts/index.haml | 25 ++ .../app/views/depp/contacts/info_index.haml | 19 ++ .../depp/app/views/depp/contacts/new.haml | 3 + .../depp/contacts/partials/_address.haml | 23 ++ .../depp/contacts/partials/_disclose.haml | 10 + .../depp/contacts/partials/_general.haml | 23 ++ .../depp/contacts/partials/_statuses.haml | 16 + .../depp/app/views/depp/contacts/show.haml | 16 + .../app/views/depp/domains/_check_form.haml | 10 + .../depp/app/views/depp/domains/_form.haml | 41 +++ .../depp/app/views/depp/domains/check.haml | 25 ++ .../app/views/depp/domains/check_index.haml | 5 + .../depp/app/views/depp/domains/delete.haml | 17 + .../depp/app/views/depp/domains/edit.haml | 4 + .../depp/domains/form_partials/_contacts.haml | 24 ++ .../depp/domains/form_partials/_dnskeys.haml | 57 ++++ .../depp/domains/form_partials/_general.haml | 19 ++ .../domains/form_partials/_nameservers.haml | 24 ++ .../depp/domains/form_partials/_statuses.haml | 24 ++ .../depp/app/views/depp/domains/index.haml | 47 +++ .../depp/app/views/depp/domains/info.haml | 26 ++ .../gems/depp/app/views/depp/domains/new.haml | 3 + .../depp/domains/partials/_contacts.haml | 15 + .../views/depp/domains/partials/_dnskeys.haml | 33 ++ .../views/depp/domains/partials/_general.haml | 22 ++ .../depp/domains/partials/_nameservers.haml | 17 + .../depp/domains/partials/_statuses.haml | 14 + .../depp/app/views/depp/domains/renew.haml | 14 + .../app/views/depp/domains/renew_index.haml | 22 ++ .../depp/app/views/depp/domains/transfer.haml | 16 + .../views/depp/domains/transfer_index.haml | 22 ++ .../depp/app/views/depp/keyrelays/show.haml | 55 ++++ .../gems/depp/app/views/depp/polls/show.haml | 89 ++++++ .../app/views/depp/shared/_epp_results.haml | 29 ++ .../views/depp/shared/_error_messages.haml | 5 + .../depp/app/views/depp/shared/_errors.haml | 5 + .../depp/app/views/depp/shared/_flash.haml | 4 + .../views/depp/shared/_flash_messages.haml | 4 + .../gems/depp/app/views/depp/shared/_nav.haml | 13 + .../depp/app/views/depp/shared/_title.haml | 9 + .../epp_requests/contact/check.xml | 12 + .../epp_requests/contact/check_multiple.xml | 14 + .../epp_requests/contact/create.xml | 34 ++ .../epp_requests/contact/delete.xml | 22 ++ .../epp_requests/contact/info.xml | 14 + .../epp_requests/contact/update_chg.xml | 36 +++ .../epp_requests/domain/check.xml | 12 + .../epp_requests/domain/create.xml | 44 +++ .../epp_requests/domain/delete.xml | 19 ++ .../xml_consoles/epp_requests/domain/info.xml | 15 + .../epp_requests/domain/renew.xml | 14 + .../epp_requests/domain/transfer.xml | 22 ++ .../epp_requests/domain/update.xml | 48 +++ .../epp_requests/keyrelay/keyrelay.xml | 24 ++ .../app/views/depp/xml_consoles/show.haml | 66 ++++ .../app/views/layouts/depp/application.haml | 42 +++ vendor/gems/depp/bin/rails | 12 + vendor/gems/depp/config/locales/en.yml | 126 ++++++++ vendor/gems/depp/config/locales/et.yml | 4 + vendor/gems/depp/config/routes.rb | 41 +++ vendor/gems/depp/depp.gemspec | 49 +++ vendor/gems/depp/lib/depp.rb | 5 + vendor/gems/depp/lib/depp/engine.rb | 10 + vendor/gems/depp/lib/depp/sorted_country.rb | 42 +++ vendor/gems/depp/lib/depp/version.rb | 3 + vendor/gems/depp/lib/tasks/depp_tasks.rake | 4 + vendor/gems/depp/test/depp_test.rb | 7 + vendor/gems/depp/test/dummy/README.rdoc | 28 ++ vendor/gems/depp/test/dummy/Rakefile | 6 + .../depp/test/dummy/app/assets/images/.keep | 0 .../app/assets/javascripts/application.js | 13 + .../app/assets/stylesheets/application.css | 15 + .../app/controllers/application_controller.rb | 5 + .../test/dummy/app/controllers/concerns/.keep | 0 .../dummy/app/helpers/application_helper.rb | 2 + vendor/gems/depp/test/dummy/app/mailers/.keep | 0 vendor/gems/depp/test/dummy/app/models/.keep | 0 .../depp/test/dummy/app/models/concerns/.keep | 0 .../app/views/layouts/application.html.erb | 14 + vendor/gems/depp/test/dummy/bin/bundle | 3 + vendor/gems/depp/test/dummy/bin/rails | 4 + vendor/gems/depp/test/dummy/bin/rake | 4 + vendor/gems/depp/test/dummy/bin/setup | 29 ++ vendor/gems/depp/test/dummy/config.ru | 4 + .../depp/test/dummy/config/application.rb | 26 ++ vendor/gems/depp/test/dummy/config/boot.rb | 5 + .../gems/depp/test/dummy/config/database.yml | 25 ++ .../depp/test/dummy/config/environment.rb | 5 + .../dummy/config/environments/development.rb | 41 +++ .../dummy/config/environments/production.rb | 79 +++++ .../test/dummy/config/environments/test.rb | 42 +++ .../test/dummy/config/initializers/assets.rb | 11 + .../initializers/backtrace_silencers.rb | 7 + .../config/initializers/cookies_serializer.rb | 3 + .../initializers/filter_parameter_logging.rb | 4 + .../dummy/config/initializers/inflections.rb | 16 + .../dummy/config/initializers/mime_types.rb | 4 + .../config/initializers/session_store.rb | 3 + .../config/initializers/wrap_parameters.rb | 14 + .../depp/test/dummy/config/locales/en.yml | 23 ++ vendor/gems/depp/test/dummy/config/routes.rb | 4 + .../gems/depp/test/dummy/config/secrets.yml | 22 ++ vendor/gems/depp/test/dummy/lib/assets/.keep | 0 vendor/gems/depp/test/dummy/log/.keep | 0 vendor/gems/depp/test/dummy/public/404.html | 67 ++++ vendor/gems/depp/test/dummy/public/422.html | 67 ++++ vendor/gems/depp/test/dummy/public/500.html | 66 ++++ .../gems/depp/test/dummy/public/favicon.ico | 0 .../depp/test/integration/navigation_test.rb | 10 + vendor/gems/depp/test/test_helper.rb | 20 ++ .../gems/depp/vendor/assets/javascripts/.keep | 0 .../jquery.nested_attributes.coffee | 293 +++++++++++++++++ .../gems/depp/vendor/assets/stylesheets/.keep | 0 154 files changed, 4485 insertions(+), 29 deletions(-) create mode 120000 depp create mode 100644 vendor/gems/depp/Gemfile create mode 100644 vendor/gems/depp/Gemfile.lock create mode 100644 vendor/gems/depp/MIT-LICENSE create mode 100644 vendor/gems/depp/README.md create mode 100644 vendor/gems/depp/Rakefile create mode 100644 vendor/gems/depp/TODO create mode 100644 vendor/gems/depp/app/assets/images/depp/.keep create mode 100644 vendor/gems/depp/app/assets/images/depp/bg-alpha.png create mode 100644 vendor/gems/depp/app/assets/images/depp/bg-development.png create mode 100644 vendor/gems/depp/app/assets/images/depp/bg-staging.png create mode 100644 vendor/gems/depp/app/assets/images/depp/favicon.ico create mode 100644 vendor/gems/depp/app/assets/javascripts/depp/application.coffee create mode 100644 vendor/gems/depp/app/assets/stylesheets/depp/application.scss create mode 100644 vendor/gems/depp/app/assets/stylesheets/depp/custom-boostrap.scss create mode 100644 vendor/gems/depp/app/assets/stylesheets/depp/general.sass create mode 100644 vendor/gems/depp/app/assets/stylesheets/depp/overwrites.sass create mode 100644 vendor/gems/depp/app/controllers/depp/application_controller.rb create mode 100644 vendor/gems/depp/app/controllers/depp/contacts_controller.rb create mode 100644 vendor/gems/depp/app/controllers/depp/domains_controller.rb create mode 100644 vendor/gems/depp/app/controllers/depp/keyrelays_controller.rb create mode 100644 vendor/gems/depp/app/controllers/depp/polls_controller.rb create mode 100644 vendor/gems/depp/app/controllers/depp/xml_consoles_controller.rb create mode 100644 vendor/gems/depp/app/helpers/depp/application_helper.rb create mode 100644 vendor/gems/depp/app/models/depp/concerns/.keep create mode 100644 vendor/gems/depp/app/models/depp/contact.rb create mode 100644 vendor/gems/depp/app/models/depp/dnskey.rb create mode 100644 vendor/gems/depp/app/models/depp/domain.rb create mode 100644 vendor/gems/depp/app/models/depp/keyrelay.rb create mode 100644 vendor/gems/depp/app/models/depp/user.rb create mode 100644 vendor/gems/depp/app/views/depp/contacts/_form.haml create mode 100644 vendor/gems/depp/app/views/depp/contacts/check.haml create mode 100644 vendor/gems/depp/app/views/depp/contacts/delete.haml create mode 100644 vendor/gems/depp/app/views/depp/contacts/edit.haml create mode 100644 vendor/gems/depp/app/views/depp/contacts/form_partials/_address.haml create mode 100644 vendor/gems/depp/app/views/depp/contacts/form_partials/_code.haml create mode 100644 vendor/gems/depp/app/views/depp/contacts/form_partials/_disclose.haml create mode 100644 vendor/gems/depp/app/views/depp/contacts/form_partials/_general.haml create mode 100644 vendor/gems/depp/app/views/depp/contacts/form_partials/_legal_document.haml create mode 100644 vendor/gems/depp/app/views/depp/contacts/index.haml create mode 100644 vendor/gems/depp/app/views/depp/contacts/info_index.haml create mode 100644 vendor/gems/depp/app/views/depp/contacts/new.haml create mode 100644 vendor/gems/depp/app/views/depp/contacts/partials/_address.haml create mode 100644 vendor/gems/depp/app/views/depp/contacts/partials/_disclose.haml create mode 100644 vendor/gems/depp/app/views/depp/contacts/partials/_general.haml create mode 100644 vendor/gems/depp/app/views/depp/contacts/partials/_statuses.haml create mode 100644 vendor/gems/depp/app/views/depp/contacts/show.haml create mode 100644 vendor/gems/depp/app/views/depp/domains/_check_form.haml create mode 100644 vendor/gems/depp/app/views/depp/domains/_form.haml create mode 100644 vendor/gems/depp/app/views/depp/domains/check.haml create mode 100644 vendor/gems/depp/app/views/depp/domains/check_index.haml create mode 100644 vendor/gems/depp/app/views/depp/domains/delete.haml create mode 100644 vendor/gems/depp/app/views/depp/domains/edit.haml create mode 100644 vendor/gems/depp/app/views/depp/domains/form_partials/_contacts.haml create mode 100644 vendor/gems/depp/app/views/depp/domains/form_partials/_dnskeys.haml create mode 100644 vendor/gems/depp/app/views/depp/domains/form_partials/_general.haml create mode 100644 vendor/gems/depp/app/views/depp/domains/form_partials/_nameservers.haml create mode 100644 vendor/gems/depp/app/views/depp/domains/form_partials/_statuses.haml create mode 100644 vendor/gems/depp/app/views/depp/domains/index.haml create mode 100644 vendor/gems/depp/app/views/depp/domains/info.haml create mode 100644 vendor/gems/depp/app/views/depp/domains/new.haml create mode 100644 vendor/gems/depp/app/views/depp/domains/partials/_contacts.haml create mode 100644 vendor/gems/depp/app/views/depp/domains/partials/_dnskeys.haml create mode 100644 vendor/gems/depp/app/views/depp/domains/partials/_general.haml create mode 100644 vendor/gems/depp/app/views/depp/domains/partials/_nameservers.haml create mode 100644 vendor/gems/depp/app/views/depp/domains/partials/_statuses.haml create mode 100644 vendor/gems/depp/app/views/depp/domains/renew.haml create mode 100644 vendor/gems/depp/app/views/depp/domains/renew_index.haml create mode 100644 vendor/gems/depp/app/views/depp/domains/transfer.haml create mode 100644 vendor/gems/depp/app/views/depp/domains/transfer_index.haml create mode 100644 vendor/gems/depp/app/views/depp/keyrelays/show.haml create mode 100644 vendor/gems/depp/app/views/depp/polls/show.haml create mode 100644 vendor/gems/depp/app/views/depp/shared/_epp_results.haml create mode 100644 vendor/gems/depp/app/views/depp/shared/_error_messages.haml create mode 100644 vendor/gems/depp/app/views/depp/shared/_errors.haml create mode 100644 vendor/gems/depp/app/views/depp/shared/_flash.haml create mode 100644 vendor/gems/depp/app/views/depp/shared/_flash_messages.haml create mode 100644 vendor/gems/depp/app/views/depp/shared/_nav.haml create mode 100644 vendor/gems/depp/app/views/depp/shared/_title.haml create mode 100644 vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/contact/check.xml create mode 100644 vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/contact/check_multiple.xml create mode 100644 vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/contact/create.xml create mode 100644 vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/contact/delete.xml create mode 100644 vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/contact/info.xml create mode 100644 vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/contact/update_chg.xml create mode 100644 vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/domain/check.xml create mode 100644 vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/domain/create.xml create mode 100644 vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/domain/delete.xml create mode 100644 vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/domain/info.xml create mode 100644 vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/domain/renew.xml create mode 100644 vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/domain/transfer.xml create mode 100644 vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/domain/update.xml create mode 100644 vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/keyrelay/keyrelay.xml create mode 100644 vendor/gems/depp/app/views/depp/xml_consoles/show.haml create mode 100644 vendor/gems/depp/app/views/layouts/depp/application.haml create mode 100755 vendor/gems/depp/bin/rails create mode 100644 vendor/gems/depp/config/locales/en.yml create mode 100644 vendor/gems/depp/config/locales/et.yml create mode 100644 vendor/gems/depp/config/routes.rb create mode 100644 vendor/gems/depp/depp.gemspec create mode 100644 vendor/gems/depp/lib/depp.rb create mode 100644 vendor/gems/depp/lib/depp/engine.rb create mode 100644 vendor/gems/depp/lib/depp/sorted_country.rb create mode 100644 vendor/gems/depp/lib/depp/version.rb create mode 100644 vendor/gems/depp/lib/tasks/depp_tasks.rake create mode 100644 vendor/gems/depp/test/depp_test.rb create mode 100644 vendor/gems/depp/test/dummy/README.rdoc create mode 100644 vendor/gems/depp/test/dummy/Rakefile create mode 100644 vendor/gems/depp/test/dummy/app/assets/images/.keep create mode 100644 vendor/gems/depp/test/dummy/app/assets/javascripts/application.js create mode 100644 vendor/gems/depp/test/dummy/app/assets/stylesheets/application.css create mode 100644 vendor/gems/depp/test/dummy/app/controllers/application_controller.rb create mode 100644 vendor/gems/depp/test/dummy/app/controllers/concerns/.keep create mode 100644 vendor/gems/depp/test/dummy/app/helpers/application_helper.rb create mode 100644 vendor/gems/depp/test/dummy/app/mailers/.keep create mode 100644 vendor/gems/depp/test/dummy/app/models/.keep create mode 100644 vendor/gems/depp/test/dummy/app/models/concerns/.keep create mode 100644 vendor/gems/depp/test/dummy/app/views/layouts/application.html.erb create mode 100755 vendor/gems/depp/test/dummy/bin/bundle create mode 100755 vendor/gems/depp/test/dummy/bin/rails create mode 100755 vendor/gems/depp/test/dummy/bin/rake create mode 100755 vendor/gems/depp/test/dummy/bin/setup create mode 100644 vendor/gems/depp/test/dummy/config.ru create mode 100644 vendor/gems/depp/test/dummy/config/application.rb create mode 100644 vendor/gems/depp/test/dummy/config/boot.rb create mode 100644 vendor/gems/depp/test/dummy/config/database.yml create mode 100644 vendor/gems/depp/test/dummy/config/environment.rb create mode 100644 vendor/gems/depp/test/dummy/config/environments/development.rb create mode 100644 vendor/gems/depp/test/dummy/config/environments/production.rb create mode 100644 vendor/gems/depp/test/dummy/config/environments/test.rb create mode 100644 vendor/gems/depp/test/dummy/config/initializers/assets.rb create mode 100644 vendor/gems/depp/test/dummy/config/initializers/backtrace_silencers.rb create mode 100644 vendor/gems/depp/test/dummy/config/initializers/cookies_serializer.rb create mode 100644 vendor/gems/depp/test/dummy/config/initializers/filter_parameter_logging.rb create mode 100644 vendor/gems/depp/test/dummy/config/initializers/inflections.rb create mode 100644 vendor/gems/depp/test/dummy/config/initializers/mime_types.rb create mode 100644 vendor/gems/depp/test/dummy/config/initializers/session_store.rb create mode 100644 vendor/gems/depp/test/dummy/config/initializers/wrap_parameters.rb create mode 100644 vendor/gems/depp/test/dummy/config/locales/en.yml create mode 100644 vendor/gems/depp/test/dummy/config/routes.rb create mode 100644 vendor/gems/depp/test/dummy/config/secrets.yml create mode 100644 vendor/gems/depp/test/dummy/lib/assets/.keep create mode 100644 vendor/gems/depp/test/dummy/log/.keep create mode 100644 vendor/gems/depp/test/dummy/public/404.html create mode 100644 vendor/gems/depp/test/dummy/public/422.html create mode 100644 vendor/gems/depp/test/dummy/public/500.html create mode 100644 vendor/gems/depp/test/dummy/public/favicon.ico create mode 100644 vendor/gems/depp/test/integration/navigation_test.rb create mode 100644 vendor/gems/depp/test/test_helper.rb create mode 100644 vendor/gems/depp/vendor/assets/javascripts/.keep create mode 100644 vendor/gems/depp/vendor/assets/javascripts/jquery.nested_attributes.coffee create mode 100644 vendor/gems/depp/vendor/assets/stylesheets/.keep diff --git a/Gemfile b/Gemfile index ef8bd59c9..cf017f8af 100644 --- a/Gemfile +++ b/Gemfile @@ -65,8 +65,7 @@ gem 'deep_cloneable', '~> 2.1.1' gem 'digidoc_client', '~> 0.2.1' # epp + repp client -gem 'depp', github: 'domify/depp', ref: 'bac84dba62baa1b6465523f52df9eb3140f4d1ee' -# gem 'depp', path: '../depp' +gem 'depp', path: 'vendor/gems/depp' gem 'epp', '~> 1.4.2', github: 'gitlabeu/epp' # for importing legacy db diff --git a/Gemfile.lock b/Gemfile.lock index 296ba4823..6e73077e9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -8,26 +8,6 @@ GIT activesupport (>= 3.0, < 6.0) request_store (~> 1.1.0) -GIT - remote: git://github.com/domify/depp.git - revision: bac84dba62baa1b6465523f52df9eb3140f4d1ee - ref: bac84dba62baa1b6465523f52df9eb3140f4d1ee - specs: - depp (0.0.2) - coderay (>= 1.1.0) - coffee-rails (>= 4.1.0) - countries (>= 0.9.3) - epp-xml (>= 0.10.4) - figaro (>= 1.1.0) - haml-rails (>= 0.9.0) - jquery-rails (>= 4.0.3) - kaminari (~> 0.16.3) - nokogiri (>= 1.6.6.2) - rails (>= 4.2.1) - sass-rails (>= 5.0.0) - uglifier (>= 2.6.1) - uuidtools (>= 2.1.4) - GIT remote: git://github.com/gitlabeu/epp.git revision: 505c3f2739eb1da918e54111aecfb138a822739d @@ -47,6 +27,24 @@ GIT nokogiri (~> 1.6.0) ruby_parser (~> 3.5) +PATH + remote: vendor/gems/depp + specs: + depp (0.0.2) + coderay (>= 1.1.0) + coffee-rails (>= 4.1.0) + countries (>= 0.9.3) + epp-xml (>= 0.10.4) + figaro (>= 1.1.0) + haml-rails (>= 0.9.0) + jquery-rails (>= 4.0.3) + kaminari (~> 0.16.3) + nokogiri (>= 1.6.6.2) + rails (>= 4.2.1) + sass-rails (>= 5.0.0) + uglifier (>= 2.6.1) + uuidtools (>= 2.1.4) + GEM remote: https://rubygems.org/ specs: @@ -147,7 +145,7 @@ GEM coffee-rails (4.1.0) coffee-script (>= 2.2.0) railties (>= 4.0.0, < 5.0) - coffee-script (2.3.0) + coffee-script (2.4.1) coffee-script-source execjs coffee-script-source (1.9.1) @@ -182,7 +180,7 @@ GEM builder (~> 3.2) equalizer (0.0.11) erubis (2.7.0) - execjs (2.4.0) + execjs (2.5.0) fabrication (2.12.2) faker (1.3.0) i18n (~> 0.5) @@ -223,7 +221,7 @@ GEM guard-rubocop (1.1.0) guard (~> 2.0) rubocop (~> 0.20) - gyoku (1.3.0) + gyoku (1.3.1) builder (>= 2.1.2) haml (4.0.6) tilt @@ -301,7 +299,7 @@ GEM cliver (~> 0.3.1) multi_json (~> 1.0) websocket-driver (>= 0.2.0) - polyamorous (1.1.0) + polyamorous (1.2.0) activerecord (>= 3.0) powerpack (0.0.9) pry (0.10.1) @@ -405,7 +403,7 @@ GEM virtus (~> 1.0) safe_yaml (1.0.4) sass (3.4.13) - sass-rails (5.0.2) + sass-rails (5.0.1) railties (>= 4.0.0, < 5.0) sass (~> 3.1) sprockets (>= 2.8, < 4.0) @@ -437,7 +435,7 @@ GEM temple (~> 0.6.9) tilt (>= 1.3.3, < 2.1) slop (3.6.0) - spring (1.3.3) + spring (1.3.4) spring-commands-rspec (1.0.4) spring (>= 0.9.1) sprockets (2.12.3) @@ -454,7 +452,7 @@ GEM systemu (2.6.5) temple (0.6.10) terminal-table (1.4.5) - therubyracer (0.12.1) + therubyracer (0.12.2) libv8 (~> 3.16.14.0) ref thor (0.19.1) diff --git a/depp b/depp new file mode 120000 index 000000000..591ef99cd --- /dev/null +++ b/depp @@ -0,0 +1 @@ +vendor/gems/depp \ No newline at end of file diff --git a/vendor/gems/depp/Gemfile b/vendor/gems/depp/Gemfile new file mode 100644 index 000000000..e718cb8a9 --- /dev/null +++ b/vendor/gems/depp/Gemfile @@ -0,0 +1,17 @@ +source 'https://rubygems.org' + +# Declare your gem's dependencies in depp.gemspec. +# Bundler will treat runtime dependencies like base dependencies, and +# development dependencies will be added by default to the :development group. +gemspec + +gem 'epp', '~> 1.4.2', github: 'gitlabeu/epp' + +# Declare any dependencies that are still in development here instead of in +# your gemspec. These might include edge Rails or gems from your path or +# Git. Remember to move these dependencies to your gemspec before releasing +# your gem to rubygems.org. + +# To use a debugger +# gem 'byebug', group: [:development, :test] + diff --git a/vendor/gems/depp/Gemfile.lock b/vendor/gems/depp/Gemfile.lock new file mode 100644 index 000000000..8bd574ea6 --- /dev/null +++ b/vendor/gems/depp/Gemfile.lock @@ -0,0 +1,182 @@ +GIT + remote: git://github.com/gitlabeu/epp.git + revision: 505c3f2739eb1da918e54111aecfb138a822739d + specs: + epp (1.4.2) + hpricot + libxml-ruby + +PATH + remote: . + specs: + depp (0.0.2) + coderay (>= 1.1.0) + coffee-rails (>= 4.1.0) + countries (>= 0.9.3) + epp-xml (>= 0.10.4) + figaro (>= 1.1.0) + haml-rails (>= 0.9.0) + jquery-rails (>= 4.0.3) + nokogiri (>= 1.6.6.2) + rails (>= 4.2.1) + sass-rails (>= 5.0.0) + uglifier (>= 2.6.1) + uuidtools (>= 2.1.4) + +GEM + remote: https://rubygems.org/ + specs: + actionmailer (4.2.1) + actionpack (= 4.2.1) + actionview (= 4.2.1) + activejob (= 4.2.1) + mail (~> 2.5, >= 2.5.4) + rails-dom-testing (~> 1.0, >= 1.0.5) + actionpack (4.2.1) + actionview (= 4.2.1) + activesupport (= 4.2.1) + rack (~> 1.6) + rack-test (~> 0.6.2) + rails-dom-testing (~> 1.0, >= 1.0.5) + rails-html-sanitizer (~> 1.0, >= 1.0.1) + actionview (4.2.1) + activesupport (= 4.2.1) + builder (~> 3.1) + erubis (~> 2.7.0) + rails-dom-testing (~> 1.0, >= 1.0.5) + rails-html-sanitizer (~> 1.0, >= 1.0.1) + activejob (4.2.1) + activesupport (= 4.2.1) + globalid (>= 0.3.0) + activemodel (4.2.1) + activesupport (= 4.2.1) + builder (~> 3.1) + activerecord (4.2.1) + activemodel (= 4.2.1) + activesupport (= 4.2.1) + arel (~> 6.0) + activesupport (4.2.1) + i18n (~> 0.7) + json (~> 1.7, >= 1.7.7) + minitest (~> 5.1) + thread_safe (~> 0.3, >= 0.3.4) + tzinfo (~> 1.1) + arel (6.0.0) + builder (3.2.2) + coderay (1.1.0) + coffee-rails (4.1.0) + coffee-script (>= 2.2.0) + railties (>= 4.0.0, < 5.0) + coffee-script (2.3.0) + coffee-script-source + execjs + coffee-script-source (1.9.1) + countries (0.11.3) + currencies (~> 0.4.2) + i18n_data (~> 0.6.0) + currencies (0.4.2) + epp-xml (0.10.4) + activesupport (~> 4.1) + builder (~> 3.2) + erubis (2.7.0) + execjs (2.4.0) + figaro (1.1.0) + thor (~> 0.14) + globalid (0.3.3) + activesupport (>= 4.1.0) + haml (4.0.6) + tilt + haml-rails (0.9.0) + actionpack (>= 4.0.1) + activesupport (>= 4.0.1) + haml (>= 4.0.6, < 5.0) + html2haml (>= 1.0.1) + railties (>= 4.0.1) + hike (1.2.3) + hpricot (0.8.6) + html2haml (2.0.0) + erubis (~> 2.7.0) + haml (~> 4.0.0) + nokogiri (~> 1.6.0) + ruby_parser (~> 3.5) + i18n (0.7.0) + i18n_data (0.6.3) + jquery-rails (4.0.3) + rails-dom-testing (~> 1.0) + railties (>= 4.2.0) + thor (>= 0.14, < 2.0) + json (1.8.2) + libxml-ruby (2.8.0) + loofah (2.0.1) + nokogiri (>= 1.5.9) + mail (2.6.3) + mime-types (>= 1.16, < 3) + mime-types (2.4.3) + mini_portile (0.6.2) + minitest (5.5.1) + multi_json (1.11.0) + nokogiri (1.6.6.2) + mini_portile (~> 0.6.0) + rack (1.6.0) + rack-test (0.6.3) + rack (>= 1.0) + rails (4.2.1) + actionmailer (= 4.2.1) + actionpack (= 4.2.1) + actionview (= 4.2.1) + activejob (= 4.2.1) + activemodel (= 4.2.1) + activerecord (= 4.2.1) + activesupport (= 4.2.1) + bundler (>= 1.3.0, < 2.0) + railties (= 4.2.1) + sprockets-rails + rails-deprecated_sanitizer (1.0.3) + activesupport (>= 4.2.0.alpha) + rails-dom-testing (1.0.6) + activesupport (>= 4.2.0.beta, < 5.0) + nokogiri (~> 1.6.0) + rails-deprecated_sanitizer (>= 1.0.1) + rails-html-sanitizer (1.0.2) + loofah (~> 2.0) + railties (4.2.1) + actionpack (= 4.2.1) + activesupport (= 4.2.1) + rake (>= 0.8.7) + thor (>= 0.18.1, < 2.0) + rake (10.4.2) + ruby_parser (3.6.5) + sexp_processor (~> 4.1) + sass (3.4.13) + sass-rails (5.0.1) + railties (>= 4.0.0, < 5.0) + sass (~> 3.1) + sprockets (>= 2.8, < 4.0) + sprockets-rails (>= 2.0, < 4.0) + tilt (~> 1.1) + sexp_processor (4.5.0) + sprockets (2.12.3) + hike (~> 1.2) + multi_json (~> 1.0) + rack (~> 1.0) + tilt (~> 1.1, != 1.3.0) + sprockets-rails (2.2.4) + actionpack (>= 3.0) + activesupport (>= 3.0) + sprockets (>= 2.8, < 4.0) + thor (0.19.1) + thread_safe (0.3.5) + tilt (1.4.1) + tzinfo (1.2.2) + thread_safe (~> 0.1) + uglifier (2.7.1) + execjs (>= 0.3.0) + json (>= 1.8.0) + uuidtools (2.1.5) + +PLATFORMS + ruby + +DEPENDENCIES + depp! + epp (~> 1.4.2)! diff --git a/vendor/gems/depp/MIT-LICENSE b/vendor/gems/depp/MIT-LICENSE new file mode 100644 index 000000000..d8af697eb --- /dev/null +++ b/vendor/gems/depp/MIT-LICENSE @@ -0,0 +1,20 @@ +Copyright 2015 Priit Tark + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/gems/depp/README.md b/vendor/gems/depp/README.md new file mode 100644 index 000000000..a52f532cb --- /dev/null +++ b/vendor/gems/depp/README.md @@ -0,0 +1,23 @@ +Depp +==== + +EPP/REPP Rails engine + +Installation +------------ + +Add Depp and epp to your Gemfile: + + gem 'depp', github: 'domify/depp' + gem 'epp', '~> 1.4.2', github: 'gitlabeu/epp' + +Mount Depp to your application routes, example: + + mount Depp::Engine, at: '/depp' + +Depp requires login_url helper, example in routes: + + get '/login', to: 'sessions#login', as: 'login' + +Depp requires current_user helper in controller + diff --git a/vendor/gems/depp/Rakefile b/vendor/gems/depp/Rakefile new file mode 100644 index 000000000..f35deb1c8 --- /dev/null +++ b/vendor/gems/depp/Rakefile @@ -0,0 +1,37 @@ +begin + require 'bundler/setup' +rescue LoadError + puts 'You must `gem install bundler` and `bundle install` to run rake tasks' +end + +require 'rdoc/task' + +RDoc::Task.new(:rdoc) do |rdoc| + rdoc.rdoc_dir = 'rdoc' + rdoc.title = 'Depp' + rdoc.options << '--line-numbers' + rdoc.rdoc_files.include('README.rdoc') + rdoc.rdoc_files.include('lib/**/*.rb') +end + +APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__) +load 'rails/tasks/engine.rake' + + +load 'rails/tasks/statistics.rake' + + + +Bundler::GemHelper.install_tasks + +require 'rake/testtask' + +Rake::TestTask.new(:test) do |t| + t.libs << 'lib' + t.libs << 'test' + t.pattern = 'test/**/*_test.rb' + t.verbose = false +end + + +task default: :test diff --git a/vendor/gems/depp/TODO b/vendor/gems/depp/TODO new file mode 100644 index 000000000..8e16354c5 --- /dev/null +++ b/vendor/gems/depp/TODO @@ -0,0 +1 @@ +* add config/application.yml default with rake task diff --git a/vendor/gems/depp/app/assets/images/depp/.keep b/vendor/gems/depp/app/assets/images/depp/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/vendor/gems/depp/app/assets/images/depp/bg-alpha.png b/vendor/gems/depp/app/assets/images/depp/bg-alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..c3f1bf12d94ec09b0d7244db68c076420b1feed5 GIT binary patch literal 7089 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

fP%QigUOEF-Oa>ww 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 b+}d&cqEXbsr}4qRSB)^Wx?E*)Bk}(L4vdGV literal 0 HcmV?d00001 diff --git a/vendor/gems/depp/app/assets/images/depp/bg-staging.png b/vendor/gems/depp/app/assets/images/depp/bg-staging.png new file mode 100644 index 0000000000000000000000000000000000000000..fcb408e19ff9ad02c30a059a9730fcd619ccc038 GIT binary patch literal 12294 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 b{eQ1lxW3*S@=)f(#wm8zPUzZ`=aT*p7`H23 literal 0 HcmV?d00001 diff --git a/vendor/gems/depp/app/assets/images/depp/favicon.ico b/vendor/gems/depp/app/assets/images/depp/favicon.ico new file mode 100644 index 000000000..e69de29bb diff --git a/vendor/gems/depp/app/assets/javascripts/depp/application.coffee b/vendor/gems/depp/app/assets/javascripts/depp/application.coffee new file mode 100644 index 000000000..1c8eddbdd --- /dev/null +++ b/vendor/gems/depp/app/assets/javascripts/depp/application.coffee @@ -0,0 +1,31 @@ +#= require jquery +#= require jquery_ujs +#= require turbolinks +#= require bootstrap-sprockets +#= require jquery.nested_attributes + +$(document).on 'ready page:load', -> + $('.js-contact-form').on 'restoreDefault', (e) -> + form = $(e.target) + form.find('.js-ident-tip').hide() + switch $('.js-ident-country-code option:selected').val() + when 'EE' + $('.js-ident-type').find('option[value=birthday]').prop('disabled', true) + else + $('.js-ident-type').find('option[value=birthday]').prop('disabled', false) + + $('.js-ident-country-code').change (e) -> + form = $('.js-contact-form') + form.trigger 'restoreDefault' + + $('.js-ident-type').change (e) -> + form = $('.js-contact-form') + form.trigger 'restoreDefault' + + switch e.target.value + # when 'bic' + # when 'priv' + when 'birthday' + form.find('.js-ident-tip').show() + + $('.js-contact-form').trigger('restoreDefault') diff --git a/vendor/gems/depp/app/assets/stylesheets/depp/application.scss b/vendor/gems/depp/app/assets/stylesheets/depp/application.scss new file mode 100644 index 000000000..5ac46af24 --- /dev/null +++ b/vendor/gems/depp/app/assets/stylesheets/depp/application.scss @@ -0,0 +1,3 @@ +//= require './custom-boostrap' +//= require './general' +//= require './overwrites' diff --git a/vendor/gems/depp/app/assets/stylesheets/depp/custom-boostrap.scss b/vendor/gems/depp/app/assets/stylesheets/depp/custom-boostrap.scss new file mode 100644 index 000000000..d2c776d1f --- /dev/null +++ b/vendor/gems/depp/app/assets/stylesheets/depp/custom-boostrap.scss @@ -0,0 +1,5 @@ +$font-family-sans-serif: 'EtelkaLightProRegular', Arial, Helvetica, sans-serif; +$font-family-serif: 'EtelkaLightProBold', Georgia, "Times New Roman", Times, serif; + +@import "bootstrap-sprockets"; +@import "bootstrap"; diff --git a/vendor/gems/depp/app/assets/stylesheets/depp/general.sass b/vendor/gems/depp/app/assets/stylesheets/depp/general.sass new file mode 100644 index 000000000..59768c4f9 --- /dev/null +++ b/vendor/gems/depp/app/assets/stylesheets/depp/general.sass @@ -0,0 +1,226 @@ +html + font-size: 100% + overflow-y: scroll + -webkit-text-size-adjust: 100% + -ms-text-size-adjust: 100% + +body + background: url(image_path('bg.jpg')) + +h1 + font-size: 26px + margin-bottom: 16px + +a + color: #008fd7 + text-decoration: none + +a:hover, +a:active + color: #008fd7 + outline: 0 + +h1, h2, h3, h4, h1 a, h2 a, h3 a, h4 a + color: #272f34 + text-decoration: none + font-weight: normal + font-family: 'EtelkaLightProBold' + +h1 + font-size: 22px + text-transform: uppercase + +body, +button, +input, +select, +textarea + font-family: 'EtelkaLightProRegular', Arial, Helvetica, sans-serif + color: #5d6064 + font-size: 13px + +abbr[title] + border-bottom: 1px dotted + +b, +strong + font-weight: normal + font-family: 'EtelkaLightProBold' + +blockquote + margin: 1em 40px + +dfn + font-style: italic + +mark + background: #ff0 + color: #000 + +pre, +code, +kbd, +samp + font-family: monospace, serif + _font-family: 'courier new', monospace + font-size: 1em + +pre + white-space: pre + white-space: pre-wrap + word-wrap: break-word + +q + quotes: none + +q:before, +q:after + content: '' + content: none + +small + font-size: 75% + +sub, +sup + font-size: 75% + line-height: 0 + position: relative + vertical-align: baseline + +sup + top: -0.5em + +sub + bottom: -0.25em + +.title-row + margin-bottom: 22px + +.app-nav + padding-top: 7px + +.general-tab + padding-top: 30px + padding-right: 20px + border-top: 0px + +.container + border-radius: 3px + width: 860px +body > .container + background: #F8F8F8 + margin-bottom: 50px + min-height: 600px + padding: 30px 30px 56px 30px + +.container.version + background: transparent + margin-top: -116px + min-height: 0px + text-align: right + font-size: 12px + color: gray + +.container.subnav + background: transparent + min-height: 0 + padding: 0 46px 0 0 + margin-bottom: 0 + ul.nav + li a + background: #E7E7E7 + height: 33px + line-height: 12px + color: gray + &:hover + color: #333 + li.active a + background: #F8F8F8 + font-weight: bold + color: #333 + + +.subactions + h4 + margin-bottom: 20px + margin-top: 10px + min-height: 600px + +.sidebar + min-height: 400px + +.content + margin-right: 240px + margin-left: 0 + +h4 + margin: 0 + +.top-actions + margin-top: 12px + margin-bottom: 16px + float: right + +.navbar-brand + line-height: 12px + padding-top: 20px + padding-bottom: 5px + +.navbar-brand small + display: block + font-size: 10px + +.footer + color: #777 + padding-top: 70px + padding-bottom: 10px + font-size: 10px + +.domify + td + vertical-align: middle !important + +body.login + padding-top: 40px + padding-bottom: 40px + + .form-signin + .form-signin-heading, + .form-signin + .checkbox + margin-bottom: 10px + + .form-signin + max-width: 330px + padding: 15px + margin: 0 auto + + input[type="text"] + margin-bottom: 8px + + input[type="password"] + margin-bottom: 10px + + .btn-lg + margin-top: 28px + + .checkbox + font-weight: normal + + .form-control + position: relative + height: auto + -webkit-box-sizing: border-box + -moz-box-sizing: border-box + box-sizing: border-box + padding: 10px + font-size: 16px + + .form-control:focus + z-index: 2 + +// fix label position for medium screen +@media (min-width: 768px) and (max-width: 991px) + .form-horizontal .control-label + text-align: left diff --git a/vendor/gems/depp/app/assets/stylesheets/depp/overwrites.sass b/vendor/gems/depp/app/assets/stylesheets/depp/overwrites.sass new file mode 100644 index 000000000..ec4308d11 --- /dev/null +++ b/vendor/gems/depp/app/assets/stylesheets/depp/overwrites.sass @@ -0,0 +1 @@ +// Overwrite this file at your application app/assets/stylesheets/depp/overwrite.sass diff --git a/vendor/gems/depp/app/controllers/depp/application_controller.rb b/vendor/gems/depp/app/controllers/depp/application_controller.rb new file mode 100644 index 000000000..9a30231fc --- /dev/null +++ b/vendor/gems/depp/app/controllers/depp/application_controller.rb @@ -0,0 +1,54 @@ +module Depp + # class ApplicationController < ::ApplicationController + class ApplicationController < ActionController::Base + include CurrentUserHelper + include ApplicationHelper + + # Prevent CSRF attacks by raising an exception. + # For APIs, you may want to use :null_session instead. + protect_from_forgery with: :exception + + helper_method :depp_current_user + + rescue_from(Errno::ECONNRESET, Errno::ECONNREFUSED) do |exception| + redirect_to login_url, alert: t(:no_connection_to_registry) + end + + before_action :authenticate_user + def authenticate_user + if ENV['session_timeout'] + redirect_to main_app.login_url and return unless depp_current_user && session[:last_seen] + + if (session[:last_seen].to_i + ENV['session_timeout'].to_i) < Time.now.to_i + session_timeout + else + session[:last_seen] = Time.now.to_i + end + else + redirect_to main_app.login_url and return unless depp_current_user + end + end + + def session_timeout + reset_session + flash[:alert] = t('your_session_has_timed_out') + redirect_to main_app.login_url and return + end + + def depp_current_user + return nil unless current_user + @depp_current_user ||= Depp::User.new( + tag: current_user.username, + password: current_user.password + ) + end + + def response_ok? + @data.css('result').each do |x| + success_codes = %(1000, 1300, 1301) + return false unless success_codes.include?(x['code']) + end + true + end + end +end diff --git a/vendor/gems/depp/app/controllers/depp/contacts_controller.rb b/vendor/gems/depp/app/controllers/depp/contacts_controller.rb new file mode 100644 index 000000000..b4444fde3 --- /dev/null +++ b/vendor/gems/depp/app/controllers/depp/contacts_controller.rb @@ -0,0 +1,84 @@ +module Depp + class ContactsController < ApplicationController + before_action :init_epp_contact + + def index + limit, offset = pagination_details + + res = depp_current_user.repp_request('contacts', { details: true, limit: limit, offset: offset }) + flash.now[:epp_results] = [{ 'code' => res.code, 'msg' => res.message }] + @response = res.parsed_body.with_indifferent_access if res.code == '200' + @contacts = @response ? @response[:contacts] : [] + + @paginatable_array = Kaminari.paginate_array( + [], total_count: @response[:total_number_of_records] + ).page(params[:page]).per(limit) + end + + def new + @contact = Depp::Contact.new + end + + def show + @contact = Depp::Contact.find_by_id(params[:id]) + end + + def edit + @contact = Depp::Contact.find_by_id(params[:id]) + end + + def create + @contact = Depp::Contact.new(params[:contact]) + + if @contact.save + redirect_to contact_url(@contact.id) + else + render 'new' + end + end + + def update + @contact = Depp::Contact.new(params[:contact]) + + if @contact.update_attributes(params[:contact]) + redirect_to contact_url(@contact.id) + else + render 'edit' + end + end + + def delete + @contact = Depp::Contact.find_by_id(params[:id]) + end + + def destroy + @contact = Depp::Contact.new(params[:contact]) + + if @contact.delete + redirect_to contacts_url, notice: t(:destroyed) + else + render 'delete' + end + end + + def check + @ids = params[:contacts] + # if @ids + # @contacts = [] + # @ids.split(',').each do |id| + # @contacts << id.strip + # end + # end + return unless @ids + + @data = @contact.check(@ids) + @contacts = Depp::Contact.construct_check_hash_from_data(@data) + end + + private + + def init_epp_contact + Depp::Contact.user = depp_current_user + end + end +end diff --git a/vendor/gems/depp/app/controllers/depp/domains_controller.rb b/vendor/gems/depp/app/controllers/depp/domains_controller.rb new file mode 100644 index 000000000..6116fc9ce --- /dev/null +++ b/vendor/gems/depp/app/controllers/depp/domains_controller.rb @@ -0,0 +1,107 @@ +module Depp + class DomainsController < ApplicationController + before_action :init_domain, except: :new + + def index + limit, offset = pagination_details + + res = depp_current_user.repp_request('domains', { details: true, limit: limit, offset: offset }) + flash.now[:epp_results] = [{ 'code' => res.code, 'msg' => res.message }] + @response = res.parsed_body.with_indifferent_access if res.code == '200' + @contacts = @response ? @response[:contacts] : [] + + @paginatable_array = Kaminari.paginate_array( + [], total_count: @response[:total_number_of_records] + ).page(params[:page]).per(limit) + end + + def info + @data = @domain.info(params[:domain_name]) if params[:domain_name] + if response_ok? + render 'info' + else + flash[:alert] = t('domain_not_found') + redirect_to domains_path and return + end + end + + def check + if params[:domain_name] + @data = @domain.check(params[:domain_name]) + render 'check_index' and return unless response_ok? + else + render 'check_index' + end + end + + def new + @domain_params = Depp::Domain.default_params + end + + def create + @domain_params = params[:domain] + @data = @domain.create(@domain_params) + + if response_ok? + redirect_to info_domains_path(domain_name: @domain_params[:name]) + else + render 'new' + end + end + + def edit + @data = @domain.info(params[:domain_name]) + @domain_params = Depp::Domain.construct_params_from_server_data(@data) + end + + def update + @domain_params = params[:domain] + @data = @domain.update(@domain_params) + + if response_ok? + redirect_to info_domains_path(domain_name: @domain_params[:name]) + else + params[:domain_name] = @domain_params[:name] + render 'new' + end + end + + def delete; end + + def destroy + @data = @domain.delete(params[:domain]) + @results = @data.css('result') + if response_ok? + params[:domain_name] = nil + render 'info_index' + else + params[:domain_name] = params[:domain][:name] + render 'delete' + end + end + + def renew + if params[:domain_name] && params[:cur_exp_date] + @data = @domain.renew(params) + render 'renew_index' and return unless response_ok? + else + render 'renew_index' + end + end + + def transfer + if params[:domain_name] + @data = @domain.transfer(params) + render 'transfer_index' and return unless response_ok? + else + render 'transfer_index' + end + end + + private + + def init_domain + @domain = Depp::Domain.new(current_user: depp_current_user) + end + end +end diff --git a/vendor/gems/depp/app/controllers/depp/keyrelays_controller.rb b/vendor/gems/depp/app/controllers/depp/keyrelays_controller.rb new file mode 100644 index 000000000..0596e1444 --- /dev/null +++ b/vendor/gems/depp/app/controllers/depp/keyrelays_controller.rb @@ -0,0 +1,17 @@ +module Depp + class KeyrelaysController < ApplicationController + def show; end + + def create + keyrelay = Depp::Keyrelay.new(current_user: depp_current_user) + @data = keyrelay.keyrelay(params) + + if response_ok? + flash[:epp_results] = [{ 'code' => '1000', 'msg' => 'Command completed successfully' }] + redirect_to keyrelay_path + else + render 'show' + end + end + end +end diff --git a/vendor/gems/depp/app/controllers/depp/polls_controller.rb b/vendor/gems/depp/app/controllers/depp/polls_controller.rb new file mode 100644 index 000000000..16d8918e5 --- /dev/null +++ b/vendor/gems/depp/app/controllers/depp/polls_controller.rb @@ -0,0 +1,50 @@ +module Depp + class PollsController < ApplicationController + before_action :init_epp_xml + + def show + @data = depp_current_user.request(@ex.poll) + end + + def destroy + @data = depp_current_user.request(@ex.poll(poll: { + value: '', attrs: { op: 'ack', msgID: params[:id] } + })) + + @results = @data.css('result') + + @data = depp_current_user.request(@ex.poll) + render 'show' + end + + def confirm_keyrelay + domain_params = params[:domain] + @data = @domain.confirm_keyrelay(domain_params) + + if response_ok? + redirect_to info_domains_path(domain_name: domain_params[:name]) + else + @results = @data.css('result') + @data = depp_current_user.request(@ex.poll) + render 'show' + end + end + + def confirm_transfer + domain_params = params[:domain] + @data = @domain.confirm_transfer(domain_params) + + @results = @data.css('result') + @data = depp_current_user.request(@ex.poll) + + render 'show' + end + + private + + def init_epp_xml + @ex = EppXml::Session.new(cl_trid_prefix: depp_current_user.tag) + @domain = Depp::Domain.new(current_user: depp_current_user) + end + end +end diff --git a/vendor/gems/depp/app/controllers/depp/xml_consoles_controller.rb b/vendor/gems/depp/app/controllers/depp/xml_consoles_controller.rb new file mode 100644 index 000000000..ae417695e --- /dev/null +++ b/vendor/gems/depp/app/controllers/depp/xml_consoles_controller.rb @@ -0,0 +1,23 @@ +module Depp + class XmlConsolesController < ApplicationController + def show; end + + def create + begin + @result = depp_current_user.server.request(params[:payload]) + rescue + @result = 'CONNECTION ERROR - Is the EPP server running?' + end + render :show + end + + def load_xml + # binding.pry + cl_trid = "#{depp_current_user.tag}-#{Time.now.to_i}" + xml_dir_path = Depp::Engine.root + 'app/views/depp/xml_consoles/epp_requests' + xml = File.read("#{xml_dir_path}/#{params[:obj]}/#{params[:epp_action]}.xml") + xml.gsub!('ABC-12345', "#{cl_trid}") + render text: xml + end + end +end diff --git a/vendor/gems/depp/app/helpers/depp/application_helper.rb b/vendor/gems/depp/app/helpers/depp/application_helper.rb new file mode 100644 index 000000000..7c325f63f --- /dev/null +++ b/vendor/gems/depp/app/helpers/depp/application_helper.rb @@ -0,0 +1,29 @@ +module Depp + module ApplicationHelper + def unstable_env + return nil if Rails.env.production? + Rails.env + end + + def env_style + return '' if unstable_env.nil? + "background-image: url(#{image_path("depp/bg-#{unstable_env}.png")});" + end + + def ident_for(contact) + case contact.ident_type + when 'birthday' + "#{contact.ident} [#{contact.ident_type}]" + else + "#{contact.ident} [#{contact.ident_country_code} #{contact.ident_type}]" + end + end + + def pagination_details + params[:page] ||= 1 + limit = ENV['depp_records_on_page'] || DEPP_RECORDS_ON_PAGE + offset = ((params[:page].to_i - 1) * limit.to_i) + [limit, offset] + end + end +end diff --git a/vendor/gems/depp/app/models/depp/concerns/.keep b/vendor/gems/depp/app/models/depp/concerns/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/vendor/gems/depp/app/models/depp/contact.rb b/vendor/gems/depp/app/models/depp/contact.rb new file mode 100644 index 000000000..ebfac40f1 --- /dev/null +++ b/vendor/gems/depp/app/models/depp/contact.rb @@ -0,0 +1,293 @@ +module Depp + class Contact + include ActiveModel::Model + + attr_accessor :id, :name, :email, :phone, :org_name, + :ident, :ident_type, :ident_country_code, + :street, :city, :zip, :state, :country_code, + :password, :legal_document, :statuses, :code + + DISABLED = 'Disabled' + DISCLOSURE_TYPES = [DISABLED, '1', '0'] + TYPES = %w( bic priv birthday ) + SELECTION_TYPES = [ + [ 'Business code', 'bic' ], + [ 'Personal identification code', 'priv' ], + [ 'Birthday', 'birthday' ] + ] + + class << self + def new_from_params(params) + new( + id: params[:code], + code: params[:code], + email: params[:email], + phone: params[:phone], + ident: params[:ident], + ident_type: params[:ident_type], + ident_country_code: params[:ident_country_code], + + # postalInfo + name: params[:name], + org_name: params[:org_name], + + # address + street: params[:street], + city: params[:city], + zip: params[:zip], + state: params[:state], + country_code: params[:country_code], + ) + end + + def find_by_id(id) + data = info_xml(id) + + res = data.css('epp response resData infData') + new( + id: res.css('id').text, + code: res.css('id').text, + email: res.css('email').text, + phone: res.css('voice').text, + ident: res.css('ident').text, + ident_type: res.css('ident').first.try(:attributes).try(:[], 'type').try(:value), + ident_country_code: res.css('ident').first.try(:attributes).try(:[], 'cc').try(:value), + + # postalInfo + name: res.css('postalInfo name').text, + org_name: res.css('postalInfo org').text, + + # address + street: res.css('postalInfo addr street').text, + city: res.css('postalInfo addr city').text, + zip: res.css('postalInfo addr pc').text, + state: res.css('postalInfo addr sp').text, + country_code: res.css('postalInfo addr cc').text, + + # authInfo + password: res.css('authInfo pw').text, + + # statuses + statuses: data.css('status').map { |s| [s['s'], s.text] } + ) + end + + def user=(user) + @user = user + @epp_xml = EppXml::Contact.new(cl_trid_prefix: user.tag) + end + + def epp_xml + @epp_xml + end + + def user + @user + end + + def info_xml(id, password = nil) + xml = epp_xml.info( + id: { value: id }, + authInfo: { pw: { value: password } } + ) + user.request(xml) + end + + def construct_check_hash_from_data(data) + res = data.css('epp response resData chkData cd') + @contacts = [] + res.each do |_r| + id = res.css('id').try(:text) + reason = res.css('reason').present? ? res.css('reason').text : I18n.t(:available) + @contacts << { id: id, reason: reason } + end + @contacts + end + + def contact_id_from_xml(data) + id = data.css('epp response resData creData id').text + id.blank? ? nil : id + end + + def construct_create_disclosure_xml(cph, flag) + xml = { disclose: {} } + cph.each do |k, v| + xml[:disclose][k] = {} + xml[:disclose][k][:value] = v + end + xml[:disclose][:attrs] = {} + xml[:disclose][:attrs][:flag] = flag + xml.with_indifferent_access + end + + def extract_disclosure_hash(cpd) # cpd = contact_params[:disclose] + return {} unless cpd + cpd = cpd.delete_if { |k, v| v if v != '1' && k == 'flag' } + cpd + end + + def extract_info_disclosure(data) + hash = {} + data.css('disclose').each do |d| + flag = d.attributes['flag'].value + next unless flag + hash[flag] = {} + d.children.each do |c| + hash[flag][c.name] = flag if %w( name email fax voice addr org_name ).include?(c.name) + end + end + hash + end + end + + def initialize(attributes={}) + super + self.country_code = 'EE' if country_code.blank? + self.ident_type = 'bic' if ident_type.blank? + self.ident_country_code = 'EE' if ident_country_code.blank? + end + + def save + create_xml = Depp::Contact.epp_xml.create( + { + id: { value: code }, + email: { value: email }, + voice: { value: phone }, + postalInfo: { + name: { value: name }, + org: { value: org_name }, + addr: { + street: { value: street }, + city: { value: city }, + pc: { value: zip }, + sp: { value: state }, + cc: { value: country_code } + } + } + }, + extension_xml + ) + data = Depp::Contact.user.request(create_xml) + self.id = data.css('id').text + handle_errors(data) + end + + def update_attributes(params) + self.ident_country_code = params[:ident_country_code] + self.ident_type = params[:ident_type] + self.ident = params[:ident] + + self.name = params[:name] + self.email = params[:email] + self.phone = params[:phone] + + self.org_name = params[:org_name] + self.street = params[:street] + self.city = params[:city] + self.zip = params[:zip] + self.state = params[:state] + self.country_code = params[:country_code] + + update_xml = Depp::Contact.epp_xml.update( + { + id: { value: id }, + chg: { + voice: { value: phone }, + email: { value: email }, + postalInfo: { + name: { value: name }, + org: { value: org_name }, + addr: { + street: { value: street }, + city: { value: city }, + pc: { value: zip }, + sp: { value: state }, + cc: { value: country_code } + } + } + }, + authInfo: { + pw: { value: password } + } + }, + extension_xml + ) + data = Depp::Contact.user.request(update_xml) + handle_errors(data) + end + + def delete + delete_xml = Contact.epp_xml.delete( + { + id: { value: id }, + authInfo: { pw: { value: password } } + }, + extension_xml + ) + data = Depp::Contact.user.request(delete_xml) + handle_errors(data) + end + + def extension_xml + ident_xml.merge(legal_document_xml) + end + + def ident_xml + { + _anonymus: [ + ident: { value: ident, attrs: { type: ident_type, cc: ident_country_code } } + ] + } + end + + def legal_document_xml + return {} if legal_document.blank? + + type = legal_document.original_filename.split('.').last.downcase + { + _anonymus: [ + legalDocument: { value: Base64.encode64(legal_document.read), attrs: { type: type } } + ] + } + end + + def check(id) + xml = epp_xml.check(id: { value: id }) + current_user.request(xml) + end + + def country_name + Country.new(country_code) + end + + def bic? + ident_type == 'bic' + end + + def priv? + ident_type == 'priv' + end + + def persisted? + id.present? + end + + def handle_errors(data) + data.css('result').each do |x| + success_codes = %(1000, 1300, 1301) + + unless success_codes.include?(x['code']) + message = "#{x.css('msg').text} #{x.css('value').text}" + + attr = message.split('[').last.strip.sub(']','') if message.include?('[') + + attr = :base if attr.nil? + attr = 'phone' if attr == 'voice' + + errors.add(attr, message) + end + end + errors.blank? + end + end +end diff --git a/vendor/gems/depp/app/models/depp/dnskey.rb b/vendor/gems/depp/app/models/depp/dnskey.rb new file mode 100644 index 000000000..895dca74b --- /dev/null +++ b/vendor/gems/depp/app/models/depp/dnskey.rb @@ -0,0 +1,25 @@ +module Depp + class Dnskey + FLAGS = [ + ['0 - not for DNSSEC validation', 0], + ['256 - ZSK', 256], + ['257 - KSK', 257] + ] + + ALGORITHMS = [ + ['3 - DSA/SHA-1', 3], + ['5 - RSA/SHA-1', 5], + ['6 - DSA-NSEC3-SHA1', 6], + ['7 - RSASHA1-NSEC3-SHA1', 7], + ['8 - RSA/SHA-256', 8], + ['252 - Reserved for Indirect Keys', 252], + ['253 - Private algorithm', 253], + ['254 - Private algorithm OID', 254], + ['255 - Reserved', 255] + ] + + PROTOCOLS = [3] + + DS_DIGEST_TYPES = [1, 2] + end +end diff --git a/vendor/gems/depp/app/models/depp/domain.rb b/vendor/gems/depp/app/models/depp/domain.rb new file mode 100644 index 000000000..7034ebaee --- /dev/null +++ b/vendor/gems/depp/app/models/depp/domain.rb @@ -0,0 +1,300 @@ +module Depp + class Domain + include ActiveModel::Conversion + extend ActiveModel::Naming + + attr_accessor :name, :current_user, :epp_xml + + DOMAIN_STATUSES = %w( + clientDeleteProhibited + clientHold + clientRenewProhibited + clientTransferProhibited + clientUpdateProhibited + ) + + def initialize(args = {}) + self.current_user = args[:current_user] + self.epp_xml = EppXml::Domain.new(cl_trid_prefix: current_user.tag) + end + + def info(domain_name) + xml = epp_xml.info(name: { value: domain_name }) + current_user.request(xml) + end + + def check(domain_name) + xml = epp_xml.check( + _anonymus: [ + name: { value: domain_name } + ] + ) + current_user.request(xml) + end + + def create(domain_params) + xml = epp_xml.create({ + name: { value: domain_params[:name] }, + registrant: { value: domain_params[:registrant] }, + period: { value: domain_params[:period], attrs: { unit: domain_params[:period_unit] } }, + ns: Domain.create_nameservers_hash(domain_params), + _anonymus: Domain.create_contacts_hash(domain_params) + }, { + _anonymus: Domain.create_dnskeys_hash(domain_params) + }, Domain.construct_custom_params_hash(domain_params)) + + current_user.request(xml) + end + + def update(domain_params) + data = current_user.request(epp_xml.info(name: { value: domain_params[:name] })) + old_domain_params = Depp::Domain.construct_params_from_server_data(data) + + xml = epp_xml.update( + Depp::Domain.construct_edit_hash(domain_params, old_domain_params), + Depp::Domain.construct_ext_edit_hash(domain_params, old_domain_params), + Depp::Domain.construct_custom_params_hash(domain_params) + ) + + current_user.request(xml) + end + + def delete(domain_params) + xml = epp_xml.delete({ + name: { value: domain_params[:name] } + }, Depp::Domain.construct_custom_params_hash(domain_params)) + + current_user.request(xml) + end + + def renew(params) + current_user.request(epp_xml.renew( + name: { value: params[:domain_name] }, + curExpDate: { value: params[:cur_exp_date] }, + period: { value: params[:period], attrs: { unit: params[:period_unit] } } + )) + end + + def transfer(params) + op = params[:query] ? 'query' : nil + op = params[:approve] ? 'approve' : op + op = params[:reject] ? 'reject' : op + + current_user.request(epp_xml.transfer({ + name: { value: params[:domain_name] }, + authInfo: { pw: { value: params[:password] } } + }, op, Domain.construct_custom_params_hash(params))) + end + + def confirm_keyrelay(domain_params) + xml = epp_xml.update({ + name: { value: domain_params[:name] } + }, { + add: Domain.create_dnskeys_hash(domain_params) + }) + + current_user.request(xml) + end + + def confirm_transfer(domain_params) + data = current_user.request(epp_xml.info(name: { value: domain_params[:name] })) + pw = data.css('pw').text + + xml = epp_xml.transfer({ + name: { value: domain_params[:name] }, + authInfo: { pw: { value: pw } } + }, 'approve') + + current_user.request(xml) + end + + class << self + def default_params + ret = {} + + ret[:contacts_attributes] ||= {} + ENV['default_admin_contacts_count'].to_i.times do |i| + ret[:contacts_attributes][i] = { code: '', type: 'admin' } + end + + ret[:nameservers_attributes] ||= {} + ENV['default_nameservers_count'].to_i.times do |i| + ret[:nameservers_attributes][i] = {} + end + + ret[:dnskeys_attributes] ||= { 0 => {} } + ret[:statuses_attributes] ||= { 0 => {} } + ret.with_indifferent_access + end + + def construct_params_from_server_data(data) # rubocop:disable Metrics/MethodLength + ret = default_params + ret[:name] = data.css('name').text + ret[:registrant] = data.css('registrant').text + + data.css('contact').each_with_index do |x, i| + ret[:contacts_attributes][i] = { code: x.text, type: x['type'] } + end + + data.css('hostAttr').each_with_index do |x, i| + ret[:nameservers_attributes][i] = { + hostname: x.css('hostName').text, + ipv4: x.css('hostAddr[ip="v4"]').text, + ipv6: x.css('hostAddr[ip="v6"]').text + } + end + + data.css('dsData').each_with_index do |x, i| + ds = { + ds_key_tag: x.css('keyTag').first.try(:text), + ds_alg: x.css('alg').first.try(:text), + ds_digest_type: x.css('digestType').first.try(:text), + ds_digest: x.css('digest').first.try(:text) + } + + kd = x.css('keyData').first + ds.merge!({ + flags: kd.css('flags').first.try(:text), + protocol: kd.css('protocol').first.try(:text), + alg: kd.css('alg').first.try(:text), + public_key: kd.css('pubKey').first.try(:text) + }) if kd + + ret[:dnskeys_attributes][i] = ds + end + + data.css('status').each_with_index do |x, i| + next unless DOMAIN_STATUSES.include?(x['s']) + ret[:statuses_attributes][i] = { + code: x['s'], + description: x.text + } + end + + ret + end + + def construct_custom_params_hash(domain_params) + custom_params = {} + if domain_params[:legal_document].present? + type = domain_params[:legal_document].original_filename.split('.').last.downcase + custom_params = { + _anonymus: [ + legalDocument: { value: Base64.encode64(domain_params[:legal_document].read), attrs: { type: type } } + ] + } + end + + custom_params + end + + def construct_edit_hash(domain_params, old_domain_params) + contacts = create_contacts_hash(domain_params) - create_contacts_hash(old_domain_params) + statuses = create_statuses_hash(domain_params) - create_statuses_hash(old_domain_params) + add_anon = contacts + statuses + + contacts = create_contacts_hash(old_domain_params) - create_contacts_hash(domain_params) + statuses = create_statuses_hash(old_domain_params) - create_statuses_hash(domain_params) + rem_anon = contacts + statuses + + if domain_params[:registrant] != old_domain_params[:registrant] + chg = [{ registrant: { value: domain_params[:registrant] } }] + end + + { + name: { value: domain_params[:name] }, + chg: chg, + add: [ + { ns: create_nameservers_hash(domain_params) - create_nameservers_hash(old_domain_params) }, + { _anonymus: add_anon } + ], + rem: [ + { ns: create_nameservers_hash(old_domain_params) - create_nameservers_hash(domain_params) }, + { _anonymus: rem_anon } + ] + } + end + + def construct_ext_edit_hash(domain_params, old_domain_params) + { + add: create_dnskeys_hash(domain_params) - create_dnskeys_hash(old_domain_params), + rem: create_dnskeys_hash(old_domain_params) - create_dnskeys_hash(domain_params) + } + end + + def create_nameservers_hash(domain_params) + ret = [] + domain_params[:nameservers_attributes].each do |_k, v| + next if v['hostname'].blank? + + host_attr = [] + host_attr << { hostName: { value: v['hostname'] } } + host_attr << { hostAddr: { value: v['ipv4'], attrs: { ip: 'v4' } } } if v['ipv4'].present? + host_attr << { hostAddr: { value: v['ipv6'], attrs: { ip: 'v6' } } } if v['ipv6'].present? + + ret << { hostAttr: host_attr } + end + + ret + end + + def create_contacts_hash(domain_params) + ret = [] + domain_params[:contacts_attributes].each do |_k, v| + next if v['code'].blank? + ret << { + contact: { value: v['code'], attrs: { type: v['type'] } } + } + end + + ret + end + + def create_dnskeys_hash(domain_params) + ret = [] + domain_params[:dnskeys_attributes].each do |_k, v| + if v['ds_key_tag'].blank? + kd = create_key_data_hash(v) + ret << { + keyData: kd + } if kd + else + ret << { + dsData: [ + keyTag: { value: v['ds_key_tag'] }, + alg: { value: v['ds_alg'] }, + digestType: { value: v['ds_digest_type'] }, + digest: { value: v['ds_digest'] }, + keyData: create_key_data_hash(v) + ] + } + end + end + + ret + end + + def create_key_data_hash(key_data_params) + return nil if key_data_params['public_key'].blank? + { + flags: { value: key_data_params['flags'] }, + protocol: { value: key_data_params['protocol'] }, + alg: { value: key_data_params['alg'] }, + pubKey: { value: key_data_params['public_key'] } + } + end + + def create_statuses_hash(domain_params) + ret = [] + domain_params[:statuses_attributes].each do |_k, v| + next if v['code'].blank? + ret << { + status: { value: v['description'], attrs: { s: v['code'] } } + } + end + + ret + end + end + end +end diff --git a/vendor/gems/depp/app/models/depp/keyrelay.rb b/vendor/gems/depp/app/models/depp/keyrelay.rb new file mode 100644 index 000000000..0d08d4add --- /dev/null +++ b/vendor/gems/depp/app/models/depp/keyrelay.rb @@ -0,0 +1,41 @@ +module Depp + class Keyrelay + attr_accessor :current_user, :epp_xml + + def initialize(args = {}) + self.current_user = args[:current_user] + self.epp_xml = EppXml::Keyrelay.new(cl_trid_prefix: current_user.tag) + end + + def keyrelay(params) # rubocop:disable Metrics/MethodLength + custom_params = {} + if params[:legal_document].present? + type = params[:legal_document].original_filename.split('.').last.downcase + custom_params = { + _anonymus: [ + legalDocument: { value: Base64.encode64(params[:legal_document].read), attrs: { type: type } } + ] + } + end + + xml = epp_xml.keyrelay({ + name: { value: params['domain_name'] }, + keyData: { + flags: { value: params['key_data_flags'] }, + protocol: { value: params['key_data_protocol'] }, + alg: { value: params['key_data_alg'] }, + pubKey: { value: params['key_data_public_key'] } + }, + authInfo: { + pw: { value: params['password'] } + }, + expiry: { + relative: { value: params['expiry_relative'] }, + absolute: { value: params['expiry_absolute'] } + } + }, custom_params) + + current_user.request(xml) + end + end +end diff --git a/vendor/gems/depp/app/models/depp/user.rb b/vendor/gems/depp/app/models/depp/user.rb new file mode 100644 index 000000000..935a3e499 --- /dev/null +++ b/vendor/gems/depp/app/models/depp/user.rb @@ -0,0 +1,92 @@ +module Depp + class User + include ActiveModel::Validations + include ActiveModel::Conversion + extend ActiveModel::Naming + + attr_accessor :tag, :password, :pki + + validates :tag, :password, presence: true + + validate :validate_existance_in_server + + def initialize(args = {}) + args.each { |k, v| send(k.to_s + '=', v) } + end + + def server + client_cert = File.read(ENV['cert_path']) + client_key = File.read(ENV['key_path']) + port = Rails.env.test? ? 701 : ENV['epp_port'] + + @server_cache ||= Epp::Server.new({ + server: ENV['epp_hostname'], + tag: tag, + password: password, + port: port, + cert: OpenSSL::X509::Certificate.new(client_cert), + key: OpenSSL::PKey::RSA.new(client_key) + }) + end + + def request(xml) + Nokogiri::XML(server.request(xml)).remove_namespaces! + end + + def repp_request(path, params = {}) + client_cert = File.read(ENV['cert_path']) + client_key = File.read(ENV['key_path']) + + uri = URI.parse("#{ENV['repp_url']}#{path}") + uri.query = URI.encode_www_form(params) + + req = Net::HTTP::Get.new(uri) + req.basic_auth tag, password + + res = Net::HTTP.start(uri.hostname, uri.port, + use_ssl: (uri.scheme == 'https'), + verify_mode: OpenSSL::SSL::VERIFY_NONE, + cert: OpenSSL::X509::Certificate.new(client_cert), + key: OpenSSL::PKey::RSA.new(client_key) + ) do |http| + http.request(req) + end + + ret = OpenStruct.new(code: res.code) + ret.parsed_body = JSON.parse(res.body) if res.body.present? + + if ret.parsed_body && ret.parsed_body['error'] + ret.message = ret.parsed_body['error'] + else + ret.message = res.message + end + + ret + end + + private + + def validate_existance_in_server + return if errors.any? + res = server.open_connection + unless Nokogiri::XML(res).css('greeting') + errors.add(:base, :failed_to_open_connection_to_epp_server) + server.close_connection # just in case + return + end + + ex = EppXml::Session.new(cl_trid_prefix: tag) + xml = ex.login(clID: { value: tag }, pw: { value: password }) + res = server.send_request(xml) + + if Nokogiri::XML(res).css('result').first['code'] != '1000' + errors.add(:base, :authorization_error) + end + + server.close_connection + + rescue OpenSSL::SSL::SSLError + errors.add(:base, :invalid_cert) + end + end +end diff --git a/vendor/gems/depp/app/views/depp/contacts/_form.haml b/vendor/gems/depp/app/views/depp/contacts/_form.haml new file mode 100644 index 000000000..d3c920b02 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/contacts/_form.haml @@ -0,0 +1,24 @@ += form_for(@contact, html: {class: 'form-horizontal js-contact-form'}) do |f| + = render 'depp/shared/error_messages', f: f + = f.hidden_field :id + = f.hidden_field :password + .row + .col-md-12 + = render 'depp/contacts/form_partials/general', f: f + .row + .col-md-12 + = render 'depp/contacts/form_partials/address', f: f + - if !@contact.persisted? + .row + .col-md-12 + = render 'depp/contacts/form_partials/code', f: f + .row + .col-md-12 + = render 'depp/contacts/form_partials/legal_document', f: f + + .row + .col-md-12.text-right + - if @contact.persisted? + = button_tag(t(:save), class: 'btn btn-primary') + - else + = button_tag(t(:create), class: 'btn btn-primary') diff --git a/vendor/gems/depp/app/views/depp/contacts/check.haml b/vendor/gems/depp/app/views/depp/contacts/check.haml new file mode 100644 index 000000000..35517ad39 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/contacts/check.haml @@ -0,0 +1,33 @@ += render 'depp/shared/title', name: t(:contact_info) + +%hr +.row + .col-md-12 + = form_tag check_contacts_path, class: 'form-horizontal', method: :get do + .col-md-11 + .form-group + = text_field_tag :contacts, params[:contacts], class: 'form-control', autocomplete: 'off' + + .col-md-1.text-right.text-center-xs + .form-group + .col-md-offset-2.col-md-10 + %button.btn.btn-primary +   + %span.glyphicon.glyphicon-search +   + +- if @contacts + %hr + .row + .col-md-12 + .table-responsive + %table.table.table-hover.table-bordered.table-condensed + %thead + %tr + %th= t('id') + %th= t('value') + %tbody + - @contacts.each do |contact| + %tr + %td= contact[:id] + %td= contact[:reason] diff --git a/vendor/gems/depp/app/views/depp/contacts/delete.haml b/vendor/gems/depp/app/views/depp/contacts/delete.haml new file mode 100644 index 000000000..1918461fa --- /dev/null +++ b/vendor/gems/depp/app/views/depp/contacts/delete.haml @@ -0,0 +1,18 @@ +- if @contact.persisted? + = render 'depp/shared/title', name: "#{t(:delete)}: #{@contact.name}" + + = form_for(@contact, class: 'form-horizontal', multipart: true, method: :delete) do |f| + = render 'depp/shared/error_messages', f: f + = f.hidden_field :id + = f.hidden_field :password + + .row + .col-md-12 + = render 'depp/contacts/form_partials/legal_document', f: f + + %hr + .row + .col-md-12.text-right + = button_tag t(:delete), class: 'btn btn-danger' +- else + %h2= "#{t(:delete)}: #{t(:not_found)}" diff --git a/vendor/gems/depp/app/views/depp/contacts/edit.haml b/vendor/gems/depp/app/views/depp/contacts/edit.haml new file mode 100644 index 000000000..067b6423b --- /dev/null +++ b/vendor/gems/depp/app/views/depp/contacts/edit.haml @@ -0,0 +1,3 @@ += render 'depp/shared/title', name: "#{t(:edit)}: #{@contact.name}" + += render 'form' diff --git a/vendor/gems/depp/app/views/depp/contacts/form_partials/_address.haml b/vendor/gems/depp/app/views/depp/contacts/form_partials/_address.haml new file mode 100644 index 000000000..352de0cc7 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/contacts/form_partials/_address.haml @@ -0,0 +1,33 @@ +.panel.panel-default + .panel-heading.clearfix + .pull-left= t(:address) + .panel-body + .form-group + .col-md-2.control-label + = f.label :street, t(:street) + '*' + .col-md-10 + = f.text_field :street, class: 'form-control' + + .form-group + .col-md-2.control-label + = f.label :city, t(:city) + '*' + .col-md-10 + = f.text_field :city, class: 'form-control' + + .form-group + .col-md-2.control-label + = f.label :zip, t(:zip) + '*' + .col-md-10 + = f.text_field :zip, class: 'form-control' + + .form-group + .col-md-2.control-label + = f.label :state, t(:state) + .col-md-10 + = f.text_field :state, class: 'form-control' + + .form-group + .col-md-2.control-label + = f.label :country_code, t(:country) + '*' + .col-md-10 + = f.select(:country_code, SortedCountry.all_options(f.object.country_code)) diff --git a/vendor/gems/depp/app/views/depp/contacts/form_partials/_code.haml b/vendor/gems/depp/app/views/depp/contacts/form_partials/_code.haml new file mode 100644 index 000000000..a9d6e131f --- /dev/null +++ b/vendor/gems/depp/app/views/depp/contacts/form_partials/_code.haml @@ -0,0 +1,9 @@ +.panel.panel-default + .panel-heading.clearfix + .pull-left= t(:code) + .panel-body + .form-group + .col-md-2.control-label + = f.label :code + .col-md-10 + = f.text_field :code, class: 'form-control' diff --git a/vendor/gems/depp/app/views/depp/contacts/form_partials/_disclose.haml b/vendor/gems/depp/app/views/depp/contacts/form_partials/_disclose.haml new file mode 100644 index 000000000..e7c7ee959 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/contacts/form_partials/_disclose.haml @@ -0,0 +1,41 @@ +.panel.panel-default + .panel-heading.clearfix + .pull-left= t('contact_disclosure') + + .panel-body + .form-group + = label_tag :contact_disclose_flag, t('flag_type'), class: 'col-md-2 control-label' + .col-md-10 + =# check_box_tag('contact[disclose][sv_policy]', @contact_params[:disclose][:sv_policy], class: 'form-control') + = select_tag('contact[disclose][flag]', options_for_select(Depp::Contact::DISCLOSURE_TYPES) ) + + .panel-body + .form-group + = label_tag :contact_disclose_name, t('name'), class: 'col-md-2 control-label' + .col-md-10 + = check_box_tag('contact[disclose][name]') + + .form-group + = label_tag :contact_disclose_email, t('email'), class: 'col-md-2 control-label' + .col-md-10 + = check_box_tag('contact[disclose][email]') + + .form-group + = label_tag :contact_disclose_org_name, t('org_name'), class: 'col-md-2 control-label' + .col-md-10 + = check_box_tag('contact[disclose][org_name]') + + .form-group + = label_tag :contact_disclose_address, t('address'), class: 'col-md-2 control-label' + .col-md-10 + = check_box_tag('contact[disclose][address]') + + .form-group + = label_tag :contact_disclose_voice, t('voice'), class: 'col-md-2 control-label' + .col-md-10 + = check_box_tag('contact[disclose][voice]') + + .form-group + = label_tag :contact_disclose_fax, t('fax'), class: 'col-md-2 control-label' + .col-md-10 + = check_box_tag('contact[disclose][fax]') diff --git a/vendor/gems/depp/app/views/depp/contacts/form_partials/_general.haml b/vendor/gems/depp/app/views/depp/contacts/form_partials/_general.haml new file mode 100644 index 000000000..70abe4171 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/contacts/form_partials/_general.haml @@ -0,0 +1,50 @@ +.panel.panel-default + .panel-heading.clearfix + .pull-left= t(:ident) + .panel-body + .form-group + .col-md-2.control-label + = f.label :ident_country_code, t(:country) + '*' + .col-md-10 + = f.select(:ident_country_code, SortedCountry.all_options(f.object.ident_country_code), {}, + class: 'js-ident-country-code') + + .form-group + .col-md-2.control-label + = f.label :ident_type, t(:type) + '*' + .col-md-10 + = f.select(:ident_type, Depp::Contact::SELECTION_TYPES, { selected: f.object.ident_type }, + class: 'js-ident-type') + + .form-group + .col-md-2.control-label + = f.label :ident, t(:ident) + '*' + .col-md-10 + = f.text_field :ident, class: 'form-control' + - tip_visibility = f.object.ident_type == 'birthday' ? '' : 'display: none' + .js-ident-tip{ style: tip_visibility } + = t(:birthday_format) + +.panel.panel-default + .panel-heading.clearfix + .pull-left= t(:general) + .panel-body + .form-group + .col-md-2.control-label + = f.label :name, t(:name) + '*' + .col-md-10 + = f.text_field :name, class: 'form-control' + + .form-group + .col-md-2.control-label + = f.label :email, t(:email) + '*' + .col-md-10 + = f.text_field :email, class: 'form-control' + + .form-group + .col-md-2.control-label + = f.label :phone, t(:phone) + '*' + .col-md-10 + = f.text_field(:phone, class: 'form-control', placeholder: '+372.12323344') + + diff --git a/vendor/gems/depp/app/views/depp/contacts/form_partials/_legal_document.haml b/vendor/gems/depp/app/views/depp/contacts/form_partials/_legal_document.haml new file mode 100644 index 000000000..6c423eb19 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/contacts/form_partials/_legal_document.haml @@ -0,0 +1,12 @@ +.form-group + .col-md-10 + +.panel.panel-default + .panel-heading.clearfix + .pull-left= t(:legal_document) + .panel-body + .form-group + .col-md-3.control-label + = f.label :legal_document, t(:legal_document) + .col-md-7 + = f.file_field :legal_document, :value => '' diff --git a/vendor/gems/depp/app/views/depp/contacts/index.haml b/vendor/gems/depp/app/views/depp/contacts/index.haml new file mode 100644 index 000000000..bc0410b58 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/contacts/index.haml @@ -0,0 +1,25 @@ +- content_for :actions do + = link_to(t(:new), new_contact_path, class: 'btn btn-primary') += render 'depp/shared/title', name: t(:contacts) + +- if @response + .panel.panel-default + .table-responsive + %table.table.table-hover.table-bordered.table-condensed.domify + %thead + %tr + %th{class: 'col-xs-3'}= t(:name) + %th{class: 'col-xs-3'}= t(:code) + %th{class: 'col-xs-3'}= t(:ident) + %th{class: 'col-xs-3'}= t(:actions) + %tbody + - @contacts.each do |c| + %tr + %td= link_to(c[:name], contact_path(id: c[:code])) + %td= c[:code] + %td= c[:ident] + %td + = link_to(t(:edit), edit_contact_path(c[:code]), class: 'btn btn-primary btn-xs') + = link_to(t(:delete), delete_contact_path(c[:code]), class: 'btn btn-default btn-xs') + += paginate @paginatable_array diff --git a/vendor/gems/depp/app/views/depp/contacts/info_index.haml b/vendor/gems/depp/app/views/depp/contacts/info_index.haml new file mode 100644 index 000000000..a4f02ce1c --- /dev/null +++ b/vendor/gems/depp/app/views/depp/contacts/info_index.haml @@ -0,0 +1,19 @@ += render 'depp/shared/title', name: t(:contacts_info) + +.row + .col-md-12 + = form_tag contact_path, class: 'form-horizontal', method: :get do + .form-group + = label_tag :contact_id, t('contact_id'), class: 'col-md-2 control-label' + .col-md-10 + = text_field_tag :contact_id, params[:contact_id], class: 'form-control', autocomplete: 'off' + .form-group + = label_tag :password, t('password'), class: 'col-md-2 control-label' + .col-md-10 + = text_field_tag :password, params[:password], class: 'form-control', autocomplete: 'off' + .form-group + .col-md-offset-2.col-md-10 + %button.btn.btn-primary +   + %span.glyphicon.glyphicon-search +   diff --git a/vendor/gems/depp/app/views/depp/contacts/new.haml b/vendor/gems/depp/app/views/depp/contacts/new.haml new file mode 100644 index 000000000..e4232f184 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/contacts/new.haml @@ -0,0 +1,3 @@ += render 'depp/shared/title', name: t(:new_contact) + += render 'form' diff --git a/vendor/gems/depp/app/views/depp/contacts/partials/_address.haml b/vendor/gems/depp/app/views/depp/contacts/partials/_address.haml new file mode 100644 index 000000000..ce26b5667 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/contacts/partials/_address.haml @@ -0,0 +1,23 @@ +.panel.panel-default + .panel-heading + %h3.panel-title= t(:address) + .panel-body + %dl.dl-horizontal + - if @contact.org_name.present? + %dt= t(:org_name) + %dd= @contact.org_name + + %dt= t(:street) + %dd= @contact.street + + %dt= t(:city) + %dd= @contact.city + + %dt= t(:zip) + %dd= @contact.zip + + %dt= t(:state) + %dd= @contact.state + + %dt= t(:country) + %dd= @contact.country_name diff --git a/vendor/gems/depp/app/views/depp/contacts/partials/_disclose.haml b/vendor/gems/depp/app/views/depp/contacts/partials/_disclose.haml new file mode 100644 index 000000000..734ca056d --- /dev/null +++ b/vendor/gems/depp/app/views/depp/contacts/partials/_disclose.haml @@ -0,0 +1,10 @@ +- @contact[:disclose].each do |flag, data| + - next if data.empty? + .panel.panel-default + .panel-heading + %h3.panel-title= t("disclosure-#{flag}") + .panel-body + %dl.dl-horizontal + - data.each do |k,v| + %dt= t(k) + diff --git a/vendor/gems/depp/app/views/depp/contacts/partials/_general.haml b/vendor/gems/depp/app/views/depp/contacts/partials/_general.haml new file mode 100644 index 000000000..2524f34e9 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/contacts/partials/_general.haml @@ -0,0 +1,23 @@ +.panel.panel-default + .panel-heading + %h3.panel-title= t(:general) + .panel-body + %dl.dl-horizontal + %dt= t(:ident) + %dd= ident_for(@contact) + + %br + + %dt= t(:email) + %dd= @contact.email + + %dt= t(:phone) + %dd= @contact.phone + + %br + + %dt= t(:contact_code) + %dd= @contact.id + + %dt= t(:password) + %dd= @contact.password diff --git a/vendor/gems/depp/app/views/depp/contacts/partials/_statuses.haml b/vendor/gems/depp/app/views/depp/contacts/partials/_statuses.haml new file mode 100644 index 000000000..5d41db972 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/contacts/partials/_statuses.haml @@ -0,0 +1,16 @@ +.panel.panel-default + .panel-heading + %h3.panel-title= t(:statuses) + .table-responsive + %table.table.table-hover.table-bordered.table-condensed + %thead + %tr + %th{class: 'col-xs-6'}= t(:status) + %th{class: 'col-xs-6'}= t(:description) + %tbody + - statuses.each do |s| + %tr + %td= s.first + %td= s.second + + diff --git a/vendor/gems/depp/app/views/depp/contacts/show.haml b/vendor/gems/depp/app/views/depp/contacts/show.haml new file mode 100644 index 000000000..bb070126e --- /dev/null +++ b/vendor/gems/depp/app/views/depp/contacts/show.haml @@ -0,0 +1,16 @@ +- if @contact.id.present? + - content_for :actions do + = link_to(t(:edit), edit_contact_path(@contact.id), class: 'btn btn-primary') + = link_to(t(:delete), delete_contact_path(@contact.id), class: 'btn btn-default') + = render 'depp/shared/title', name: truncate(@contact.name) + + .row + .col-md-6= render 'depp/contacts/partials/general' + .col-md-6= render 'depp/contacts/partials/address' + .row + .col-md-12= render 'depp/contacts/partials/statuses', statuses: @contact.statuses + +- else + .row + .col-sm-6 + %h1= t(:not_found) diff --git a/vendor/gems/depp/app/views/depp/domains/_check_form.haml b/vendor/gems/depp/app/views/depp/domains/_check_form.haml new file mode 100644 index 000000000..ca4295e1c --- /dev/null +++ b/vendor/gems/depp/app/views/depp/domains/_check_form.haml @@ -0,0 +1,10 @@ += form_tag check_domains_path, class: 'form-horizontal', method: :get do + .col-md-11 + .form-group + = text_field_tag :domain_name, params[:domain_name], class: 'form-control', placeholder: t('domain_name'), autocomplete: 'off' + .col-md-1.text-right.text-center-xs + .form-group + %button.btn.btn-primary +   + %span.glyphicon.glyphicon-search +   diff --git a/vendor/gems/depp/app/views/depp/domains/_form.haml b/vendor/gems/depp/app/views/depp/domains/_form.haml new file mode 100644 index 000000000..37da7efce --- /dev/null +++ b/vendor/gems/depp/app/views/depp/domains/_form.haml @@ -0,0 +1,41 @@ +- path = (params[:domain_name]) ? update_domains_path : domains_path += form_tag(path, class: 'form-horizontal', multipart: true) do + .row + .col-md-12 + / Nav tabs + %ul.nav.nav-tabs{:role => "tablist", id: 'tabs'} + %li.active + %a{"data-toggle" => "tab", :href => "#general-tab", :role => "tab"}= t('general') + - if params['domain_name'] + %li + %a{"data-toggle" => "tab", :href => "#statuses-tab", :role => "tab"}= t('statuses') + / Tab panes + .tab-content + #general-tab.tab-pane.active + = render 'depp/domains/form_partials/general' + = render 'depp/domains/form_partials/contacts' + %hr + = render 'depp/domains/form_partials/nameservers' + %hr + = render 'depp/domains/form_partials/dnskeys' + - if params['domain_name'] + #statuses-tab.tab-pane + = render 'depp/domains/form_partials/statuses' + + .panel.panel-default + .panel-heading.clearfix + .pull-left= t(:legal_document) + .panel-body + .form-group + = label_tag 'domain[legal_document]', t('legal_document'),class: 'col-md-3 control-label' + .col-md-9 + = file_field_tag 'domain[legal_document]' + + .row + .col-md-12.text-right + = button_tag(t('shared.save'), class: 'btn btn-primary') + +:javascript + $(function () { + $('#tabs a:first').tab('show') + }) diff --git a/vendor/gems/depp/app/views/depp/domains/check.haml b/vendor/gems/depp/app/views/depp/domains/check.haml new file mode 100644 index 000000000..6a3136b27 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/domains/check.haml @@ -0,0 +1,25 @@ += render 'depp/shared/title', name: t(:check_domain) + +.row + .col-md-12 + = render 'check_form' + +%hr + +.row + .col-md-12 + .panel.panel-default + .panel-heading + %h3.panel-title= t('result') + .panel-body + %dl.dl-horizontal + %dt= t('name') + %dd= @data.css('name').text + + - name = @data.css('name').first + %dt= t('available') + %dd= name['avail'] + + - if @data.css('reason').text.present? + %dt= t('reason') + %dd= @data.css('reason').text diff --git a/vendor/gems/depp/app/views/depp/domains/check_index.haml b/vendor/gems/depp/app/views/depp/domains/check_index.haml new file mode 100644 index 000000000..e01a408b9 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/domains/check_index.haml @@ -0,0 +1,5 @@ += render 'depp/shared/title', name: t(:check_domain) + +.row + .col-md-12 + = render 'check_form' diff --git a/vendor/gems/depp/app/views/depp/domains/delete.haml b/vendor/gems/depp/app/views/depp/domains/delete.haml new file mode 100644 index 000000000..3bf650930 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/domains/delete.haml @@ -0,0 +1,17 @@ += render 'depp/shared/title', name: "#{t(:delete)}: #{params[:domain_name]}" + += form_tag(destroy_domains_path, class: 'form-horizontal', multipart: true, method: :delete) do + .panel.panel-default + .panel-heading.clearfix + = t(:legal_document) + .panel-body + .form-group + .col-md-4.control-label + = label_tag 'domain[legal_document]', t('legal_document') + .col-md-6 + = file_field_tag 'domain[legal_document]' + = hidden_field_tag 'domain[name]', params[:domain_name] + %hr + .row + .col-md-12.text-right + = button_tag t('delete'), class: 'btn btn-danger' diff --git a/vendor/gems/depp/app/views/depp/domains/edit.haml b/vendor/gems/depp/app/views/depp/domains/edit.haml new file mode 100644 index 000000000..a258438bf --- /dev/null +++ b/vendor/gems/depp/app/views/depp/domains/edit.haml @@ -0,0 +1,4 @@ += render 'depp/shared/title', name: "#{t(:edit)}: #{params[:domain_name]}" + +%hr += render 'form' diff --git a/vendor/gems/depp/app/views/depp/domains/form_partials/_contacts.haml b/vendor/gems/depp/app/views/depp/domains/form_partials/_contacts.haml new file mode 100644 index 000000000..8fce6c4f5 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/domains/form_partials/_contacts.haml @@ -0,0 +1,24 @@ +#domain-contacts + - @domain_params['contacts_attributes'].each do |k, v| + .panel.panel-default + .panel-heading.clearfix + .pull-left= t('contact') + .pull-right + = link_to(t('add_another'), '#', class: 'btn btn-primary btn-xs add-domain-contact') + = link_to(t('delete'), '#', class: 'btn btn-danger btn-xs destroy') + .panel-body + .form-group + = label_tag "domain_contacts_attributes_#{k}_type", t('contact_type'), class: 'col-md-2 control-label' + .col-md-10 + = select_tag "domain[contacts_attributes][#{k}][type]", options_for_select(['admin', 'tech'], v['type']), {class: 'form-control'} + + .form-group + = label_tag "domain_contacts_attributes_#{k}_code", t('contact_code'), class: 'col-md-2 control-label' + .col-md-10.has-feedback + = text_field_tag("domain[contacts_attributes][#{k}][code]", v['code'], class: 'form-control', placeholder: t('contact_code'), autocomplete: 'off') +:coffee + $("#domain-contacts").nestedAttributes + bindAddTo: $(".add-domain-contact") + afterAdd: (item) -> + item.find('select').each (k, v) -> + $(v).val($(v).find('option:first-child').val()) diff --git a/vendor/gems/depp/app/views/depp/domains/form_partials/_dnskeys.haml b/vendor/gems/depp/app/views/depp/domains/form_partials/_dnskeys.haml new file mode 100644 index 000000000..06f7152dd --- /dev/null +++ b/vendor/gems/depp/app/views/depp/domains/form_partials/_dnskeys.haml @@ -0,0 +1,57 @@ +#dnskeys + - @domain_params['dnskeys_attributes'].each do |k, v| + .panel.panel-default + .panel-heading.clearfix + .pull-left= t('dnskey') + .pull-right + = link_to(t('add_another'), '#', class: 'btn btn-primary btn-xs add-dnskey') + = link_to(t('delete'), '#', class: 'btn btn-danger btn-xs destroy') + .panel-body + - if ENV['show_ds_data_fields'] == 'true' + .form-group + = label_tag "domain_dnskeys_attributes_#{k}_ds_key_tag", t('ds_key_tag'), class: 'col-md-2 control-label' + .col-md-10 + = text_field_tag "domain[dnskeys_attributes][#{k}][ds_key_tag]", v['ds_key_tag'], {class: 'form-control'} + + .form-group + = label_tag "domain_dnskeys_attributes_#{k}_ds_alg", t('ds_algorithm'), class: 'col-md-2 control-label' + .col-md-10 + = select_tag "domain[dnskeys_attributes][#{k}][ds_alg]", options_for_select(Depp::Dnskey::ALGORITHMS, v['ds_alg']), {class: 'form-control'} + + .form-group + = label_tag "domain_dnskeys_attributes_#{k}_ds_digest_type", t('ds_digest_type'), class: 'col-md-2 control-label' + .col-md-10 + = select_tag "domain[dnskeys_attributes][#{k}][ds_digest_type]", options_for_select(Depp::Dnskey::DS_DIGEST_TYPES, v['ds_digest_type']), {class: 'form-control'} + + .form-group + = label_tag "domain_dnskeys_attributes_#{k}_ds_digest", t('ds_digest'), class: 'col-md-2 control-label' + .col-md-10 + = text_field_tag "domain[dnskeys_attributes][#{k}][ds_digest]", v['ds_digest'], {class: 'form-control'} + + .form-group + = label_tag "domain_dnskeys_attributes_#{k}_flags", t('flags'), class: 'col-md-2 control-label' + .col-md-10 + = select_tag "domain[dnskeys_attributes][#{k}][flags]", options_for_select(Depp::Dnskey::FLAGS, v['flags']), {class: 'form-control'} + + .form-group + = label_tag "domain_dnskeys_attributes_#{k}_protocol", t('protocol'), class: 'col-md-2 control-label' + .col-md-10 + = select_tag "domain[dnskeys_attributes][#{k}][protocol]", options_for_select(Depp::Dnskey::PROTOCOLS, v['protocol']), {class: 'form-control'} + + .form-group + = label_tag "domain_dnskeys_attributes_#{k}_alg", t('alg'), class: 'col-md-2 control-label' + .col-md-10 + = select_tag "domain[dnskeys_attributes][#{k}][alg]", options_for_select(Depp::Dnskey::ALGORITHMS, v['alg']), {class: 'form-control'} + + .form-group + = label_tag "domain_dnskeys_attributes_#{k}_public_key", t('public_key'), class: 'col-md-2 control-label' + .col-md-10 + = text_field_tag "domain[dnskeys_attributes][#{k}][public_key]", v['public_key'], class: 'form-control' +:coffee + $("#dnskeys").nestedAttributes + bindAddTo: $(".add-dnskey") + afterAdd: (item) -> + item.find('select').each (k, v) -> + $(v).val($(v).find('option:first-child').val()) + + diff --git a/vendor/gems/depp/app/views/depp/domains/form_partials/_general.haml b/vendor/gems/depp/app/views/depp/domains/form_partials/_general.haml new file mode 100644 index 000000000..8de6ba96a --- /dev/null +++ b/vendor/gems/depp/app/views/depp/domains/form_partials/_general.haml @@ -0,0 +1,19 @@ +.general-tab.panel.panel-default + .form-group + = label_tag :domain_name, t('name'), class: 'col-md-2 control-label' + .col-md-10 + - readonly = params[:domain_name] ? true : false + = text_field_tag('domain[name]', @domain_params[:name], class: 'form-control', readonly: readonly) + + - unless params[:domain_name] + .form-group + = label_tag :domain_period, t('period'), class: 'col-md-2 control-label' + .col-md-5 + = text_field_tag('domain[period]', @domain_params[:period], class: 'form-control') + .col-md-5 + = select_tag 'domain[period_unit]', options_for_select(['y', 'm', 'd'], @domain_params[:period_unit]), { class: 'form-control' } + + .form-group + = label_tag :domain_registrant, t('registrant'), class: 'col-md-2 control-label' + .col-md-10 + = text_field_tag('domain[registrant]', @domain_params[:registrant], class: 'form-control', placeholder: t('contact_code'), autocomplete: 'off') diff --git a/vendor/gems/depp/app/views/depp/domains/form_partials/_nameservers.haml b/vendor/gems/depp/app/views/depp/domains/form_partials/_nameservers.haml new file mode 100644 index 000000000..b37d73594 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/domains/form_partials/_nameservers.haml @@ -0,0 +1,24 @@ +#nameservers + - @domain_params['nameservers_attributes'].each do |k, v| + .panel.panel-default + .panel-heading.clearfix + .pull-left= t('nameserver') + .pull-right + = link_to(t('add_another'), '#', class: 'btn btn-primary btn-xs add-nameserver') + = link_to(t('delete'), '#', class: 'btn btn-danger btn-xs destroy') + .panel-body + .form-group + = label_tag "domain_nameservers_attributes_#{k}_hostname", t('hostname'), class: 'col-md-2 control-label' + .col-md-10 + = text_field_tag "domain[nameservers_attributes][#{k}][hostname]", v['hostname'], class: 'form-control' + .form-group + = label_tag "domain_nameservers_attributes_#{k}_ipv4", t('ipv4'), class: 'col-md-2 control-label' + .col-md-10 + = text_field_tag "domain[nameservers_attributes][#{k}][ipv4]", v['ipv4'], class: 'form-control' + .form-group + = label_tag "domain_nameservers_attributes_#{k}_ipv6", t('ipv6'), class: 'col-md-2 control-label' + .col-md-10 + = text_field_tag "domain[nameservers_attributes][#{k}][ipv6]", v['ipv6'], class: 'form-control' +:coffee + $("#nameservers").nestedAttributes + bindAddTo: $(".add-nameserver") diff --git a/vendor/gems/depp/app/views/depp/domains/form_partials/_statuses.haml b/vendor/gems/depp/app/views/depp/domains/form_partials/_statuses.haml new file mode 100644 index 000000000..af7fe8e2d --- /dev/null +++ b/vendor/gems/depp/app/views/depp/domains/form_partials/_statuses.haml @@ -0,0 +1,24 @@ +#domain-statuses + - @domain_params['statuses_attributes'].each do |k, v| + %br + .panel.panel-default + .panel-heading.clearfix + .pull-left= t('status') + .pull-right + = link_to(t('add_another'), '#', class: 'btn btn-primary btn-xs add-domain-status') + = link_to(t('delete'), '#', class: 'btn btn-danger btn-xs destroy') + .panel-body + .form-group + = label_tag "domain_statuses_attributes_#{k}_code", t('code'),class: 'col-md-2 control-label' + .col-md-10 + = select_tag "domain[statuses_attributes][#{k}][code]", options_for_select(Depp::Domain::DOMAIN_STATUSES, v['code']), {class: 'form-control', prompt: ''} + .form-group + = label_tag "domain_statuses_attributes_#{k}_description", t('description'),class: 'col-md-2 control-label' + .col-md-10 + = text_field_tag "domain[statuses_attributes][#{k}][description]", v['description'], class: 'form-control', autocomplete: 'off' +:coffee + $("#domain-statuses").nestedAttributes + bindAddTo: $(".add-domain-status") + afterAdd: (item) -> + item.find('select').each (k, v) -> + $(v).val($(v).find('option:first-child').val()) diff --git a/vendor/gems/depp/app/views/depp/domains/index.haml b/vendor/gems/depp/app/views/depp/domains/index.haml new file mode 100644 index 000000000..de4d2bb54 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/domains/index.haml @@ -0,0 +1,47 @@ +- content_for :actions do + = link_to(t(:new), new_domain_path, class: 'btn btn-primary') + = link_to(t(:transfer), transfer_domains_path, class: 'btn btn-default') + = link_to(t(:keyrelay), keyrelay_path, class: 'btn btn-default') += render 'depp/shared/title', name: t(:domains) + +.row + .col-md-12{style: 'margin-bottom: -15px;'} + = form_tag info_domains_path, class: 'form-horizontal', method: :get do + .col-md-11 + .form-group + = text_field_tag :domain_name, params[:domain_name], class: 'form-control', placeholder: t('domain_name'), autocomplete: 'off', autofocus: true + .col-md-1.text-right.text-center-xs + .form-group + %button.btn.btn-primary +   + %span.glyphicon.glyphicon-search +   + +%hr + +- if @response + .panel.panel-default + .table-responsive + %table.table.table-hover.table-bordered.table-condensed.domify + %thead + %tr + %th{class: 'col-xs-3'}= t(:name) + %th{class: 'col-xs-6'}= t(:valid) + %th{class: 'col-xs-3'}= t(:actions) + %tbody + - @response['domains'].each do |x| + %tr + %td= link_to(x['name'], info_domains_path(domain_name: x['name'])) + %td + = Time.parse(x['valid_from']).try(:to_date) + \- + = Time.parse(x['valid_to']).try(:to_date) + %td + = link_to(t(:edit), edit_domains_path(domain_name: x['name']), + class: 'btn btn-primary btn-xs') + = link_to(t(:renew), renew_domains_path(domain_name: x['name']), + class: 'btn btn-default btn-xs') + = link_to(t(:delete), delete_domains_path(domain_name: x['name']), + class: 'btn btn-default btn-xs') + += paginate @paginatable_array diff --git a/vendor/gems/depp/app/views/depp/domains/info.haml b/vendor/gems/depp/app/views/depp/domains/info.haml new file mode 100644 index 000000000..8aee91523 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/domains/info.haml @@ -0,0 +1,26 @@ +- content_for :actions do + = link_to(t(:edit), edit_domains_path(domain_name: params[:domain_name]), + class: 'btn btn-primary') + = link_to(t(:renew), renew_domains_path(domain_name: params[:domain_name]), + class: 'btn btn-default') + = link_to(t(:delete), delete_domains_path(domain_name: params[:domain_name]), + class: 'btn btn-default') += render 'depp/shared/title', name: truncate(@data.css('name').text) + +.row + .col-sm-12 + - if @data.css('result').first['code'] == '1000' + .row + .col-md-12= render 'depp/domains/partials/general' + .row + .col-md-12= render 'depp/domains/partials/contacts' + .row + .col-md-12= render 'depp/domains/partials/statuses' + .row + .col-md-12= render 'depp/domains/partials/nameservers' + .row + .col-md-12= render 'depp/domains/partials/dnskeys' + - else + .row + .col-sm-6 + %h1= t(:not_found) diff --git a/vendor/gems/depp/app/views/depp/domains/new.haml b/vendor/gems/depp/app/views/depp/domains/new.haml new file mode 100644 index 000000000..72ab1493e --- /dev/null +++ b/vendor/gems/depp/app/views/depp/domains/new.haml @@ -0,0 +1,3 @@ += render 'depp/shared/title', name: t(:new_domain) + += render 'form' diff --git a/vendor/gems/depp/app/views/depp/domains/partials/_contacts.haml b/vendor/gems/depp/app/views/depp/domains/partials/_contacts.haml new file mode 100644 index 000000000..ddb6d41e4 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/domains/partials/_contacts.haml @@ -0,0 +1,15 @@ +#tech_contacts.panel.panel-default + .panel-heading.clearfix + %h3.panel-title= t(:contacts) + .table-responsive + %table.table.table-hover.table-bordered.table-condensed + %thead + %tr + %th{class: 'col-xs-4'}= t('type') + %th{class: 'col-xs-8'}= t('code') + %tbody + - @data.css('contact').each do |x| + %tr + %td= x['type'] + %td= x.text + diff --git a/vendor/gems/depp/app/views/depp/domains/partials/_dnskeys.haml b/vendor/gems/depp/app/views/depp/domains/partials/_dnskeys.haml new file mode 100644 index 000000000..9bbca3e95 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/domains/partials/_dnskeys.haml @@ -0,0 +1,33 @@ +.panel.panel-default + .panel-heading + %h3.panel-title= t('dnskeys') + .panel-body{style: 'word-wrap: break-word;'} + - @data.css('dsData').each do |x| + %dl.dl-horizontal + - if x.css('keyTag').text.present? + %dt= t('ds_key_tag') + %dd= x.css('keyTag').text + + - if x.css('alg').first.text.present? + %dt= t('ds_algorithm') + %dd= x.css('alg').first.text + + - if x.css('digestType').text.present? + %dt= t('ds_digest_type') + %dd= x.css('digestType').text + + - if x.css('digest').text.present? + %dt= t('ds_digest') + %dd= x.css('digest').text + + %dt= t('flag') + %dd= x.css('flags').text + + %dt= t('protocol') + %dd= x.css('protocol').text + + %dt= t('algorithm') + %dd= x.css('keyData > alg').text + + %dt= t('public_key') + %dd= x.css('pubKey').text diff --git a/vendor/gems/depp/app/views/depp/domains/partials/_general.haml b/vendor/gems/depp/app/views/depp/domains/partials/_general.haml new file mode 100644 index 000000000..85cb78fd8 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/domains/partials/_general.haml @@ -0,0 +1,22 @@ +.panel.panel-default + .panel-heading + %h3.panel-title= t(:general) + .panel-body + %dl.dl-horizontal + %dt= t(:password) + %dd= @data.css('pw').text + + %dt= t(:registrant) + %dd= @data.css('registrant').text + + %dt= t(:registered) + %dd= @data.css('crDate').text + + %dt= t(:valid_to) + %dd= @data.css('exDate').text + + %dt= t(:created) + %dd= @data.css('crDate').text + + %dt= t(:updated) + %dd= @data.css('upDate').text diff --git a/vendor/gems/depp/app/views/depp/domains/partials/_nameservers.haml b/vendor/gems/depp/app/views/depp/domains/partials/_nameservers.haml new file mode 100644 index 000000000..851801229 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/domains/partials/_nameservers.haml @@ -0,0 +1,17 @@ +#nameservers.panel.panel-default + .panel-heading.clearfix + %h3.panel-title= t(:nameservers) + .table-responsive + %table.table.table-hover.table-bordered.table-condensed + %thead + %tr + %th{class: 'col-xs-4'}= t('hostname') + %th{class: 'col-xs-4'}= t('ipv4') + %th{class: 'col-xs-4'}= t('ipv6') + %tbody + - @data.css('hostAttr').each do |x| + %tr + %td= x.css('hostName').text + %td= x.css('hostAddr[ip="v4"]').text + %td= x.css('hostAddr[ip="v6"]').text + diff --git a/vendor/gems/depp/app/views/depp/domains/partials/_statuses.haml b/vendor/gems/depp/app/views/depp/domains/partials/_statuses.haml new file mode 100644 index 000000000..5cd71caec --- /dev/null +++ b/vendor/gems/depp/app/views/depp/domains/partials/_statuses.haml @@ -0,0 +1,14 @@ +#domain_statuses.panel.panel-default + .panel-heading.clearfix + %h3.panel-title= t(:statuses) + .table-responsive + %table.table.table-hover.table-bordered.table-condensed + %thead + %tr + %th{class: 'col-xs-6'}= t('status') + %th{class: 'col-xs-6'}= t('description') + %tbody + - @data.css('status').each do |x| + %tr + %td= x['s'] + %td= x.text diff --git a/vendor/gems/depp/app/views/depp/domains/renew.haml b/vendor/gems/depp/app/views/depp/domains/renew.haml new file mode 100644 index 000000000..981b95327 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/domains/renew.haml @@ -0,0 +1,14 @@ += render 'depp/shared/title', name: t(:renew_domain) + +.row + .col-md-12 + .panel.panel-default + .panel-heading + %h3.panel-title= t('result') + .panel-body + %dl.dl-horizontal + %dt= t('domain_name') + %dd= @data.css('name').text + + %dt= t('valid_to') + %dd= @data.css('exDate').text diff --git a/vendor/gems/depp/app/views/depp/domains/renew_index.haml b/vendor/gems/depp/app/views/depp/domains/renew_index.haml new file mode 100644 index 000000000..18d7f7011 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/domains/renew_index.haml @@ -0,0 +1,22 @@ += render 'depp/shared/title', name: t(:renew_domain) + +.row + .col-md-12 + = form_tag renew_domains_path, class: 'form-horizontal', method: :get do + .form-group + = label_tag :domain_name, t('name'), class: 'col-md-2 control-label' + .col-md-10 + = text_field_tag :domain_name, params[:domain_name], class: 'form-control', placeholder: t('domain_name'), autocomplete: 'off' + .form-group + = label_tag :cur_exp_date, t('cur_exp_date'), class: 'col-md-2 control-label' + .col-md-10 + = text_field_tag :cur_exp_date, params[:cur_exp_date], class: 'form-control', placeholder: 'yyyy-mm-dd', autocomplete: 'off' + .form-group + = label_tag :domain_period, t('period'), class: 'col-md-2 control-label' + .col-md-5 + = text_field_tag(:period, params[:period], class: 'form-control') + .col-md-5 + = select_tag :period_unit, options_for_select(['y', 'm', 'd'], params[:period_unit]), { class: 'form-control' } + .form-group + .col-md-offset-2.col-md-10 + %button.btn.btn-primary= t('renew') diff --git a/vendor/gems/depp/app/views/depp/domains/transfer.haml b/vendor/gems/depp/app/views/depp/domains/transfer.haml new file mode 100644 index 000000000..46801d7c4 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/domains/transfer.haml @@ -0,0 +1,16 @@ += render 'depp/shared/title', name: t(:transfer_domain) + +.row + .col-md-12 + .panel.panel-default + .panel-heading + %h3.panel-title= t('result') + .panel-body + %dl.dl-horizontal + %dt= t('domain_name') + %dd= @data.css('name').text + + - @data.css('trnData').children.each do |x| + - next if x.blank? + %dt= t(x.name) + %dd= x.text diff --git a/vendor/gems/depp/app/views/depp/domains/transfer_index.haml b/vendor/gems/depp/app/views/depp/domains/transfer_index.haml new file mode 100644 index 000000000..0a9c72d2c --- /dev/null +++ b/vendor/gems/depp/app/views/depp/domains/transfer_index.haml @@ -0,0 +1,22 @@ += render 'depp/shared/title', name: t(:transfer_domain) + +.row + .col-md-12 + = form_tag transfer_domains_path, class: 'form-horizontal', method: :post, multipart: true do + .form-group + = label_tag :domain_name, t('name'), class: 'col-md-2 control-label' + .col-md-10 + = text_field_tag :domain_name, params[:domain_name], class: 'form-control', placeholder: t('domain_name'), autocomplete: 'off', autofocus: true + .form-group + = label_tag :password, t('password'), class: 'col-md-2 control-label' + .col-md-10 + = text_field_tag :password, params[:password], class: 'form-control', autocomplete: 'off' + .form-group + = label_tag 'legal_document', t('legal_document'),class: 'col-md-2 control-label' + .col-md-10 + = file_field_tag 'legal_document' + .form-group + .col-md-offset-2.col-md-10 + %button.btn.btn-primary{ name: 'query' }= t('query') + %button.btn.btn-primary{ name: 'approve' }= t('approve') + %button.btn.btn-primary{ name: 'reject' }= t('reject') diff --git a/vendor/gems/depp/app/views/depp/keyrelays/show.haml b/vendor/gems/depp/app/views/depp/keyrelays/show.haml new file mode 100644 index 000000000..4020ded41 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/keyrelays/show.haml @@ -0,0 +1,55 @@ +.row + .col-sm-12 + %h2.text-center-xs= t('keyrelay') +%hr +.row + .col-md-12 + = form_tag keyrelay_path, class: 'form-horizontal', method: :post, multipart: true do + .form-group + = label_tag :domain_name, t('domain_name'), class: 'col-md-2 control-label' + .col-md-10 + = text_field_tag :domain_name, params[:domain_name], class: 'form-control', autocomplete: 'off' + + .form-group + = label_tag :password, t('password'), class: 'col-md-2 control-label' + .col-md-10 + = text_field_tag :password, params[:password], class: 'form-control', autocomplete: 'off' + + .form-group + = label_tag :expiry_relative, t('expiry_relative'), class: 'col-md-2 control-label' + .col-md-10 + = text_field_tag :expiry_relative, params[:expiry_relative], class: 'form-control', autocomplete: 'off' + + .form-group + = label_tag :expiry_absolute, t('expiry_absolute'), class: 'col-md-2 control-label' + .col-md-10 + = text_field_tag :expiry_absolute, params[:expiry_absolute], class: 'form-control', autocomplete: 'off' + + .form-group + = label_tag :key_data_flags, t('flag'), class: 'col-md-2 control-label' + .col-md-10 + = select_tag :key_data_flags, options_for_select(Depp::Dnskey::FLAGS, params['key_data_flags']), {class: 'form-control'} + + .form-group + = label_tag :key_data_protocol, t('protocol'), class: 'col-md-2 control-label' + .col-md-10 + = select_tag :key_data_protocol, options_for_select(Depp::Dnskey::PROTOCOLS, params['key_data_protocol']), {class: 'form-control'} + + .form-group + = label_tag :key_data_alg, t('algorithm'), class: 'col-md-2 control-label' + .col-md-10 + = select_tag :key_data_alg, options_for_select(Depp::Dnskey::ALGORITHMS, params['key_data_alg']), {class: 'form-control'} + + .form-group + = label_tag :key_data_public_key, t('public_key'), class: 'col-md-2 control-label' + .col-md-10 + = text_field_tag :key_data_public_key, params['key_data_public_key'], class: 'form-control' + + .form-group + = label_tag :legal_document, t('legal_document'),class: 'col-md-2 control-label' + .col-md-10 + = file_field_tag :legal_document + + .form-group + .col-md-offset-2.col-md-10 + %button.btn.btn-primary= t('upload_key') diff --git a/vendor/gems/depp/app/views/depp/polls/show.haml b/vendor/gems/depp/app/views/depp/polls/show.haml new file mode 100644 index 000000000..38e685c42 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/polls/show.haml @@ -0,0 +1,89 @@ +- if @data.css('msgQ').any? + - msg_q = @data.css('msgQ').first + .row + .col-sm-12 + %h2= t('messages', count: msg_q['count']) + %hr + .row + .col-md-12 + .panel.panel-default + .panel-heading.clearfix + .pull-left= t('message_no', id: msg_q['id']) + .pull-right + - if @data.css('panData').any? # this is a keyrelay request + = link_to(t('confirm'), 'javascript: void(0);', class: 'btn btn-primary btn-xs js-keyrelay-confirm') + - if @data.css('trnData trStatus').any? # this is a transfer request + - unless ['serverApproved', 'clientApproved'].include?(@data.css('trStatus').first.text) + = link_to(t('confirm'), 'javascript: void(0);', class: 'btn btn-primary btn-xs js-transfer-confirm') + = link_to(t('dequeue'), poll_path(id: msg_q['id']), method: :delete, class: 'btn btn-primary btn-xs') + .panel-body + %dl.dl-horizontal + %dt= t('message') + %dd= msg_q.css('msg').text + + %dt= t('queue_date') + %dd= @data.css('qDate').text + + %dl.dl-horizontal + / keyrelay + - if @data.css('panData').any? + %dt= t('domain_name') + %dd= @data.css('name').text + + %dt= t('password') + %dd= @data.css('pw').text + + - if @data.css('relative').text.present? + %dt= t('expiry_relative') + %dd= @data.css('relative').text + + - if @data.css('absolute').text.present? + %dt= t('expiry_absolute') + %dd= @data.css('absolute').text + + %dt paDate + %dd= @data.css('paDate').text + + %dt= t('flag') + %dd= @data.css('flags').text + + %dt= t('protocol') + %dd= @data.css('protocol').text + + %dt= t('algorithm') + %dd= @data.css('alg').text + + %dt= t('public_key') + %dd= @data.css('pubKey').text + + = form_tag confirm_keyrelay_poll_path, class: 'js-keyrelay-form' do + = hidden_field_tag 'domain[name]', @data.css('name').text + = hidden_field_tag 'domain[dnskeys_attributes][0][flags]', @data.css('flags').text + = hidden_field_tag 'domain[dnskeys_attributes][0][protocol]', @data.css('protocol').text + = hidden_field_tag 'domain[dnskeys_attributes][0][alg]', @data.css('alg').text + = hidden_field_tag 'domain[dnskeys_attributes][0][public_key]', @data.css('pubKey').text + + - else + - if @data.css('trnData trStatus').any? # this is a transfer request + = form_tag confirm_transfer_poll_path, class: 'js-transfer-form' do + = hidden_field_tag 'domain[name]', @data.css('name').text + + - @data.css('trnData').children.each do |x| + - next if x.blank? + %dt= t(x.name) + %dd= x.text +- else + .row + .col-sm-12 + %h2= t('messages', count: 0) + %hr + .row + .col-md-12 + %p.bg-info{style: 'padding: 15px;'}= t('you_have_no_new_messages') + +:coffee + $(".js-keyrelay-confirm").on "click", -> + $(".js-keyrelay-form").submit() + + $(".js-transfer-confirm").on "click", -> + $(".js-transfer-form").submit() diff --git a/vendor/gems/depp/app/views/depp/shared/_epp_results.haml b/vendor/gems/depp/app/views/depp/shared/_epp_results.haml new file mode 100644 index 000000000..5645c5063 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/shared/_epp_results.haml @@ -0,0 +1,29 @@ +- if @data && @data.css('result') + - @results ||= @data.css('result') + +- if @results || flash[:epp_results] + - success_codes = %(1000, 1300, 1301, 200) + + - if @results + - @results.each do |x| + - next if success_codes.include?(x['code']) + .row + .col-md-12 + %p{class: "alert alert-danger"} + = x.css('msg').text.split('[').first + - if x.css('value').text.present? + = " - #{x.css('value').text}" + %span.pull-right + = "[code: #{x['code']}]" + + - if flash[:epp_results] + - flash[:epp_results].each do |x| + - next if success_codes.include?(x['code']) + .row + .col-md-12 + %p{class: "alert alert-danger"} + = x['msg'].split('[').first + - if x['value'].present? + = " - #{x['value']}" + %span.pull-right + = "[code: #{x['code']}]" diff --git a/vendor/gems/depp/app/views/depp/shared/_error_messages.haml b/vendor/gems/depp/app/views/depp/shared/_error_messages.haml new file mode 100644 index 000000000..fd9b5bfbc --- /dev/null +++ b/vendor/gems/depp/app/views/depp/shared/_error_messages.haml @@ -0,0 +1,5 @@ +- if f.object.errors.present? + .alert.alert-warning + %ul + - f.object.errors.messages.each do |message| + %li= message.second.first.split('[').first diff --git a/vendor/gems/depp/app/views/depp/shared/_errors.haml b/vendor/gems/depp/app/views/depp/shared/_errors.haml new file mode 100644 index 000000000..50eb6de12 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/shared/_errors.haml @@ -0,0 +1,5 @@ +- if object.errors.any? + %p.text-danger + - object.errors.each do |attr, err| + = err + %br diff --git a/vendor/gems/depp/app/views/depp/shared/_flash.haml b/vendor/gems/depp/app/views/depp/shared/_flash.haml new file mode 100644 index 000000000..d4c817fe7 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/shared/_flash.haml @@ -0,0 +1,4 @@ +- if flash[:notice].present? || flash[:alert].present? + #flash + - type = (flash[:notice]) ? 'bg-success' : 'bg-danger' + .alert{class: type}= flash[:notice] || flash[:alert] diff --git a/vendor/gems/depp/app/views/depp/shared/_flash_messages.haml b/vendor/gems/depp/app/views/depp/shared/_flash_messages.haml new file mode 100644 index 000000000..b1d850a0c --- /dev/null +++ b/vendor/gems/depp/app/views/depp/shared/_flash_messages.haml @@ -0,0 +1,4 @@ +- display = (flash.empty?) ? 'none' : 'block' +#flash{style: "display: #{display};"} + - type = (flash[:notice]) ? 'bg-success' : 'bg-danger' + .alert{class: type}= flash[:notice] || flash[:alert] diff --git a/vendor/gems/depp/app/views/depp/shared/_nav.haml b/vendor/gems/depp/app/views/depp/shared/_nav.haml new file mode 100644 index 000000000..ff17197f4 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/shared/_nav.haml @@ -0,0 +1,13 @@ +- content_for :tabs do + .container.subnav + %ul.nav.nav-tabs.navbar-right + %li{role: :presentation, class: active == :domains ? 'active' : ''} + = link_to t(:all), domains_path + %li{role: :presentation, class: active == :new ? 'active' : ''} + = link_to t(:new), new_domain_path + %li{role: :presentation, class: active == :check ? 'active' : ''} + = link_to t(:check), check_domains_path + %li{role: :presentation, class: active == :transfer ? 'active' : ''} + = link_to t(:transfer), transfer_domains_path + %li{role: :presentation, class: active == :keyrelay ? 'active' : ''} + = link_to t(:keyrelay), keyrelay_path diff --git a/vendor/gems/depp/app/views/depp/shared/_title.haml b/vendor/gems/depp/app/views/depp/shared/_title.haml new file mode 100644 index 000000000..a720d1c20 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/shared/_title.haml @@ -0,0 +1,9 @@ +- content_for :window_title do + %title= name + +.row.title-row + .col-sm-6 + %h1= name + .col-sm-6 + .top-actions + = yield :actions diff --git a/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/contact/check.xml b/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/contact/check.xml new file mode 100644 index 000000000..2748c7275 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/contact/check.xml @@ -0,0 +1,12 @@ + + + + + + sh8013 + + + ABC-12345 + + diff --git a/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/contact/check_multiple.xml b/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/contact/check_multiple.xml new file mode 100644 index 000000000..a77dcd852 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/contact/check_multiple.xml @@ -0,0 +1,14 @@ + + + + + + sh8013 + sh13 + vsdfvq + + + ABC-12345 + + diff --git a/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/contact/create.xml b/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/contact/create.xml new file mode 100644 index 000000000..c44990196 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/contact/create.xml @@ -0,0 +1,34 @@ + + + + + + + Sillius Soddus + + 123 Example Dr. + Suite 100 + + Megaton + F3 + 201-33 + EE + + + +372.1234567 + example@test.example + + + + + + 123 + + + JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + + + + ABC-12345 + + diff --git a/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/contact/delete.xml b/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/contact/delete.xml new file mode 100644 index 000000000..7b98c32df --- /dev/null +++ b/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/contact/delete.xml @@ -0,0 +1,22 @@ + + + + + + sh8013 + + wrong-one + + + + + + + JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + + + + ABC-12345 + + diff --git a/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/contact/info.xml b/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/contact/info.xml new file mode 100644 index 000000000..e40e42fd7 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/contact/info.xml @@ -0,0 +1,14 @@ + + + + + + sh8013 + + Aas34fq + + + + ABC-12345 + + diff --git a/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/contact/update_chg.xml b/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/contact/update_chg.xml new file mode 100644 index 000000000..01e13e701 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/contact/update_chg.xml @@ -0,0 +1,36 @@ + + + + + + sh8013 + + + John Doe + + 123 Example Dr. + Suite 100 + Dulles + VA + 20166-6503 + EE + + + +123.7035555555 + jdoe@example.com + + + 2fooBAR + + + + + + + JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + + + + ABC-12345 + + diff --git a/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/domain/check.xml b/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/domain/check.xml new file mode 100644 index 000000000..b55a4b129 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/domain/check.xml @@ -0,0 +1,12 @@ + + + + + + example.ee + + + ABC-12345 + + diff --git a/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/domain/create.xml b/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/domain/create.xml new file mode 100644 index 000000000..97be9f695 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/domain/create.xml @@ -0,0 +1,44 @@ + + + + + + example.ee + 1 + + + ns1.example.net + + + ns2.example.net + 192.0.2.2 + 1080:0:0:0:8:800:200C:417A + + + jd1234 + sh8013 + sh8013 + sh801333 + + + + + + 257 + 3 + 8 + AwEAAddt2AkLfYGKgiEZB5SmIF8EvrjxNMH6HtxWEA4RJ9Ao6LCWheg8 + + + + + + + JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + + + + ABC-12345 + + diff --git a/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/domain/delete.xml b/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/domain/delete.xml new file mode 100644 index 000000000..47692e340 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/domain/delete.xml @@ -0,0 +1,19 @@ + + + + + + example.ee + + + + + + JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + + + + ABC-12345 + + diff --git a/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/domain/info.xml b/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/domain/info.xml new file mode 100644 index 000000000..9f654753f --- /dev/null +++ b/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/domain/info.xml @@ -0,0 +1,15 @@ + + + + + + example.ee + + 2fooBAR + + + + ABC-12345 + + diff --git a/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/domain/renew.xml b/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/domain/renew.xml new file mode 100644 index 000000000..2ba7ea4a8 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/domain/renew.xml @@ -0,0 +1,14 @@ + + + + + + example.ee + 2014-08-07 + 1 + + + ABC-12345 + + diff --git a/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/domain/transfer.xml b/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/domain/transfer.xml new file mode 100644 index 000000000..1c9e0a254 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/domain/transfer.xml @@ -0,0 +1,22 @@ + + + + + + example.ee + + 2BARfoo + + + + + + + JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + + + + ABC-12345 + + diff --git a/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/domain/update.xml b/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/domain/update.xml new file mode 100644 index 000000000..f0d4b1f81 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/domain/update.xml @@ -0,0 +1,48 @@ + + + + + + example.ee + + mak21 + + + + ns1.example.com + ns2.example.com + + mak21 + Payment overdue. + + + + + ns1.example.com + + mak21 + + + + + + + + + 700b97b591ed27ec2590d19f06f88bba700b97b591ed27ec2590d19f + + + + + + + + JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + + + + ABC-12345 + + diff --git a/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/keyrelay/keyrelay.xml b/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/keyrelay/keyrelay.xml new file mode 100644 index 000000000..84ece643a --- /dev/null +++ b/vendor/gems/depp/app/views/depp/xml_consoles/epp_requests/keyrelay/keyrelay.xml @@ -0,0 +1,24 @@ + + + + + example6.ee + + 256 + 3 + 8 + cmlraXN0aGViZXN0 + + + 7521f360ae480e67c3096e4c046beb84 + + + P1D + + + + JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + + 1422542244 + + diff --git a/vendor/gems/depp/app/views/depp/xml_consoles/show.haml b/vendor/gems/depp/app/views/depp/xml_consoles/show.haml new file mode 100644 index 000000000..c08d8c972 --- /dev/null +++ b/vendor/gems/depp/app/views/depp/xml_consoles/show.haml @@ -0,0 +1,66 @@ +.row + .col-md-8 + = form_tag(xml_console_path) do + .form-group + = text_area_tag(:payload, params[:payload], class: 'form-control', rows: 15, style: 'font-family:monospace; font-size: 11px;') + + = button_tag t('send_epp_request'), class: 'btn btn-default' + .col-md-4 + %h4 Domain + %a.js-load-xml{href: 'javascript:void(0)', data: {obj: 'domain', epp_action: 'create'}} + Create + , + %a.js-load-xml{href: 'javascript:void(0)', data: {obj: 'domain', epp_action: 'update'}} + Update + , + %a.js-load-xml{href: 'javascript:void(0)', data: {obj: 'domain', epp_action: 'info'}} + Info + , + %a.js-load-xml{href: 'javascript:void(0)', data: {obj: 'domain', epp_action: 'renew'}} + Renew + , + %a.js-load-xml{href: 'javascript:void(0)', data: {obj: 'domain', epp_action: 'check'}} + Check + , + %a.js-load-xml{href: 'javascript:void(0)', data: {obj: 'domain', epp_action: 'transfer'}} + Transfer + , + %a.js-load-xml{href: 'javascript:void(0)', data: {obj: 'domain', epp_action: 'delete'}} + Delete + + %h4 Keyrelay + %a.js-load-xml{href: 'javascript:void(0)', data: {obj: 'keyrelay', epp_action: 'keyrelay'}} + Keyrelay + + %h4 Contact + %a.js-load-xml{href: 'javascript:void(0)', data: {obj: 'contact', epp_action: 'create'}} + Create + , + %a.js-load-xml{href: 'javascript:void(0)', data: {obj: 'contact', epp_action: 'check'}} + Check + , + %a.js-load-xml{href: 'javascript:void(0)', data: {obj: 'contact', epp_action: 'check_multiple'}} + Check(multiple) + , + %a.js-load-xml{href: 'javascript:void(0)', data: {obj: 'contact', epp_action: 'delete'}} + Delete + , + %a.js-load-xml{href: 'javascript:void(0)', data: {obj: 'contact', epp_action: 'info'}} + Info + , + %a.js-load-xml{href: 'javascript:void(0)', data: {obj: 'contact', epp_action: 'update_chg'}} + Update(chg) + +- if @result + %hr + .row + .col-md-12 + = preserve do + = CodeRay.scan(@result.to_s.force_encoding("UTF-8"), :xml).div().html_safe + +:javascript + $('.js-load-xml').click(function() { + $.get('xml_console/load_xml', {obj: $(this).data('obj'), epp_action: $(this).data('epp-action')}, function(data) { + $('textarea[name="payload"]').html(data); + }); + }); diff --git a/vendor/gems/depp/app/views/layouts/depp/application.haml b/vendor/gems/depp/app/views/layouts/depp/application.haml new file mode 100644 index 000000000..bf149da3d --- /dev/null +++ b/vendor/gems/depp/app/views/layouts/depp/application.haml @@ -0,0 +1,42 @@ +%html{lang: I18n.locale.to_s} + %head + %meta{charset: "utf-8"}/ + %meta{content: "IE=edge", "http-equiv" => "X-UA-Compatible"}/ + %meta{content: "width=device-width, initial-scale=1", name: "viewport"}/ + %meta{content: "EPP-Client", name: "description"}/ + %meta{content: "Gitlab LTD", name: "author"}/ + = csrf_meta_tags + = stylesheet_link_tag 'depp/application', media: 'all', 'data-turbolinks-track' => true + = javascript_include_tag 'depp/application', 'data-turbolinks-track' => true + = favicon_link_tag 'favicon.ico' + = yield :window_title + %body{:style => env_style} + / Static navbar + .navbar.navbar-default.navbar-static-top{role: "navigation"} + .container + .navbar-header + %button.navbar-toggle{"data-target" => ".navbar-collapse", "data-toggle" => "collapse", type: "button"} + %span.sr-only Toggle navigation + %span.icon-bar + %span.icon-bar + %span.icon-bar + = link_to 'EPP Client', root_path, class: 'navbar-brand' + .navbar-collapse.collapse + %ul.nav.navbar-nav + - active_class = %w(domains check renew tranfer keyrelays).include?(params[:controller]) ? 'active' :nil + %li{class: active_class}= link_to t(:domains), domains_path + + - active_class = ['contacts'].include?(params[:controller]) ? 'active' :nil + %li{class: active_class}= link_to t(:contacts), contacts_path + + - active_class = ['xml_consoles'].include?(params[:controller]) ? 'active' :nil + %li{class: active_class}= link_to t(:xml_console), xml_console_path + + %ul.nav.navbar-nav.navbar-right + %li= link_to t(:log_out, user: depp_current_user.tag), '/logout' + / /.nav-collapse + + .container + = render 'depp/shared/flash' + = render 'depp/shared/epp_results' + = yield diff --git a/vendor/gems/depp/bin/rails b/vendor/gems/depp/bin/rails new file mode 100755 index 000000000..7d1fe1124 --- /dev/null +++ b/vendor/gems/depp/bin/rails @@ -0,0 +1,12 @@ +#!/usr/bin/env ruby +# This command will automatically be run when you run "rails" with Rails 4 gems installed from the root of your application. + +ENGINE_ROOT = File.expand_path('../..', __FILE__) +ENGINE_PATH = File.expand_path('../../lib/depp/engine', __FILE__) + +# Set up gems listed in the Gemfile. +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) +require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE']) + +require 'rails/all' +require 'rails/engine/commands' diff --git a/vendor/gems/depp/config/locales/en.yml b/vendor/gems/depp/config/locales/en.yml new file mode 100644 index 000000000..ea9ffa3da --- /dev/null +++ b/vendor/gems/depp/config/locales/en.yml @@ -0,0 +1,126 @@ +en: + activemodel: + errors: + models: + 'depp/user': + attributes: + base: + failed_to_open_connection_to_epp_server: 'Failed to open connection to EPP server!' + authorization_error: 'Authorization error' + invalid_cert: 'Invalid certificate' + tag: + blank: "Username can't be blank" + password: + blank: "Password can't be blank" + + username: 'Username' + password: 'Password' + log_in: 'Log in' + log_out: 'Log out (%{user})' + domain_name: 'Domain name' + domains: 'Domains' + register: 'Register' + check: 'Check' + contacts: 'Contacts' + domain_info: 'Domain info' + domain_details: 'Domain details' + xml_console: 'XML Console' + info: 'Info' + register: 'Register' + send_epp_request: 'Send EPP Request' + registrant: 'Registrant' + created_at: 'Created at' + valid_to: 'Valid to' + updated_at: 'Updated at' + tech_contacts: 'Tech contacts' + name: 'Name' + type: 'Type' + code: 'Code' + nameservers: 'Nameservers' + hostname: 'Hostname' + ipv4: 'IPv4' + ipv6: 'IPv6' + dnskeys: 'DNS Keys' + flag: 'Flag' + protocol: 'Protocol' + algorithm: 'Algorithm' + public_key: 'Public key' + ds_key_tag: 'DS key tag' + ds_algorithm: 'DS algorithm' + ds_digest_type: 'DS digest type' + ds_digest: 'DS digest' + statuses: 'Statuses' + status: 'Status' + description: 'Description' + check_domain: 'Check domain' + result: 'Result' + available: 'Available' + reason: 'Reason' + contact_code: 'Code' + add_another: 'Add another' + delete: 'Delete' + contact_type: 'Contact type' + edit_domain: 'Edit domain' + new_domain: 'New domain' + edit: 'Edit' + delete: 'Delete' + are_you_sure: 'Are you sure?' + renew: 'Renew' + renew_domain: 'Renew domain' + cur_exp_date: 'curExpDate' + transfer: 'Transfer' + query: 'Query' + transfer_domain: 'Transfer domain' + reject: 'Reject' + approve: 'Approve' + contact_info: 'Contact info' + contact_id: 'Contact ID' + address: 'Address' + street: 'Street' + city: 'City' + messages: 'Messages (%{count})' + message: 'Message' + message_no: 'Message #%{id}' + queue_date: 'Queue date' + messages_in_queue: 'Messages in queue' + you_have_no_new_messages: 'You have no new messages' + message_id: 'Message ID' + trStatus: 'Status' + reID: 'Transfer from' + reDate: 'Transfer requested at' + acID: 'Transfer to' + acDate: 'Accept date' + exDate: 'Valid to' + dequeue: 'Dequeue' + are_you_sure_you_want_to_delete_domain: 'Are you sure you want to delete domain %{domain}?' + keyrelay: 'Keyrelay' + expiry_relative: 'Expiry relative' + expiry_absolute: 'Expiry absolute' + upload_key: 'Upload key' + legal_document: 'Legal document' + delete_domain: 'Delete domain' + index: 'Index' + ident: 'Ident' + email: 'E-mail' + value: 'Value' + phone: 'Phone' + org_name: Org name + ident_type: Ident code + country: Country + period: Period + birthday_format: 'Insert birthday in format: YYYY-MM-DD' + your_session_has_timed_out: 'Your session has timed out. Please log in again.' + certificate_loaded: 'Certificate (already loaded)' + private_key_loaded: 'Private key (already loaded)' + credentials: 'Credentials' + pki: 'PKI' + zip: Postcode + contact_details: Contact Details + general: General + id_card: 'ID Card' + m_id: 'M-ID' + destroyed: It was successfully deleted. + not_found: Not found + no_connection_to_registry: Connection issue to the registry server! Please try again later. + domain_not_found: 'Domain was not found' + new_contact: 'New contact' diff --git a/vendor/gems/depp/config/locales/et.yml b/vendor/gems/depp/config/locales/et.yml new file mode 100644 index 000000000..37e1e9dea --- /dev/null +++ b/vendor/gems/depp/config/locales/et.yml @@ -0,0 +1,4 @@ +et: + username: 'Kasutajanimi' + password: 'Parool' + log_in: 'Logi sisse' diff --git a/vendor/gems/depp/config/routes.rb b/vendor/gems/depp/config/routes.rb new file mode 100644 index 000000000..f47cde33b --- /dev/null +++ b/vendor/gems/depp/config/routes.rb @@ -0,0 +1,41 @@ +Depp::Engine.routes.draw do + resources :domains do + collection do + post 'update', as: 'update' + post 'destroy', as: 'destroy' + get 'renew' + match 'transfer', via: [:post, :get] + get 'edit' + get 'info' + get 'check' + get 'delete' + end + end + + resources :contacts do + member do + get 'delete' + end + + collection do + get 'check' + end + end + + resource :poll do + collection do + post 'confirm_keyrelay' + post 'confirm_transfer' + end + end + + resource :keyrelay + + resource :xml_console do + collection do + get 'load_xml' + end + end + + root 'polls#show' +end diff --git a/vendor/gems/depp/depp.gemspec b/vendor/gems/depp/depp.gemspec new file mode 100644 index 000000000..bbb0aaa06 --- /dev/null +++ b/vendor/gems/depp/depp.gemspec @@ -0,0 +1,49 @@ +$:.push File.expand_path("../lib", __FILE__) + +# Maintain your gem's version: +require "depp/version" + +# Describe your gem and declare its dependencies: +Gem::Specification.new do |s| + s.name = "depp" + s.version = Depp::VERSION + s.authors = ["Priit Tark", "Martin Lensment"] + s.email = ["priit@gitlab.eu", "martin@gitlab.eu"] + s.homepage = "https://github.com/domify/depp" + s.summary = "EPP/REPP client build as Rails engine." + s.description = "EPP/REPP client build as Rails engine." + s.license = "MIT" + + s.files = Dir["{app,config,db,lib}/**/*", "MIT-LICENSE", "Rakefile", "README.rdoc"] + s.test_files = Dir["test/**/*"] + + s.add_dependency "rails", ">= 4.2.1" + + # load env + s.add_dependency "figaro", ">= 1.1.0" + + # html + s.add_dependency "haml-rails", ">= 0.9.0" + + # style + s.add_dependency "sass-rails", ">= 5.0.0" + + # js + s.add_dependency "uglifier", ">= 2.6.1" # minifies js + s.add_dependency "coffee-rails", ">= 4.1.0" # coffeescript support + s.add_dependency "jquery-rails", ">= 4.0.3" # jquery + + # epp api + # s.add_dependency "epp", "~> 1.4.2", github: 'gitlabeu/epp' + s.add_dependency "epp-xml", '>= 0.10.4' + s.add_dependency "nokogiri", '>= 1.6.6.2' + + # registry related + s.add_dependency "countries", '>= 0.9.3' + s.add_dependency "coderay", '>= 1.1.0' + s.add_dependency "uuidtools", '>= 2.1.4' + + s.add_dependency "kaminari", '~> 0.16.3' + + # s.add_development_dependency "sqlite3" +end diff --git a/vendor/gems/depp/lib/depp.rb b/vendor/gems/depp/lib/depp.rb new file mode 100644 index 000000000..2134fb7cc --- /dev/null +++ b/vendor/gems/depp/lib/depp.rb @@ -0,0 +1,5 @@ +require "depp/engine" + +module Depp + DEPP_RECORDS_ON_PAGE = 20 +end diff --git a/vendor/gems/depp/lib/depp/engine.rb b/vendor/gems/depp/lib/depp/engine.rb new file mode 100644 index 000000000..d68b3c93f --- /dev/null +++ b/vendor/gems/depp/lib/depp/engine.rb @@ -0,0 +1,10 @@ +require 'epp-xml' +require 'countries' +require 'depp/sorted_country' +require 'coderay' + +module Depp + class Engine < ::Rails::Engine + isolate_namespace Depp + end +end diff --git a/vendor/gems/depp/lib/depp/sorted_country.rb b/vendor/gems/depp/lib/depp/sorted_country.rb new file mode 100644 index 000000000..5b452b236 --- /dev/null +++ b/vendor/gems/depp/lib/depp/sorted_country.rb @@ -0,0 +1,42 @@ +require 'countries' +require 'action_view' + +class SortedCountry + class << self + include ActionView::Helpers + + def all_options(selected = nil) + quick_options = options_for_select(quick_list + [['---','']], selected) + + # no double select + selected = quick_list.map{ |c| c.second }.include?(selected) ? '' : selected + + all_options = options_for_select(all_sorted_truncated, selected) + quick_options + all_options + end + + private + + def quick_list + @quick_list ||= + [ + ['Estonia', 'EE'], + ['Finland', 'FI'], + ['Latvia', 'LV'], + ['Lithuania', 'LT'], + ['Russian Federation', 'RU'], + ['Sweden', 'SE'], + ['United States', 'US'] + ] + end + + def all_sorted + @all_sorted ||= Country.all.sort_by { |name, _code| name.first } + end + + def all_sorted_truncated + @all_sorted_truncated ||= + all_sorted.map { |name, code| [truncate(name, length: 26), code] } + end + end +end diff --git a/vendor/gems/depp/lib/depp/version.rb b/vendor/gems/depp/lib/depp/version.rb new file mode 100644 index 000000000..e2b711832 --- /dev/null +++ b/vendor/gems/depp/lib/depp/version.rb @@ -0,0 +1,3 @@ +module Depp + VERSION = "0.0.2" +end diff --git a/vendor/gems/depp/lib/tasks/depp_tasks.rake b/vendor/gems/depp/lib/tasks/depp_tasks.rake new file mode 100644 index 000000000..9659f1e61 --- /dev/null +++ b/vendor/gems/depp/lib/tasks/depp_tasks.rake @@ -0,0 +1,4 @@ +# desc "Explaining what the task does" +# task :depp do +# # Task goes here +# end diff --git a/vendor/gems/depp/test/depp_test.rb b/vendor/gems/depp/test/depp_test.rb new file mode 100644 index 000000000..9d298f550 --- /dev/null +++ b/vendor/gems/depp/test/depp_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class DeppTest < ActiveSupport::TestCase + test "truth" do + assert_kind_of Module, Depp + end +end diff --git a/vendor/gems/depp/test/dummy/README.rdoc b/vendor/gems/depp/test/dummy/README.rdoc new file mode 100644 index 000000000..dd4e97e22 --- /dev/null +++ b/vendor/gems/depp/test/dummy/README.rdoc @@ -0,0 +1,28 @@ +== README + +This README would normally document whatever steps are necessary to get the +application up and running. + +Things you may want to cover: + +* Ruby version + +* System dependencies + +* Configuration + +* Database creation + +* Database initialization + +* How to run the test suite + +* Services (job queues, cache servers, search engines, etc.) + +* Deployment instructions + +* ... + + +Please feel free to use a different markup language if you do not plan to run +rake doc:app. diff --git a/vendor/gems/depp/test/dummy/Rakefile b/vendor/gems/depp/test/dummy/Rakefile new file mode 100644 index 000000000..ba6b733dd --- /dev/null +++ b/vendor/gems/depp/test/dummy/Rakefile @@ -0,0 +1,6 @@ +# Add your own tasks in files placed in lib/tasks ending in .rake, +# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. + +require File.expand_path('../config/application', __FILE__) + +Rails.application.load_tasks diff --git a/vendor/gems/depp/test/dummy/app/assets/images/.keep b/vendor/gems/depp/test/dummy/app/assets/images/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/vendor/gems/depp/test/dummy/app/assets/javascripts/application.js b/vendor/gems/depp/test/dummy/app/assets/javascripts/application.js new file mode 100644 index 000000000..8913b40f6 --- /dev/null +++ b/vendor/gems/depp/test/dummy/app/assets/javascripts/application.js @@ -0,0 +1,13 @@ +// This is a manifest file that'll be compiled into application.js, which will include all the files +// listed below. +// +// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts, +// or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path. +// +// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the +// compiled file. +// +// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details +// about supported directives. +// +//= require_tree . diff --git a/vendor/gems/depp/test/dummy/app/assets/stylesheets/application.css b/vendor/gems/depp/test/dummy/app/assets/stylesheets/application.css new file mode 100644 index 000000000..f9cd5b348 --- /dev/null +++ b/vendor/gems/depp/test/dummy/app/assets/stylesheets/application.css @@ -0,0 +1,15 @@ +/* + * This is a manifest file that'll be compiled into application.css, which will include all the files + * listed below. + * + * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets, + * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path. + * + * You're free to add application-wide styles to this file and they'll appear at the bottom of the + * compiled file so the styles you add here take precedence over styles defined in any styles + * defined in the other CSS/SCSS files in this directory. It is generally better to create a new + * file per style scope. + * + *= require_tree . + *= require_self + */ diff --git a/vendor/gems/depp/test/dummy/app/controllers/application_controller.rb b/vendor/gems/depp/test/dummy/app/controllers/application_controller.rb new file mode 100644 index 000000000..d83690e1b --- /dev/null +++ b/vendor/gems/depp/test/dummy/app/controllers/application_controller.rb @@ -0,0 +1,5 @@ +class ApplicationController < ActionController::Base + # Prevent CSRF attacks by raising an exception. + # For APIs, you may want to use :null_session instead. + protect_from_forgery with: :exception +end diff --git a/vendor/gems/depp/test/dummy/app/controllers/concerns/.keep b/vendor/gems/depp/test/dummy/app/controllers/concerns/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/vendor/gems/depp/test/dummy/app/helpers/application_helper.rb b/vendor/gems/depp/test/dummy/app/helpers/application_helper.rb new file mode 100644 index 000000000..de6be7945 --- /dev/null +++ b/vendor/gems/depp/test/dummy/app/helpers/application_helper.rb @@ -0,0 +1,2 @@ +module ApplicationHelper +end diff --git a/vendor/gems/depp/test/dummy/app/mailers/.keep b/vendor/gems/depp/test/dummy/app/mailers/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/vendor/gems/depp/test/dummy/app/models/.keep b/vendor/gems/depp/test/dummy/app/models/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/vendor/gems/depp/test/dummy/app/models/concerns/.keep b/vendor/gems/depp/test/dummy/app/models/concerns/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/vendor/gems/depp/test/dummy/app/views/layouts/application.html.erb b/vendor/gems/depp/test/dummy/app/views/layouts/application.html.erb new file mode 100644 index 000000000..593a778ba --- /dev/null +++ b/vendor/gems/depp/test/dummy/app/views/layouts/application.html.erb @@ -0,0 +1,14 @@ + + + + Dummy + <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %> + <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %> + <%= csrf_meta_tags %> + + + +<%= yield %> + + + diff --git a/vendor/gems/depp/test/dummy/bin/bundle b/vendor/gems/depp/test/dummy/bin/bundle new file mode 100755 index 000000000..66e9889e8 --- /dev/null +++ b/vendor/gems/depp/test/dummy/bin/bundle @@ -0,0 +1,3 @@ +#!/usr/bin/env ruby +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) +load Gem.bin_path('bundler', 'bundle') diff --git a/vendor/gems/depp/test/dummy/bin/rails b/vendor/gems/depp/test/dummy/bin/rails new file mode 100755 index 000000000..5191e6927 --- /dev/null +++ b/vendor/gems/depp/test/dummy/bin/rails @@ -0,0 +1,4 @@ +#!/usr/bin/env ruby +APP_PATH = File.expand_path('../../config/application', __FILE__) +require_relative '../config/boot' +require 'rails/commands' diff --git a/vendor/gems/depp/test/dummy/bin/rake b/vendor/gems/depp/test/dummy/bin/rake new file mode 100755 index 000000000..17240489f --- /dev/null +++ b/vendor/gems/depp/test/dummy/bin/rake @@ -0,0 +1,4 @@ +#!/usr/bin/env ruby +require_relative '../config/boot' +require 'rake' +Rake.application.run diff --git a/vendor/gems/depp/test/dummy/bin/setup b/vendor/gems/depp/test/dummy/bin/setup new file mode 100755 index 000000000..acdb2c138 --- /dev/null +++ b/vendor/gems/depp/test/dummy/bin/setup @@ -0,0 +1,29 @@ +#!/usr/bin/env ruby +require 'pathname' + +# path to your application root. +APP_ROOT = Pathname.new File.expand_path('../../', __FILE__) + +Dir.chdir APP_ROOT do + # This script is a starting point to setup your application. + # Add necessary setup steps to this file: + + puts "== Installing dependencies ==" + system "gem install bundler --conservative" + system "bundle check || bundle install" + + # puts "\n== Copying sample files ==" + # unless File.exist?("config/database.yml") + # system "cp config/database.yml.sample config/database.yml" + # end + + puts "\n== Preparing database ==" + system "bin/rake db:setup" + + puts "\n== Removing old logs and tempfiles ==" + system "rm -f log/*" + system "rm -rf tmp/cache" + + puts "\n== Restarting application server ==" + system "touch tmp/restart.txt" +end diff --git a/vendor/gems/depp/test/dummy/config.ru b/vendor/gems/depp/test/dummy/config.ru new file mode 100644 index 000000000..bd83b2541 --- /dev/null +++ b/vendor/gems/depp/test/dummy/config.ru @@ -0,0 +1,4 @@ +# This file is used by Rack-based servers to start the application. + +require ::File.expand_path('../config/environment', __FILE__) +run Rails.application diff --git a/vendor/gems/depp/test/dummy/config/application.rb b/vendor/gems/depp/test/dummy/config/application.rb new file mode 100644 index 000000000..880c067dd --- /dev/null +++ b/vendor/gems/depp/test/dummy/config/application.rb @@ -0,0 +1,26 @@ +require File.expand_path('../boot', __FILE__) + +require 'rails/all' + +Bundler.require(*Rails.groups) +require "depp" + +module Dummy + class Application < Rails::Application + # Settings in config/environments/* take precedence over those specified here. + # Application configuration should go into files in config/initializers + # -- all .rb files in that directory are automatically loaded. + + # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone. + # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC. + # config.time_zone = 'Central Time (US & Canada)' + + # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. + # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] + # config.i18n.default_locale = :de + + # Do not swallow errors in after_commit/after_rollback callbacks. + config.active_record.raise_in_transactional_callbacks = true + end +end + diff --git a/vendor/gems/depp/test/dummy/config/boot.rb b/vendor/gems/depp/test/dummy/config/boot.rb new file mode 100644 index 000000000..6266cfc50 --- /dev/null +++ b/vendor/gems/depp/test/dummy/config/boot.rb @@ -0,0 +1,5 @@ +# Set up gems listed in the Gemfile. +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../../Gemfile', __FILE__) + +require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE']) +$LOAD_PATH.unshift File.expand_path('../../../../lib', __FILE__) diff --git a/vendor/gems/depp/test/dummy/config/database.yml b/vendor/gems/depp/test/dummy/config/database.yml new file mode 100644 index 000000000..1c1a37ca8 --- /dev/null +++ b/vendor/gems/depp/test/dummy/config/database.yml @@ -0,0 +1,25 @@ +# SQLite version 3.x +# gem install sqlite3 +# +# Ensure the SQLite 3 gem is defined in your Gemfile +# gem 'sqlite3' +# +default: &default + adapter: sqlite3 + pool: 5 + timeout: 5000 + +development: + <<: *default + database: db/development.sqlite3 + +# Warning: The database defined as "test" will be erased and +# re-generated from your development database when you run "rake". +# Do not set this db to the same as development or production. +test: + <<: *default + database: db/test.sqlite3 + +production: + <<: *default + database: db/production.sqlite3 diff --git a/vendor/gems/depp/test/dummy/config/environment.rb b/vendor/gems/depp/test/dummy/config/environment.rb new file mode 100644 index 000000000..ee8d90dc6 --- /dev/null +++ b/vendor/gems/depp/test/dummy/config/environment.rb @@ -0,0 +1,5 @@ +# Load the Rails application. +require File.expand_path('../application', __FILE__) + +# Initialize the Rails application. +Rails.application.initialize! diff --git a/vendor/gems/depp/test/dummy/config/environments/development.rb b/vendor/gems/depp/test/dummy/config/environments/development.rb new file mode 100644 index 000000000..b55e2144b --- /dev/null +++ b/vendor/gems/depp/test/dummy/config/environments/development.rb @@ -0,0 +1,41 @@ +Rails.application.configure do + # Settings specified here will take precedence over those in config/application.rb. + + # In the development environment your application's code is reloaded on + # every request. This slows down response time but is perfect for development + # since you don't have to restart the web server when you make code changes. + config.cache_classes = false + + # Do not eager load code on boot. + config.eager_load = false + + # Show full error reports and disable caching. + config.consider_all_requests_local = true + config.action_controller.perform_caching = false + + # Don't care if the mailer can't send. + config.action_mailer.raise_delivery_errors = false + + # Print deprecation notices to the Rails logger. + config.active_support.deprecation = :log + + # Raise an error on page load if there are pending migrations. + config.active_record.migration_error = :page_load + + # Debug mode disables concatenation and preprocessing of assets. + # This option may cause significant delays in view rendering with a large + # number of complex assets. + config.assets.debug = true + + # Asset digests allow you to set far-future HTTP expiration dates on all assets, + # yet still be able to expire them through the digest params. + config.assets.digest = true + + # Adds additional error checking when serving assets at runtime. + # Checks for improperly declared sprockets dependencies. + # Raises helpful error messages. + config.assets.raise_runtime_errors = true + + # Raises error for missing translations + # config.action_view.raise_on_missing_translations = true +end diff --git a/vendor/gems/depp/test/dummy/config/environments/production.rb b/vendor/gems/depp/test/dummy/config/environments/production.rb new file mode 100644 index 000000000..5c1b32e48 --- /dev/null +++ b/vendor/gems/depp/test/dummy/config/environments/production.rb @@ -0,0 +1,79 @@ +Rails.application.configure do + # Settings specified here will take precedence over those in config/application.rb. + + # Code is not reloaded between requests. + config.cache_classes = true + + # Eager load code on boot. This eager loads most of Rails and + # your application in memory, allowing both threaded web servers + # and those relying on copy on write to perform better. + # Rake tasks automatically ignore this option for performance. + config.eager_load = true + + # Full error reports are disabled and caching is turned on. + config.consider_all_requests_local = false + config.action_controller.perform_caching = true + + # Enable Rack::Cache to put a simple HTTP cache in front of your application + # Add `rack-cache` to your Gemfile before enabling this. + # For large-scale production use, consider using a caching reverse proxy like + # NGINX, varnish or squid. + # config.action_dispatch.rack_cache = true + + # Disable serving static files from the `/public` folder by default since + # Apache or NGINX already handles this. + config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present? + + # Compress JavaScripts and CSS. + config.assets.js_compressor = :uglifier + # config.assets.css_compressor = :sass + + # Do not fallback to assets pipeline if a precompiled asset is missed. + config.assets.compile = false + + # Asset digests allow you to set far-future HTTP expiration dates on all assets, + # yet still be able to expire them through the digest params. + config.assets.digest = true + + # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb + + # Specifies the header that your server uses for sending files. + # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache + # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX + + # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. + # config.force_ssl = true + + # Use the lowest log level to ensure availability of diagnostic information + # when problems arise. + config.log_level = :debug + + # Prepend all log lines with the following tags. + # config.log_tags = [ :subdomain, :uuid ] + + # Use a different logger for distributed setups. + # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new) + + # Use a different cache store in production. + # config.cache_store = :mem_cache_store + + # Enable serving of images, stylesheets, and JavaScripts from an asset server. + # config.action_controller.asset_host = 'http://assets.example.com' + + # Ignore bad email addresses and do not raise email delivery errors. + # Set this to true and configure the email server for immediate delivery to raise delivery errors. + # config.action_mailer.raise_delivery_errors = false + + # Enable locale fallbacks for I18n (makes lookups for any locale fall back to + # the I18n.default_locale when a translation cannot be found). + config.i18n.fallbacks = true + + # Send deprecation notices to registered listeners. + config.active_support.deprecation = :notify + + # Use default logging formatter so that PID and timestamp are not suppressed. + config.log_formatter = ::Logger::Formatter.new + + # Do not dump schema after migrations. + config.active_record.dump_schema_after_migration = false +end diff --git a/vendor/gems/depp/test/dummy/config/environments/test.rb b/vendor/gems/depp/test/dummy/config/environments/test.rb new file mode 100644 index 000000000..1c19f08b2 --- /dev/null +++ b/vendor/gems/depp/test/dummy/config/environments/test.rb @@ -0,0 +1,42 @@ +Rails.application.configure do + # Settings specified here will take precedence over those in config/application.rb. + + # The test environment is used exclusively to run your application's + # test suite. You never need to work with it otherwise. Remember that + # your test database is "scratch space" for the test suite and is wiped + # and recreated between test runs. Don't rely on the data there! + config.cache_classes = true + + # Do not eager load code on boot. This avoids loading your whole application + # just for the purpose of running a single test. If you are using a tool that + # preloads Rails for running tests, you may have to set it to true. + config.eager_load = false + + # Configure static file server for tests with Cache-Control for performance. + config.serve_static_files = true + config.static_cache_control = 'public, max-age=3600' + + # Show full error reports and disable caching. + config.consider_all_requests_local = true + config.action_controller.perform_caching = false + + # Raise exceptions instead of rendering exception templates. + config.action_dispatch.show_exceptions = false + + # Disable request forgery protection in test environment. + config.action_controller.allow_forgery_protection = false + + # Tell Action Mailer not to deliver emails to the real world. + # The :test delivery method accumulates sent emails in the + # ActionMailer::Base.deliveries array. + config.action_mailer.delivery_method = :test + + # Randomize the order test cases are executed. + config.active_support.test_order = :random + + # Print deprecation notices to the stderr. + config.active_support.deprecation = :stderr + + # Raises error for missing translations + # config.action_view.raise_on_missing_translations = true +end diff --git a/vendor/gems/depp/test/dummy/config/initializers/assets.rb b/vendor/gems/depp/test/dummy/config/initializers/assets.rb new file mode 100644 index 000000000..01ef3e663 --- /dev/null +++ b/vendor/gems/depp/test/dummy/config/initializers/assets.rb @@ -0,0 +1,11 @@ +# Be sure to restart your server when you modify this file. + +# Version of your assets, change this if you want to expire all your assets. +Rails.application.config.assets.version = '1.0' + +# Add additional assets to the asset load path +# Rails.application.config.assets.paths << Emoji.images_path + +# Precompile additional assets. +# application.js, application.css, and all non-JS/CSS in app/assets folder are already added. +# Rails.application.config.assets.precompile += %w( search.js ) diff --git a/vendor/gems/depp/test/dummy/config/initializers/backtrace_silencers.rb b/vendor/gems/depp/test/dummy/config/initializers/backtrace_silencers.rb new file mode 100644 index 000000000..59385cdf3 --- /dev/null +++ b/vendor/gems/depp/test/dummy/config/initializers/backtrace_silencers.rb @@ -0,0 +1,7 @@ +# Be sure to restart your server when you modify this file. + +# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. +# Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ } + +# You can also remove all the silencers if you're trying to debug a problem that might stem from framework code. +# Rails.backtrace_cleaner.remove_silencers! diff --git a/vendor/gems/depp/test/dummy/config/initializers/cookies_serializer.rb b/vendor/gems/depp/test/dummy/config/initializers/cookies_serializer.rb new file mode 100644 index 000000000..7f70458de --- /dev/null +++ b/vendor/gems/depp/test/dummy/config/initializers/cookies_serializer.rb @@ -0,0 +1,3 @@ +# Be sure to restart your server when you modify this file. + +Rails.application.config.action_dispatch.cookies_serializer = :json diff --git a/vendor/gems/depp/test/dummy/config/initializers/filter_parameter_logging.rb b/vendor/gems/depp/test/dummy/config/initializers/filter_parameter_logging.rb new file mode 100644 index 000000000..4a994e1e7 --- /dev/null +++ b/vendor/gems/depp/test/dummy/config/initializers/filter_parameter_logging.rb @@ -0,0 +1,4 @@ +# Be sure to restart your server when you modify this file. + +# Configure sensitive parameters which will be filtered from the log file. +Rails.application.config.filter_parameters += [:password] diff --git a/vendor/gems/depp/test/dummy/config/initializers/inflections.rb b/vendor/gems/depp/test/dummy/config/initializers/inflections.rb new file mode 100644 index 000000000..ac033bf9d --- /dev/null +++ b/vendor/gems/depp/test/dummy/config/initializers/inflections.rb @@ -0,0 +1,16 @@ +# Be sure to restart your server when you modify this file. + +# Add new inflection rules using the following format. Inflections +# are locale specific, and you may define rules for as many different +# locales as you wish. All of these examples are active by default: +# ActiveSupport::Inflector.inflections(:en) do |inflect| +# inflect.plural /^(ox)$/i, '\1en' +# inflect.singular /^(ox)en/i, '\1' +# inflect.irregular 'person', 'people' +# inflect.uncountable %w( fish sheep ) +# end + +# These inflection rules are supported but not enabled by default: +# ActiveSupport::Inflector.inflections(:en) do |inflect| +# inflect.acronym 'RESTful' +# end diff --git a/vendor/gems/depp/test/dummy/config/initializers/mime_types.rb b/vendor/gems/depp/test/dummy/config/initializers/mime_types.rb new file mode 100644 index 000000000..dc1899682 --- /dev/null +++ b/vendor/gems/depp/test/dummy/config/initializers/mime_types.rb @@ -0,0 +1,4 @@ +# Be sure to restart your server when you modify this file. + +# Add new mime types for use in respond_to blocks: +# Mime::Type.register "text/richtext", :rtf diff --git a/vendor/gems/depp/test/dummy/config/initializers/session_store.rb b/vendor/gems/depp/test/dummy/config/initializers/session_store.rb new file mode 100644 index 000000000..e766b67b1 --- /dev/null +++ b/vendor/gems/depp/test/dummy/config/initializers/session_store.rb @@ -0,0 +1,3 @@ +# Be sure to restart your server when you modify this file. + +Rails.application.config.session_store :cookie_store, key: '_dummy_session' diff --git a/vendor/gems/depp/test/dummy/config/initializers/wrap_parameters.rb b/vendor/gems/depp/test/dummy/config/initializers/wrap_parameters.rb new file mode 100644 index 000000000..33725e95f --- /dev/null +++ b/vendor/gems/depp/test/dummy/config/initializers/wrap_parameters.rb @@ -0,0 +1,14 @@ +# Be sure to restart your server when you modify this file. + +# This file contains settings for ActionController::ParamsWrapper which +# is enabled by default. + +# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array. +ActiveSupport.on_load(:action_controller) do + wrap_parameters format: [:json] if respond_to?(:wrap_parameters) +end + +# To enable root element in JSON for ActiveRecord objects. +# ActiveSupport.on_load(:active_record) do +# self.include_root_in_json = true +# end diff --git a/vendor/gems/depp/test/dummy/config/locales/en.yml b/vendor/gems/depp/test/dummy/config/locales/en.yml new file mode 100644 index 000000000..065395716 --- /dev/null +++ b/vendor/gems/depp/test/dummy/config/locales/en.yml @@ -0,0 +1,23 @@ +# Files in the config/locales directory are used for internationalization +# and are automatically loaded by Rails. If you want to use locales other +# than English, add the necessary files in this directory. +# +# To use the locales, use `I18n.t`: +# +# I18n.t 'hello' +# +# In views, this is aliased to just `t`: +# +# <%= t('hello') %> +# +# To use a different locale, set it with `I18n.locale`: +# +# I18n.locale = :es +# +# This would use the information in config/locales/es.yml. +# +# To learn more, please read the Rails Internationalization guide +# available at http://guides.rubyonrails.org/i18n.html. + +en: + hello: "Hello world" diff --git a/vendor/gems/depp/test/dummy/config/routes.rb b/vendor/gems/depp/test/dummy/config/routes.rb new file mode 100644 index 000000000..620c2d782 --- /dev/null +++ b/vendor/gems/depp/test/dummy/config/routes.rb @@ -0,0 +1,4 @@ +Rails.application.routes.draw do + + mount Depp::Engine => "/depp" +end diff --git a/vendor/gems/depp/test/dummy/config/secrets.yml b/vendor/gems/depp/test/dummy/config/secrets.yml new file mode 100644 index 000000000..cb0c1bdfe --- /dev/null +++ b/vendor/gems/depp/test/dummy/config/secrets.yml @@ -0,0 +1,22 @@ +# Be sure to restart your server when you modify this file. + +# Your secret key is used for verifying the integrity of signed cookies. +# If you change this key, all old signed cookies will become invalid! + +# Make sure the secret is at least 30 characters and all random, +# no regular words or you'll be exposed to dictionary attacks. +# You can use `rake secret` to generate a secure secret key. + +# Make sure the secrets in this file are kept private +# if you're sharing your code publicly. + +development: + secret_key_base: c011b0c80f810476a5141330eebf338821a3eddfbb71297021bc77c828eda3f6c7bc25a5b2efcdd1f9bc902f6704444189135123efe967289c2f77347a4895e1 + +test: + secret_key_base: 815fb11f0cd80bedd5505e0e85717645c1e715fcc24029d8c0c763bd41a372d7b80f1a2252cc99a37870c2bcb2b363fd4e25d715ecb9ec50256147f5eb1e25ba + +# Do not keep production secrets in the repository, +# instead read values from the environment. +production: + secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> diff --git a/vendor/gems/depp/test/dummy/lib/assets/.keep b/vendor/gems/depp/test/dummy/lib/assets/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/vendor/gems/depp/test/dummy/log/.keep b/vendor/gems/depp/test/dummy/log/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/vendor/gems/depp/test/dummy/public/404.html b/vendor/gems/depp/test/dummy/public/404.html new file mode 100644 index 000000000..b612547fc --- /dev/null +++ b/vendor/gems/depp/test/dummy/public/404.html @@ -0,0 +1,67 @@ + + + + The page you were looking for doesn't exist (404) + + + + + + +

+
+

The page you were looking for doesn't exist.

+

You may have mistyped the address or the page may have moved.

+
+

If you are the application owner check the logs for more information.

+
+ + diff --git a/vendor/gems/depp/test/dummy/public/422.html b/vendor/gems/depp/test/dummy/public/422.html new file mode 100644 index 000000000..a21f82b3b --- /dev/null +++ b/vendor/gems/depp/test/dummy/public/422.html @@ -0,0 +1,67 @@ + + + + The change you wanted was rejected (422) + + + + + + +
+
+

The change you wanted was rejected.

+

Maybe you tried to change something you didn't have access to.

+
+

If you are the application owner check the logs for more information.

+
+ + diff --git a/vendor/gems/depp/test/dummy/public/500.html b/vendor/gems/depp/test/dummy/public/500.html new file mode 100644 index 000000000..061abc587 --- /dev/null +++ b/vendor/gems/depp/test/dummy/public/500.html @@ -0,0 +1,66 @@ + + + + We're sorry, but something went wrong (500) + + + + + + +
+
+

We're sorry, but something went wrong.

+
+

If you are the application owner check the logs for more information.

+
+ + diff --git a/vendor/gems/depp/test/dummy/public/favicon.ico b/vendor/gems/depp/test/dummy/public/favicon.ico new file mode 100644 index 000000000..e69de29bb diff --git a/vendor/gems/depp/test/integration/navigation_test.rb b/vendor/gems/depp/test/integration/navigation_test.rb new file mode 100644 index 000000000..97a94c9bb --- /dev/null +++ b/vendor/gems/depp/test/integration/navigation_test.rb @@ -0,0 +1,10 @@ +require 'test_helper' + +class NavigationTest < ActionDispatch::IntegrationTest + fixtures :all + + # test "the truth" do + # assert true + # end +end + diff --git a/vendor/gems/depp/test/test_helper.rb b/vendor/gems/depp/test/test_helper.rb new file mode 100644 index 000000000..a3177bf35 --- /dev/null +++ b/vendor/gems/depp/test/test_helper.rb @@ -0,0 +1,20 @@ +# Configure Rails Environment +ENV["RAILS_ENV"] = "test" + +require File.expand_path("../../test/dummy/config/environment.rb", __FILE__) +ActiveRecord::Migrator.migrations_paths = [File.expand_path("../../test/dummy/db/migrate", __FILE__)] +ActiveRecord::Migrator.migrations_paths << File.expand_path('../../db/migrate', __FILE__) +require "rails/test_help" + +# Filter out Minitest backtrace while allowing backtrace from other libraries +# to be shown. +Minitest.backtrace_filter = Minitest::BacktraceFilter.new + +# Load support files +Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f } + +# Load fixtures from the engine +if ActiveSupport::TestCase.respond_to?(:fixture_path=) + ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__) + ActiveSupport::TestCase.fixtures :all +end diff --git a/vendor/gems/depp/vendor/assets/javascripts/.keep b/vendor/gems/depp/vendor/assets/javascripts/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/vendor/gems/depp/vendor/assets/javascripts/jquery.nested_attributes.coffee b/vendor/gems/depp/vendor/assets/javascripts/jquery.nested_attributes.coffee new file mode 100644 index 000000000..f3d11cf97 --- /dev/null +++ b/vendor/gems/depp/vendor/assets/javascripts/jquery.nested_attributes.coffee @@ -0,0 +1,293 @@ +### +Authors: Nick Giancola (@patbenatar), Brendan Loudermilk (@bloudermilk) +Homepage: https://github.com/patbenatar/jquery-nested_attributes +### +$ = jQuery + +methods = + init: (options) -> + $el = $(@) + throw "Can't initialize more than one item at a time" if $el.length > 1 + if $el.data("nestedAttributes") + throw "Can't initialize on this element more than once" + instance = new NestedAttributes($el, options) + $el.data("nestedAttributes", instance) + return $el + add: -> + $el = $(@) + unless $el.data("nestedAttributes")? + throw "You are trying to call instance methods without initializing first" + $el.data("nestedAttributes").addItem() + return $el + +$.fn.nestedAttributes = (method) -> + if methods[method]? + return methods[method].apply @, Array.prototype.slice.call(arguments, 1) + else if typeof method == 'object' || !method + return methods.init.apply(@, arguments) + else + $.error("Method #{method} does not exist on jQuery.nestedAttributes") + +class NestedAttributes + + RELEVANT_INPUTS_SELECTOR: ":input[name][name!=\"\"]" + + settings: + collectionName: false # If not provided, we will autodetect + bindAddTo: false # Required + removeOnLoadIf: false + collectIdAttributes: true + beforeAdd: false + afterAdd: false + beforeMove: false + afterMove: false + beforeDestroy: false + afterDestroy: false + destroySelector: '.destroy' + deepClone: true + $clone: null + + ###################### + ## ## + ## Initialization ## + ## ## + ###################### + + constructor: ($el, options) -> + + # This plugin gets called on the container + @$container = $el + + # Merge default options + @options = $.extend({}, @settings, options) + + # If the user provided a jQuery object to bind the "Add" + # bind it now or forever hold your peace. + @options.bindAddTo.click(@addClick) if @options.bindAddTo + + # Cache all the items + @$items = @$container.children() + + # If the user didn't provide a collectionName, autodetect it + unless @options.collectionName + @autodetectCollectionName() + + # Initialize existing items + @$items.each (i, el) => + $item = $(el) + + # If the user wants us to attempt to collect Rail's ID attributes, do it now + # Using the default rails helpers, ID attributes will wind up right after their + # propper containers in the form. + if @options.collectIdAttributes and $item.is('input') + # Move the _id field into its proper container + $item.appendTo($item.prev()) + # Remove it from the $items collection + @$items = @$items.not($item) + else + # Try to find and bind the destroy link if the user wanted one + @bindDestroy($item) + + # Now that we've collected ID attributes + @hideIfAlreadyDestroyed $(item) for item in @$items + + # Remove any items on load if the client implements a check and the check passes + if @options.removeOnLoadIf + @$items.each (i, el) => + $el = $(el) + if $el.call(true, @options.removeOnLoadIf, i) + $el.remove() + + + ######################## + ## ## + ## Instance Methods ## + ## ## + ######################## + + autodetectCollectionName: -> + pattern = /\[(.[^\]]*)_attributes\]/ + try + match = pattern.exec(@$items.first().find("#{@RELEVANT_INPUTS_SELECTOR}:first").attr('name'))[1] + if match != null + @options.collectionName = match + else + throw "Regex error" + catch error + console.log "Error detecting collection name", error + + addClick: (event) => + + @addItem() + + # Don't let the link do anything + event.preventDefault() + + addItem: -> + # Piece together an item + newIndex = @$items.length + $newClone = @applyIndexToItem(@extractClone(), newIndex) + + # Give the user a chance to make their own changes before we insert + if (@options.beforeAdd) + + # Stop the add process if the callback returns false + return false if !@options.beforeAdd.call(undefined, $newClone, newIndex) + + # Insert the new item after the last item + @$container.append($newClone) + + # Give the user a chance to make their own changes after insertion + @options.afterAdd.call(undefined, $newClone, newIndex) if (@options.afterAdd) + + # Add this item to the items list + @refreshItems() + + extractClone: -> + + # Are we restoring from an already created clone? + if @$restorableClone + + $record = @$restorableClone + + @$restorableClone = null + + else + $record = @options.$clone || @$items.first() + + # Make a deep clone (bound events and data) + $record = $record.clone(@options.deepClone) + + @bindDestroy($record) if @options.$clone or !@options.deepClone + + # Empty out the values of text inputs and selects + $record.find(':text, textarea, select').val('') + + # Reset checkboxes and radios + $record.find(':checkbox, :radio').attr("checked", false) + + # Empty out any hidden [id] or [_destroy] fields + $record.find('input[name$="\\[id\\]"]').remove() + $record.find('input[name$="\\[_destroy\\]"]').remove() + + # Make sure it's not hidden as we return. + # It would be hidden in the case where we're duplicating an + # already removed item for its template. + return $record.show() + + applyIndexToItem: ($item, index) -> + collectionName = @options.collectionName + + $item.find(@RELEVANT_INPUTS_SELECTOR).each (i, el) => + + $el = $(el) + + idRegExp = new RegExp("_#{collectionName}_attributes_\\d+_") + idReplacement = "_#{collectionName}_attributes_#{index}_" + nameRegExp = new RegExp("\\[#{collectionName}_attributes\\]\\[\\d+\\]") + nameReplacement = "[#{collectionName}_attributes][#{index}]" + + newID = $el.attr('id').replace(idRegExp, idReplacement) if $el.attr('id') + newName = $el.attr('name').replace(nameRegExp, nameReplacement) + + $el.attr + id: newID + name: newName + + $item.find('label[for]').each (i, el) => + $el = $(el) + try + forRegExp = new RegExp("_#{collectionName}_attributes_\\d+_") + forReplacement = "_#{collectionName}_attributes_#{index}_" + newFor = $el.attr('for').replace(forRegExp, forReplacement) + $el.attr('for', newFor) + catch error + console.log "Error updating label", error + + return $item + + hideIfAlreadyDestroyed: ($item) -> + $destroyField = $item.find("[name$='[_destroy]']") + if $destroyField.length && $destroyField.val() == "true" + @destroy $item + + # Hides a item from the user and marks it for deletion in the + # DOM by setting _destroy to true if the record already exists. If it + # is a new escalation, we simple delete the item + destroyClick: (event) => + event.preventDefault() + @destroy $(event.target).parentsUntil(@$container).last() + + destroy: ($item) -> + # If you're about to delete the last one, + # cache a clone of it first so we have something to show + # the next time user hits add + @$restorableClone = @extractClone() unless @$items.length-1 + + index = @indexForItem($item) + itemIsNew = $item.find('input[name$="\\[id\\]"]').length == 0 + + if (@options.beforeDestroy) + + # Stop the destroy process if the callback returns false + return false if !@options.beforeDestroy.call(undefined, $item, index, itemIsNew) + + # Add a blank item row if none are visible after this deletion + @addItem() unless @$items.filter(':visible').length-1 + + if itemIsNew + + $item.remove() + + else + + # Hide the item + $item.hide() + + # Add the _destroy field + otherFieldName = $item.find(':input[name]:first').attr('name') + attributePosition = otherFieldName.lastIndexOf('[') + destroyFieldName = "#{otherFieldName.substring(0, attributePosition)}[_destroy]" + # First look for an existing _destroy field + $destroyField = $item.find("input[name='#{destroyFieldName}']") + # If it doesn't exist, create it + if $destroyField.length == 0 + $destroyField = $("") + $item.append($destroyField) + $destroyField.val(true).change() + + @options.afterDestroy.call($item, index, itemIsNew) if (@options.afterDestroy) + + # Remove this item from the items list + @refreshItems() + + # Rename the remaining items + @resetIndexes() + + indexForItem: ($item) -> + regExp = new RegExp("\\[#{@options.collectionName}_attributes\\]\\[\\d+\\]") + name = $item.find("#{@RELEVANT_INPUTS_SELECTOR}:first").attr('name') + return parseInt(name.match(regExp)[0].split('][')[1].slice(0, -1), 10) + + refreshItems: -> + @$items = @$container.children() + + # Sets the proper association indices and labels to all items + # Used when removing items + resetIndexes: -> + @$items.each (i, el) => + $el = $(el) + + # Make sure this is actually a new position + oldIndex = @indexForItem($el) + return true if (i == oldIndex) + + @options.beforeMove.call($el, i, oldIndex) if (@options.beforeMove) + + # Change the number to the new index + @applyIndexToItem($el, i) + + @options.afterMove.call($el, i, oldIndex) if (@options.afterMove) + + bindDestroy: ($item) -> + $item.find(@options.destroySelector).click(@destroyClick) if (@options.destroySelector) diff --git a/vendor/gems/depp/vendor/assets/stylesheets/.keep b/vendor/gems/depp/vendor/assets/stylesheets/.keep new file mode 100644 index 000000000..e69de29bb