diff --git a/app/controllers/client/domains_controller.rb b/app/controllers/client/domains_controller.rb new file mode 100644 index 000000000..f320f20e6 --- /dev/null +++ b/app/controllers/client/domains_controller.rb @@ -0,0 +1,7 @@ +class Client::DomainsController < ClientController + def index + @q = current_user.registrar.domains.search(params[:q]) + @domains = @q.result.page(params[:page]) + render 'admin/domains/index' + end +end diff --git a/app/controllers/client_controller.rb b/app/controllers/client_controller.rb new file mode 100644 index 000000000..d45b8f5ad --- /dev/null +++ b/app/controllers/client_controller.rb @@ -0,0 +1,5 @@ +class ClientController < ApplicationController + def current_user + EppUser.last + end +end diff --git a/app/views/admin/domains/index.haml b/app/views/admin/domains/index.haml index d2991e252..2d60418e7 100644 --- a/app/views/admin/domains/index.haml +++ b/app/views/admin/domains/index.haml @@ -5,30 +5,4 @@ %h2.text-right.text-center-xs = link_to(t('shared.add'), new_admin_domain_path, class: 'btn btn-primary') %hr -.row - .col-md-12 - .table-responsive - %table.table.table-hover.table-bordered.table-condensed - %thead - %tr - %th{class: 'col-xs-2'} - = sort_link(@q, 'name') - %th{class: 'col-xs-2'} - = sort_link(@q, 'registrar_name', t('shared.registrar')) - %th{class: 'col-xs-2'} - = sort_link(@q, 'owner_contact_international_address_name', t('shared.owner')) - %th{class: 'col-xs-1'} - = sort_link(@q, 'valid_to', t('shared.valid_to')) - %th{class: 'col-xs-1'} - = t('shared.action') - %tbody - - @domains.each do |x| - %tr - %td= link_to(x, admin_domain_path(x)) - %td= link_to(x.registrar, root_path) if x.registrar - %td= link_to(x.owner_contact, [:admin, x.owner_contact]) - %td= l(x.valid_to, format: :short) - %td= link_to(t('shared.edit'), edit_admin_domain_path(x), class: 'btn btn-primary btn-xs') -.row - .col-md-12 - = paginate @domains += render 'shared/domains/index' diff --git a/app/views/client/domains/index.haml b/app/views/client/domains/index.haml new file mode 100644 index 000000000..0584c0f85 --- /dev/null +++ b/app/views/client/domains/index.haml @@ -0,0 +1,8 @@ +.row + .col-sm-6 + %h2.text-center-xs= t('shared.domains') + .col-sm-6 + %h2.text-right.text-center-xs + = link_to(t('shared.add'), new_client_domain_path, class: 'btn btn-primary') +%hr += render 'shared/domains/index' diff --git a/app/views/layouts/client.haml b/app/views/layouts/client.haml new file mode 100644 index 000000000..e7ff01070 --- /dev/null +++ b/app/views/layouts/client.haml @@ -0,0 +1,53 @@ +%html{lang: "en"} + %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 'application', media: 'all', 'data-turbolinks-track' => true + = javascript_include_tag 'application', 'data-turbolinks-track' => true + %link{href: "../../favicon.ico", rel: "icon"}/ + %title EPP Client + %body + / Static navbar + .navbar.navbar-inverse.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 + %li.dropdown.active + %a.dropdown-toggle{"data-toggle" => "dropdown", href: "#"} + = t('shared.domains') + %span.caret + %ul.dropdown-menu{role: "menu"} + %li + = link_to t('shared.check'), client_domains_path + %li + = link_to t('shared.register'), '#' + + %li.dropdown + %a.dropdown-toggle{"data-toggle" => "dropdown", href: "#"} + = t('shared.contacts') + %span.caret + %ul.dropdown-menu{role: "menu"} + %li + = link_to t('shared.check'), '#' + %li + = link_to t('shared.register'), '#' + %ul.nav.navbar-nav.navbar-right + %li= link_to t('shared.log_out'), '/logout' + / /.nav-collapse + .container + - display = (flash.empty?) ? 'none' : 'block' + #flash{style: "display: #{display};"} + - type = (flash[:notice]) ? 'bg-success' : 'bg-danger' + .alert{class: type}= flash[:notice] || flash[:alert] + = yield diff --git a/app/views/shared/domains/_index.haml b/app/views/shared/domains/_index.haml new file mode 100644 index 000000000..fb97d2737 --- /dev/null +++ b/app/views/shared/domains/_index.haml @@ -0,0 +1,27 @@ +.row + .col-md-12 + .table-responsive + %table.table.table-hover.table-bordered.table-condensed + %thead + %tr + %th{class: 'col-xs-2'} + = sort_link(@q, 'name') + %th{class: 'col-xs-2'} + = sort_link(@q, 'registrar_name', t('shared.registrar')) + %th{class: 'col-xs-2'} + = sort_link(@q, 'owner_contact_international_address_name', t('shared.owner')) + %th{class: 'col-xs-1'} + = sort_link(@q, 'valid_to', t('shared.valid_to')) + %th{class: 'col-xs-1'} + = t('shared.action') + %tbody + - @domains.each do |x| + %tr + %td= link_to(x, admin_domain_path(x)) + %td= link_to(x.registrar, root_path) if x.registrar + %td= link_to(x.owner_contact, [:admin, x.owner_contact]) + %td= l(x.valid_to, format: :short) + %td= link_to(t('shared.edit'), edit_admin_domain_path(x), class: 'btn btn-primary btn-xs') +.row + .col-md-12 + = paginate @domains diff --git a/config/routes.rb b/config/routes.rb index 35a8c392f..cd571d8fc 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -21,6 +21,10 @@ Rails.application.routes.draw do end end + namespace(:client) do + resources :domains + end + # The priority is based upon order of creation: first created -> highest priority. # See how all your routes lay out with "rake routes".