mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-28 21:07:16 +00:00
WIP: BOM Refactor, adding for_line_items action to enterprises controller
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
angular.module("admin.enterprises").controller 'enterprisesCtrl', ($scope, Enterprises, Columns) ->
|
||||
Enterprises.loaded = false
|
||||
$scope.allEnterprises = Enterprises.index()
|
||||
angular.module("admin.enterprises").controller 'enterprisesCtrl', ($scope, $q, Enterprises, Columns) ->
|
||||
requests = []
|
||||
requests.push ($scope.allEnterprises = Enterprises.index(ams_suffix: "index")).$promise
|
||||
|
||||
$scope.loaded = ->
|
||||
Enterprises.loaded
|
||||
$q.all(requests).then ->
|
||||
$scope.loaded = true
|
||||
|
||||
$scope.columns = Columns.setColumns
|
||||
name: { name: "Name", visible: true }
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
angular.module("admin.enterprises").factory 'EnterpriseResource', ($resource) ->
|
||||
$resource('/admin/enterprises/:id.json', {}, {
|
||||
$resource('/admin/enterprises/:id/:action.json', {}, {
|
||||
'index':
|
||||
method: 'GET'
|
||||
isArray: true
|
||||
|
||||
@@ -1,26 +1,21 @@
|
||||
angular.module("admin.enterprises").factory 'Enterprises', ($q, EnterpriseResource) ->
|
||||
new class Enterprises
|
||||
enterprises: []
|
||||
enterprises_by_id: {}
|
||||
pristine_by_id: {}
|
||||
loaded: false
|
||||
enterprisesByID: {}
|
||||
pristineByID: {}
|
||||
|
||||
index: (params={}, callback=null) ->
|
||||
EnterpriseResource.index params, (data) =>
|
||||
for enterprise in data
|
||||
@enterprises.push enterprise
|
||||
@pristine_by_id[enterprise.id] = angular.copy(enterprise)
|
||||
@enterprisesByID[enterprise.id] = enterprise
|
||||
@pristineByID[enterprise.id] = angular.copy(enterprise)
|
||||
|
||||
@loaded = true
|
||||
(callback || angular.noop)(@enterprises)
|
||||
|
||||
@enterprises
|
||||
(callback || angular.noop)(data)
|
||||
|
||||
save: (enterprise) ->
|
||||
deferred = $q.defer()
|
||||
enterprise.$update({id: enterprise.permalink})
|
||||
.then( (data) =>
|
||||
@pristine_by_id[enterprise.id] = angular.copy(enterprise)
|
||||
@pristineByID[enterprise.id] = angular.copy(enterprise)
|
||||
deferred.resolve(data)
|
||||
).catch (response) ->
|
||||
deferred.reject(response)
|
||||
@@ -31,9 +26,9 @@ angular.module("admin.enterprises").factory 'Enterprises', ($q, EnterpriseResour
|
||||
|
||||
diff: (enterprise) ->
|
||||
changed = []
|
||||
for attr, value of enterprise when not angular.equals(value, @pristine_by_id[enterprise.id][attr])
|
||||
for attr, value of enterprise when not angular.equals(value, @pristineByID[enterprise.id][attr])
|
||||
changed.push attr unless attr is "$$hashKey"
|
||||
changed
|
||||
|
||||
resetAttribute: (enterprise, attribute) ->
|
||||
enterprise[attribute] = @pristine_by_id[enterprise.id][attribute]
|
||||
enterprise[attribute] = @pristineByID[enterprise.id][attribute]
|
||||
|
||||
Reference in New Issue
Block a user