diff --git a/app/assets/javascripts/admin/orders/controllers/bulk_invoice_controller.js.coffee b/app/assets/javascripts/admin/orders/controllers/bulk_invoice_controller.js.coffee new file mode 100644 index 0000000000..177045f1d2 --- /dev/null +++ b/app/assets/javascripts/admin/orders/controllers/bulk_invoice_controller.js.coffee @@ -0,0 +1,30 @@ +angular.module("admin.orders").controller "bulkInvoiceCtrl", ($scope, $http, $timeout) -> + $scope.createBulkInvoice = -> + $scope.invoice_id = null + $scope.poll = 1 + $scope.loading = true + $scope.message = null + $scope.error = null + + $http.post('/admin/orders/invoices', {order_ids: $scope.selected_orders}).success (data) -> + $scope.invoice_id = data + $scope.pollBulkInvoice() + + $scope.pollBulkInvoice = -> + $timeout($scope.nextPoll, 5000) + + $scope.nextPoll = -> + $http.get('/admin/orders/invoices/'+$scope.invoice_id+'/poll').success (data) -> + $scope.loading = false + $scope.message = t('js.admin.orders.index.bulk_invoice_created') + + .error (data) -> + $scope.poll++ + + if $scope.poll > 10 + $scope.loading = false + $scope.error = t('js.admin.orders.index.bulk_invoice_failed') + return + + $scope.pollBulkInvoice() + diff --git a/app/assets/javascripts/admin/orders/controllers/orders_controller.js.coffee b/app/assets/javascripts/admin/orders/controllers/orders_controller.js.coffee index a391950a7b..7adbba40c3 100644 --- a/app/assets/javascripts/admin/orders/controllers/orders_controller.js.coffee +++ b/app/assets/javascripts/admin/orders/controllers/orders_controller.js.coffee @@ -1,4 +1,4 @@ -angular.module("admin.orders").controller "ordersCtrl", ($scope, RequestMonitor, Orders, SortOptions, $http, $timeout, $window, $filter) -> +angular.module("admin.orders").controller "ordersCtrl", ($scope, RequestMonitor, Orders, SortOptions, $window, $filter) -> $scope.RequestMonitor = RequestMonitor $scope.pagination = Orders.pagination $scope.orders = Orders.all @@ -72,33 +72,3 @@ angular.module("admin.orders").controller "ordersCtrl", ($scope, RequestMonitor, $scope.changePage = (newPage) -> $scope.page = newPage $scope.fetchResults(newPage) - - $scope.createBulkInvoice = -> - $scope.invoice_id = null - $scope.poll = 1 - $scope.loading = true - $scope.message = null - $scope.error = null - - $http.post('/admin/orders/invoices', {order_ids: $scope.selected_orders}).success (data) -> - $scope.invoice_id = data - $scope.pollBulkInvoice() - - $scope.pollBulkInvoice = -> - $timeout($scope.nextPoll, 5000) - - $scope.nextPoll = -> - $http.get('/admin/orders/invoices/'+$scope.invoice_id+'/poll').success (data) -> - $scope.loading = false - $scope.message = t('js.admin.orders.index.bulk_invoice_created') - - .error (data) -> - $scope.poll++ - - if $scope.poll > 10 - $scope.loading = false - $scope.error = t('js.admin.orders.index.bulk_invoice_failed') - return - - $scope.pollBulkInvoice() - diff --git a/app/views/spree/admin/orders/index.html.haml b/app/views/spree/admin/orders/index.html.haml index d09afe342a..5d98bc4a22 100644 --- a/app/views/spree/admin/orders/index.html.haml +++ b/app/views/spree/admin/orders/index.html.haml @@ -19,7 +19,7 @@ .row.index-controls{'ng-show' => '!RequestMonitor.loading && orders.length > 0'} = render partial: 'per_page_controls' - %button.invoices-modal{'ng-click' => 'createBulkInvoice()', 'ng-disabled' => 'selected_orders.length == 0'} + %button.invoices-modal{'ng-controller' => 'bulkInvoiceCtrl', 'ng-click' => 'createBulkInvoice()', 'ng-disabled' => 'selected_orders.length == 0'} = t('.print_invoices') %table#listing_orders.index.responsive{width: "100%", 'ng-init' => 'initialise()', 'ng-show' => "!RequestMonitor.loading && orders.length > 0" }