diff --git a/app/assets/javascripts/admin/services/data_submitter.js.coffee b/app/assets/javascripts/admin/services/data_submitter.js.coffee index e6496a1303..a9b917aae2 100644 --- a/app/assets/javascripts/admin/services/data_submitter.js.coffee +++ b/app/assets/javascripts/admin/services/data_submitter.js.coffee @@ -1,11 +1,10 @@ -angular.module("ofn.admin").factory "dataSubmitter", ($http, $q) -> +angular.module("ofn.admin").factory "dataSubmitter", ($http, $q, resources) -> return (change) -> deferred = $q.defer() - url = "/api/orders/#{change.object.order.number}/line_items/#{change.object.id}?line_item[#{change.attr}]=#{change.value}" - $http.put(url).success((data) -> + resources.update(change).$promise.then (data) -> change.scope.success() deferred.resolve data - ).error -> + , -> change.scope.error() deferred.reject() deferred.promise diff --git a/app/assets/javascripts/admin/services/resources.js.coffee b/app/assets/javascripts/admin/services/resources.js.coffee new file mode 100644 index 0000000000..337f1c2601 --- /dev/null +++ b/app/assets/javascripts/admin/services/resources.js.coffee @@ -0,0 +1,22 @@ +angular.module("ofn.admin").factory "resources", ($resource) -> + LineItem = $resource '/api/orders/:order_number/line_items/:line_item_id.json', + { order_number: '@order_cycle_id', line_item_id: '@line_item_id'}, + 'update': { method: 'PUT' } + + return { + update: (change) -> + params = {} + data = {} + resource = null + + switch change.type + when "line_item" + resource = LineItem; + params.order_number = change.object.order.number + params.line_item_id = change.object.id + data.line_item = {} + data.line_item[change.attr] = change.value + else "" + + resource.update(params, data) + }