mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
Merge pull request #6821 from cillian/admin-product-sorting-bug
Include sort direction parameter during bulk product update to prevent JS error causing 'Saving' text to hang
This commit is contained in:
@@ -21,6 +21,7 @@ angular.module("ofn.admin").controller "AdminProductEditCtrl", ($scope, $timeout
|
||||
sorting: ""
|
||||
}
|
||||
|
||||
$scope.sorting = "name asc"
|
||||
$scope.producers = producers
|
||||
$scope.taxons = Taxons.all
|
||||
$scope.tax_categories = tax_categories
|
||||
@@ -48,7 +49,7 @@ angular.module("ofn.admin").controller "AdminProductEditCtrl", ($scope, $timeout
|
||||
'q[name_cont]': $scope.q.query,
|
||||
'q[supplier_id_eq]': $scope.q.producerFilter,
|
||||
'q[primary_taxon_id_eq]': $scope.q.categoryFilter,
|
||||
'q[s]': $scope.q.sorting,
|
||||
'q[s]': $scope.sorting,
|
||||
import_date: $scope.q.importDateFilter,
|
||||
page: $scope.page,
|
||||
per_page: $scope.per_page
|
||||
@@ -104,7 +105,7 @@ angular.module("ofn.admin").controller "AdminProductEditCtrl", ($scope, $timeout
|
||||
$scope.$watch 'sortOptions', (sort) ->
|
||||
return unless sort && sort.predicate != ""
|
||||
|
||||
$scope.q.sorting = sort.getSortingExpr()
|
||||
$scope.sorting = sort.getSortingExpr(defaultDirection: "asc")
|
||||
$scope.fetchProducts()
|
||||
, true
|
||||
|
||||
@@ -216,6 +217,7 @@ angular.module("ofn.admin").controller "AdminProductEditCtrl", ($scope, $timeout
|
||||
'q[name_cont]': $scope.q.query
|
||||
'q[supplier_id_eq]': $scope.q.producerFilter
|
||||
'q[primary_taxon_id_eq]': $scope.q.categoryFilter
|
||||
'q[s]': $scope.sorting
|
||||
import_date: $scope.q.importDateFilter
|
||||
page: $scope.page
|
||||
per_page: $scope.per_page
|
||||
|
||||
@@ -3,9 +3,11 @@ angular.module("admin.indexUtils").factory 'SortOptions', ->
|
||||
predicate: ""
|
||||
reverse: true
|
||||
|
||||
getSortingExpr: () ->
|
||||
sortingExpr = this.predicate + ' desc' if this.reverse
|
||||
sortingExpr = this.predicate + ' asc' if !this.reverse
|
||||
getSortingExpr: (options) ->
|
||||
defaultDirection = if (options && options.defaultDirection) then options.defaultDirection else "desc"
|
||||
reverseDirection = if defaultDirection == "desc" then "asc" else "desc"
|
||||
sortingExpr = this.predicate + ' ' + defaultDirection if this.reverse
|
||||
sortingExpr = this.predicate + ' ' + reverseDirection if !this.reverse
|
||||
sortingExpr
|
||||
|
||||
toggle: (predicate) ->
|
||||
|
||||
@@ -368,7 +368,7 @@ describe "AdminProductEditCtrl", ->
|
||||
$scope.sortOptions.toggle('name')
|
||||
$scope.$apply()
|
||||
|
||||
expect($scope.q.sorting).toEqual 'name asc'
|
||||
expect($scope.sorting).toEqual 'name desc'
|
||||
expect($scope.fetchProducts).toHaveBeenCalled()
|
||||
|
||||
describe "updating the product on hand count", ->
|
||||
|
||||
@@ -42,3 +42,19 @@ describe "SortOptions service", ->
|
||||
SortOptions.toggle("column.b")
|
||||
expect(SortOptions.predicate).toEqual "column.b"
|
||||
expect(SortOptions.reverse).toBe false
|
||||
|
||||
describe "getting the sorting expression", ->
|
||||
describe "when not specifying the default sort direction", ->
|
||||
it "sets the direction to 'asc' after the first toggle because the default direction is 'desc'", ->
|
||||
SortOptions.toggle("column.a")
|
||||
expect(SortOptions.getSortingExpr()).toEqual "column.a asc"
|
||||
|
||||
describe "when specifying the default sorting direction as 'desc'", ->
|
||||
it "sets the direction to 'asc' after the first toggle", ->
|
||||
SortOptions.toggle("column.a")
|
||||
expect(SortOptions.getSortingExpr(defaultDirection: "desc")).toEqual "column.a asc"
|
||||
|
||||
describe "when specifying the default sorting direction as 'asc'", ->
|
||||
it "sets the direction to 'desc' after the first toggle", ->
|
||||
SortOptions.toggle("column.a")
|
||||
expect(SortOptions.getSortingExpr(defaultDirection: "asc")).toEqual "column.a desc"
|
||||
|
||||
Reference in New Issue
Block a user