Inject taxons into BPE

This commit is contained in:
Rob H
2014-08-01 16:19:20 +10:00
parent aaddccfae4
commit 2f5b5e7ee5
11 changed files with 44 additions and 33 deletions

View File

@@ -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'

View File

@@ -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()

View File

@@ -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

View File

@@ -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)