From 6768055b4ddadff70f63f0c67ca4b010c61360f1 Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Tue, 18 Sep 2018 01:09:31 +0100 Subject: [PATCH] Split orders into 2 angular controllers --- .../controllers/order_controller.js.coffee | 26 +++++++++++++++++ .../controllers/orders_controller.js.coffee | 28 +------------------ app/views/spree/admin/orders/edit.html.haml | 2 +- app/views/spree/admin/orders/new.html.haml | 2 +- .../admin/orders/set_distribution.html.haml | 2 +- ...coffee => order_controller_spec.js.coffee} | 20 +++---------- 6 files changed, 34 insertions(+), 46 deletions(-) create mode 100644 app/assets/javascripts/admin/orders/controllers/order_controller.js.coffee rename spec/javascripts/unit/admin/orders/controllers/{orders_controller_spec.js.coffee => order_controller_spec.js.coffee} (66%) diff --git a/app/assets/javascripts/admin/orders/controllers/order_controller.js.coffee b/app/assets/javascripts/admin/orders/controllers/order_controller.js.coffee new file mode 100644 index 0000000000..822e81eb49 --- /dev/null +++ b/app/assets/javascripts/admin/orders/controllers/order_controller.js.coffee @@ -0,0 +1,26 @@ +angular.module("admin.orders").controller "orderCtrl", ($scope, shops, orderCycles, $compile, $attrs, Orders) -> + $scope.$compile = $compile + $scope.shops = shops + $scope.orderCycles = orderCycles + + $scope.distributor_id = parseInt($attrs.ofnDistributorId) + $scope.order_cycle_id = parseInt($attrs.ofnOrderCycleId) + + $scope.validOrderCycle = (oc) -> + $scope.orderCycleHasDistributor oc, parseInt($scope.distributor_id) + + $scope.distributorHasOrderCycles = (distributor) -> + (oc for oc in $scope.orderCycles when @orderCycleHasDistributor(oc, distributor.id)).length > 0 + + $scope.orderCycleHasDistributor = (oc, distributor_id) -> + distributor_ids = (d.id for d in oc.distributors) + distributor_ids.indexOf(distributor_id) != -1 + + $scope.distributionChosen = -> + $scope.distributor_id && $scope.order_cycle_id + + for oc in $scope.orderCycles + oc.name_and_status = "#{oc.name} (#{oc.status})" + + for shop in $scope.shops + shop.disabled = !$scope.distributorHasOrderCycles(shop) 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 1ce3da7595..96bfd63ab2 100644 --- a/app/assets/javascripts/admin/orders/controllers/orders_controller.js.coffee +++ b/app/assets/javascripts/admin/orders/controllers/orders_controller.js.coffee @@ -1,11 +1,4 @@ -angular.module("admin.orders").controller "ordersCtrl", ($scope, $injector, RequestMonitor, $compile, $attrs, Orders, SortOptions) -> - $scope.$compile = $compile - $scope.shops = shops - $scope.orderCycles = orderCycles - - $scope.distributor_id = parseInt($attrs.ofnDistributorId) - $scope.order_cycle_id = parseInt($attrs.ofnOrderCycleId) - +angular.module("admin.orders").controller "ordersCtrl", ($scope, RequestMonitor, Orders, SortOptions) -> $scope.RequestMonitor = RequestMonitor $scope.pagination = Orders.pagination $scope.orders = Orders.all @@ -43,25 +36,6 @@ angular.module("admin.orders").controller "ordersCtrl", ($scope, $injector, Requ $scope.fetchResults() , true - $scope.validOrderCycle = (oc) -> - $scope.orderCycleHasDistributor oc, parseInt($scope.distributor_id) - - $scope.distributorHasOrderCycles = (distributor) -> - (oc for oc in orderCycles when @orderCycleHasDistributor(oc, distributor.id)).length > 0 - - $scope.orderCycleHasDistributor = (oc, distributor_id) -> - distributor_ids = (d.id for d in oc.distributors) - distributor_ids.indexOf(distributor_id) != -1 - - $scope.distributionChosen = -> - $scope.distributor_id && $scope.order_cycle_id - $scope.changePage = (newPage) -> $scope.page = newPage $scope.fetchResults(newPage) - - for oc in $scope.orderCycles - oc.name_and_status = "#{oc.name} (#{oc.status})" - - for shop in $scope.shops - shop.disabled = !$scope.distributorHasOrderCycles(shop) diff --git a/app/views/spree/admin/orders/edit.html.haml b/app/views/spree/admin/orders/edit.html.haml index f53cca42ef..f897065224 100644 --- a/app/views/spree/admin/orders/edit.html.haml +++ b/app/views/spree/admin/orders/edit.html.haml @@ -13,7 +13,7 @@ %div{"data-hook" => "admin_order_edit_header"} = render 'spree/shared/error_messages', target: @order -%div{"ng-app" => "admin.orders", "ng-controller" => "ordersCtrl", "ofn-distributor-id" => @order.distributor_id, "ofn-order-cycle-id" => @order.order_cycle_id} +%div{"ng-app" => "admin.orders", "ng-controller" => "orderCtrl", "ofn-distributor-id" => @order.distributor_id, "ofn-order-cycle-id" => @order.order_cycle_id} = render 'add_product' %div{"data-hook" => "admin_order_edit_form"} diff --git a/app/views/spree/admin/orders/new.html.haml b/app/views/spree/admin/orders/new.html.haml index 24190f3190..b653439230 100644 --- a/app/views/spree/admin/orders/new.html.haml +++ b/app/views/spree/admin/orders/new.html.haml @@ -14,7 +14,7 @@ %div{"data-hook" => "admin_order_new_header"} = render 'spree/shared/error_messages', :target => @order -%div{"ng-app" => "admin.orders", "ng-controller" => "ordersCtrl"} +%div{"ng-app" => "admin.orders", "ng-controller" => "orderCtrl"} %div{"ng-show" => "distributionChosen()"} = render 'add_product' diff --git a/app/views/spree/admin/orders/set_distribution.html.haml b/app/views/spree/admin/orders/set_distribution.html.haml index 51c7b97e8d..89d036b93a 100644 --- a/app/views/spree/admin/orders/set_distribution.html.haml +++ b/app/views/spree/admin/orders/set_distribution.html.haml @@ -14,7 +14,7 @@ %div{"data-hook" => "admin_order_new_header"} = render 'spree/shared/error_messages', :target => @order -%div{"ng-app" => "admin.orders", "ng-controller" => "ordersCtrl"} +%div{"ng-app" => "admin.orders", "ng-controller" => "orderCtrl"} = form_for @order, url: admin_order_url(@order), method: :put do |f| = render 'spree/admin/orders/_form/distribution_fields' -# This param passed to stop validation error in next page due to no line items in order yet: diff --git a/spec/javascripts/unit/admin/orders/controllers/orders_controller_spec.js.coffee b/spec/javascripts/unit/admin/orders/controllers/order_controller_spec.js.coffee similarity index 66% rename from spec/javascripts/unit/admin/orders/controllers/orders_controller_spec.js.coffee rename to spec/javascripts/unit/admin/orders/controllers/order_controller_spec.js.coffee index 0324d79182..297eac32f6 100644 --- a/spec/javascripts/unit/admin/orders/controllers/orders_controller_spec.js.coffee +++ b/spec/javascripts/unit/admin/orders/controllers/order_controller_spec.js.coffee @@ -1,4 +1,4 @@ -describe "ordersCtrl", -> +describe "orderCtrl", -> ctrl = null scope = {} attrs = {} @@ -7,25 +7,13 @@ describe "ordersCtrl", -> {id: 10, name: 'Ten', status: 'open', distributors: [{id: 1, name: 'One'}]} {id: 20, name: 'Twenty', status: 'closed', distributors: [{id: 2, name: 'Two', status: 'closed'}]} ] - SortOptions = { - predicate: "", - reverse: false - } beforeEach -> scope = {} - shops = [] - orderCycles = [ - {id: 10, name: 'Ten', status: 'open', distributors: [{id: 1, name: 'One'}]} - {id: 20, name: 'Twenty', status: 'closed', distributors: [{id: 2, name: 'Two', status: 'closed'}]} - ] - module 'admin.orders', ($provide)-> - $provide.provider('shops', shops) - $provide.provider('orderCycles', orderCycles) - inject (_$injector_, $controller) -> - $injector = _$injector_ - ctrl = $controller 'ordersCtrl', {$scope: scope, $attrs: attrs, $injector: $injector, SortOptions: SortOptions} + module 'admin.orders' + inject ($controller) -> + ctrl = $controller 'orderCtrl', {$scope: scope, $attrs: attrs, shops: shops, orderCycles: orderCycles} it "initialises name_and_status", -> expect(scope.orderCycles[0].name_and_status).toEqual "Ten (open)"