From 883cd81058d718936aae10bc36594c589914fec2 Mon Sep 17 00:00:00 2001 From: luisramos0 Date: Mon, 11 Nov 2019 13:28:13 +0000 Subject: [PATCH] Load enterprise supplied products when the exchange products panel is opened for the first time --- .../directives/panel_ctrl.js.coffee | 2 +- ...order_cycle_exchanges_controller.js.coffee | 23 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/admin/index_utils/directives/panel_ctrl.js.coffee b/app/assets/javascripts/admin/index_utils/directives/panel_ctrl.js.coffee index 4259ce63e2..d2e541992c 100644 --- a/app/assets/javascripts/admin/index_utils/directives/panel_ctrl.js.coffee +++ b/app/assets/javascripts/admin/index_utils/directives/panel_ctrl.js.coffee @@ -13,7 +13,7 @@ angular.module("admin.indexUtils").directive "panelCtrl", (Panels) -> this.registerSelectionListener = (callback) -> $scope.$on "selection:changed", (event, selection) -> - callback(selection) + callback(selection, $element) this diff --git a/app/assets/javascripts/admin/order_cycles/controllers/order_cycle_exchanges_controller.js.coffee b/app/assets/javascripts/admin/order_cycles/controllers/order_cycle_exchanges_controller.js.coffee index 82aea0a434..6a1646b3d2 100644 --- a/app/assets/javascripts/admin/order_cycles/controllers/order_cycle_exchanges_controller.js.coffee +++ b/app/assets/javascripts/admin/order_cycles/controllers/order_cycle_exchanges_controller.js.coffee @@ -44,3 +44,26 @@ angular.module('admin.orderCycles') $scope.removeDistributionOfVariant = (variant_id) -> OrderCycle.removeDistributionOfVariant(variant_id) + + # Load exchange data + initPanel = (scope) -> + # TEMP Insert some dummy data into enterprise.supplied_products so that the UI keeps on working + scope.enterprises[scope.exchange.enterprise_id].supplied_products = [{id: 2, name: "asdasd" + scope.exchange.id }] + + # Register listener to capture first toggle open of the products panel + exchangeProdutsInitialized = [] + registerToggleListener = -> + panelRows = angular.element(".panel-row") + if panelRows.length == 0 + $timeout(registerToggleListener, 500) + return + + for panelRow in panelRows + panelCtrl = angular.element(panelRow).controller('panelCtrl') + panelCtrl.registerSelectionListener (selection, $element) -> + scope = $element.scope() + return if exchangeProdutsInitialized[scope.exchange.id] + initPanel(scope) + exchangeProdutsInitialized[scope.exchange.id] = true + + $timeout(registerToggleListener, 500)