commonroutesApp/www/js/controllers.js
www/js/controllers.jsRaw
1
2//var urlapi="http://localhost:3000/api/";
3var 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
464 },
465 function(response) { // optional
466 // failed
467 });
468 };
469 $scope.unjoinTravel = function(){
470 console.log("unjoin");
471 $scope.unjoin={
472 travelId: $stateParams.travelId,
473 joinedUserId: localStorage.getItem("c_userid"),
474 joinedUsername: localStorage.getItem("c_username"),
475 joinedAvatar: localStorage.getItem("c_avatar")
476 };
477 $http({
478 url: urlapi + 'travels/'+ $stateParams.travelId+'/unjoin',
479 method: "POST",
480 data: $scope.unjoin
481 })
482 .then(function(response) {
483 // success
484 console.log("response: ");
485 console.log(response);
486
487 $scope.travels=response.data;
488 localStorage.setItem('c_travels', JSON.stringify($scope.travels));
489 localStorage.setItem('c_travelsLastDate', JSON.stringify(new Date()));
490
491 },
492 function(response) { // optional
493 // failed
494 });
495 };
496
497 /* adding comment */
498 $scope.doingNewComment=false;
499 $scope.newComment={};
500
501 $scope.showNewComment = function() {
502 $scope.doingNewComment=true;
503 };
504 $scope.closeNewComment = function() {
505 $scope.doingNewComment=false;
506 };
507 $scope.doNewComment = function() {
508 $scope.newComment.commentUserId=localStorage.getItem("c_userid");
509 $scope.newComment.commentUsername=localStorage.getItem("c_username");
510 $scope.newComment.commentAvatar=localStorage.getItem("c_avatar");
511console.log($scope.newComment);
512 $http({
513 url: urlapi + 'travels/comment/' + $stateParams.travelId,
514 method: "POST",
515 data: $scope.newComment
516 })
517 .then(function(response) {
518 // success
519 console.log("newComment added to server: " + response);
520 console.log(response);
521 if(response.data.success==false){
522
523 $ionicLoading.show({ template: 'failed to generate new asking package', noBackdrop: true, duration: 2000 });
524 }
525 },
526 function(response) { // optional
527 // failed
528 });
529 $scope.closeNewComment();
530 };
531 console.log("a");
532 console.log($scope.storageusername);
533 console.log($scope.travel.owner);
534
535
536 $scope.arrayObjectIndexOf = function(myArray, searchTerm, property) {
537 //console.log(myArray+", "+searchTerm+", "+property);
538 if(myArray)
539 {
540 for(var i = 0, len = myArray.length; i < len; i++) {
541 if (myArray[i][property] === searchTerm){
542 //console.log("i: " + i);
543 return i;
544 }
545 }
546 }
547 //console.log("i: -1");
548 return -1;
549 }
550})
551
552.controller('UsersCtrl', function($scope, $http, $ionicModal, $timeout) {
553 $scope.users="";
554
555 $scope.users=JSON.parse(localStorage.getItem('c_users'));
556
557 $scope.doRefresh = function() {
558 $http.get(urlapi + 'users')
559 .success(function(data, status, headers, config){
560 console.log('data success');
561 console.log(data); // for browser console
562 $scope.users = data; // for UI
563 localStorage.setItem('c_users', JSON.stringify($scope.users));
564 $scope.$broadcast('scroll.refreshComplete');//refresher stop
565 })
566 .error(function(data, status, headers,config){
567 console.log('data error');
568 $scope.$broadcast('scroll.refreshComplete');//refresher stop
569 })
570 .then(function(result){
571 users = result.data;
572 });
573 };
574})
575
576.controller('UserCtrl', function($scope, $stateParams, $http) {
577 //$scope.user="";
578 console.log($stateParams.username);
579 $http.get(urlapi + 'users/byusername/'+$stateParams.username)
580 .success(function(data, status, headers,config){
581 console.log('data success');
582 console.log(data); // for browser console
583 $scope.user = data; // for UI
584 })
585 .error(function(data, status, headers,config){
586 console.log('data error');
587 })
588 .then(function(result){
589 user = result.data;
590 });
591
592 $http.get(urlapi + 'travels/user/'+$stateParams.username)
593 .success(function(data, status, headers,config){
594 console.log('data success');
595 console.log(data); // for browser console
596 $scope.travels = data; // for UI
597 })
598 .error(function(data, status, headers,config){
599 console.log('data error');
600 })
601 .then(function(result){
602 travels = result.data;
603 });
604}).controller('SettingsCtrl', function($scope, $stateParams, $translate) {
605 if(localStorage.getItem('lang'))//initialization
606 {
607 $scope.lang=localStorage.getItem('lang');
608 }else{
609 localStorage.setItem('lang', 'english');
610 $scope.lang=localStorage.getItem('lang');
611 }
612
613 $scope.langChange = function(lang){
614 console.log(lang);
615 window.localStorage.setItem('lang', lang);
616 $translate.use(lang);
617 };
618});