mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-03-12 03:50:22 +00:00
Inject taxons into BPE
This commit is contained in:
@@ -1,12 +1,10 @@
|
||||
angular.module("ofn.admin").controller "AdminProductEditCtrl", [
|
||||
"$scope", "$timeout", "$http", "dataFetcher", "DirtyProducts", "VariantUnitManager", "producers",
|
||||
($scope, $timeout, $http, dataFetcher, DirtyProducts, VariantUnitManager, producers) ->
|
||||
"$scope", "$timeout", "$http", "dataFetcher", "DirtyProducts", "VariantUnitManager", "producers", "taxons",
|
||||
($scope, $timeout, $http, dataFetcher, DirtyProducts, VariantUnitManager, producers, Taxons) ->
|
||||
$scope.updateStatusMessage =
|
||||
text: ""
|
||||
style: {}
|
||||
|
||||
$scope.producers = producers
|
||||
|
||||
$scope.columns =
|
||||
producer: {name: "Producer", visible: true}
|
||||
name: {name: "Name", visible: true}
|
||||
@@ -31,6 +29,9 @@ angular.module("ofn.admin").controller "AdminProductEditCtrl", [
|
||||
$scope.optionTabs =
|
||||
filters: { title: "Filter Products", visible: false }
|
||||
|
||||
|
||||
$scope.producers = producers
|
||||
$scope.taxons = Taxons.taxons
|
||||
$scope.products = []
|
||||
$scope.filteredProducts = []
|
||||
$scope.currentFilters = []
|
||||
@@ -87,13 +88,11 @@ angular.module("ofn.admin").controller "AdminProductEditCtrl", [
|
||||
|
||||
|
||||
$scope.matchProducer = (product) ->
|
||||
for i of $scope.producers
|
||||
producer = $scope.producers[i]
|
||||
for producer in $scope.producers
|
||||
if angular.equals(producer.id, product.producer)
|
||||
product.producer = producer
|
||||
break
|
||||
|
||||
|
||||
$scope.loadVariantUnit = (product) ->
|
||||
product.variant_unit_with_scale =
|
||||
if product.variant_unit && product.variant_unit_scale && product.variant_unit != 'items'
|
||||
|
||||
@@ -7,15 +7,13 @@ angular.module("ofn.admin").directive "ofnTaxonAutocomplete", (Taxons) ->
|
||||
placeholder: Spree.translations.taxon_placeholder
|
||||
multiple: true
|
||||
initSelection: (element, callback) ->
|
||||
Taxons.findByIDs(element.val()).$promise.then (result) ->
|
||||
callback Taxons.cleanTaxons(result)
|
||||
callback Taxons.findByIDs(element.val())
|
||||
query: (query) ->
|
||||
Taxons.findByTerm(query.term).$promise.then (result) ->
|
||||
query.callback { results: Taxons.cleanTaxons(result) }
|
||||
query.callback { results: Taxons.findByTerm(query.term) }
|
||||
formatResult: (taxon) ->
|
||||
taxon.pretty_name
|
||||
taxon.name
|
||||
formatSelection: (taxon) ->
|
||||
taxon.pretty_name
|
||||
taxon.name
|
||||
element.on "change", ->
|
||||
scope.$apply ->
|
||||
ngModel.$setViewValue element.val()
|
||||
@@ -0,0 +1,7 @@
|
||||
angular.module("ofn.admin").filter "taxonsTermFilter", ->
|
||||
return (lineItems,selectedSupplier,selectedDistributor,selectedOrderCycle) ->
|
||||
filtered = []
|
||||
filtered.push lineItem for lineItem in lineItems when (angular.equals(selectedSupplier,"0") || lineItem.supplier.id == selectedSupplier) &&
|
||||
(angular.equals(selectedDistributor,"0") || lineItem.order.distributor.id == selectedDistributor) &&
|
||||
(angular.equals(selectedOrderCycle,"0") || lineItem.order.order_cycle.id == selectedOrderCycle)
|
||||
filtered
|
||||
@@ -1,13 +1,12 @@
|
||||
angular.module("ofn.admin").factory "Taxons", ($resource) ->
|
||||
resource = $resource "/admin/taxons/search"
|
||||
angular.module("ofn.admin").factory "Taxons", (taxons, $filter) ->
|
||||
new class Taxons
|
||||
constructor: ->
|
||||
@taxons = taxons
|
||||
|
||||
return {
|
||||
findByIDs: (ids) ->
|
||||
resource.get { ids: ids }
|
||||
taxons = []
|
||||
taxons.push taxon for taxon in @taxons when taxon.id.toString() in ids.split(",")
|
||||
taxons
|
||||
|
||||
findByTerm: (term) ->
|
||||
resource.get { q: term }
|
||||
|
||||
cleanTaxons: (data) ->
|
||||
data['taxons'].map (result) -> result
|
||||
}
|
||||
$filter('filter')(@taxons, term)
|
||||
Reference in New Issue
Block a user