From a2c0088c9181e89c319c2fa85b21f2cdc8950029 Mon Sep 17 00:00:00 2001 From: Rohan Mitchell Date: Tue, 17 Nov 2015 11:42:16 +1100 Subject: [PATCH] Do not show flash message if we're performing an async update without reload --- .../order_cycles/services/order_cycle.js.coffee | 2 +- app/controllers/admin/order_cycles_controller.rb | 4 ++-- .../admin/order_cycles_controller_spec.rb | 16 ++++++++++++++++ spec/javascripts/unit/order_cycle_spec.js.coffee | 4 ++-- 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/app/assets/javascripts/admin/order_cycles/services/order_cycle.js.coffee b/app/assets/javascripts/admin/order_cycles/services/order_cycle.js.coffee index 595bfdbde6..e16ffcb6ce 100644 --- a/app/assets/javascripts/admin/order_cycles/services/order_cycle.js.coffee +++ b/app/assets/javascripts/admin/order_cycles/services/order_cycle.js.coffee @@ -133,7 +133,7 @@ angular.module('admin.orderCycles').factory('OrderCycle', ($resource, $window, $ update: (destination) -> oc = new OrderCycle({order_cycle: this.dataForSubmit()}) - oc.$update {order_cycle_id: this.order_cycle.id}, (data) => + oc.$update {order_cycle_id: this.order_cycle.id, reloading: (if destination? then 1 else 0)}, (data) => if data['success'] if destination? $window.location = destination diff --git a/app/controllers/admin/order_cycles_controller.rb b/app/controllers/admin/order_cycles_controller.rb index fccb3d4be9..3880858e5b 100644 --- a/app/controllers/admin/order_cycles_controller.rb +++ b/app/controllers/admin/order_cycles_controller.rb @@ -61,8 +61,8 @@ module Admin respond_to do |format| if @order_cycle.update_attributes(params[:order_cycle]) OpenFoodNetwork::OrderCycleFormApplicator.new(@order_cycle, spree_current_user).go! - flash[:notice] = 'Your order cycle has been updated.' - format.json { render :json => {:success => true} } + flash[:notice] = 'Your order cycle has been updated.' if params[:reloading] == '1' + format.json { render :json => {:success => true} } else format.json { render :json => {:success => false} } end diff --git a/spec/controllers/admin/order_cycles_controller_spec.rb b/spec/controllers/admin/order_cycles_controller_spec.rb index 3ebbfb2ce3..12b03f252f 100644 --- a/spec/controllers/admin/order_cycles_controller_spec.rb +++ b/spec/controllers/admin/order_cycles_controller_spec.rb @@ -92,6 +92,22 @@ module Admin end end + describe "update" do + let(:order_cycle) { create(:simple_order_cycle) } + + before { login_as_admin } + + it "sets flash message when page is reloading" do + spree_put :update, id: order_cycle.id, reloading: '1', order_cycle: {} + flash[:notice].should == 'Your order cycle has been updated.' + end + + it "does not set flash message otherwise" do + spree_put :update, id: order_cycle.id, reloading: '0', order_cycle: {} + flash[:notice].should be_nil + end + end + describe "bulk_update" do let(:oc) { create(:simple_order_cycle) } let!(:coordinator) { oc.coordinator } diff --git a/spec/javascripts/unit/order_cycle_spec.js.coffee b/spec/javascripts/unit/order_cycle_spec.js.coffee index f538d53d97..2a6d529169 100644 --- a/spec/javascripts/unit/order_cycle_spec.js.coffee +++ b/spec/javascripts/unit/order_cycle_spec.js.coffee @@ -784,7 +784,7 @@ describe 'OrderCycle services', -> it 'redirects to the destination page on success', -> OrderCycle.order_cycle = 'this is the order cycle' spyOn(OrderCycle, 'dataForSubmit').andReturn('this is the submit data') - $httpBackend.expectPUT('/admin/order_cycles.json', { + $httpBackend.expectPUT('/admin/order_cycles.json?reloading=1', { order_cycle: 'this is the submit data' }).respond {success: true} @@ -795,7 +795,7 @@ describe 'OrderCycle services', -> it 'does not redirect on error', -> OrderCycle.order_cycle = 'this is the order cycle' spyOn(OrderCycle, 'dataForSubmit').andReturn('this is the submit data') - $httpBackend.expectPUT('/admin/order_cycles.json', { + $httpBackend.expectPUT('/admin/order_cycles.json?reloading=1', { order_cycle: 'this is the submit data' }).respond {success: false}