commonroutesApp/www/js/controllers.js
www/js/controllers.jsRaw
1
2var urlapi="http://localhost:3000/api/";
3//var urlapi="https://collectivecar.paas.primustech.io/api/";
4
5
6//localStorage.setItem("c_username", "user2");
7//localStorage.setItem("c_token", "");
8
9
10angular.module('starter.controllers', ['pascalprecht.translate'])
11
12.controller('AppCtrl', function($scope, $ionicModal, $timeout, $http, $window, $ionicLoading) {
13 // With the new view caching in Ionic, Controllers are only called
14 // when they are recreated or on app start, instead of every page change.
15 // To listen for when this page is active (for example, to refresh data),
16 // listen for the $ionicView.enter event:
17 //$scope.$on('$ionicView.enter', function(e) {
18 //});
19
20 // Form data for the login modal
21 $scope.loginData = {};
22 $scope.signupData= {};
23
24 $scope.storageusername=localStorage.getItem("c_username");
25 $scope.storageavatar=localStorage.getItem("c_avatar");
26 // Create the login modal that we will use later
27 $ionicModal.fromTemplateUrl('templates/login.html', {
28 scope: $scope
29 }).then(function(modal) {
30 $scope.modalLogin = modal;
31 });
32 $ionicModal.fromTemplateUrl('templates/signup.html', {
33 scope: $scope
34 }).then(function(modal) {
35 $scope.modalSignup = modal;
36 });
37
38 // Triggered in the login modal to close it
39 $scope.closeLogin = function() {
40 $scope.modalLogin.hide();
41 };
42 $scope.closeSignup = function() {
43 $scope.modalSignup.hide();
44 };
45
46 // Open the login modal
47 $scope.login = function() {
48 $scope.modalLogin.show();
49 };
50 $scope.signup = function() {
51 $scope.modalSignup.show();
52 };
53
54 // Perform the login action when the user submits the login form
55 $scope.doLogin = function() {
56 console.log('Doing login', $scope.loginData);
57
58 $http({
59 url: urlapi + 'auth',
60 method: "POST",
61 data: $scope.loginData
62 })
63 .then(function(response) {
64 // success
65 console.log("response: ");
66 console.log(response.data);
67 if(response.data.success==true)
68 {
69 console.log("login successful");
70 localStorage.setItem("c_username", $scope.loginData.username);
71 localStorage.setItem("c_token", response.data.token);
72 localStorage.setItem("c_userid", response.data.userid);
73 localStorage.setItem("c_avatar", response.data.avatar);
74 }else{
75 console.log("login failed");
76 }
77 $timeout(function() {
78 $scope.closeLogin();
79 $window.location.reload(true);
80 }, 1000);
81
82 },
83 function(response) { // optional
84 // failed
85 console.log(response);
86 });
87
88 };
89 $scope.doSignup = function() {
90 console.log('Doing signup', $scope.signupData);
91 if($scope.emptyParams($scope.signupData))
92 {
93 $http({
94 url: urlapi + 'users',
95 method: "POST",
96 data: $scope.signupData
97 })
98 .then(function(response) {
99 // success
100 console.log("response: ");
101 console.log(response.data);
102 $timeout(function() {
103 $scope.closeSignup();
104 $scope.login();
105 }, 1000);
106
107 },
108 function(response) { // optional
109 // failed
110 $ionicLoading.show({ template: 'Username already taken', noBackdrop: true, duration: 2000 });
111 });
112 }else{
113 $ionicLoading.show({ template: 'First complete all parameters', noBackdrop: true, duration: 2000 });
114 }
115
116 };
117 $scope.emptyParams = function(obj){
118 if(obj.username==undefined)
119 {
120 return(false);
121 }
122 if(obj.password==undefined)
123 {
124 return(false);
125 }
126 if(obj.mail==undefined)
127 {
128 return(false);
129 }
130 if(obj.phone==undefined)
131 {
132 return(false);
133 }
134 if(obj.avatar==undefined)
135 {
136 return(false);
137 }
138 return(true);
139 };
140 $scope.avatars=[
141 "turtle",
142 "cat",
143 "toucan",
144 "racoon",
145 "tiger",
146 "squirrel",
147 "sheep",
148 "penguin",
149 "panda",
150 "owl",
151 "pelican",
152 "whale",
153 "snake",
154 "mouse",
155 "giraffe",
156 "macaw",
157 "lion",
158 "llama",
159 "kangaroo",
160 "hen",
161 "frog",
162 "clown-fish",
163 "chameleon",
164 "octopus"
165 ];
166 $scope.avatarSelect = function(avat){
167 $scope.signupData.avatar=avat;
168 //alert($scope.signupData.avatar);
169 };
170 $scope.logout = function(){
171 localStorage.removeItem("c_username");
172 localStorage.removeItem("c_token");
173 localStorage.removeItem("c_avatar");
174 localStorage.removeItem("c_userid");
175 $window.location.reload(true);
176 };
177})
178
179
180.controller('TravelsCtrl', function($scope, $http, $ionicModal, $timeout, $ionicLoading) {
181 if(localStorage.getItem('c_token')){// adding token to the headers
182 //console.log("token added to headers in run module");
183 //console.log($http.defaults);
184 $http.defaults.headers.post['X-Access-Token'] = localStorage.getItem('c_token');
185 //$http.defaults.headers.post['Content-Type'] = "application/x-www-form-urlencoded; charset=UTF-8";
186 //console.log($http.defaults.headers);
187 }
188 /*if(localStorage.getItem('c_token')){// adding token to the headers
189 $http.defaults.headers.token = localStorage.getItem('c_token');
190 }*/
191
192 $scope.travels="";
193
194 $scope.travels=JSON.parse(localStorage.getItem('c_travels'));
195
196 $scope.doRefresh = function() {
197 $http.get(urlapi + 'travels')
198 .success(function(data, status, headers,config){
199 console.log('data success');
200 console.log(data); // for browser console
201 $scope.travels = data; // for UI
202 localStorage.setItem('c_travels', JSON.stringify($scope.travels));
203 localStorage.setItem('c_travelsLastDate', JSON.stringify(new Date()));
204 $scope.$broadcast('scroll.refreshComplete');//refresher stop
205
206 })
207 .error(function(data, status, headers,config){
208 console.log('data error');
209 $scope.$broadcast('scroll.refreshComplete');//refresher stop
210 $ionicLoading.show({ template: 'Error connecting server', noBackdrop: true, duration: 2000 });
211
212 })
213 .then(function(result){
214 travels = result.data;
215 $ionicLoading.show({ template: 'Travels actualized from server!', noBackdrop: true, duration: 2000 });
216 });
217 };
218 $scope.newtravel={};
219 /*$scope.newtravel={
220 title: "prova",
221 from: "prova",
222 to: "prova",
223 seats: 3,
224 package: true,
225 phone: 123,
226 telegram: "telusr",
227 description: "this is the description of prova"
228 };*/
229
230 // Create the login modal that we will use later
231 $ionicModal.fromTemplateUrl('templates/newofferingtravel.html', {
232 scope: $scope
233 }).then(function(modal) {
234 $scope.modalOffering = modal;
235 });
236
237 // Create the login modal that we will use later
238 $ionicModal.fromTemplateUrl('templates/newaskingtravel.html', {
239 scope: $scope
240 }).then(function(modal) {
241 $scope.modalAsking = modal;
242 });
243
244 $ionicModal.fromTemplateUrl('templates/newaskingpackage.html', {
245 scope: $scope
246 }).then(function(modal) {
247 $scope.modalPackage = modal;
248 });
249
250 // Triggered in the login modal to close it
251 $scope.closeNewOfferingTravel = function() {
252 $scope.modalOffering.hide();
253 };
254 // Triggered in the login modal to close it
255 $scope.closeNewAskingTravel = function() {
256 $scope.modalAsking.hide();
257 };
258 $scope.closeNewAskingPackage = function() {
259 $scope.modalPackage.hide();
260 };
261
262 // Open the login modal
263 $scope.showNewOfferingTravel = function() {
264 $scope.modalOffering.show();
265 };
266 // Open the login modal
267 $scope.showNewAskingTravel = function() {
268 $scope.modalAsking.show();
269 };
270 $scope.showNewAskingPackage = function() {
271 $scope.modalPackage.show();
272 };
273
274 // Perform the login action when the user submits the login form
275 $scope.doNewOfferingTravel = function() {
276 console.log('Doing new travel', $scope.newtravel);
277 $scope.newtravel.icon="lorry";
278 $scope.newtravel.generateddate=$scope.newtravel.date;
279 $scope.newtravel.owner=localStorage.getItem("c_username");
280
281 $scope.newtravel.modality="offering";
282 //$scope.newtravel.token=localStorage.getItem("c_token");
283 console.log($scope.newtravel);
284 $http({
285 url: urlapi + 'travels',
286 method: "POST",
287 data: $scope.newtravel
288 })
289 .then(function(response) {
290 // success
291 console.log("response: ");
292 console.log(response);
293 //$scope.newtravel._id=response.data._id;
294 //$scope.travels.push($scope.newtravel);
295 $scope.travels=response.data;
296 localStorage.setItem('c_travels', JSON.stringify($scope.travels));
297 localStorage.setItem('c_travelsLastDate', JSON.stringify(new Date()));
298 $scope.newtravel={};
299 if(response.data.success==false){
300
301 $ionicLoading.show({ template: 'failed to generate new travel', noBackdrop: true, duration: 2000 });
302 }
303 },
304 function(response) { // optional
305 // failed
306 });
307
308 // Simulate a login delay. Remove this and replace with your login
309 // code if using a login system
310 $timeout(function() {
311 $scope.closeNewOfferingTravel();
312 }, 1000);
313 };
314
315 $scope.doNewAskingTravel = function() {
316 console.log('Doing new travel', $scope.newtravel);
317 $scope.newtravel.icon="lorry";
318 $scope.newtravel.generateddate=$scope.newtravel.date;
319 $scope.newtravel.owner=localStorage.getItem("c_username");
320
321 $scope.newtravel.modality="asking";
322 console.log($scope.newtravel);
323 $http({
324 url: urlapi + 'travels',
325 method: "POST",
326 data: $scope.newtravel
327 })
328 .then(function(response) {
329 // success
330 console.log("response: ");
331 console.log(response);
332 //$scope.newtravel._id=response.data._id;
333 //$scope.travels.push($scope.newtravel);
334 $scope.travels=response.data;
335 localStorage.setItem('c_travels', JSON.stringify($scope.travels));
336 localStorage.setItem('c_travelsLastDate', JSON.stringify(new Date()));
337 $scope.newtravel={};
338 if(response.data.success==false){
339
340 $ionicLoading.show({ template: 'failed to generate new asking travel', noBackdrop: true, duration: 2000 });
341 }
342 },
343 function(response) { // optional
344 // failed
345 });
346
347 // Simulate a login delay. Remove this and replace with your login
348 // code if using a login system
349 $timeout(function() {
350 $scope.closeNewAskingTravel();
351 }, 1000);
352 };
353
354 $scope.doNewAskingPackage = function() {
355 console.log('Doing new package', $scope.newtravel);
356 $scope.newtravel.icon="lorry";
357 $scope.newtravel.generateddate=$scope.newtravel.date;
358 $scope.newtravel.owner=localStorage.getItem("c_username");
359 $scope.newtravel.package=true;
360
361 $scope.newtravel.modality="package";
362 console.log($scope.newtravel);
363 $http({
364 url: urlapi + 'travels',
365 method: "POST",
366 data: $scope.newtravel
367 })
368 .then(function(response) {
369 // success
370 console.log("response: ");
371 console.log(response);
372 //$scope.newtravel._id=response.data._id;
373 //$scope.travels.push($scope.newtravel);
374 $scope.travels=response.data;
375 localStorage.setItem('c_travels', JSON.stringify($scope.travels));
376 localStorage.setItem('c_travelsLastDate', JSON.stringify(new Date()));
377 $scope.newtravel={};
378 if(response.data.success==false){
379
380 $ionicLoading.show({ template: 'failed to generate new asking package', noBackdrop: true, duration: 2000 });
381 }
382 },
383 function(response) { // optional
384 // failed
385 });
386
387 // Simulate a login delay. Remove this and replace with your login
388 // code if using a login system
389 $timeout(function() {
390 $scope.closeNewAskingPackage();
391 }, 1000);
392 };
393})
394
395.controller('TravelCtrl', function($scope, $stateParams, $http, $ionicModal, $ionicPopup, $filter) {
396 if(localStorage.getItem('c_token')){// adding token to the headers
397 $http.defaults.headers.common['X-Access-Token'] = localStorage.getItem('c_token');
398 }
399 $scope.storageusername=localStorage.getItem("c_username");
400 console.log($stateParams.travelId);
401 $scope.travels= JSON.parse(localStorage.getItem('c_travels'));
402 $scope.travel = $filter('filter')($scope.travels, $stateParams.travelId, true)[0];
403
404 $http.get(urlapi + 'travels/comment/'+$stateParams.travelId)
405 .success(function(data, status, headers,config){
406 console.log(data); // for browser console
407 $scope.comments = data; // for UI
408 })
409 .error(function(data, status, headers,config){
410 console.log('data error');
411 })
412 .then(function(result){
413 comments = result.data;
414 });
415
416 $scope.deleteTravel = function(){
417
418 var confirmPopup = $ionicPopup.confirm({
419 title: 'Deleting publication',
420 template: 'Are you sure you want to delete <b>'+ $scope.travel.title+'</b>?'
421 });
422 confirmPopup.then(function(res) {
423 if(res) {
424 console.log('You are sure');
425 console.log("delete travel: " + $stateParams.travelId);
426 $http({
427 url: urlapi + 'travels/' + $stateParams.travelId,
428 method: "DELETE"
429 })
430 .then(function(response) {
431 console.log(response);
432 },
433 function(response) { // optional
434 // failed
435 });
436 } else {
437 console.log('You are not sure');
438 }
439 });
440
441
442 };
443 $scope.joinTravel = function(){
444 $scope.newjoin={
445 //travelId: $stateParams.travelId,
446 joinedUserId: localStorage.getItem("c_userid"),
447 joinedUsername: localStorage.getItem("c_username"),
448 joinedAvatar: localStorage.getItem("c_avatar")
449 };
450 $http({
451 url: urlapi + 'travels/'+ $stateParams.travelId+'/join',
452 method: "POST",
453 data: $scope.newjoin
454 })
455 .then(function(response) {
456 // success
457 console.log("response: ");
458 console.log(response);
459
460 $scope.travels=response.data;
461 localStorage.setItem('c_travels', JSON.stringify($scope.travels));
462 localStorage.setItem('c_travelsLastDate', JSON.stringify(new Date()));
463 $scope.travel = $filter('filter')($scope.travels, $stateParams.travelId, true)[0];
464
465 },
466 function(response) { // optional
467 // failed
468 });
469 };
470 $scope.unjoinTravel = function(){
471 console.log("unjoin");
472 $scope.unjoin={
473 travelId: $stateParams.travelId,
474 joinedUserId: localStorage.getItem("c_userid"),
475 joinedUsername: localStorage.getItem("c_username"),
476 joinedAvatar: localStorage.getItem("c_avatar")
477 };
478 $http({
479 url: urlapi + 'travels/'+ $stateParams.travelId+'/unjoin',
480 method: "POST",
481 data: $scope.unjoin
482 })
483 .then(function(response) {
484 // success
485 console.log("response: ");
486 console.log(response);
487
488 $scope.travels=response.data;
489 localStorage.setItem('c_travels', JSON.stringify($scope.travels));
490 localStorage.setItem('c_travelsLastDate', JSON.stringify(new Date()));
491 $scope.travel = $filter('filter')($scope.travels, $stateParams.travelId, true)[0];
492
493 },
494 function(response) { // optional
495 // failed
496 });
497 };
498
499 /* adding comment */
500 $scope.doingNewComment=false;
501 $scope.newComment={};
502
503 $scope.showNewComment = function() {
504 $scope.doingNewComment=true;
505 };
506 $scope.closeNewComment = function() {
507 $scope.doingNewComment=false;
508 };
509 $scope.doNewComment = function() {
510 $scope.newComment.commentUserId=localStorage.getItem("c_userid");
511 $scope.newComment.commentUsername=localStorage.getItem("c_username");
512 $scope.newComment.commentAvatar=localStorage.getItem("c_avatar");
513console.log($scope.newComment);
514 $http({
515 url: urlapi + 'travels/'+ $stateParams.travelId+'/comment',
516 method: "POST",
517 data: $scope.newComment
518 })
519 .then(function(response) {
520 // success
521 console.log("newComment added to server: " + response);
522 console.log(response);
523 $scope.travels=response.data;
524 localStorage.setItem('c_travels', JSON.stringify($scope.travels));
525 localStorage.setItem('c_travelsLastDate', JSON.stringify(new Date()));
526 $scope.travel = $filter('filter')($scope.travels, $stateParams.travelId, true)[0];
527
528 if(response.data.success==false){
529
530 $ionicLoading.show({ template: 'failed to generate new asking package', noBackdrop: true, duration: 2000 });
531 }
532 },
533 function(response) { // optional
534 // failed
535 });
536 $scope.closeNewComment();
537 };
538 console.log("a");
539 console.log($scope.storageusername);
540 console.log($scope.travel.owner);
541
542
543 $scope.arrayObjectIndexOf = function(myArray, searchTerm, property) {
544 //console.log(myArray+", "+searchTerm+", "+property);
545 if(myArray)
546 {
547 for(var i = 0, len = myArray.length; i < len; i++) {
548 if (myArray[i][property] === searchTerm){
549 //console.log("i: " + i);
550 return i;
551 }
552 }
553 }
554 //console.log("i: -1");
555 return -1;
556 }
557})
558
559.controller('UsersCtrl', function($scope, $http, $ionicModal, $timeout) {
560 $scope.users="";
561
562 $scope.users=JSON.parse(localStorage.getItem('c_users'));
563
564 $scope.doRefresh = function() {
565 $http.get(urlapi + 'users')
566 .success(function(data, status, headers, config){
567 console.log('data success');
568 console.log(data); // for browser console
569 $scope.users = data; // for UI
570 localStorage.setItem('c_users', JSON.stringify($scope.users));
571 $scope.$broadcast('scroll.refreshComplete');//refresher stop
572 })
573 .error(function(data, status, headers,config){
574 console.log('data error');
575 $scope.$broadcast('scroll.refreshComplete');//refresher stop
576 })
577 .then(function(result){
578 users = result.data;
579 });
580 };
581})
582
583.controller('UserCtrl', function($scope, $stateParams, $http) {
584 //$scope.user="";
585 console.log($stateParams.username);
586 $http.get(urlapi + 'users/byusername/'+$stateParams.username)
587 .success(function(data, status, headers,config){
588 console.log('data success');
589 console.log(data); // for browser console
590 $scope.user = data; // for UI
591 })
592 .error(function(data, status, headers,config){
593 console.log('data error');
594 })
595 .then(function(result){
596 user = result.data;
597 });
598
599 $http.get(urlapi + 'travels/user/'+$stateParams.username)
600 .success(function(data, status, headers,config){
601 console.log('data success');
602 console.log(data); // for browser console
603 $scope.travels = data; // for UI
604 })
605 .error(function(data, status, headers,config){
606 console.log('data error');
607 })
608 .then(function(result){
609 travels = result.data;
610 });
611})
612.controller('SettingsCtrl', function($scope, $stateParams, $translate) {
613 if(localStorage.getItem('lang'))//initialization
614 {
615 $scope.lang=localStorage.getItem('lang');
616 }else{
617 localStorage.setItem('lang', 'english');
618 $scope.lang=localStorage.getItem('lang');
619 }
620
621 $scope.langChange = function(lang){
622 console.log(lang);
623 window.localStorage.setItem('lang', lang);
624 $translate.use(lang);
625 };
626})
627.controller('HelpCtrl', function($scope, $stateParams, $translate) {
628 console.log("help page");
629});