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