Advertisement
Guest User

Untitled

a guest
Jan 1st, 2017
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.60 KB | None | 0 0
  1. angular.module('starter.controllers', [])
  2. .controller('AppCtrl', function($scope, $ionicModal, $timeout, $http, $ionicPopup, $rootScope, $ionicLoading, $state, $ionicHistory, $interval) {
  3. //COMENTARIO
  4. //GLOBAL VARIABLE FOR SERVER URL
  5. $rootScope.serverurl = 'https://labotigadelaloe.es/api.php';
  6. //SETTING THE LOADING SCREEN FOR AJAX
  7. $rootScope.show = function() {
  8. $ionicLoading.show({
  9. template: '<p>Syncing...</p><ion-spinner icon="lines"></ion-spinner>'
  10. });
  11.  
  12. $timeout(function () {
  13. $ionicLoading.hide(); //close the popup after83 seconds for some reason
  14. }, 5000);
  15. };
  16. $rootScope.hide = function(){
  17. $ionicLoading.hide();
  18. };
  19.  
  20. // Form data for the login modal
  21. $scope.loginData = {};
  22.  
  23. // Create the login modal that we will use later
  24. $ionicModal.fromTemplateUrl('templates/login.html', {
  25. scope: $scope
  26. }).then(function(modal) {
  27. $scope.modal = modal;
  28. });
  29.  
  30. // Triggered in the login modal to close it
  31. $scope.closeLogin = function() {
  32. $scope.modal.hide();
  33. };
  34.  
  35. // Open the login modal
  36. $scope.login = function(logoff) {
  37. if(logoff == 0) {
  38. localStorage.setItem("login", 0);
  39. }
  40. $state.go('login');
  41. };
  42.  
  43. //CHECK IF USER IS LOGGED, IF NOT, WE GET THE LOGIN FORM
  44. $scope.$on('$ionicView.enter', function(e) {
  45. $scope.userdata = {
  46. id : localStorage.ID,
  47. name : localStorage.name,
  48. room : localStorage.room,
  49. datein : localStorage.din,
  50. dateout : localStorage.dout,
  51. usertype : localStorage.usertype
  52. }
  53. if(localStorage.login == 0 || !localStorage.login) {
  54. $state.go('login');
  55. }
  56. });
  57.  
  58. //SETTING THE FUNCTION TO CHECK FOR NEW UPDATES
  59. $interval( function() {
  60. if(localStorage.usertype == 1) {
  61. $http.post($rootScope.serverurl, {action: 'actualizar', id: localStorage.lastReserva}).then(function (res){
  62. console.log('Looking for new...');
  63. $scope.reservas = res.data;
  64. console.log('New appointments:'+ $scope.reservas.length);
  65. if($scope.reservas.length > 0) {
  66. $scope.$emit('nuevasreservas', { cantidad: $scope.reservas.length});
  67. localStorage.updateReservas = localStorage.lastReserva;
  68. } else {
  69. $rootScope.aviso = 0;
  70. }
  71. });
  72. }
  73. }, 5000);
  74.  
  75. //HOOK FOR TRIGGERING NEW UPDATES
  76. $scope.$on('nuevasreservas', function (event, args) {
  77. $rootScope.aviso = args.cantidad;
  78. });
  79. })
  80. .controller('ReservasCtrl', function($scope, $ionicPopup, $http, $rootScope, $ionicLoading, $state) {
  81.  
  82. $scope.limitemostrar = 10;
  83. $scope.reservas = [];
  84.  
  85. var iduser = 'admin';
  86. if(localStorage.usertype == 2) {
  87. iduser = localStorage.iduser;
  88. }
  89.  
  90. //LOADING RESERVAS
  91. $rootScope.show($ionicLoading);
  92. $http.post($rootScope.serverurl, {action: 'verreservas', iduser: iduser}).then(function (res){
  93. $scope.reservas = res.data;
  94. localStorage.lastReserva = $scope.reservas[0].ID;
  95. $rootScope.hide($ionicLoading);
  96. });
  97. $scope.lastReserva = localStorage.lastReserva;
  98. $scope.updateReservas = localStorage.updateReservas;
  99. $scope.usertype = localStorage.usertype;
  100. $scope.moredata = false;
  101.  
  102. $scope.loadMoreData=function()
  103. {
  104. console.log('Loading more', $scope.limitemostrar);
  105. if ($scope.reservas.length > $scope.limitemostrar)
  106. $scope.limitemostrar += $scope.limitemostrar; // load 20 more items
  107. $scope.$broadcast('scroll.infiniteScrollComplete'); // need to call this when finish loading more data
  108. };
  109.  
  110. //DELETE RESERVAS
  111. $scope.deleteActividad = function(id){
  112. console.log('Delete?');
  113. var confirmPopup = $ionicPopup.confirm({
  114. title: 'Cancel Appointment',
  115. template: '<div style="text-align: center">¿Desea cancelar la actividad?</div>',
  116. cancelText: 'No',
  117. cancelType: 'button-calm',
  118. okText: 'Cancel',
  119. okType: 'button-assertive'
  120. });
  121.  
  122. confirmPopup.then(function(res) {
  123. if(res) {
  124. $rootScope.show($ionicLoading);
  125. $http.post($rootScope.serverurl, {action: 'deleteactividad', idactividad: id}).then(function (res){
  126. $scope.data = res.data;
  127. if($scope.data.error == 1){
  128. $ionicPopup.alert({
  129. title: 'Error!',
  130. template: '<center>There has been a problem with the connection, try later please.</center>'
  131. });
  132. } else {
  133. var index = -1;
  134. var comArr = eval( $scope.reservas );
  135. for( var i = 0; i < comArr.length; i++ ) {
  136. if( comArr[i].ID === id ) {
  137. index = i;
  138. break;
  139. }
  140. }
  141. $scope.reservas.splice( index, 1 );
  142. $ionicPopup.alert({
  143. title: 'Cancelled!',
  144. template: '<center>Your appointment has been canceled.</center>'
  145. });
  146. }
  147. $rootScope.hide($ionicLoading);
  148. });
  149. } else {
  150. console.log('You are not sure');
  151. }
  152. });
  153. }
  154. //HOOK FOR TRIGGERING NEW UPDATES
  155. $scope.$on('nuevasreservas', function (event, args) {
  156. $rootScope.aviso = args.cantidad;
  157. });
  158. //MAKING APPOINTMENTS
  159. $scope.reservarActividad = function(id, fecha, hora){
  160. console.log('Reservar?');
  161. var fechaS = new Date(fecha);
  162. var fechaS = fechaS.getFullYear()+'-'+(fechaS.getMonth() + 1)+'-'+fechaS.getDate();
  163. var horaS = new Date(hora);
  164. var horaS = horaS.getHours()+':'+horaS.getMinutes();
  165. var confirmPopup = $ionicPopup.confirm({
  166. title: 'Make appointment',
  167. template: '<div style="text-align: center">¿Reservar actividad? <br> '+fechaS+' - '+horaS+' </div>',
  168. cancelText: 'Cancelar',
  169. cancelType: 'button-royal',
  170. okText: 'Book',
  171. okType: 'button-balanced'
  172. });
  173.  
  174. confirmPopup.then(function(res) {
  175. if(res) {
  176. //2016-12-22 12:23:00
  177. var fechaarreglada = fechaS+' '+horaS+':00';
  178. console.log(fechaarreglada);
  179. $rootScope.show($ionicLoading);
  180. $http.post($rootScope.serverurl, {action: 'reserva', usuario: localStorage.iduser, fecha: fechaarreglada, actividad: id}).then(function (res){
  181. $scope.data = res.data;
  182. console.log($scope.data.error);
  183. if($scope.data.error == 1){
  184. $ionicPopup.alert({
  185. title: 'Ocupado!',
  186. template: '<center>Someone else has booked at your selected time, please try another one</center>'
  187. });
  188. } else if ($scope.data.error == 2){
  189. $ionicPopup.alert({
  190. title: 'Connection Problem!',
  191. template: '<center>There has been a problem with the connection, try later please</center>'
  192. });
  193. } else {
  194. $ionicPopup.alert({
  195. title: 'Booked!',
  196. template: '<center>Booked succesful.</center>'
  197. });
  198. }
  199. $rootScope.hide($ionicLoading);
  200. });
  201. } else {
  202. console.log('You are not sure');
  203. }
  204. });
  205. }
  206. //function ionic to
  207. }).controller('LoginCtrl', function($scope, LoginService, $ionicPopup, $state, $rootScope, $ionicLoading) {
  208. $scope.loginData = {};
  209.  
  210. $scope.doLogin = function() {
  211. $ionicLoading.show({
  212. template: '<p>Syncing...</p><ion-spinner icon="lines"></ion-spinner>'
  213. });
  214. LoginService.loginUser($scope.loginData.username, $scope.loginData.password, $rootScope.serverurl).success(function(data) {
  215. console.log(data);
  216. //var data = data.data;
  217. if(data.error == 1){
  218. deferred.reject('Wrong credentials.');
  219.  
  220. } else {
  221. localStorage.setItem("login", 1);
  222. localStorage.setItem("iduser", data.ID);
  223. localStorage.setItem("din", data.DATEIN);
  224. localStorage.setItem("dout", data.DATEOUT);
  225. localStorage.setItem("usertype", data.TYPE);
  226. localStorage.setItem("room", data.ROOM);
  227. localStorage.setItem("name", data.NAME);
  228. var userdata = {
  229. id : data.ID,
  230. name : data.NAME,
  231. room : data.ROOM,
  232. datein : data.DATEIN,
  233. dateout : data.DATEOUT,
  234. usertype : data.TYPE
  235. }
  236.  
  237. }
  238. $ionicLoading.hide();
  239. $state.go('app.home');
  240. }).error(function(data) {
  241. $ionicLoading.hide();
  242. var alertPopup = $ionicPopup.alert({
  243. title: 'Login failed!',
  244. template: 'Check credentials!'
  245. });
  246. });
  247. }
  248. //login
  249. }).service('LoginService', function($q,$http) {
  250. return {
  251. loginUser: function(name, pw, sv) {
  252. var deferred = $q.defer();
  253. var promise = deferred.promise;
  254. $http.post('https://labotigadelaloe.es/api.php', {action: 'login', username : name, password: pw}).then(function (res){
  255. var data = res.data;
  256. console.log(data.error);
  257. if(data.error == 1){
  258. deferred.reject(data);
  259. } else {
  260. deferred.resolve(data);
  261. }
  262. });
  263.  
  264. promise.success = function(fn) {
  265. promise.then(fn);
  266. return promise;
  267. }
  268. promise.error = function(fn) {
  269. promise.then(null, fn);
  270. return promise;
  271. }
  272. return promise;
  273. }
  274. }
  275. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement