diff --git a/app/controllers/admin/auctions_controller.rb b/app/controllers/admin/auctions_controller.rb index c1023b705..05bfc239f 100644 --- a/app/controllers/admin/auctions_controller.rb +++ b/app/controllers/admin/auctions_controller.rb @@ -44,7 +44,7 @@ module Admin if auction.save reserved_domain = auction.domain if remove_from_reserved(auction) - flash[:notice] = "Auction #{params[:domain]} created. + flash[:notice] = "Auction #{params[:domain]} created. #{reserved_domain.present? ? 'These domain will be removed from reserved list: ' + reserved_domain : ' '}" else flash[:alert] = 'Something goes wrong' @@ -53,6 +53,18 @@ module Admin redirect_to admin_auctions_path end + def destroy + auction = Auction.find(params[:id]) + + if auction.destroy + flash[:notice] = I18n.t('record_deleted') + else + flash.now[:alert] = I18n.t('failed_to_delete_record') + end + + redirect_to admin_auctions_path + end + def upload_spreadsheet if params[:q].nil? flash[:alert] = 'No file upload! Look at the left of upload button!' diff --git a/app/views/admin/auctions/index.html.erb b/app/views/admin/auctions/index.html.erb index 85d533fa7..44e60c0a0 100644 --- a/app/views/admin/auctions/index.html.erb +++ b/app/views/admin/auctions/index.html.erb @@ -129,6 +129,7 @@ <%= auction.registration_code %> <%= auction.registration_deadline %> <%= auction.platform.nil? ? 'auto' : auction.platform %> + <%= link_to(t(:delete), admin_auction_path(auction), method: :delete, data: { confirm: t(:are_you_sure_you_want_to_delete_auction) }, class: 'btn btn-danger') %> <% end %> @@ -152,4 +153,4 @@ $('#user-form-edit').on("show.bs.modal", function(e) { $(this).find('.modal-body').load(e.relatedTarget.dataset.url); }); - \ No newline at end of file + diff --git a/config/locales/en.yml b/config/locales/en.yml index f15a8a55d..a30c2adfb 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -440,6 +440,7 @@ en: exDate: 'Valid to' dequeue: 'Dequeue' are_you_sure_you_want_to_delete_domain: 'Are you sure you want to delete domain %{domain}?' + are_you_sure_you_want_to_delete_auction: 'Warning: Are you sure you want to delete this record? Be advised that doing so will remove the record only from registry database and will make the domain available for anyone to register. This will not affect auction system if the auction record is already created there. You will need to delete the record in auction system first to remove the domain from auction.?' upload_key: 'Upload key' legal_document: 'Legal document' legal_document_max_size: '(max. 8MB)' diff --git a/config/routes.rb b/config/routes.rb index 7ef8474f0..c8ff3f569 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -303,7 +303,7 @@ Rails.application.routes.draw do resources :accounts resources :account_activities - resources :auctions, only: [ :index, :create ] do + resources :auctions, only: %i[index create destroy] do collection do post 'upload_spreadsheet', to: 'auctions#upload_spreadsheet', as: :upload_spreadsheet end diff --git a/test/integration/admin_area/auction_test.rb b/test/integration/admin_area/auction_test.rb index c51465ab2..536c70544 100644 --- a/test/integration/admin_area/auction_test.rb +++ b/test/integration/admin_area/auction_test.rb @@ -170,4 +170,17 @@ class AdminAreaAuctionIntegrationTest < ApplicationSystemTestCase find(:id, "reserved-modal", match: :first).click assert_text 'Reserved domains' end + + def test_delete_auction + visit admin_auctions_path + domain = reserved_domains(:one) + + fill_in 'domain', with: domain.name + find(:id, 'new-auction-btn', match: :first).click + click_link_or_button 'Delete' + + assert_raises ActiveRecord::RecordNotFound do + domain.reload + end + end end