controllers.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. 'use strict';
  2. /* Controllers; their method are available where specified with the ng-controller
  3. * directive or for a given route (see app.js). They use some services to
  4. * connect to the backend (see services.js). */
  5. var eventManControllers = angular.module('eventManControllers', []);
  6. /* A controller that can be used to navigate. */
  7. eventManControllers.controller('NavigationCtrl', ['$location',
  8. function ($location) {
  9. this.go = function(url) {
  10. $location.url(url);
  11. };
  12. }]
  13. );
  14. /* Controller for a group of date and time pickers. */
  15. eventManControllers.controller('DatetimePickerCtrl', ['$scope',
  16. function ($scope) {
  17. $scope.open = function($event) {
  18. $event.preventDefault();
  19. $event.stopPropagation();
  20. $scope.opened = true;
  21. };
  22. }]
  23. );
  24. eventManControllers.controller('EventsListCtrl', ['$scope', 'Event',
  25. function ($scope, Event) {
  26. $scope.events = Event.all();
  27. $scope.orderProp = 'begin-datetime';
  28. $scope.remove = function(_id) {
  29. Event.remove({'id': _id}, function() {
  30. $scope.events = Event.all();
  31. });
  32. };
  33. }]
  34. );
  35. eventManControllers.controller('EventDetailsCtrl', ['$scope', 'Event', '$routeParams', '$log',
  36. function ($scope, Event, $routeParams, $log) {
  37. if ($routeParams.id) {
  38. $scope.event = Event.get($routeParams);
  39. }
  40. // store a new Event or update an existing one
  41. $scope.save = function() {
  42. var this_event = angular.copy($scope.event);
  43. if (this_event.persons) {
  44. delete this_event.persons;
  45. }
  46. if (this_event.id === undefined) {
  47. $scope.event = Event.save(this_event);
  48. } else {
  49. $scope.event = Event.update(this_event);
  50. }
  51. $scope.eventForm.$dirty = false;
  52. };
  53. $scope.updateAttendee = function(person, data) {
  54. $log.info('EventDetailsCtrl');
  55. $log.info('event_id: ' + $routeParams.id);
  56. $log.info('person_id: ' + person.person_id);
  57. $log.info('data:');
  58. $log.info(data);
  59. };
  60. }]
  61. );
  62. eventManControllers.controller('PersonsListCtrl', ['$scope', 'Person',
  63. function ($scope, Person) {
  64. $scope.persons = Person.all();
  65. $scope.orderProp = 'name';
  66. $scope.remove = function(_id) {
  67. Person.remove({'id': _id}, function() {
  68. $scope.persons = Person.all();
  69. });
  70. };
  71. }]
  72. );
  73. eventManControllers.controller('PersonDetailsCtrl', ['$scope', '$routeParams', 'Person',
  74. function ($scope, $routeParams, Person) {
  75. if ($routeParams.id) {
  76. $scope.person = Person.get($routeParams);
  77. Person.getEvents($routeParams, function(data) {
  78. $scope.events = data;
  79. });
  80. }
  81. // store a new Person or update an existing one
  82. $scope.save = function() {
  83. if ($scope.person.id === undefined) {
  84. $scope.person = Person.save($scope.person);
  85. } else {
  86. $scope.person = Person.update($scope.person);
  87. }
  88. };
  89. }]
  90. );
  91. eventManControllers.controller('ImportPersonsCtrl', ['$scope', '$log',
  92. function ($scope, $log) {
  93. $scope.ebCSVimport = function() {
  94. $log.info("ImportPersonsCtrl");
  95. $log.info($scope);
  96. };
  97. }]
  98. );
  99. eventManControllers.controller('FileUploadCtrl', ['$scope', '$log', '$upload', 'Event',
  100. function ($scope, $log, $upload, Event) {
  101. $scope.file = null;
  102. $scope.reply = {};
  103. $scope.events = Event.all();
  104. $scope.upload = function(file, url) {
  105. $log.info("FileUploadCtrl.upload");
  106. $upload.upload({
  107. url: url,
  108. file: file,
  109. fields: {targetEvent: $scope.targetEvent}
  110. }).progress(function(evt) {
  111. var progressPercentage = parseInt(100.0 * evt.loaded / evt.total);
  112. $log.debug('progress: ' + progressPercentage + '%');
  113. }).success(function(data, status, headers, config) {
  114. $scope.file = null;
  115. $scope.reply = angular.fromJson(data);
  116. });
  117. };
  118. }]
  119. );