basicFoodEditor.js 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. angular.module('basicFoodEditor', ['ndbDatabase', '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', 'NDBList', 'BasicFood', 'foodData',
  18. function($scope, $uibModalInstance, NDBList, BasicFood, foodData) {
  19. if (foodData == null)
  20. {
  21. console.error("No food data to edit!");
  22. return;
  23. }
  24. // TODO: Replace with properties file key.
  25. $scope.catagories = NDBList.get({
  26. key: "CfiHcUnSf0RX0jBuqiWjDK2d2ziOmoZG15CTdhQn",
  27. type: "g"
  28. });
  29. $scope.food = new BasicFood(foodData);
  30. $scope.submit = function(food) {
  31. food.$save($scope.close, function (err) {
  32. // TODO: Proper error handling
  33. console.error(err);
  34. });
  35. };
  36. $scope.delete = function(food) {
  37. food.$delete($scope.close, function (err) {
  38. // TODO: Proper error handling
  39. console.error(err);
  40. });
  41. };
  42. var submitFnName = foodData.id == null? "$save":"$update";
  43. $scope.submit = function(food) {
  44. food[submitFnName]($scope.close, function (err) {
  45. // TODO: Proper error handling
  46. console.error(err);
  47. });
  48. };
  49. // TODO:
  50. // Will this controller ever be used non-modally?
  51. // Will it even work as a non-modal?
  52. $scope.close = $uibModalInstance != null?
  53. $uibModalInstance.close : null;
  54. $scope.dismiss = $uibModalInstance != null?
  55. $uibModalInstance.dismiss : null;
  56. }]);