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/comment/' + $stateParams.travelId,
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 if(response.data.success==false){
524
525 $ionicLoading.show({ template: 'failed to generate new asking package', noBackdrop: true, duration: 2000 });
526 }
527 },
528 function(response) { // optional
529 // failed
530 });
531 $scope.closeNewComment();
532 };
533 console.log("a");
534 console.log($scope.storageusername);
535 console.log($scope.travel.owner);
536
537
538 $scope.arrayObjectIndexOf = function(myArray, searchTerm, property) {
539 //console.log(myArray+", "+searchTerm+", "+property);
540 if(myArray)
541 {
542 for(var i = 0, len = myArray.length; i < len; i++) {
543 if (myArray[i][property] === searchTerm){
544 //console.log("i: " + i);
545 return i;
546 }
547 }
548 }
549 //console.log("i: -1");
550 return -1;
551 }
552})
553
554.controller('UsersCtrl', function($scope, $http, $ionicModal, $timeout) {
555 $scope.users="";
556
557 $scope.users=JSON.parse(localStorage.getItem('c_users'));
558
559 $scope.doRefresh = function() {
560 $http.get(urlapi + 'users')
561 .success(function(data, status, headers, config){
562 console.log('data success');
563 console.log(data); // for browser console
564 $scope.users = data; // for UI
565 localStorage.setItem('c_users', JSON.stringify($scope.users));
566 $scope.$broadcast('scroll.refreshComplete');//refresher stop
567 })
568 .error(function(data, status, headers,config){
569 console.log('data error');
570 $scope.$broadcast('scroll.refreshComplete');//refresher stop
571 })
572 .then(function(result){
573 users = result.data;
574 });
575 };
576})
577
578.controller('UserCtrl', function($scope, $stateParams, $http) {
579 //$scope.user="";
580 console.log($stateParams.username);
581 $http.get(urlapi + 'users/byusername/'+$stateParams.username)
582 .success(function(data, status, headers,config){
583 console.log('data success');
584 console.log(data); // for browser console
585 $scope.user = data; // for UI
586 })
587 .error(function(data, status, headers,config){
588 console.log('data error');
589 })
590 .then(function(result){
591 user = result.data;
592 });
593
594 $http.get(urlapi + 'travels/user/'+$stateParams.username)
595 .success(function(data, status, headers,config){
596 console.log('data success');
597 console.log(data); // for browser console
598 $scope.travels = data; // for UI
599 })
600 .error(function(data, status, headers,config){
601 console.log('data error');
602 })
603 .then(function(result){
604 travels = result.data;
605 });
606})
607.controller('SettingsCtrl', function($scope, $stateParams, $translate) {
608 if(localStorage.getItem('lang'))//initialization
609 {
610 $scope.lang=localStorage.getItem('lang');
611 }else{
612 localStorage.setItem('lang', 'english');
613 $scope.lang=localStorage.getItem('lang');
614 }
615
616 $scope.langChange = function(lang){
617 console.log(lang);
618 window.localStorage.setItem('lang', lang);
619 $translate.use(lang);
620 };
621})
622.controller('HelpCtrl', function($scope, $stateParams, $translate) {
623 console.log("help page");
624});