basicFoodEditor.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. angular.module('basicFoodEditor', ['ngResource'])
  2. .factory('BasicFood', ['$resource', '$q', function($resource, $q) {
  3. return $resource('food/:id', {id: "@id"}, {
  4. 'get': {method: 'GET'},
  5. 'query': {
  6. url: "food/query/:query/",
  7. method: 'GET',
  8. isArray: true
  9. },
  10. 'save': {method: 'PUT'},
  11. 'update': {method: 'POST'},
  12. 'delete': {method: 'DELETE'}
  13. });
  14. }])
  15. // TODO: Only ever used with editBasicFood template. See if can auto link.
  16. .controller('BasicFoodEditorController',
  17. ['$scope', '$uibModalInstance', 'BasicFood', 'foodData',
  18. function($scope, $uibModalInstance, BasicFood, foodData) {
  19. if (foodData == null)
  20. {
  21. console.error("No food data to edit!");
  22. return;
  23. }
  24. $scope.food = new BasicFood(foodData);
  25. $scope.submit = function(food) {
  26. food.$save($scope.close, function (err) {
  27. // TODO: Proper error handling
  28. console.error(err);
  29. });
  30. };
  31. $scope.delete = function(food) {
  32. food.$delete($scope.close, function (err) {
  33. // TODO: Proper error handling
  34. console.error(err);
  35. });
  36. };
  37. var submitFnName = foodData.id == null? "$save":"$update";
  38. $scope.submit = function(food) {
  39. food[submitFnName]($scope.close, function (err) {
  40. // TODO: Proper error handling
  41. console.error(err);
  42. });
  43. };
  44. // TODO:
  45. // Will this controller ever be used non-modally?
  46. // Will it even work as a non-modal?
  47. $scope.close = $uibModalInstance != null?
  48. $uibModalInstance.close : null;
  49. $scope.dismiss = $uibModalInstance != null?
  50. $uibModalInstance.dismiss : null;
  51. }]);