New pattern: blank Options for index drop down filters are added within service

Rather than in the controller after data is loaded
This commit is contained in:
Rob Harrington
2015-11-16 10:30:44 +11:00
parent 76414dedff
commit 767671c3b4
6 changed files with 88 additions and 31 deletions

View File

@@ -1,16 +1,22 @@
angular.module("admin.enterprises").factory 'Enterprises', ($q, EnterpriseResource) ->
angular.module("admin.enterprises").factory 'Enterprises', ($q, EnterpriseResource, blankOption) ->
new class Enterprises
enterprisesByID: {}
pristineByID: {}
index: (params={}, callback=null) ->
EnterpriseResource.index params, (data) =>
includeBlank = !!params['includeBlank']
delete params['includeBlank']
EnterpriseResource.index(params, (data) =>
for enterprise in data
@enterprisesByID[enterprise.id] = enterprise
@pristineByID[enterprise.id] = angular.copy(enterprise)
(callback || angular.noop)(data)
data.unshift(blankOption()) if includeBlank
data
)
save: (enterprise) ->
deferred = $q.defer()
enterprise.$update({id: enterprise.permalink})