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