From 79abc191ffbc569d26b0fa820e8645771bfe04bd Mon Sep 17 00:00:00 2001 From: Steve Roberts Date: Wed, 15 Jul 2020 15:51:33 +1000 Subject: [PATCH] Move location change to PageSelection controller --- .../controllers/order_cycle_controller.js.coffee | 12 +----------- .../controllers/page_selection_ctrl.js.coffee | 7 ++++++- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/app/assets/javascripts/darkswarm/controllers/order_cycle_controller.js.coffee b/app/assets/javascripts/darkswarm/controllers/order_cycle_controller.js.coffee index aa1f6457dd..49d902a7f0 100644 --- a/app/assets/javascripts/darkswarm/controllers/order_cycle_controller.js.coffee +++ b/app/assets/javascripts/darkswarm/controllers/order_cycle_controller.js.coffee @@ -2,16 +2,7 @@ Darkswarm.controller "OrderCycleCtrl", ($scope, $rootScope, $timeout, OrderCycle $scope.order_cycle = OrderCycle.order_cycle $scope.OrderCycle = OrderCycle - # Timeout forces this to be evaluated after everything is loaded - # This is a hack. We should probably write our own "popover" directive - # That takes an expression instead of a trigger, and binds to that - $timeout => - $rootScope.$broadcast 'orderCycleSelected' - if !$scope.OrderCycle.selected() - $("#order_cycle_id").trigger("openTrigger") - - -Darkswarm.controller "OrderCycleChangeCtrl", ($scope, $rootScope, $timeout, $location, OrderCycle, Products, Variants, Cart, ChangeableOrdersAlert) -> +Darkswarm.controller "OrderCycleChangeCtrl", ($scope, $rootScope, $timeout, OrderCycle, Products, Variants, Cart, ChangeableOrdersAlert) -> # Track previous order cycle id for use with revertOrderCycle() $scope.previous_order_cycle_id = OrderCycle.order_cycle.order_cycle_id $scope.$watch 'order_cycle.order_cycle_id', (newValue, oldValue)-> @@ -19,7 +10,6 @@ Darkswarm.controller "OrderCycleChangeCtrl", ($scope, $rootScope, $timeout, $loc $scope.changeOrderCycle = -> OrderCycle.push_order_cycle $scope.orderCycleChanged - $location.path("shop") $timeout -> $("#order_cycle_id").trigger("closeTrigger") diff --git a/app/assets/javascripts/darkswarm/controllers/page_selection_ctrl.js.coffee b/app/assets/javascripts/darkswarm/controllers/page_selection_ctrl.js.coffee index 9f4cbe2c1b..d05e901396 100644 --- a/app/assets/javascripts/darkswarm/controllers/page_selection_ctrl.js.coffee +++ b/app/assets/javascripts/darkswarm/controllers/page_selection_ctrl.js.coffee @@ -1,4 +1,4 @@ -Darkswarm.controller "PageSelectionCtrl", ($scope, $location) -> +Darkswarm.controller "PageSelectionCtrl", ($scope, $rootScope, $location) -> $scope.selectedPage = -> # The path looks like `/contact` for the URL `https://ofn.org/shop#/contact`. # We remove the slash at the beginning. @@ -15,3 +15,8 @@ Darkswarm.controller "PageSelectionCtrl", ($scope, $location) -> $scope.whitelistPages = (pages) -> $scope.whitelist = pages $scope.lastPage = pages[0] + + # when an order cycle is changed, ensure the shop tab is active to save a click + $rootScope.$on "orderCycleSelected", -> + if $scope.selectedPage() != "shop" + $location.path("shop")