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 });
111 }else{
112 $ionicLoading.show({ template: 'First complete all parameters', noBackdrop: true, duration: 2000 });
113 }
114
115 };
116 $scope.emptyParams = function(obj){
117 if(obj.username==undefined)
118 {
119 return(false);
120 }
121 if(obj.password==undefined)
122 {
123 return(false);
124 }
125 if(obj.mail==undefined)
126 {
127 return(false);
128 }
129 if(obj.phone==undefined)
130 {
131 return(false);
132 }
133 if(obj.avatar==undefined)
134 {
135 return(false);
136 }
137 return(true);
138 };
139 $scope.avatars=[
140 "turtle",
141 "cat",
142 "toucan",
143 "racoon",
144 "tiger",
145 "squirrel",
146 "sheep",
147 "penguin",
148 "panda",
149 "owl",
150 "pelican",
151 "whale",
152 "snake",
153 "mouse",
154 "giraffe",
155 "macaw",
156 "lion",
157 "llama",
158 "kangaroo",
159 "hen",
160 "frog",
161 "clown-fish",
162 "chameleon",
163 "octopus"
164 ];
165 $scope.avatarSelect = function(avat){
166 $scope.signupData.avatar=avat;
167 //alert($scope.signupData.avatar);
168 };
169 $scope.logout = function(){
170 localStorage.removeItem("c_username");
171 localStorage.removeItem("c_token");
172 localStorage.removeItem("c_avatar");
173 localStorage.removeItem("c_userid");
174 $window.location.reload(true);
175 };
176})
177
178
179.controller('TravelsCtrl', function($scope, $http, $ionicModal, $timeout, $ionicLoading) {
180 if(localStorage.getItem('c_token')){// adding token to the headers
181 //console.log("token added to headers in run module");
182 //console.log($http.defaults);
183 $http.defaults.headers.post['X-Access-Token'] = localStorage.getItem('c_token');
184 //$http.defaults.headers.post['Content-Type'] = "application/x-www-form-urlencoded; charset=UTF-8";
185 //console.log($http.defaults.headers);
186 }
187 /*if(localStorage.getItem('c_token')){// adding token to the headers
188 $http.defaults.headers.token = localStorage.getItem('c_token');
189 }*/
190
191 $scope.travels="";
192
193 $scope.travels=JSON.parse(localStorage.getItem('c_travels'));
194
195 $scope.doRefresh = function() {
196 $http.get(urlapi + 'travels')
197 .success(function(data, status, headers,config){
198 console.log('data success');
199 console.log(data); // for browser console
200 $scope.travels = data; // for UI
201 localStorage.setItem('c_travels', JSON.stringify($scope.travels));
202 $scope.$broadcast('scroll.refreshComplete');//refresher stop
203 })
204 .error(function(data, status, headers,config){
205 console.log('data error');
206 $scope.$broadcast('scroll.refreshComplete');//refresher stop
207 $ionicLoading.show({ template: 'Error connecting server', noBackdrop: true, duration: 2000 });
208
209 })
210 .then(function(result){
211 travels = result.data;
212 $ionicLoading.show({ template: 'Travels actualized from server!', noBackdrop: true, duration: 2000 });
213 });
214 };
215 $scope.newtravel={};
216 /*$scope.newtravel={
217 title: "prova",
218 from: "prova",
219 to: "prova",
220 seats: 3,
221 package: true,
222 phone: 123,
223 telegram: "telusr",
224 description: "this is the description of prova"
225 };*/
226
227 // Create the login modal that we will use later
228 $ionicModal.fromTemplateUrl('templates/newofferingtravel.html', {
229 scope: $scope
230 }).then(function(modal) {
231 $scope.modalOffering = modal;
232 });
233
234 // Create the login modal that we will use later
235 $ionicModal.fromTemplateUrl('templates/newaskingtravel.html', {
236 scope: $scope
237 }).then(function(modal) {
238 $scope.modalAsking = modal;
239 });
240
241 $ionicModal.fromTemplateUrl('templates/newaskingpackage.html', {
242 scope: $scope
243 }).then(function(modal) {
244 $scope.modalPackage = modal;
245 });
246
247 // Triggered in the login modal to close it
248 $scope.closeNewOfferingTravel = function() {
249 $scope.modalOffering.hide();
250 };
251 // Triggered in the login modal to close it
252 $scope.closeNewAskingTravel = function() {
253 $scope.modalAsking.hide();
254 };
255 $scope.closeNewAskingPackage = function() {
256 $scope.modalPackage.hide();
257 };
258
259 // Open the login modal
260 $scope.showNewOfferingTravel = function() {
261 $scope.modalOffering.show();
262 };
263 // Open the login modal
264 $scope.showNewAskingTravel = function() {
265 $scope.modalAsking.show();
266 };
267 $scope.showNewAskingPackage = function() {
268 $scope.modalPackage.show();
269 };
270
271 // Perform the login action when the user submits the login form
272 $scope.doNewOfferingTravel = function() {
273 console.log('Doing new travel', $scope.newtravel);
274 $scope.newtravel.icon="lorry";
275 $scope.newtravel.generateddate=$scope.newtravel.date;
276 $scope.newtravel.owner=localStorage.getItem("c_username");
277
278 $scope.newtravel.modality="offering";
279 //$scope.newtravel.token=localStorage.getItem("c_token");
280 console.log($scope.newtravel);
281 $http({
282 url: urlapi + 'travels',
283 method: "POST",
284 data: $scope.newtravel
285 })
286 .then(function(response) {
287 // success
288 console.log("response: ");
289 console.log(response);
290 $scope.newtravel._id=response.data._id;
291 $scope.travels.push($scope.newtravel);
292 $scope.newtravel={};
293 if(response.data.success==false){
294
295 $ionicLoading.show({ template: 'failed to generate new travel', noBackdrop: true, duration: 2000 });
296 }
297 },
298 function(response) { // optional
299 // failed
300 });
301
302 // Simulate a login delay. Remove this and replace with your login
303 // code if using a login system
304 $timeout(function() {
305 $scope.closeNewOfferingTravel();
306 }, 1000);
307 };
308
309 $scope.doNewAskingTravel = function() {
310 console.log('Doing new travel', $scope.newtravel);
311 $scope.newtravel.icon="lorry";
312 $scope.newtravel.generateddate=$scope.newtravel.date;
313 $scope.newtravel.owner=localStorage.getItem("c_username");
314
315 $scope.newtravel.modality="asking";
316 console.log($scope.newtravel);
317 $http({
318 url: urlapi + 'travels',
319 method: "POST",
320 data: $scope.newtravel
321 })
322 .then(function(response) {
323 // success
324 console.log("response: ");
325 console.log(response);
326 $scope.newtravel._id=response.data._id;
327 $scope.travels.push($scope.newtravel);
328 if(response.data.success==false){
329
330 $ionicLoading.show({ template: 'failed to generate new asking travel', noBackdrop: true, duration: 2000 });
331 }
332 },
333 function(response) { // optional
334 // failed
335 });
336
337 // Simulate a login delay. Remove this and replace with your login
338 // code if using a login system
339 $timeout(function() {
340 $scope.closeNewAskingTravel();
341 }, 1000);
342 };
343
344 $scope.doNewAskingPackage = function() {
345 console.log('Doing new package', $scope.newtravel);
346 $scope.newtravel.icon="lorry";
347 $scope.newtravel.generateddate=$scope.newtravel.date;
348 $scope.newtravel.owner=localStorage.getItem("c_username");
349 $scope.newtravel.package=true;
350
351 $scope.newtravel.modality="package";
352 console.log($scope.newtravel);
353 $http({
354 url: urlapi + 'travels',
355 method: "POST",
356 data: $scope.newtravel
357 })
358 .then(function(response) {
359 // success
360 console.log("response: ");
361 console.log(response);
362 $scope.newtravel._id=response.data._id;
363 $scope.travels.push($scope.newtravel);
364 if(response.data.success==false){
365
366 $ionicLoading.show({ template: 'failed to generate new asking package', noBackdrop: true, duration: 2000 });
367 }
368 },
369 function(response) { // optional
370 // failed
371 });
372
373 // Simulate a login delay. Remove this and replace with your login
374 // code if using a login system
375 $timeout(function() {
376 $scope.closeNewAskingPackage();
377 }, 1000);
378 };
379})
380
381.controller('TravelCtrl', function($scope, $stateParams, $http, $ionicModal, $ionicPopup) {
382 if(localStorage.getItem('c_token')){// adding token to the headers
383 $http.defaults.headers.common['X-Access-Token'] = localStorage.getItem('c_token');
384 }
385 $scope.storageusername=localStorage.getItem("c_username");
386 $scope.travel="";
387 console.log($stateParams.travelId);
388 $http.get(urlapi + 'travels/'+$stateParams.travelId)
389 .success(function(data, status, headers,config){
390 console.log('data success');
391 console.log(data); // for browser console
392 $scope.travel = data; // for UI
393 console.log("b");
394 console.log($scope.travel);
395 })
396 .error(function(data, status, headers,config){
397 console.log('data error');
398 })
399 .then(function(result){
400 travel = result.data;
401 });
402 $http.get(urlapi + 'travels/join/'+$stateParams.travelId)
403 .success(function(data, status, headers,config){
404 console.log('data success');
405 console.log(data); // for browser console
406 $scope.joins = data; // for UI
407 })
408 .error(function(data, status, headers,config){
409 console.log('data error');
410 })
411 .then(function(result){
412 joins = result.data;
413 });
414 $http.get(urlapi + 'travels/comment/'+$stateParams.travelId)
415 .success(function(data, status, headers,config){
416 console.log(data); // for browser console
417 $scope.comments = data; // for UI
418 })
419 .error(function(data, status, headers,config){
420 console.log('data error');
421 })
422 .then(function(result){
423 comments = result.data;
424 });
425
426 $scope.deleteTravel = function(){
427
428 var confirmPopup = $ionicPopup.confirm({
429 title: 'Deleting publication',
430 template: 'Are you sure you want to delete <b>'+ $scope.travel.title+'</b>?'
431 });
432 confirmPopup.then(function(res) {
433 if(res) {
434 console.log('You are sure');
435 console.log("delete travel: " + $stateParams.travelId);
436 $http({
437 url: urlapi + 'travels/' + $stateParams.travelId,
438 method: "DELETE"
439 })
440 .then(function(response) {
441 console.log(response);
442 },
443 function(response) { // optional
444 // failed
445 });
446 } else {
447 console.log('You are not sure');
448 }
449 });
450
451
452 };
453 $scope.joinTravel = function(){
454 $scope.newjoin={
455 travelId: $stateParams.travelId,
456 joinedUserId: localStorage.getItem("c_userid"),
457 joinedUsername: localStorage.getItem("c_username"),
458 joinedAvatar: localStorage.getItem("c_avatar")
459 };
460 $http({
461 url: urlapi + 'travels/join/' + $stateParams.travelId,
462 method: "POST",
463 data: $scope.newjoin
464 })
465 .then(function(response) {
466 // success
467 console.log("response: ");
468 console.log(response);
469
470 },
471 function(response) { // optional
472 // failed
473 });
474 };
475 $scope.unjoinTravel = function(){
476 console.log("unjoin");
477 $scope.unjoin={
478 travelId: $stateParams.travelId,
479 joinedUserId: localStorage.getItem("c_userid"),
480 joinedUsername: localStorage.getItem("c_username"),
481 joinedAvatar: localStorage.getItem("c_avatar")
482 };
483 $http({
484 url: urlapi + 'travels/unjoin/' + $stateParams.travelId,
485 method: "POST",
486 data: $scope.unjoin
487 })
488 .then(function(response) {
489 // success
490 console.log("response: ");
491 console.log(response);
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 if(myArray)
540 {
541 for(var i = 0, len = myArray.length; i < len; i++) {
542 if (myArray[i][property] === searchTerm){
543 //console.log("i: " + i);
544 return i;
545 }
546 }
547 }
548 //console.log("i: -1");
549 return -1;
550 }
551})
552
553.controller('UsersCtrl', function($scope, $http, $ionicModal, $timeout) {
554 $scope.users="";
555
556 $scope.users=JSON.parse(localStorage.getItem('c_users'));
557
558 $scope.doRefresh = function() {
559 $http.get(urlapi + 'users')
560 .success(function(data, status, headers, config){
561 console.log('data success');
562 console.log(data); // for browser console
563 $scope.users = data; // for UI
564 localStorage.setItem('c_users', JSON.stringify($scope.users));
565 $scope.$broadcast('scroll.refreshComplete');//refresher stop
566 })
567 .error(function(data, status, headers,config){
568 console.log('data error');
569 $scope.$broadcast('scroll.refreshComplete');//refresher stop
570 })
571 .then(function(result){
572 users = result.data;
573 });
574 };
575})
576
577.controller('UserCtrl', function($scope, $stateParams, $http) {
578 //$scope.user="";
579 console.log($stateParams.username);
580 $http.get(urlapi + 'users/byusername/'+$stateParams.username)
581 .success(function(data, status, headers,config){
582 console.log('data success');
583 console.log(data); // for browser console
584 $scope.user = data; // for UI
585 })
586 .error(function(data, status, headers,config){
587 console.log('data error');
588 })
589 .then(function(result){
590 user = result.data;
591 });
592
593 $http.get(urlapi + 'travels/user/'+$stateParams.username)
594 .success(function(data, status, headers,config){
595 console.log('data success');
596 console.log(data); // for browser console
597 $scope.travels = data; // for UI
598 })
599 .error(function(data, status, headers,config){
600 console.log('data error');
601 })
602 .then(function(result){
603 travels = result.data;
604 });
605}).controller('SettingsCtrl', function($scope, $stateParams, $translate) {
606 if(localStorage.getItem('lang'))//initialization
607 {
608 $scope.lang=localStorage.getItem('lang');
609 }else{
610 localStorage.setItem('lang', 'english');
611 $scope.lang=localStorage.getItem('lang');
612 }
613
614 $scope.langChange = function(lang){
615 console.log(lang);
616 window.localStorage.setItem('lang', lang);
617 $translate.use(lang);
618 };
619});