arnaucube
arnaucube/commonroutesAppPublic Self-hosted repository
commonroutesApp/www/js/controllers.js
www/js/controllers.jsRaw
  1
  2var urlapi="http://localhost:3000/api/";
  3//var 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) {
 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
 92    $http({
 93        url: urlapi + 'users',
 94        method: "POST",
 95        data: $scope.signupData
 96    })
 97    .then(function(response) {
 98            // success
 99            console.log("response: ");
100            console.log(response.data);
101            $timeout(function() {
102              $scope.closeSignup();
103            }, 1000);
104
105    },
106    function(response) { // optional
107            // failed
108    });
109
110  };
111  $scope.logout = function(){
112      localStorage.removeItem("c_username");
113      localStorage.removeItem("c_token");
114      localStorage.removeItem("c_avatar");
115      localStorage.removeItem("c_userid");
116      $window.location.reload(true);
117  };
118})
119
120
121.controller('TravelsCtrl', function($scope, $http, $ionicModal, $timeout, $ionicLoading) {
122    if(localStorage.getItem('c_token')){// adding token to the headers
123        //console.log("token added to headers in run module");
124        //console.log($http.defaults);
125        $http.defaults.headers.post['X-Access-Token'] = localStorage.getItem('c_token');
126        //$http.defaults.headers.post['Content-Type'] = "application/x-www-form-urlencoded; charset=UTF-8";
127        //console.log($http.defaults.headers);
128    }
129    /*if(localStorage.getItem('c_token')){// adding token to the headers
130        $http.defaults.headers.token = localStorage.getItem('c_token');
131    }*/
132
133    $scope.travels="";
134
135    $scope.travels=JSON.parse(localStorage.getItem('c_travels'));
136
137    $scope.doRefresh = function() {
138        $http.get(urlapi + 'travels')
139        .success(function(data, status, headers,config){
140            console.log('data success');
141            console.log(data); // for browser console
142            $scope.travels = data; // for UI
143            localStorage.setItem('c_travels', JSON.stringify($scope.travels));
144            $scope.$broadcast('scroll.refreshComplete');//refresher stop
145        })
146        .error(function(data, status, headers,config){
147            console.log('data error');
148            $scope.$broadcast('scroll.refreshComplete');//refresher stop
149            $ionicLoading.show({ template: 'Error connecting server', noBackdrop: true, duration: 2000 });
150
151        })
152        .then(function(result){
153            travels = result.data;
154            $ionicLoading.show({ template: 'Travels actualized from server!', noBackdrop: true, duration: 2000 });
155        });
156    };
157    $scope.newtravel={};
158    /*$scope.newtravel={
159        title: "prova",
160        from: "prova",
161        to: "prova",
162        seats: 3,
163        package: true,
164        phone: 123,
165        telegram: "telusr",
166        description: "this is the description of prova"
167    };*/
168
169  // Create the login modal that we will use later
170  $ionicModal.fromTemplateUrl('templates/newofferingtravel.html', {
171    scope: $scope
172  }).then(function(modal) {
173    $scope.modalOffering = modal;
174  });
175
176  // Create the login modal that we will use later
177  $ionicModal.fromTemplateUrl('templates/newaskingtravel.html', {
178    scope: $scope
179  }).then(function(modal) {
180    $scope.modalAsking = modal;
181  });
182
183  $ionicModal.fromTemplateUrl('templates/newaskingpackage.html', {
184    scope: $scope
185  }).then(function(modal) {
186    $scope.modalPackage = modal;
187  });
188
189  // Triggered in the login modal to close it
190  $scope.closeNewOfferingTravel = function() {
191    $scope.modalOffering.hide();
192  };
193  // Triggered in the login modal to close it
194  $scope.closeNewAskingTravel = function() {
195    $scope.modalAsking.hide();
196  };
197  $scope.closeNewAskingPackage = function() {
198    $scope.modalPackage.hide();
199  };
200
201  // Open the login modal
202  $scope.showNewOfferingTravel = function() {
203    $scope.modalOffering.show();
204  };
205  // Open the login modal
206  $scope.showNewAskingTravel = function() {
207    $scope.modalAsking.show();
208  };
209  $scope.showNewAskingPackage = function() {
210    $scope.modalPackage.show();
211  };
212
213  // Perform the login action when the user submits the login form
214  $scope.doNewOfferingTravel = function() {
215    console.log('Doing new travel', $scope.newtravel);
216    $scope.newtravel.icon="lorry";
217    $scope.newtravel.generateddate=$scope.newtravel.date;
218    $scope.newtravel.owner=localStorage.getItem("c_username");
219
220    $scope.newtravel.modality="offering";
221    //$scope.newtravel.token=localStorage.getItem("c_token");
222    console.log($scope.newtravel);
223    $http({
224        url: urlapi + 'travels',
225        method: "POST",
226        data: $scope.newtravel
227    })
228    .then(function(response) {
229            // success
230            console.log("response: ");
231            console.log(response);
232            $scope.newtravel._id=response.data._id;
233            $scope.travels.push($scope.newtravel);
234            $scope.newtravel={};
235            if(response.data.success==false){
236
237                $ionicLoading.show({ template: 'failed to generate new travel', noBackdrop: true, duration: 2000 });
238            }
239    },
240    function(response) { // optional
241            // failed
242    });
243
244    // Simulate a login delay. Remove this and replace with your login
245    // code if using a login system
246    $timeout(function() {
247      $scope.closeNewOfferingTravel();
248    }, 1000);
249  };
250
251  $scope.doNewAskingTravel = function() {
252    console.log('Doing new travel', $scope.newtravel);
253    $scope.newtravel.icon="lorry";
254    $scope.newtravel.generateddate=$scope.newtravel.date;
255    $scope.newtravel.owner=localStorage.getItem("c_username");
256
257    $scope.newtravel.modality="asking";
258    console.log($scope.newtravel);
259    $http({
260        url: urlapi + 'travels',
261        method: "POST",
262        data: $scope.newtravel
263    })
264    .then(function(response) {
265            // success
266            console.log("response: ");
267            console.log(response);
268            $scope.newtravel._id=response.data._id;
269            $scope.travels.push($scope.newtravel);
270            if(response.data.success==false){
271
272                $ionicLoading.show({ template: 'failed to generate new asking travel', noBackdrop: true, duration: 2000 });
273            }
274    },
275    function(response) { // optional
276            // failed
277    });
278
279    // Simulate a login delay. Remove this and replace with your login
280    // code if using a login system
281    $timeout(function() {
282      $scope.closeNewAskingTravel();
283    }, 1000);
284  };
285
286  $scope.doNewAskingPackage = function() {
287    console.log('Doing new package', $scope.newtravel);
288    $scope.newtravel.icon="lorry";
289    $scope.newtravel.generateddate=$scope.newtravel.date;
290    $scope.newtravel.owner=localStorage.getItem("c_username");
291    $scope.newtravel.package=true;
292
293    $scope.newtravel.modality="package";
294    console.log($scope.newtravel);
295    $http({
296        url: urlapi + 'travels',
297        method: "POST",
298        data: $scope.newtravel
299    })
300    .then(function(response) {
301            // success
302            console.log("response: ");
303            console.log(response);
304            $scope.newtravel._id=response.data._id;
305            $scope.travels.push($scope.newtravel);
306            if(response.data.success==false){
307
308                $ionicLoading.show({ template: 'failed to generate new asking package', noBackdrop: true, duration: 2000 });
309            }
310    },
311    function(response) { // optional
312            // failed
313    });
314
315    // Simulate a login delay. Remove this and replace with your login
316    // code if using a login system
317    $timeout(function() {
318      $scope.closeNewAskingPackage();
319    }, 1000);
320  };
321})
322
323.controller('TravelCtrl', function($scope, $stateParams, $http, $ionicModal, $ionicPopup) {
324    if(localStorage.getItem('c_token')){// adding token to the headers
325        $http.defaults.headers.common['X-Access-Token'] = localStorage.getItem('c_token');
326    }
327    $scope.storageusername=localStorage.getItem("c_username");
328    $scope.travel="";
329    console.log($stateParams.travelId);
330    $http.get(urlapi + 'travels/'+$stateParams.travelId)
331        .success(function(data, status, headers,config){
332            console.log('data success');
333            console.log(data); // for browser console
334            $scope.travel = data; // for UI
335            console.log("b");
336            console.log($scope.travel);
337        })
338        .error(function(data, status, headers,config){
339            console.log('data error');
340        })
341        .then(function(result){
342            travel = result.data;
343    });
344    $http.get(urlapi + 'travels/join/'+$stateParams.travelId)
345        .success(function(data, status, headers,config){
346            console.log('data success');
347            console.log(data); // for browser console
348            $scope.joins = data; // for UI
349        })
350        .error(function(data, status, headers,config){
351            console.log('data error');
352        })
353        .then(function(result){
354            joins = result.data;
355    });
356    $http.get(urlapi + 'travels/comment/'+$stateParams.travelId)
357        .success(function(data, status, headers,config){
358            console.log(data); // for browser console
359            $scope.comments = data; // for UI
360        })
361        .error(function(data, status, headers,config){
362            console.log('data error');
363        })
364        .then(function(result){
365            comments = result.data;
366    });
367
368    $scope.deleteTravel = function(){
369
370       var confirmPopup = $ionicPopup.confirm({
371         title: 'Deleting publication',
372         template: 'Are you sure you want to delete <b>'+ $scope.travel.title+'</b>?'
373       });
374       confirmPopup.then(function(res) {
375       if(res) {
376         console.log('You are sure');
377         console.log("delete travel: " + $stateParams.travelId);
378         $http({
379             url: urlapi + 'travels/' + $stateParams.travelId,
380             method: "DELETE"
381         })
382         .then(function(response) {
383                 console.log(response);
384         },
385         function(response) { // optional
386                 // failed
387         });
388       } else {
389         console.log('You are not sure');
390       }
391     });
392
393
394    };
395    $scope.joinTravel = function(){
396        $scope.newjoin={
397            travelId: $stateParams.travelId,
398            joinedUserId: localStorage.getItem("c_userid"),
399            joinedUsername: localStorage.getItem("c_username"),
400            joinedAvatar: localStorage.getItem("c_avatar")
401        };
402        $http({
403            url: urlapi + 'travels/join/' + $stateParams.travelId,
404            method: "POST",
405            data: $scope.newjoin
406        })
407        .then(function(response) {
408                // success
409                console.log("response: ");
410                console.log(response);
411
412        },
413        function(response) { // optional
414                // failed
415        });
416    };
417    $scope.unjoinTravel = function(){
418        console.log("unjoin");
419        $scope.unjoin={
420            travelId: $stateParams.travelId,
421            joinedUserId: localStorage.getItem("c_userid"),
422            joinedUsername: localStorage.getItem("c_username"),
423            joinedAvatar: localStorage.getItem("c_avatar")
424        };
425        $http({
426            url: urlapi + 'travels/unjoin/' + $stateParams.travelId,
427            method: "POST",
428            data: $scope.unjoin
429        })
430        .then(function(response) {
431                // success
432                console.log("response: ");
433                console.log(response);
434
435        },
436        function(response) { // optional
437                // failed
438        });
439    };
440
441    /* adding comment */
442    $scope.doingNewComment=false;
443    $scope.newComment={};
444
445    $scope.showNewComment = function() {
446      $scope.doingNewComment=true;
447    };
448    $scope.closeNewComment = function() {
449        $scope.doingNewComment=false;
450    };
451    $scope.doNewComment = function() {
452        $scope.newComment.commentUserId=localStorage.getItem("c_userid");
453        $scope.newComment.commentUsername=localStorage.getItem("c_username");
454        $scope.newComment.commentAvatar=localStorage.getItem("c_avatar");
455console.log($scope.newComment);
456        $http({
457          url: urlapi + 'travels/comment/' + $stateParams.travelId,
458          method: "POST",
459          data: $scope.newComment
460        })
461        .then(function(response) {
462              // success
463              console.log("newComment added to server: " + response);
464              console.log(response);
465              if(response.data.success==false){
466
467                  $ionicLoading.show({ template: 'failed to generate new asking package', noBackdrop: true, duration: 2000 });
468              }
469        },
470        function(response) { // optional
471              // failed
472        });
473        $scope.closeNewComment();
474    };
475    console.log("a");
476    console.log($scope.storageusername);
477    console.log($scope.travel.owner);
478
479
480    $scope.arrayObjectIndexOf = function(myArray, searchTerm, property) {
481        if(myArray)
482        {
483            for(var i = 0, len = myArray.length; i < len; i++) {
484                if (myArray[i][property] === searchTerm){
485                    //console.log("i: " + i);
486                    return i;
487                }
488            }
489        }
490        //console.log("i: -1");
491        return -1;
492    }
493})
494
495.controller('UsersCtrl', function($scope, $http, $ionicModal, $timeout) {
496    $scope.users="";
497
498    $scope.users=JSON.parse(localStorage.getItem('c_users'));
499
500    $scope.doRefresh = function() {
501        $http.get(urlapi + 'users')
502        .success(function(data, status, headers, config){
503            console.log('data success');
504            console.log(data); // for browser console
505            $scope.users = data; // for UI
506            localStorage.setItem('c_users', JSON.stringify($scope.users));
507            $scope.$broadcast('scroll.refreshComplete');//refresher stop
508        })
509        .error(function(data, status, headers,config){
510            console.log('data error');
511            $scope.$broadcast('scroll.refreshComplete');//refresher stop
512        })
513        .then(function(result){
514            users = result.data;
515        });
516    };
517})
518
519.controller('UserCtrl', function($scope, $stateParams, $http) {
520    //$scope.user="";
521    console.log($stateParams.username);
522    $http.get(urlapi + 'users/byusername/'+$stateParams.username)
523        .success(function(data, status, headers,config){
524            console.log('data success');
525            console.log(data); // for browser console
526            $scope.user = data; // for UI
527        })
528        .error(function(data, status, headers,config){
529            console.log('data error');
530        })
531        .then(function(result){
532            user = result.data;
533    });
534
535    $http.get(urlapi + 'travels/user/'+$stateParams.username)
536        .success(function(data, status, headers,config){
537            console.log('data success');
538            console.log(data); // for browser console
539            $scope.travels = data; // for UI
540        })
541        .error(function(data, status, headers,config){
542            console.log('data error');
543        })
544        .then(function(result){
545            travels = result.data;
546    });
547}).controller('SettingsCtrl', function($scope, $stateParams, $translate) {
548  if(localStorage.getItem('lang'))//initialization
549  {
550    $scope.lang=localStorage.getItem('lang');
551  }else{
552    localStorage.setItem('lang', 'english');
553    $scope.lang=localStorage.getItem('lang');
554  }
555
556  $scope.langChange = function(lang){
557    console.log(lang);
558      window.localStorage.setItem('lang', lang);
559      $translate.use(lang);
560  };
561});