diff --git a/app/controllers/admin/auctions_controller.rb b/app/controllers/admin/auctions_controller.rb
index 39834ac54..22c186b17 100644
--- a/app/controllers/admin/auctions_controller.rb
+++ b/app/controllers/admin/auctions_controller.rb
@@ -6,6 +6,7 @@ module Admin
params[:q] ||= {}
@auctions = Auction.with_status(params[:statuses_contains])
+ @auction = Auction.new
normalize_search_parameters do
@q = @auctions.ransack(PartialSearchFormatter.format(params[:q]))
@@ -14,16 +15,47 @@ module Admin
@auctions = @auctions.per(params[:results_per_page]) if params[:results_per_page].to_i.positive?
+ domains = ReservedDomain.all.order(:name)
+ q = domains.ransack(PartialSearchFormatter.format(params[:q]))
+ @domains = q.result.page(params[:page])
+ @domains = @domains.per(params[:results_per_page]) if params[:results_per_page].to_i.positive?
+
render_by_format('admin/auctions/index', 'auctions')
end
- def update
+ def create
+ auction = Auction.new(domain: params[:domain], status: Auction.statuses[:started])
+
+ if auction.save
+ remove_from_reserved(auction)
+ flash[:notice] = "Auction #{params[:domain]} created"
+ else
+ flash[:alert] = "Something goes wrong"
+ end
+
+ redirect_to admin_auctions_path
+ end
+
+ def upload_spreadsheet
+ table = CSV.parse(File.read(params[:q][:file]), headers: true)
+
+ table.each do |row|
+ record = row.to_h
+ auction = Auction.new(domain: record['name'], status: Auction.statuses[:started])
+ remove_from_reserved(auction) if auction.save!
+ end
redirect_to admin_auctions_path
end
private
+ def remove_from_reserved(auction)
+ domain = ReservedDomain.find_by(name: auction.domain)
+
+ domain.destroy if domain.present?
+ end
+
def normalize_search_parameters
ca_cache = params[:q][:valid_to_lteq]
begin
diff --git a/app/controllers/admin/reserved_domains_controller.rb b/app/controllers/admin/reserved_domains_controller.rb
index aeebe8906..dc9ff9d15 100644
--- a/app/controllers/admin/reserved_domains_controller.rb
+++ b/app/controllers/admin/reserved_domains_controller.rb
@@ -62,7 +62,7 @@ module Admin
domain.destroy!
end
- redirect_to admin_reserved_domains_path
+ redirect_to admin_auctions_path
end
private
diff --git a/app/views/admin/auctions/_modal.html.erb b/app/views/admin/auctions/_modal.html.erb
new file mode 100644
index 000000000..e57d2139d
--- /dev/null
+++ b/app/views/admin/auctions/_modal.html.erb
@@ -0,0 +1,15 @@
+
\ No newline at end of file
diff --git a/app/views/admin/auctions/_search_form.html.erb b/app/views/admin/auctions/_search_form.html.erb
deleted file mode 100644
index d675a70ca..000000000
--- a/app/views/admin/auctions/_search_form.html.erb
+++ /dev/null
@@ -1,17 +0,0 @@
-<%= search_form_for [:admin, @q], html: { class: 'search-form', autocomplete: 'off' } do |f| %>
-
-
-
-
-
-
-
- <%= link_to t('.download_csv_btn'), admin_domains_path(format: :csv, params: params.permit!),
- "data-toggle" => "tooltip", "data-placement" => "bottom", "title" => t('.download_csv_btn'),
- class: 'btn btn-primary' %>
-
-
-
-
-
-<% end %>
diff --git a/app/views/admin/auctions/index.html.erb b/app/views/admin/auctions/index.html.erb
index a9a708755..d3f9f7745 100644
--- a/app/views/admin/auctions/index.html.erb
+++ b/app/views/admin/auctions/index.html.erb
@@ -34,28 +34,62 @@
<%= text_field_tag :results_per_page, params[:results_per_page], class: 'form-control', placeholder: t(:results_per_page) %>
-
-
+
+
- <%= link_to(t('.reset_btn'), admin_auctions_path, class: 'btn btn-default') %>
+
+ <%= link_to(t('.reset_btn'), admin_auctions_path, class: 'btn btn-default') %>
+
+
+ <%= link_to 'Download auction list', admin_auctions_path(format: :csv, params: params.permit!),
+ "data-toggle" => "tooltip", "data-placement" => "bottom", "title" => t('.download_csv_btn'),
+ class: 'btn btn-primary' %>
+
+
+ <%= link_to "#", class: "btn btn-warning edit",
+ data: {
+ toggle: "modal",
+ url: admin_reserved_domains_path,
+ target: "#user-form-edit"} do %>
+
+ Get reserved domains
+ <% end %>
+
+ <%= render 'modal' %>
+
+
<% end %>
+
+
+ <%= search_form_for [:admin, @q], method: :post, html: { style: 'margin-bottom: 0;', class: 'js-form', autocomplete: 'off' } do |f| %>
+ <%= label_tag :new_auction %>
+
+
+ <%= text_field_tag :domain, params[:domain], class: 'form-control', placeholder: 'domain name' %>
+ <%= f.submit 'Create', class: 'btn btn-primary', style: 'margin-left: .4rem;' %>
+
+ <% end %>
+
-
-
- <%= link_to 'Download auction list', admin_auctions_path(format: :csv, params: params.permit!),
- "data-toggle" => "tooltip", "data-placement" => "bottom", "title" => t('.download_csv_btn'),
- class: 'btn btn-primary' %>
-
+
+ <%= search_form_for @q, url: upload_spreadsheet_admin_auctions_path, method: :post, html: { style: 'margin-bottom: 0; display: flex; flex-direction: row; align-items: center;', class: 'js-form', autocomplete: 'off' } do |f| %>
+ <%= f.file_field :file,
+ accept: ".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel",
+ direct_upload: true,
+ style: 'width: 200px;' %>
+ <%= f.submit 'Upload csv', class: 'btn btn-primary' %>
+ <% end %>
+
@@ -99,3 +133,9 @@
+
+
\ No newline at end of file
diff --git a/config/routes.rb b/config/routes.rb
index 38e263c94..4ba44300d 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -266,11 +266,13 @@ Rails.application.routes.draw do
resources :accounts
resources :account_activities
- resources :auctions, only: [ :index ] do
+ resources :auctions, only: [ :index, :create ] do
collection do
- patch :update
+ post 'upload_spreadsheet', to: 'auctions#upload_spreadsheet', as: :upload_spreadsheet
end
end
+ # post 'admi/upload_spreadsheet', to: 'customers#upload_spreadsheet', as: :customers_upload_spreadsheet
+
resources :bank_statements do
resources :bank_transactions