arnaucube
arnaucube/commonroutesAppPublic Self-hosted repository
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});