diff --git a/app/assets/javascripts/admin/bulk_product_update.js.coffee b/app/assets/javascripts/admin/bulk_product_update.js.coffee index be29b8d19a..e46c52b71d 100644 --- a/app/assets/javascripts/admin/bulk_product_update.js.coffee +++ b/app/assets/javascripts/admin/bulk_product_update.js.coffee @@ -1,4 +1,4 @@ -angular.module("ofn.admin").controller "AdminProductEditCtrl", ($scope, $timeout, $filter, $http, $window, $location, BulkProducts, DisplayProperties, DirtyProducts, VariantUnitManager, StatusMessage, producers, Taxons, Columns, tax_categories, RequestMonitor, SortOptions, ErrorsParser, ProductFiltersService) -> +angular.module("ofn.admin").controller "AdminProductEditCtrl", ($scope, $timeout, $filter, $http, $window, $location, BulkProducts, DisplayProperties, DirtyProducts, VariantUnitManager, StatusMessage, producers, Taxons, Columns, tax_categories, RequestMonitor, SortOptions, ErrorsParser, ProductFiltersUrl) -> $scope.StatusMessage = StatusMessage $scope.columns = Columns.columns @@ -32,7 +32,7 @@ angular.module("ofn.admin").controller "AdminProductEditCtrl", ($scope, $timeout $scope.sortOptions = SortOptions $scope.initialise = -> - $scope.q = ProductFiltersService.loadFromUrl($location.search()) + $scope.q = ProductFiltersUrl.loadFromUrl($location.search()) $scope.fetchProducts() $scope.$watchCollection '[q.query, q.producerFilter, q.categoryFilter, q.importDateFilter, per_page]', -> @@ -55,7 +55,7 @@ angular.module("ofn.admin").controller "AdminProductEditCtrl", ($scope, $timeout } RequestMonitor.load(BulkProducts.fetch(params).$promise).then -> # update url with the filters used - $location.search(ProductFiltersService.generate($scope.q)) + $location.search(ProductFiltersUrl.generate($scope.q)) $scope.resetProducts() removeClearedValues = -> @@ -116,7 +116,7 @@ angular.module("ofn.admin").controller "AdminProductEditCtrl", ($scope, $timeout $scope.editWarn = (product, variant) -> if confirm_unsaved_changes() - $window.location.href = ProductFiltersService.buildUrl(editProductUrl(product, variant), $scope.q) + $window.location.href = ProductFiltersUrl.buildUrl(editProductUrl(product, variant), $scope.q) $scope.toggleShowAllVariants = -> showVariants = !DisplayProperties.showVariants 0 diff --git a/app/assets/javascripts/admin/services/product_filters.js.coffee b/app/assets/javascripts/admin/services/product_filters.js.coffee index c6d3574df0..069a077c0f 100644 --- a/app/assets/javascripts/admin/services/product_filters.js.coffee +++ b/app/assets/javascripts/admin/services/product_filters.js.coffee @@ -1,5 +1,5 @@ -angular.module("ofn.admin").factory "ProductFiltersService", ($httpParamSerializer) -> - new class ProductFiltersService +angular.module("ofn.admin").factory "ProductFiltersUrl", ($httpParamSerializer) -> + new class ProductFiltersUrl productFilters: ['producerFilter', 'categoryFilter', 'query', 'sorting', 'importDateFilter'] loadFromUrl: (filters) -> diff --git a/spec/javascripts/unit/admin/bulk_product_update_spec.js.coffee b/spec/javascripts/unit/admin/bulk_product_update_spec.js.coffee index b6dc92e051..f7e7fd45b4 100644 --- a/spec/javascripts/unit/admin/bulk_product_update_spec.js.coffee +++ b/spec/javascripts/unit/admin/bulk_product_update_spec.js.coffee @@ -246,7 +246,7 @@ describe "filtering products for submission to database", -> ] describe "AdminProductEditCtrl", -> - $ctrl = $scope = $timeout = $httpBackend = BulkProducts = DirtyProducts = DisplayProperties = ProductFiltersService = windowStub = null + $ctrl = $scope = $timeout = $httpBackend = BulkProducts = DirtyProducts = DisplayProperties = ProductFiltersUrl = windowStub = null beforeEach -> module "ofn.admin" @@ -258,7 +258,7 @@ describe "AdminProductEditCtrl", -> $provide.value 'columns', [] null - beforeEach inject((_$controller_, _$timeout_, $rootScope, _$httpBackend_, _BulkProducts_, _DirtyProducts_, _DisplayProperties_, _ProductFiltersService_) -> + beforeEach inject((_$controller_, _$timeout_, $rootScope, _$httpBackend_, _BulkProducts_, _DirtyProducts_, _DisplayProperties_, _ProductFiltersUrl_) -> $scope = $rootScope.$new() $ctrl = _$controller_ $timeout = _$timeout_ @@ -266,7 +266,7 @@ describe "AdminProductEditCtrl", -> BulkProducts = _BulkProducts_ DirtyProducts = _DirtyProducts_ DisplayProperties = _DisplayProperties_ - ProductFiltersService = _ProductFiltersService_ + ProductFiltersUrl = _ProductFiltersUrl_ # Stub the window object so we don't get redirected when href is updated windowStub = {navigator: {userAgent: 'foo'}, location: {href: ''}} diff --git a/spec/javascripts/unit/admin/services/product_filters_spec.js.coffee b/spec/javascripts/unit/admin/services/product_filters_spec.js.coffee index 3ffd895f45..e40b76e496 100644 --- a/spec/javascripts/unit/admin/services/product_filters_spec.js.coffee +++ b/spec/javascripts/unit/admin/services/product_filters_spec.js.coffee @@ -1,24 +1,24 @@ -describe "ProductFiltersService service", -> - ProductFiltersService = null +describe "ProductFiltersUrl service", -> + ProductFiltersUrl = null beforeEach -> module "ofn.admin" - beforeEach inject (_ProductFiltersService_) -> - ProductFiltersService = _ProductFiltersService_ + beforeEach inject (_ProductFiltersUrl_) -> + ProductFiltersUrl = _ProductFiltersUrl_ describe "loadFromUrl", -> it "should return a hash with value populated for filters existing in parameter", -> producerFilter = 2 query = 'fruit' - filters = ProductFiltersService.loadFromUrl(producerFilter: producerFilter, query: query) + filters = ProductFiltersUrl.loadFromUrl(producerFilter: producerFilter, query: query) expect(filters.producerFilter).toBe producerFilter expect(filters.query).toBe query it "should return a hash with empty value for filters missing from parameter", -> - filters = ProductFiltersService.loadFromUrl({}) + filters = ProductFiltersUrl.loadFromUrl({}) expect(filters.producerFilter).toBe "" expect(filters.query).toBe "" @@ -31,7 +31,7 @@ describe "ProductFiltersService service", -> producerFilter = 2 query = 'fruit' - filters = ProductFiltersService.generate( + filters = ProductFiltersUrl.generate( producerFilter: producerFilter, query: query, otherParam: 'otherParam' ) @@ -55,7 +55,7 @@ describe "ProductFiltersService service", -> } baseUrl = "openfoodnetwork.org.au" - url = ProductFiltersService.buildUrl(baseUrl, filters) + url = ProductFiltersUrl.buildUrl(baseUrl, filters) expectedFilters = $httpParamSerializer(filters) expect(url).toBe("#{baseUrl}?#{expectedFilters}") @@ -63,6 +63,6 @@ describe "ProductFiltersService service", -> it 'should return baseUrl if filters are empty', -> baseUrl = "openfoodnetwork.org.au" - url = ProductFiltersService.buildUrl(baseUrl, {}) + url = ProductFiltersUrl.buildUrl(baseUrl, {}) expect(url).toBe baseUrl