From a72da7036b27e284ac18e0c6436dba49b01fd672 Mon Sep 17 00:00:00 2001 From: Rob Harrington Date: Thu, 24 Nov 2016 12:46:00 +1100 Subject: [PATCH] buildItem and removeItem are instanceMethods standingOrder objects --- .../standing_order_controller.js.coffee | 4 +- .../services/standing_order.js.coffee | 43 ++++++++++--------- 2 files changed, 25 insertions(+), 22 deletions(-) diff --git a/app/assets/javascripts/admin/standing_orders/controllers/standing_order_controller.js.coffee b/app/assets/javascripts/admin/standing_orders/controllers/standing_order_controller.js.coffee index 79a0ad9300..15ceb8668c 100644 --- a/app/assets/javascripts/admin/standing_orders/controllers/standing_order_controller.js.coffee +++ b/app/assets/javascripts/admin/standing_orders/controllers/standing_order_controller.js.coffee @@ -22,12 +22,12 @@ angular.module("admin.standingOrders").controller "StandingOrderController", ($s $scope.addStandingLineItem = -> $scope.standing_order_form.$setDirty() - StandingOrder.buildItem($scope.newItem) + $scope.standingOrder.buildItem($scope.newItem) $scope.removeStandingLineItem = (item) -> if confirm(t('are_you_sure')) $scope.standing_order_form.$setDirty() - StandingOrder.removeItem(item) + $scope.standingOrder.removeItem(item) $scope.estimatedSubtotal = -> $scope.standingOrder.standing_line_items.reduce (subtotal, item) -> diff --git a/app/assets/javascripts/admin/standing_orders/services/standing_order.js.coffee b/app/assets/javascripts/admin/standing_orders/services/standing_order.js.coffee index 0dd33f3472..2d42a11abf 100644 --- a/app/assets/javascripts/admin/standing_orders/services/standing_order.js.coffee +++ b/app/assets/javascripts/admin/standing_orders/services/standing_order.js.coffee @@ -1,35 +1,37 @@ angular.module("admin.standingOrders").factory "StandingOrder", ($injector, $http, StatusMessage, InfoDialog, StandingOrderResource) -> + instanceMethods = + buildItem: (item) -> + return false unless item.variant_id > 0 + return false unless item.quantity > 0 + data = angular.extend({}, item, { shop_id: @shop_id, schedule_id: @schedule_id }) + $http.post("/admin/standing_line_items/build", data).then (response) => + @standing_line_items.push response.data + , (response) => + InfoDialog.open 'error', response.data.errors[0] + + removeItem: (item) -> + index = @standing_line_items.indexOf(item) + if item.id? + $http.delete("/admin/standing_line_items/#{item.id}").then (response) => + @standing_line_items.splice(index,1) + , (response) -> + InfoDialog.open 'error', response.data.errors[0] + else + @standing_line_items.splice(index,1) + new class StandingOrder standingOrder: new StandingOrderResource() errors: {} constructor: -> if $injector.has('standingOrder') - angular.extend(@standingOrder, $injector.get('standingOrder')) - - buildItem: (item) -> - return false unless item.variant_id > 0 - return false unless item.quantity > 0 - data = angular.extend({}, item, { shop_id: @standingOrder.shop_id, schedule_id: @standingOrder.schedule_id }) - $http.post("/admin/standing_line_items/build", data).then (response) => - @standingOrder.standing_line_items.push response.data - , (response) => - InfoDialog.open 'error', response.data.errors[0] - - removeItem: (item) -> - index = @standingOrder.standing_line_items.indexOf(item) - if item.id? - $http.delete("/admin/standing_line_items/#{item.id}").then (response) => - @standingOrder.standing_line_items.splice(index,1) - , (response) -> - InfoDialog.open 'error', response.data.errors[0] - else - @standingOrder.standing_line_items.splice(index,1) + angular.extend(@standingOrder, $injector.get('standingOrder'), instanceMethods) create: -> StatusMessage.display 'progress', 'Saving...' delete @errors[k] for k, v of @errors @standingOrder.$save().then (response) => + angular.extend(@standingOrder, instanceMethods) StatusMessage.display 'success', 'Saved' , (response) => StatusMessage.display 'failure', 'Oh no! I was unable to save your changes.' @@ -39,6 +41,7 @@ angular.module("admin.standingOrders").factory "StandingOrder", ($injector, $htt StatusMessage.display 'progress', 'Saving...' delete @errors[k] for k, v of @errors @standingOrder.$update().then (response) => + angular.extend(@standingOrder, instanceMethods) StatusMessage.display 'success', 'Saved' , (response) => StatusMessage.display 'failure', 'Oh no! I was unable to save your changes.'