Adding #load function to services for resources, for generic loading of data into byID and pristineByID

This commit is contained in:
Rob Harrington
2016-09-18 13:42:52 +10:00
parent 3678d4d018
commit 1770a67cd9
4 changed files with 29 additions and 26 deletions

View File

@@ -4,13 +4,15 @@ angular.module("admin.resources").factory 'Enterprises', ($q, EnterpriseResource
pristineByID: {}
index: (params={}, callback=null) ->
EnterpriseResource.index(params, (data) =>
for enterprise in data
@byID[enterprise.id] = enterprise
@pristineByID[enterprise.id] = angular.copy(enterprise)
EnterpriseResource.index params, (data) =>
@load(data)
(callback || angular.noop)(data)
data
)
load: (enterprises) ->
for enterprise in enterprises
@byID[enterprise.id] = enterprise
@pristineByID[enterprise.id] = angular.copy(enterprise)
save: (enterprise) ->
deferred = $q.defer()

View File

@@ -5,17 +5,19 @@ angular.module("admin.resources").factory 'LineItems', ($q, LineItemResource) ->
index: (params={}, callback=null) ->
LineItemResource.index params, (data) =>
@resetData()
for lineItem in data
@byID[lineItem.id] = lineItem
@pristineByID[lineItem.id] = angular.copy(lineItem)
@load(data)
(callback || angular.noop)(data)
resetData: ->
@byID = {}
@pristineByID = {}
load: (lineItems) ->
@resetData()
for lineItem in lineItems
@byID[lineItem.id] = lineItem
@pristineByID[lineItem.id] = angular.copy(lineItem)
saveAll: ->
for id, lineItem of @byID
lineItem.errors = {} # removes errors when line_item has been returned to original state

View File

@@ -6,22 +6,19 @@ angular.module("admin.resources").factory 'OrderCycles', ($q, $injector, OrderCy
constructor: ->
if $injector.has('orderCycles')
for orderCycle in $injector.get('orderCycles')
@all.push orderCycle
@byID[orderCycle.id] = orderCycle
@pristineByID[orderCycle.id] = angular.copy(orderCycle)
@load($injector.get('orderCycles'))
index: (params={}, callback=null) ->
OrderCycleResource.index(params, (data) =>
for orderCycle in data
@byID[orderCycle.id] = orderCycle
@pristineByID[orderCycle.id] = angular.copy(orderCycle)
OrderCycleResource.index params, (data) =>
@load(data)
(callback || angular.noop)(data)
data
)
load: (orderCycles) ->
for orderCycle in orderCycles
@all.push orderCycle
@byID[orderCycle.id] = orderCycle
@pristineByID[orderCycle.id] = angular.copy(orderCycle)
save: (order_cycle) ->
deferred = $q.defer()

View File

@@ -5,12 +5,14 @@ angular.module("admin.resources").factory 'Orders', ($q, OrderResource) ->
index: (params={}, callback=null) ->
OrderResource.index params, (data) =>
for order in data
@byID[order.id] = order
@pristineByID[order.id] = angular.copy(order)
@load(data)
(callback || angular.noop)(data)
load: (orders) ->
for order in orders
@byID[order.id] = order
@pristineByID[order.id] = angular.copy(order)
save: (order) ->
deferred = $q.defer()
order.$update({id: order.number})