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