mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
- new controller serving tags for an enterprise as JSON - customers page suggesting these tags - emphasising tags that have rules
44 lines
1.4 KiB
CoffeeScript
44 lines
1.4 KiB
CoffeeScript
angular.module("admin.customers").controller "customersCtrl", ($scope, CustomerResource, TagsResource, $q, Columns, pendingChanges, shops) ->
|
|
$scope.shop = {}
|
|
$scope.shops = shops
|
|
$scope.submitAll = pendingChanges.submitAll
|
|
|
|
$scope.columns = Columns.setColumns
|
|
email: { name: "Email", visible: true }
|
|
code: { name: "Code", visible: true }
|
|
tags: { name: "Tags", visible: true }
|
|
|
|
$scope.$watch "shop.id", ->
|
|
if $scope.shop.id?
|
|
$scope.customers = index {enterprise_id: $scope.shop.id}
|
|
|
|
$scope.findTags = (query) ->
|
|
defer = $q.defer()
|
|
params =
|
|
enterprise_id: $scope.shop.id
|
|
TagsResource.index params, (data) =>
|
|
filtered = data.filter (tag) ->
|
|
tag.text.toLowerCase().indexOf(query.toLowerCase()) != -1
|
|
defer.resolve filtered
|
|
defer.promise
|
|
|
|
$scope.add = (email) ->
|
|
params =
|
|
enterprise_id: $scope.shop.id
|
|
email: email
|
|
CustomerResource.create params, (customer) =>
|
|
if customer.id
|
|
$scope.customers.push customer
|
|
$scope.quickSearch = customer.email
|
|
|
|
$scope.deleteCustomer = (customer) ->
|
|
params = id: customer.id
|
|
CustomerResource.destroy params, ->
|
|
i = $scope.customers.indexOf customer
|
|
$scope.customers.splice i, 1 unless i < 0
|
|
|
|
index = (params) ->
|
|
$scope.loaded = false
|
|
CustomerResource.index params, =>
|
|
$scope.loaded = true
|