diff --git a/app/assets/javascripts/admin/bulk_order_management.js.coffee b/app/assets/javascripts/admin/bulk_order_management.js.coffee index d545245eeb..4c1a319c1a 100644 --- a/app/assets/javascripts/admin/bulk_order_management.js.coffee +++ b/app/assets/javascripts/admin/bulk_order_management.js.coffee @@ -1,6 +1,7 @@ angular.module("ofn.admin").controller "AdminOrderMgmtCtrl", [ - "$scope", "$http", "dataFetcher", "blankOption", "pendingChanges", "VariantUnitManager", "OptionValueNamer", - ($scope, $http, dataFetcher, blankOption, pendingChanges, VariantUnitManager, OptionValueNamer) -> + "$scope", "$http", "dataFetcher", "blankOption", "pendingChanges", "VariantUnitManager", "OptionValueNamer", "SpreeApiKey" + ($scope, $http, dataFetcher, blankOption, pendingChanges, VariantUnitManager, OptionValueNamer, SpreeApiKey) -> + $scope.loading = true $scope.initialiseVariables = -> start = daysFromToday -7 @@ -32,14 +33,14 @@ angular.module("ofn.admin").controller "AdminOrderMgmtCtrl", [ quantity: { name: "Quantity", visible: true } max: { name: "Max", visible: true } - $scope.initialise = (spree_api_key) -> + $scope.initialise = -> $scope.initialiseVariables() authorise_api_reponse = "" - dataFetcher("/api/users/authorise_api?token=" + spree_api_key).then (data) -> + dataFetcher("/api/users/authorise_api?token=" + SpreeApiKey).then (data) -> authorise_api_reponse = data $scope.spree_api_key_ok = data.hasOwnProperty("success") and data["success"] == "Use of API Authorised" if $scope.spree_api_key_ok - $http.defaults.headers.common["X-Spree-Token"] = spree_api_key + $http.defaults.headers.common["X-Spree-Token"] = SpreeApiKey dataFetcher("/api/enterprises/accessible?template=bulk_index&q[is_primary_producer_eq]=true").then (data) -> $scope.suppliers = data $scope.suppliers.unshift blankOption() diff --git a/app/assets/javascripts/admin/bulk_product_update.js.coffee b/app/assets/javascripts/admin/bulk_product_update.js.coffee index 35ec6e694c..b68e3340e1 100644 --- a/app/assets/javascripts/admin/bulk_product_update.js.coffee +++ b/app/assets/javascripts/admin/bulk_product_update.js.coffee @@ -1,6 +1,8 @@ angular.module("ofn.admin").controller "AdminProductEditCtrl", [ - "$scope", "$timeout", "$http", "dataFetcher", "DirtyProducts", "VariantUnitManager", "producers", "Taxons", - ($scope, $timeout, $http, dataFetcher, DirtyProducts, VariantUnitManager, producers, Taxons) -> + "$scope", "$timeout", "$http", "dataFetcher", "DirtyProducts", "VariantUnitManager", "producers", "Taxons", "SpreeApiKey", + ($scope, $timeout, $http, dataFetcher, DirtyProducts, VariantUnitManager, producers, Taxons, SpreeApiKey) -> + $scope.loading = true + $scope.updateStatusMessage = text: "" style: {} @@ -42,14 +44,13 @@ angular.module("ofn.admin").controller "AdminProductEditCtrl", [ $scope.limit = 15 $scope.productsWithUnsavedVariants = [] - - $scope.initialise = (spree_api_key) -> + $scope.initialise = -> authorise_api_reponse = "" - dataFetcher("/api/users/authorise_api?token=" + spree_api_key).then (data) -> + dataFetcher("/api/users/authorise_api?token=" + SpreeApiKey).then (data) -> authorise_api_reponse = data $scope.spree_api_key_ok = data.hasOwnProperty("success") and data["success"] == "Use of API Authorised" if $scope.spree_api_key_ok - $http.defaults.headers.common["X-Spree-Token"] = spree_api_key + $http.defaults.headers.common["X-Spree-Token"] = SpreeApiKey $scope.fetchProducts() else if authorise_api_reponse.hasOwnProperty("error") $scope.api_error_msg = authorise_api_reponse("error") diff --git a/app/controllers/spree/admin/orders_controller_decorator.rb b/app/controllers/spree/admin/orders_controller_decorator.rb index 27d9a36943..3e3c255ab3 100644 --- a/app/controllers/spree/admin/orders_controller_decorator.rb +++ b/app/controllers/spree/admin/orders_controller_decorator.rb @@ -1,4 +1,7 @@ +require 'open_food_network/spree_api_key_loader' + Spree::Admin::OrdersController.class_eval do + include OpenFoodNetwork::SpreeApiKeyLoader before_filter :load_spree_api_key, :only => :bulk_management # We need to add expections for collection actions other than :index here @@ -14,11 +17,4 @@ Spree::Admin::OrdersController.class_eval do page(params[:page]). per(params[:per_page] || Spree::Config[:orders_per_page]) } } } - - private - - def load_spree_api_key - current_user.generate_spree_api_key! unless spree_current_user.spree_api_key - @spree_api_key = spree_current_user.spree_api_key - end end diff --git a/app/controllers/spree/admin/products_controller_decorator.rb b/app/controllers/spree/admin/products_controller_decorator.rb index a5b38126e5..dfe5a3d30f 100644 --- a/app/controllers/spree/admin/products_controller_decorator.rb +++ b/app/controllers/spree/admin/products_controller_decorator.rb @@ -1,5 +1,9 @@ +require 'open_food_network/spree_api_key_loader' + Spree::Admin::ProductsController.class_eval do + include OpenFoodNetwork::SpreeApiKeyLoader before_filter :load_bpe_data, :only => :bulk_edit + before_filter :load_spree_api_key, :only => :bulk_edit alias_method :location_after_save_original, :location_after_save @@ -86,8 +90,6 @@ Spree::Admin::ProductsController.class_eval do private def load_bpe_data - current_user.generate_spree_api_key! unless spree_current_user.spree_api_key - @spree_api_key = spree_current_user.spree_api_key @producers = OpenFoodNetwork::Permissions.new(spree_current_user).managed_product_enterprises.is_primary_producer.by_name @taxons = Spree::Taxon.order(:name) end diff --git a/app/helpers/admin/injection_helper.rb b/app/helpers/admin/injection_helper.rb index 9ce62b2719..115bc8d0c5 100644 --- a/app/helpers/admin/injection_helper.rb +++ b/app/helpers/admin/injection_helper.rb @@ -37,7 +37,9 @@ module Admin admin_inject_json_ams_array "ofn.admin", "users", @users, Api::Admin::UserSerializer end - + def admin_inject_spree_api_key + render partial: "admin/json/injection_ams", locals: {ngModule: 'ofn.admin', name: 'SpreeApiKey', json: "'#{@spree_api_key}'"} + end def admin_inject_json_ams(ngModule, name, data, serializer, opts = {}) diff --git a/app/views/spree/admin/orders/bulk_management.html.haml b/app/views/spree/admin/orders/bulk_management.html.haml index 08a05595c5..f701813e9e 100644 --- a/app/views/spree/admin/orders/bulk_management.html.haml +++ b/app/views/spree/admin/orders/bulk_management.html.haml @@ -4,7 +4,9 @@ = render :partial => 'spree/admin/shared/order_sub_menu' -%div{ 'ng-app' => 'ofn.admin', 'ng-controller' => 'AdminOrderMgmtCtrl', 'ng-init' => "initialise('#{@spree_api_key}');loading=true;" } +=admin_inject_spree_api_key + +%div{ ng: { app: 'ofn.admin', controller: 'AdminOrderMgmtCtrl', init: 'initialise()' } } %div{ 'ng-show' => '!spree_api_key_ok' } {{ api_error_msg }} .filters{ :class => "sixteen columns alpha" } diff --git a/app/views/spree/admin/products/bulk_edit.html.haml b/app/views/spree/admin/products/bulk_edit.html.haml index fa322931cd..f230d1c331 100644 --- a/app/views/spree/admin/products/bulk_edit.html.haml +++ b/app/views/spree/admin/products/bulk_edit.html.haml @@ -1,7 +1,7 @@ = render 'spree/admin/products/bulk_edit/header' = render 'spree/admin/products/bulk_edit/data' -%div{ 'ng-app' => 'ofn.admin', 'ng-controller' => 'AdminProductEditCtrl', 'ng-init' => "initialise('#{@spree_api_key}');loading=true;" } +%div{ ng: { app: 'ofn.admin', controller: 'AdminProductEditCtrl', init: 'initialise()' } } = render 'spree/admin/products/bulk_edit/filters' %hr.sixteen.columns.alpha diff --git a/app/views/spree/admin/products/bulk_edit/_data.html.haml b/app/views/spree/admin/products/bulk_edit/_data.html.haml index 25d595bda1..8b727be3eb 100644 --- a/app/views/spree/admin/products/bulk_edit/_data.html.haml +++ b/app/views/spree/admin/products/bulk_edit/_data.html.haml @@ -1,2 +1,3 @@ = admin_inject_producers = admin_inject_taxons += admin_inject_spree_api_key diff --git a/lib/open_food_network/spree_api_key_loader.rb b/lib/open_food_network/spree_api_key_loader.rb new file mode 100644 index 0000000000..0612cb4f3b --- /dev/null +++ b/lib/open_food_network/spree_api_key_loader.rb @@ -0,0 +1,8 @@ +module OpenFoodNetwork + module SpreeApiKeyLoader + def load_spree_api_key + current_user.generate_spree_api_key! unless spree_current_user.spree_api_key + @spree_api_key = spree_current_user.spree_api_key + end + end +end \ No newline at end of file