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  $scope.userdata=JSON.parse(localStorage.getItem('c_userdata'));
 27  console.log($scope.userdata);
 28  // Create the login modal that we will use later
 29  $ionicModal.fromTemplateUrl('templates/login.html', {
 30    scope: $scope
 31  }).then(function(modal) {
 32    $scope.modalLogin = modal;
 33  });
 34  $ionicModal.fromTemplateUrl('templates/signup.html', {
 35    scope: $scope
 36  }).then(function(modal) {
 37    $scope.modalSignup = modal;
 38  });
 39
 40  // Triggered in the login modal to close it
 41  $scope.closeLogin = function() {
 42    $scope.modalLogin.hide();
 43  };
 44  $scope.closeSignup = function() {
 45    $scope.modalSignup.hide();
 46  };
 47
 48  // Open the login modal
 49  $scope.login = function() {
 50    $scope.modalLogin.show();
 51  };
 52  $scope.signup = function() {
 53    $scope.modalSignup.show();
 54  };
 55
 56  // Perform the login action when the user submits the login form
 57  $scope.doLogin = function() {
 58    console.log('Doing login', $scope.loginData);
 59
 60    $http({
 61        url: urlapi + 'auth',
 62        method: "POST",
 63        data: $scope.loginData
 64    })
 65    .then(function(response) {
 66            // success
 67            console.log("response: ");
 68            console.log(response.data);
 69            if(response.data.success==true)
 70            {
 71                console.log("login successful");
 72                localStorage.setItem("c_username", $scope.loginData.username);
 73                localStorage.setItem("c_token", response.data.token);
 74                localStorage.setItem("c_userid", response.data.userid);
 75                localStorage.setItem("c_avatar", response.data.avatar);
 76
 77                localStorage.setItem("c_userdata", JSON.stringify(response.data.userdata));
 78
 79                $timeout(function() {
 80                  $scope.closeLogin();
 81                  $window.location.reload(true);
 82                }, 1000);
 83            }else{
 84                console.log("login failed");
 85                $ionicLoading.show({ template: 'Login failed, user or password error.', noBackdrop: true, duration: 2000 });
 86            }
 87
 88
 89    },
 90    function(response) { // optional
 91            // failed
 92            console.log(response);
 93    });
 94
 95  };
 96  $scope.doSignup = function() {
 97    console.log('Doing signup', $scope.signupData);
 98    if($scope.emptyParams($scope.signupData))
 99    {
100      $http({
101          url: urlapi + 'users',
102          method: "POST",
103          data: $scope.signupData
104      })
105      .then(function(response) {
106              // success
107              console.log("response: ");
108              console.log(response.data);
109              $scope.loginData.username=$scope.signupData.username;
110              $timeout(function() {
111                $scope.closeSignup();
112                $scope.login();
113              }, 1000);
114
115      },
116      function(response) { // optional
117              // failed
118            $ionicLoading.show({ template: 'Username already taken', noBackdrop: true, duration: 2000 });
119      });
120    }else{
121      $ionicLoading.show({ template: 'First complete all parameters', noBackdrop: true, duration: 2000 });
122    }
123
124  };
125  $scope.emptyParams = function(obj){
126    if(obj.username==undefined)
127    {
128      return(false);
129    }
130    if(obj.password==undefined)
131    {
132      return(false);
133    }
134    if(obj.mail==undefined)
135    {
136      return(false);
137    }
138    if(obj.avatar==undefined)
139    {
140      return(false);
141    }
142    return(true);
143  };
144  $scope.avatars=[
145    "turtle",
146    "cat",
147    "toucan",
148    "racoon",
149    "tiger",
150    "squirrel",
151    "sheep",
152    "penguin",
153    "panda",
154    "owl",
155    "pelican",
156    "whale",
157    "snake",
158    "mouse",
159    "giraffe",
160    "macaw",
161    "lion",
162    "llama",
163    "kangaroo",
164    "hen",
165    "frog",
166    "clown-fish",
167    "chameleon",
168    "octopus"
169  ];
170  $scope.avatarSelect = function(avat){
171    $scope.signupData.avatar=avat;
172    //alert($scope.signupData.avatar);
173  };
174  $scope.logout = function(){
175      localStorage.removeItem("c_username");
176      localStorage.removeItem("c_token");
177      localStorage.removeItem("c_avatar");
178      localStorage.removeItem("c_userid");
179      localStorage.removeItem("c_userdata");
180      $window.location.reload(true);
181  };
182
183  /* if no logged, suggest to login */
184  if(localStorage.getItem('c_token')){// adding token to the headers
185      $http.defaults.headers.common['X-Access-Token'] = localStorage.getItem('c_token');
186  }else{
187    setTimeout(function(){
188      $scope.login();
189    },1000);
190  }
191})
192
193
194.controller('TravelsCtrl', function($scope, $http, $ionicModal, $timeout, $ionicLoading, $filter) {
195    if(localStorage.getItem('c_token')){// adding token to the headers
196        //console.log("token added to headers in run module");
197        //console.log($http.defaults);
198        $http.defaults.headers.post['X-Access-Token'] = localStorage.getItem('c_token');
199        //$http.defaults.headers.post['Content-Type'] = "application/x-www-form-urlencoded; charset=UTF-8";
200        //console.log($http.defaults.headers);
201    }
202    /*if(localStorage.getItem('c_token')){// adding token to the headers
203        $http.defaults.headers.token = localStorage.getItem('c_token');
204    }*/
205
206    $scope.travels="";
207    $scope.travels=JSON.parse(localStorage.getItem('c_travels'));
208    $scope.userdata=JSON.parse(localStorage.getItem('c_userdata'));
209    //$scope.storageusername=JSON.parse(localStorage.getItem('c_username'));
210    console.log($scope.userdata);
211
212    $scope.doRefresh = function() {
213      /* travels refresh: */
214        $http.get(urlapi + 'travels')
215        .success(function(data, status, headers,config){
216            console.log('data success travels');
217            console.log(data); // for browser console
218            $scope.travels = data; // for UI
219            localStorage.setItem('c_travels', JSON.stringify($scope.travels));
220            localStorage.setItem('c_travelsLastDate', JSON.stringify(new Date()));
221            $scope.$broadcast('scroll.refreshComplete');//refresher stop
222
223        })
224        .error(function(data, status, headers,config){
225            console.log('data error');
226            $scope.$broadcast('scroll.refreshComplete');//refresher stop
227            $ionicLoading.show({ template: 'Error connecting server', noBackdrop: true, duration: 2000 });
228
229        })
230        .then(function(result){
231            travels = result.data;
232            $ionicLoading.show({ template: 'Travels actualized from server!', noBackdrop: true, duration: 2000 });
233        });
234
235        /* users refresh: */
236        $http.get(urlapi + 'users')
237        .success(function(data, status, headers, config){
238            console.log('data success users');
239            console.log(data); // for browser console
240            $scope.users = data; // for UI
241            localStorage.setItem('c_users', JSON.stringify($scope.users));
242            $scope.$broadcast('scroll.refreshComplete');//refresher stop
243
244            //set userdata
245            $scope.userdata = $filter('filter')($scope.users, {username: $scope.storageusername}, true)[0];
246            console.log("userdata");
247            console.log($scope.userdata);
248            localStorage.setItem("c_userdata", JSON.stringify($scope.userdata));
249        })
250        .error(function(data, status, headers,config){
251            console.log('data error');
252            $scope.$broadcast('scroll.refreshComplete');//refresher stop
253        })
254        .then(function(result){
255            users = result.data;
256        });
257    };
258    $scope.newtravel={};
259    /*$scope.newtravel={
260        title: "prova",
261        from: "prova",
262        to: "prova",
263        seats: 3,
264        package: true,
265        phone: 123,
266        telegram: "telusr",
267        description: "this is the description of prova"
268    };*/
269
270  // Create the login modal that we will use later
271  $ionicModal.fromTemplateUrl('templates/newofferingtravel.html', {
272    scope: $scope
273  }).then(function(modal) {
274    $scope.modalOffering = modal;
275  });
276
277  // Create the login modal that we will use later
278  $ionicModal.fromTemplateUrl('templates/newaskingtravel.html', {
279    scope: $scope
280  }).then(function(modal) {
281    $scope.modalAsking = modal;
282  });
283
284  $ionicModal.fromTemplateUrl('templates/newaskingpackage.html', {
285    scope: $scope
286  }).then(function(modal) {
287    $scope.modalPackage = modal;
288  });
289
290  // Triggered in the login modal to close it
291  $scope.closeNewOfferingTravel = function() {
292    $scope.modalOffering.hide();
293  };
294  // Triggered in the login modal to close it
295  $scope.closeNewAskingTravel = function() {
296    $scope.modalAsking.hide();
297  };
298  $scope.closeNewAskingPackage = function() {
299    $scope.modalPackage.hide();
300  };
301
302  // Open the login modal
303  $scope.showNewOfferingTravel = function() {
304    $scope.modalOffering.show();
305  };
306  // Open the login modal
307  $scope.showNewAskingTravel = function() {
308    $scope.modalAsking.show();
309  };
310  $scope.showNewAskingPackage = function() {
311    $scope.modalPackage.show();
312  };
313
314  // Perform the login action when the user submits the login form
315  $scope.doNewOfferingTravel = 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    $scope.newtravel.telegram=JSON.parse(localStorage.getItem("c_userdata")).telegram;
321    $scope.newtravel.phone=JSON.parse(localStorage.getItem("c_userdata")).phone;*/
322    $scope.newtravel.modality="offering";
323    //$scope.newtravel.token=localStorage.getItem("c_token");
324    console.log($scope.newtravel);
325    $http({
326        url: urlapi + 'travels',
327        method: "POST",
328        data: $scope.newtravel
329    })
330    .then(function(response) {
331            // success
332            console.log("response: ");
333            console.log(response);
334            //$scope.newtravel._id=response.data._id;
335            //$scope.travels.push($scope.newtravel);
336            $scope.travels=response.data;
337            localStorage.setItem('c_travels', JSON.stringify($scope.travels));
338            localStorage.setItem('c_travelsLastDate', JSON.stringify(new Date()));
339            $scope.newtravel={};
340            if(response.data.success==false){
341
342                $ionicLoading.show({ template: 'failed to generate new travel', noBackdrop: true, duration: 2000 });
343            }
344    },
345    function(response) { // optional
346            // failed
347        $ionicLoading.show({ template: 'failed to generate new publication, all input fields needed', noBackdrop: true, duration: 2000 });
348    });
349
350    // Simulate a login delay. Remove this and replace with your login
351    // code if using a login system
352    $timeout(function() {
353      $scope.closeNewOfferingTravel();
354    }, 1000);
355  };
356
357  $scope.doNewAskingTravel = function() {
358    console.log('Doing new travel', $scope.newtravel);
359    $scope.newtravel.icon="lorry";
360    $scope.newtravel.generateddate=$scope.newtravel.date;
361    /*$scope.newtravel.owner=localStorage.getItem("c_username");
362    $scope.newtravel.telegram=JSON.parse(localStorage.getItem("c_userdata")).telegram;
363    $scope.newtravel.phone=JSON.parse(localStorage.getItem("c_userdata")).phone;*/
364
365    $scope.newtravel.modality="asking";
366    console.log($scope.newtravel);
367    $http({
368        url: urlapi + 'travels',
369        method: "POST",
370        data: $scope.newtravel
371    })
372    .then(function(response) {
373            // success
374            console.log("response: ");
375            console.log(response);
376            //$scope.newtravel._id=response.data._id;
377            //$scope.travels.push($scope.newtravel);
378            $scope.travels=response.data;
379            localStorage.setItem('c_travels', JSON.stringify($scope.travels));
380            localStorage.setItem('c_travelsLastDate', JSON.stringify(new Date()));
381            $scope.newtravel={};
382            if(response.data.success==false){
383
384                $ionicLoading.show({ template: 'failed to generate new asking travel', noBackdrop: true, duration: 2000 });
385            }
386    },
387    function(response) { // optional
388            // failed
389            $ionicLoading.show({ template: 'failed to generate new publication, all input fields needed', noBackdrop: true, duration: 2000 });
390    });
391
392    // Simulate a login delay. Remove this and replace with your login
393    // code if using a login system
394    $timeout(function() {
395      $scope.closeNewAskingTravel();
396    }, 1000);
397  };
398
399  $scope.doNewAskingPackage = function() {
400    console.log('Doing new package', $scope.newtravel);
401    $scope.newtravel.icon="lorry";
402    $scope.newtravel.generateddate=$scope.newtravel.date;
403    /*$scope.newtravel.owner=localStorage.getItem("c_username");
404    $scope.newtravel.telegram=JSON.parse(localStorage.getItem("c_userdata")).telegram;
405    $scope.newtravel.phone=JSON.parse(localStorage.getItem("c_userdata")).phone;*/
406
407    $scope.newtravel.package=true;
408
409    $scope.newtravel.modality="package";
410    console.log($scope.newtravel);
411    $http({
412        url: urlapi + 'travels',
413        method: "POST",
414        data: $scope.newtravel
415    })
416    .then(function(response) {
417            // success
418            console.log("response: ");
419            console.log(response);
420            //$scope.newtravel._id=response.data._id;
421            //$scope.travels.push($scope.newtravel);
422            $scope.travels=response.data;
423            localStorage.setItem('c_travels', JSON.stringify($scope.travels));
424            localStorage.setItem('c_travelsLastDate', JSON.stringify(new Date()));
425            $scope.newtravel={};
426            if(response.data.success==false){
427
428                $ionicLoading.show({ template: 'failed to generate new asking package', noBackdrop: true, duration: 2000 });
429            }
430    },
431    function(response) { // optional
432            // failed
433            $ionicLoading.show({ template: 'failed to generate new publication, all input fields needed', noBackdrop: true, duration: 2000 });
434    });
435
436    // Simulate a login delay. Remove this and replace with your login
437    // code if using a login system
438    $timeout(function() {
439      $scope.closeNewAskingPackage();
440    }, 1000);
441  };
442})
443
444.controller('TravelCtrl', function($scope, $stateParams, $http, $ionicModal, $ionicPopup, $filter) {
445    if(localStorage.getItem('c_token')){// adding token to the headers
446        $http.defaults.headers.common['X-Access-Token'] = localStorage.getItem('c_token');
447    }
448    $scope.storageusername=localStorage.getItem("c_username");
449    console.log($stateParams.travelId);
450    $scope.travels= JSON.parse(localStorage.getItem('c_travels'));
451    $scope.travel = $filter('filter')($scope.travels, $stateParams.travelId, true)[0];
452
453    /*$http.get(urlapi + 'travels/comment/'+$stateParams.travelId)
454        .success(function(data, status, headers,config){
455            console.log(data); // for browser console
456            $scope.comments = data; // for UI
457        })
458        .error(function(data, status, headers,config){
459            console.log('data error');
460        })
461        .then(function(result){
462            comments = result.data;
463    });*/
464
465    $scope.deleteTravel = function(){
466
467       var confirmPopup = $ionicPopup.confirm({
468         title: 'Deleting publication',
469         template: 'Are you sure you want to delete <b>'+ $scope.travel.title+'</b>?'
470       });
471       confirmPopup.then(function(res) {
472       if(res) {
473         console.log('You are sure');
474         console.log("delete travel: " + $stateParams.travelId);
475         $http({
476             url: urlapi + 'travels/' + $stateParams.travelId,
477             method: "DELETE"
478         })
479         .then(function(response) {
480                 console.log(response);
481                 $scope.travels=response.data;
482                 localStorage.setItem('c_travels', JSON.stringify($scope.travels));
483                 localStorage.setItem('c_travelsLastDate', JSON.stringify(new Date()));
484
485         },
486         function(response) { // optional
487                 // failed
488         });
489       } else {
490         console.log('You are not sure');
491       }
492     });
493
494
495    };
496    $scope.joinTravel = function(){
497        $scope.newjoin={
498            //travelId: $stateParams.travelId,
499            /*joinedUserId: localStorage.getItem("c_userid"),
500            joinedUsername: localStorage.getItem("c_username"),
501            joinedAvatar: localStorage.getItem("c_avatar")*/
502        };
503        $http({
504            url: urlapi + 'travels/'+ $stateParams.travelId+'/join',
505            method: "POST",
506            data: $scope.newjoin
507        })
508        .then(function(response) {
509                // success
510                console.log("response: ");
511                console.log(response);
512
513                $scope.travels=response.data;
514                localStorage.setItem('c_travels', JSON.stringify($scope.travels));
515                localStorage.setItem('c_travelsLastDate', JSON.stringify(new Date()));
516                $scope.travel = $filter('filter')($scope.travels, $stateParams.travelId, true)[0];
517
518        },
519        function(response) { // optional
520                // failed
521        });
522    };
523    $scope.unjoinTravel = function(){
524        console.log("unjoin");
525        $scope.unjoin={
526            travelId: $stateParams.travelId,
527            /*joinedUserId: localStorage.getItem("c_userid"),
528            joinedUsername: localStorage.getItem("c_username"),
529            joinedAvatar: localStorage.getItem("c_avatar")*/
530        };
531        $http({
532            url: urlapi + 'travels/'+ $stateParams.travelId+'/unjoin',
533            method: "POST",
534            data: $scope.unjoin
535        })
536        .then(function(response) {
537                // success
538                console.log("response: ");
539                console.log(response);
540
541                $scope.travels=response.data;
542                localStorage.setItem('c_travels', JSON.stringify($scope.travels));
543                localStorage.setItem('c_travelsLastDate', JSON.stringify(new Date()));
544                $scope.travel = $filter('filter')($scope.travels, $stateParams.travelId, true)[0];
545
546        },
547        function(response) { // optional
548                // failed
549        });
550    };
551
552    /* adding comment */
553    $scope.doingNewComment=false;
554    $scope.newComment={};
555
556    $scope.showNewComment = function() {
557      $scope.doingNewComment=true;
558    };
559    $scope.closeNewComment = function() {
560        $scope.doingNewComment=false;
561    };
562    $scope.doNewComment = function() {
563        /*$scope.newComment.commentUserId=localStorage.getItem("c_userid");
564        $scope.newComment.commentUsername=localStorage.getItem("c_username");
565        $scope.newComment.commentAvatar=localStorage.getItem("c_avatar");*/
566console.log($scope.newComment);
567        $http({
568          url: urlapi + 'travels/'+ $stateParams.travelId+'/comment',
569          method: "POST",
570          data: $scope.newComment
571        })
572        .then(function(response) {
573              // success
574              console.log("newComment added to server: " + response);
575              console.log(response);
576              $scope.travels=response.data;
577              localStorage.setItem('c_travels', JSON.stringify($scope.travels));
578              localStorage.setItem('c_travelsLastDate', JSON.stringify(new Date()));
579              $scope.travel = $filter('filter')($scope.travels, $stateParams.travelId, true)[0];
580
581              if(response.data.success==false){
582
583                  $ionicLoading.show({ template: 'failed to generate new asking package', noBackdrop: true, duration: 2000 });
584              }
585        },
586        function(response) { // optional
587              // failed
588        });
589        $scope.closeNewComment();
590    };
591    console.log("a");
592    console.log($scope.storageusername);
593    console.log($scope.travel.owner);
594
595
596    $scope.arrayObjectIndexOf = function(myArray, searchTerm, property) {
597      //console.log(myArray+", "+searchTerm+", "+property);
598        if(myArray)
599        {
600            for(var i = 0, len = myArray.length; i < len; i++) {
601                if (myArray[i][property] === searchTerm){
602                    //console.log("i: " + i);
603                    return i;
604                }
605            }
606        }
607        //console.log("i: -1");
608        return -1;
609    };
610})
611
612.controller('UsersCtrl', function($scope, $http, $ionicModal, $timeout, $ionicLoading, $filter) {
613    $scope.users="";
614
615    $scope.users=JSON.parse(localStorage.getItem('c_users'));
616
617    $scope.doRefresh = function() {
618      /* travels refresh: */
619        $http.get(urlapi + 'travels')
620        .success(function(data, status, headers,config){
621            console.log('data success');
622            console.log(data); // for browser console
623            $scope.travels = data; // for UI
624            localStorage.setItem('c_travels', JSON.stringify($scope.travels));
625            localStorage.setItem('c_travelsLastDate', JSON.stringify(new Date()));
626            $scope.$broadcast('scroll.refreshComplete');//refresher stop
627
628        })
629        .error(function(data, status, headers,config){
630            console.log('data error');
631            $scope.$broadcast('scroll.refreshComplete');//refresher stop
632            $ionicLoading.show({ template: 'Error connecting server', noBackdrop: true, duration: 2000 });
633
634        })
635        .then(function(result){
636            travels = result.data;
637            $ionicLoading.show({ template: 'Travels actualized from server!', noBackdrop: true, duration: 2000 });
638        });
639
640        /* users refresh: */
641        $http.get(urlapi + 'users')
642        .success(function(data, status, headers, config){
643            console.log('data success');
644            console.log(data); // for browser console
645            $scope.users = data; // for UI
646            localStorage.setItem('c_users', JSON.stringify($scope.users));
647            $scope.$broadcast('scroll.refreshComplete');//refresher stop
648
649            //set userdata
650            $scope.userdata = $filter('filter')($scope.users, {username: $scope.storageusername}, true)[0];
651            console.log("userdata");
652            console.log($scope.userdata);
653            localStorage.setItem("c_userdata", JSON.stringify($scope.userdata));
654        })
655        .error(function(data, status, headers,config){
656            console.log('data error');
657            $scope.$broadcast('scroll.refreshComplete');//refresher stop
658        })
659        .then(function(result){
660            users = result.data;
661        });
662    };
663})
664
665.controller('UserCtrl', function($scope, $stateParams, $http, $filter, $ionicModal) {
666    if(localStorage.getItem('c_token')){// adding token to the headers
667        $http.defaults.headers.common['X-Access-Token'] = localStorage.getItem('c_token');
668    }
669    $scope.storageusername=localStorage.getItem("c_username");
670    $scope.users= JSON.parse(localStorage.getItem('c_users'));
671    $scope.user = $filter('filter')($scope.users, {username: $stateParams.username}, true)[0];
672    //$scope.user="";
673    console.log($stateParams.username);
674    /*$http.get(urlapi + 'users/byusername/'+$stateParams.username)
675        .success(function(data, status, headers,config){
676            console.log('data success');
677            console.log(data); // for browser console
678            $scope.user = data; // for UI
679        })
680        .error(function(data, status, headers,config){
681            console.log('data error');
682        })
683        .then(function(result){
684            user = result.data;
685    });*/
686
687    $http.get(urlapi + 'travels/user/'+$stateParams.username)
688        .success(function(data, status, headers,config){
689            console.log('data success');
690            console.log(data); // for browser console
691            $scope.travels = data; // for UI
692        })
693        .error(function(data, status, headers,config){
694            console.log('data error');
695        })
696        .then(function(result){
697            travels = result.data;
698    });
699
700
701
702    $scope.favUser = function(){
703        $scope.newfav={
704            //travelId: $stateParams.travelId,
705            /*userId: localStorage.getItem("c_userid"),
706            username: localStorage.getItem("c_username"),
707            avatar: localStorage.getItem("c_avatar")*/
708        };
709        $scope.user.favs.push($scope.newfav);//al unfav no cal fer aquest simulacre pq ja no existeix a l'array i no el resta dos cops en cas de que cliquin dos cops
710        $http({
711            //url: urlapi + 'users/'+ $stateParams.username+'/fav',
712            url: urlapi + 'users/'+ $scope.user._id+'/fav',
713            method: "POST",
714            data: $scope.newfav
715        })
716        .then(function(response) {
717                // success
718                console.log("response: ");
719                console.log(response);
720
721                $scope.users=response.data;
722                localStorage.setItem('c_users', JSON.stringify($scope.users));
723                $scope.user = $filter('filter')($scope.users, {username: $stateParams.username}, true)[0];
724
725        },
726        function(response) { // optional
727                // failed
728        });
729    };
730    $scope.unfavUser = function(){
731        console.log("unfav");
732        $scope.unfav={
733            /*userId: localStorage.getItem("c_userid"),
734            username: localStorage.getItem("c_username"),
735            avatar: localStorage.getItem("c_avatar")*/
736        };
737        $http({
738            //url: urlapi + 'users/'+ $stateParams.username+'/fav',
739            url: urlapi + 'users/'+ $scope.user._id+'/unfav',
740            method: "POST",
741            data: $scope.unfav
742        })
743        .then(function(response) {
744                // success
745                console.log("response: ");
746                console.log(response);
747
748                $scope.users=response.data;
749                localStorage.setItem('c_users', JSON.stringify($scope.users));
750                $scope.user = $filter('filter')($scope.users, {username: $stateParams.username}, true)[0];
751
752        },
753        function(response) { // optional
754                // failed
755        });
756    };
757
758    $ionicModal.fromTemplateUrl('templates/favsList.html', {
759      scope: $scope
760    }).then(function(modal) {
761      $scope.modalFavsList = modal;
762    });
763    $scope.closeModalFavsList = function() {
764      $scope.modalFavsList.hide();
765    };
766    $scope.showFavsList = function(){
767      $scope.modalFavsList.show();
768    };
769    $scope.closeModalAndGoUser = function(){
770      $scope.modalFavsList.hide();
771    };
772
773    $scope.arrayObjectIndexOf = function(myArray, searchTerm, property) {
774        if(myArray){
775            for(var i = 0, len = myArray.length; i < len; i++) {
776                if (myArray[i][property] === searchTerm){
777                    return i;
778                }
779            }
780        }
781        return -1;
782    };
783})
784.controller('NotificationsCtrl', function($scope, $stateParams, $translate, $filter) {
785  if(localStorage.getItem('c_token')){// adding token to the headers
786    //  $http.defaults.headers.common['X-Access-Token'] = localStorage.getItem('c_token');
787  }
788  $scope.storageusername=localStorage.getItem("c_username");
789  $scope.users= JSON.parse(localStorage.getItem('c_users'));
790  $scope.user = $filter('filter')($scope.users, {username: $stateParams.username}, true)[0];
791  $scope.notifications=$scope.user.notifications;
792
793  console.log($stateParams.username);
794  console.log($scope.notifications);
795  console.log("notifications page");
796})
797
798.controller('SettingsCtrl', function($scope, $stateParams, $translate) {
799  if(localStorage.getItem('lang'))//initialization
800  {
801    $scope.lang=localStorage.getItem('lang');
802  }else{
803    localStorage.setItem('lang', 'english');
804    $scope.lang=localStorage.getItem('lang');
805  }
806
807  $scope.langChange = function(lang){
808    console.log(lang);
809      window.localStorage.setItem('lang', lang);
810      $translate.use(lang);
811  };
812})
813.controller('HelpCtrl', function($scope, $stateParams, $translate) {
814  console.log("help page");
815});