From 3c741f06869ca3c3c4820e8f92b4fd2de9e7e4b5 Mon Sep 17 00:00:00 2001 From: binarygit Date: Wed, 6 Jul 2022 15:07:07 +0545 Subject: [PATCH 1/3] Add flash after an order is cancelled --- app/controllers/spree/orders_controller.rb | 5 ++++- spec/controllers/spree/orders_controller_spec.rb | 8 ++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/controllers/spree/orders_controller.rb b/app/controllers/spree/orders_controller.rb index f467dbd196..d3297fe130 100644 --- a/app/controllers/spree/orders_controller.rb +++ b/app/controllers/spree/orders_controller.rb @@ -4,6 +4,8 @@ module Spree class OrdersController < ::BaseController include OrderCyclesHelper include Rails.application.routes.url_helpers + include CablecarResponses + layout 'darkswarm' @@ -99,7 +101,8 @@ module Spree else flash[:error] = I18n.t(:orders_could_not_cancel) end - redirect_to request.referer || main_app.order_path(@order) + render status: :found, + operations: cable_car.redirect_to(url: request.referer || main_app.order_path(@order)) end private diff --git a/spec/controllers/spree/orders_controller_spec.rb b/spec/controllers/spree/orders_controller_spec.rb index ef221178c7..2f5722ee93 100644 --- a/spec/controllers/spree/orders_controller_spec.rb +++ b/spec/controllers/spree/orders_controller_spec.rb @@ -457,7 +457,9 @@ describe Spree::OrdersController, type: :controller do context "when the order is not yet complete" do it "responds with forbidden" do spree_put :cancel, params - expect(response.status).to redirect_to order_path(order) + + expect(response).to have_http_status(:found) + expect(response.body).to match(order_path(order)).and match("redirect") expect(flash[:error]).to eq I18n.t(:orders_could_not_cancel) end end @@ -474,7 +476,9 @@ describe Spree::OrdersController, type: :controller do it "responds with success" do spree_put :cancel, params - expect(response.status).to redirect_to order_path(order) + + expect(response).to have_http_status(:found) + expect(response.body).to match(order_path(order)).and match("redirect") expect(flash[:success]).to eq I18n.t(:orders_your_order_has_been_cancelled) end end From 5e7bfc05d20802d4ae7832c80d837b1b374fa79c Mon Sep 17 00:00:00 2001 From: binarygit Date: Wed, 6 Jul 2022 15:13:13 +0545 Subject: [PATCH 2/3] Remove link from order number in open/past orders table --- app/views/spree/users/_open_orders.html.haml | 3 +-- app/views/spree/users/_past_orders.html.haml | 3 +-- spec/system/consumer/account_spec.rb | 4 ++-- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/app/views/spree/users/_open_orders.html.haml b/app/views/spree/users/_open_orders.html.haml index 45f1426cb3..7b45058b2f 100644 --- a/app/views/spree/users/_open_orders.html.haml +++ b/app/views/spree/users/_open_orders.html.haml @@ -11,8 +11,7 @@ %th.order7.show-for-large-up.text-right= t('.cancel') %tbody.transaction-group{"ng-repeat" => "order in Orders.changeable", "ng-class-odd"=>"'odd'", "ng-class-even"=>"'even'"} %tr.order-row - %td.order1 - %a{"ng-href" => "{{::order.path}}", "ng-bind" => "::order.number"} + %td.order1{"ng-bind" => "::order.number"} %td.order2 %a{"ng-href" => "{{::Orders.shopsByID[order.shop_id].hash}}#{main_app.shop_path}", "ng-bind" => "::Orders.shopsByID[order.shop_id].name"} %td.order3.show-for-large-up{"ng-bind" => "::order.changes_allowed_until"} diff --git a/app/views/spree/users/_past_orders.html.haml b/app/views/spree/users/_past_orders.html.haml index 4ded53858d..903baf853c 100644 --- a/app/views/spree/users/_past_orders.html.haml +++ b/app/views/spree/users/_past_orders.html.haml @@ -11,8 +11,7 @@ %th.order7.text-right= t('.view') %tbody.transaction-group{"ng-repeat" => "order in Orders.all | filter:{changes_allowed:false} as pastOrders", "ng-class-odd"=>"'odd'", "ng-class-even"=>"'even'"} %tr.order-row - %td.order1 - %a{"ng-href" => "{{::order.path}}", "ng-bind" => "::order.number"} + %td.order1{"ng-bind" => "::order.number"} %td.order2 %a{"ng-href" => "{{::Orders.shopsByID[order.shop_id].hash}}#{main_app.shop_path}", "ng-bind" => "::Orders.shopsByID[order.shop_id].name"} %td.order3.show-for-large-up{"ng-bind" => "::order.completed_at"} diff --git a/spec/system/consumer/account_spec.rb b/spec/system/consumer/account_spec.rb index f108006c6f..9e8f89b37a 100644 --- a/spec/system/consumer/account_spec.rb +++ b/spec/system/consumer/account_spec.rb @@ -93,8 +93,8 @@ describe ' visit '/account' expect(page).to have_content I18n.t('spree.users.orders.open_orders') - expect(page).to have_link d1o1.number, href: order_path(d1o1) - expect(page).to have_link d1o2.number, href: order_path(d1o2) + expect(page).to have_link 'Edit', href: order_path(d1o1) + expect(page).to have_link 'Edit', href: order_path(d1o2) expect(page).to have_link(distributor1.name, href: "#{distributor1.permalink}/shop", count: 2) expect(page).to have_link I18n.t('spree.users.open_orders.cancel'), From 1d54777d72a77022dbe7e23479f1f2759ddfc89c Mon Sep 17 00:00:00 2001 From: binarygit Date: Wed, 6 Jul 2022 15:17:10 +0545 Subject: [PATCH 3/3] Replace view with status column in past orders table --- app/views/spree/users/_past_orders.html.haml | 7 ++++--- config/locales/en.yml | 4 +++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/app/views/spree/users/_past_orders.html.haml b/app/views/spree/users/_past_orders.html.haml index 903baf853c..434cdef3b8 100644 --- a/app/views/spree/users/_past_orders.html.haml +++ b/app/views/spree/users/_past_orders.html.haml @@ -8,7 +8,7 @@ %th.order4.show-for-large-up= t('.items') %th.order5.text-right= t('.total') %th.order6.text-right.show-for-large-up= t('.paid?') - %th.order7.text-right= t('.view') + %th.order7.text-right= t('.status') %tbody.transaction-group{"ng-repeat" => "order in Orders.all | filter:{changes_allowed:false} as pastOrders", "ng-class-odd"=>"'odd'", "ng-class-even"=>"'even'"} %tr.order-row %td.order1{"ng-bind" => "::order.number"} @@ -18,5 +18,6 @@ %td.order4.show-for-large-up{"ng-bind" => "::order.item_count"} %td.order5.text-right{"ng-class" => "{'debit': order.payment_state != 'paid', 'credit': order.payment_state == 'paid'}","ng-bind" => "::order.total | localizeCurrency"} %td.order6.text-right.show-for-large-up{"ng-class" => "{'debit': order.payment_state != 'paid', 'credit': order.payment_state == 'paid'}", "ng-bind" => "::(order.payment_state == 'paid' ? 'say_yes' : 'say_no') | t"} - %td.order7.text-right - %a{"ng-href" => "{{::order.path}}" }= t('.view') + %td.order7.text-right{ "ng-switch" => "::order.state" } + %a{ "ng-switch-when" => "complete", "ng-href" => "{{::order.path}}" }= t('.completed') + %span{ "ng-switch-when" => "canceled" }= t('.cancelled') diff --git a/config/locales/en.yml b/config/locales/en.yml index d7a2282288..44ab05295d 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -4208,7 +4208,9 @@ See the %{link} to find out more about %{sitename}'s features and to start using items: Items total: Total paid?: Paid? - view: View + status: Status + completed: Completed + cancelled: Cancelled saved_cards: default?: Default? delete?: Delete?