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  // Create the login modal that we will use later
 26  $ionicModal.fromTemplateUrl('templates/login.html', {
 27    scope: $scope
 28  }).then(function(modal) {
 29    $scope.modalLogin = modal;
 30  });
 31  $ionicModal.fromTemplateUrl('templates/signup.html', {
 32    scope: $scope
 33  }).then(function(modal) {
 34    $scope.modalSignup = modal;
 35  });
 36
 37  // Triggered in the login modal to close it
 38  $scope.closeLogin = function() {
 39    $scope.modalLogin.hide();
 40  };
 41  $scope.closeSignup = function() {
 42    $scope.modalSignup.hide();
 43  };
 44
 45  // Open the login modal
 46  $scope.login = function() {
 47    $scope.modalLogin.show();
 48  };
 49  $scope.signup = function() {
 50    $scope.modalSignup.show();
 51  };
 52
 53  // Perform the login action when the user submits the login form
 54  $scope.doLogin = function() {
 55    console.log('Doing login', $scope.loginData);
 56
 57    $http({
 58        url: urlapi + 'auth',
 59        method: "POST",
 60        data: $scope.loginData
 61    })
 62    .then(function(response) {
 63            // success
 64            console.log("response: ");
 65            console.log(response.data);
 66            if(response.data.success==true)
 67            {
 68                console.log("login successful");
 69                localStorage.setItem("c_username", $scope.loginData.username);
 70                localStorage.setItem("c_token", response.data.token);
 71                localStorage.setItem("c_userid", response.data.userid);
 72            }else{
 73                console.log("login failed");
 74            }
 75            $timeout(function() {
 76              $scope.closeLogin();
 77              $window.location.reload(true);
 78            }, 1000);
 79
 80    },
 81    function(response) { // optional
 82            // failed
 83            console.log(response);
 84    });
 85
 86  };
 87  $scope.doSignup = function() {
 88    console.log('Doing signup', $scope.signupData);
 89
 90    $http({
 91        url: urlapi + 'users',
 92        method: "POST",
 93        data: $scope.signupData
 94    })
 95    .then(function(response) {
 96            // success
 97            console.log("response: ");
 98            console.log(response.data);
 99            $timeout(function() {
100              $scope.closeSignup();
101            }, 1000);
102
103    },
104    function(response) { // optional
105            // failed
106    });
107
108  };
109  $scope.logout = function(){
110      localStorage.removeItem("c_username");
111      localStorage.removeItem("c_token");
112      $window.location.reload(true);
113  };
114})
115
116
117.controller('TravelsCtrl', function($scope, $http, $ionicModal, $timeout, $ionicLoading) {
118    if(localStorage.getItem('c_token')){// adding token to the headers
119        //console.log("token added to headers in run module");
120        //console.log($http.defaults);
121        $http.defaults.headers.post['X-Access-Token'] = localStorage.getItem('c_token');
122        //$http.defaults.headers.post['Content-Type'] = "application/x-www-form-urlencoded; charset=UTF-8";
123        //console.log($http.defaults.headers);
124    }
125    /*if(localStorage.getItem('c_token')){// adding token to the headers
126        $http.defaults.headers.token = localStorage.getItem('c_token');
127    }*/
128
129    $scope.travels="";
130
131    $scope.travels=JSON.parse(localStorage.getItem('c_travels'));
132
133    $scope.doRefresh = function() {
134        $http.get(urlapi + 'travels')
135        .success(function(data, status, headers,config){
136            console.log('data success');
137            console.log(data); // for browser console
138            $scope.travels = data; // for UI
139            localStorage.setItem('c_travels', JSON.stringify($scope.travels));
140            $scope.$broadcast('scroll.refreshComplete');//refresher stop
141        })
142        .error(function(data, status, headers,config){
143            console.log('data error');
144            $scope.$broadcast('scroll.refreshComplete');//refresher stop
145        })
146        .then(function(result){
147            travels = result.data;
148            $ionicLoading.show({ template: 'Travels actualized from server!', noBackdrop: true, duration: 2000 });
149        });
150    };
151    $scope.newtravel={};
152    /*$scope.newtravel={
153        title: "prova",
154        from: "prova",
155        to: "prova",
156        seats: 3,
157        package: true,
158        phone: 123,
159        telegram: "telusr",
160        description: "this is the description of prova"
161    };*/
162
163  // Create the login modal that we will use later
164  $ionicModal.fromTemplateUrl('templates/newofferingtravel.html', {
165    scope: $scope
166  }).then(function(modal) {
167    $scope.modalOffering = modal;
168  });
169
170  // Create the login modal that we will use later
171  $ionicModal.fromTemplateUrl('templates/newaskingtravel.html', {
172    scope: $scope
173  }).then(function(modal) {
174    $scope.modalAsking = modal;
175  });
176
177  $ionicModal.fromTemplateUrl('templates/newaskingpackage.html', {
178    scope: $scope
179  }).then(function(modal) {
180    $scope.modalPackage = modal;
181  });
182
183  // Triggered in the login modal to close it
184  $scope.closeNewOfferingTravel = function() {
185    $scope.modalOffering.hide();
186  };
187  // Triggered in the login modal to close it
188  $scope.closeNewAskingTravel = function() {
189    $scope.modalAsking.hide();
190  };
191  $scope.closeNewAskingPackage = function() {
192    $scope.modalPackage.hide();
193  };
194
195  // Open the login modal
196  $scope.showNewOfferingTravel = function() {
197    $scope.modalOffering.show();
198  };
199  // Open the login modal
200  $scope.showNewAskingTravel = function() {
201    $scope.modalAsking.show();
202  };
203  $scope.showNewAskingPackage = function() {
204    $scope.modalPackage.show();
205  };
206
207  // Perform the login action when the user submits the login form
208  $scope.doNewOfferingTravel = function() {
209    console.log('Doing new travel', $scope.newtravel);
210    $scope.newtravel.icon="lorry";
211    $scope.newtravel.generateddate=$scope.newtravel.date;
212    $scope.newtravel.owner=localStorage.getItem("c_username");
213
214    $scope.newtravel.modality="offering";
215    //$scope.newtravel.token=localStorage.getItem("c_token");
216    console.log($scope.newtravel);
217    $http({
218        url: urlapi + 'travels',
219        method: "POST",
220        data: $scope.newtravel
221    })
222    .then(function(response) {
223            // success
224            console.log("response: ");
225            console.log(response);
226            $scope.newtravel._id=response.data._id;
227            $scope.travels.push($scope.newtravel);
228            $scope.newtravel={};
229            if(response.data.success==false){
230
231                $ionicLoading.show({ template: 'failed to generate new travel', noBackdrop: true, duration: 2000 });
232            }
233    },
234    function(response) { // optional
235            // failed
236    });
237
238    // Simulate a login delay. Remove this and replace with your login
239    // code if using a login system
240    $timeout(function() {
241      $scope.closeNewOfferingTravel();
242    }, 1000);
243  };
244
245  $scope.doNewAskingTravel = function() {
246    console.log('Doing new travel', $scope.newtravel);
247    $scope.newtravel.icon="lorry";
248    $scope.newtravel.generateddate=$scope.newtravel.date;
249    $scope.newtravel.owner=localStorage.getItem("c_username");
250
251    $scope.newtravel.modality="asking";
252    console.log($scope.newtravel);
253    $http({
254        url: urlapi + 'travels',
255        method: "POST",
256        data: $scope.newtravel
257    })
258    .then(function(response) {
259            // success
260            console.log("response: ");
261            console.log(response);
262            $scope.newtravel._id=response.data._id;
263            $scope.travels.push($scope.newtravel);
264            if(response.data.success==false){
265
266                $ionicLoading.show({ template: 'failed to generate new asking travel', noBackdrop: true, duration: 2000 });
267            }
268    },
269    function(response) { // optional
270            // failed
271    });
272
273    // Simulate a login delay. Remove this and replace with your login
274    // code if using a login system
275    $timeout(function() {
276      $scope.closeNewAskingTravel();
277    }, 1000);
278  };
279
280  $scope.doNewAskingPackage = function() {
281    console.log('Doing new package', $scope.newtravel);
282    $scope.newtravel.icon="lorry";
283    $scope.newtravel.generateddate=$scope.newtravel.date;
284    $scope.newtravel.owner=localStorage.getItem("c_username");
285    $scope.newtravel.package=true;
286
287    $scope.newtravel.modality="package";
288    console.log($scope.newtravel);
289    $http({
290        url: urlapi + 'travels',
291        method: "POST",
292        data: $scope.newtravel
293    })
294    .then(function(response) {
295            // success
296            console.log("response: ");
297            console.log(response);
298            $scope.newtravel._id=response.data._id;
299            $scope.travels.push($scope.newtravel);
300            if(response.data.success==false){
301
302                $ionicLoading.show({ template: 'failed to generate new asking package', noBackdrop: true, duration: 2000 });
303            }
304    },
305    function(response) { // optional
306            // failed
307    });
308
309    // Simulate a login delay. Remove this and replace with your login
310    // code if using a login system
311    $timeout(function() {
312      $scope.closeNewAskingPackage();
313    }, 1000);
314  };
315})
316
317.controller('TravelCtrl', function($scope, $stateParams, $http, $ionicModal) {
318    if(localStorage.getItem('c_token')){// adding token to the headers
319        $http.defaults.headers.common['X-Access-Token'] = localStorage.getItem('c_token');
320    }
321    $scope.storageusername=localStorage.getItem("c_username");
322    $scope.travel="";
323    console.log($stateParams.travelId);
324    $http.get(urlapi + 'travels/'+$stateParams.travelId)
325        .success(function(data, status, headers,config){
326            console.log('data success');
327            console.log(data); // for browser console
328            $scope.travel = data; // for UI
329        })
330        .error(function(data, status, headers,config){
331            console.log('data error');
332        })
333        .then(function(result){
334            travel = result.data;
335    });
336    $http.get(urlapi + 'travels/join/'+$stateParams.travelId)
337        .success(function(data, status, headers,config){
338            console.log('data success');
339            console.log(data); // for browser console
340            $scope.joins = data; // for UI
341        })
342        .error(function(data, status, headers,config){
343            console.log('data error');
344        })
345        .then(function(result){
346            joins = result.data;
347    });
348    $http.get(urlapi + 'travels/comment/'+$stateParams.travelId)
349        .success(function(data, status, headers,config){
350            console.log(data); // for browser console
351            $scope.comments = data; // for UI
352        })
353        .error(function(data, status, headers,config){
354            console.log('data error');
355        })
356        .then(function(result){
357            comments = result.data;
358    });
359
360    $scope.deleteTravel = function(){
361        console.log("delete travel: " + $stateParams.travelId);
362        $http({
363            url: urlapi + 'travels/' + $stateParams.travelId,
364            method: "DELETE"
365        })
366        .then(function(response) {
367                console.log(response);
368        },
369        function(response) { // optional
370                // failed
371        });
372    };
373    $scope.joinTravel = function(){
374        $scope.newjoin={
375            travelId: $stateParams.travelId,
376            joinedUserId: localStorage.getItem("c_userid"),
377            joinedUsername: localStorage.getItem("c_username")
378        };
379        $http({
380            url: urlapi + 'travels/join/' + $stateParams.travelId,
381            method: "POST",
382            data: $scope.newjoin
383        })
384        .then(function(response) {
385                // success
386                console.log("response: ");
387                console.log(response);
388
389        },
390        function(response) { // optional
391                // failed
392        });
393    };
394
395    /* adding comment */
396    $scope.doingNewComment=false;
397    $scope.newComment={};
398
399    $scope.showNewComment = function() {
400      $scope.doingNewComment=true;
401    };
402    $scope.closeNewComment = function() {
403        $scope.doingNewComment=false;
404    };
405    $scope.doNewComment = function() {
406        $scope.newComment.commentUserId=localStorage.getItem("c_userid");
407        $scope.newComment.commentUsername=localStorage.getItem("c_username");
408console.log($scope.newComment);
409        $http({
410          url: urlapi + 'travels/comment/' + $stateParams.travelId,
411          method: "POST",
412          data: $scope.newComment
413        })
414        .then(function(response) {
415              // success
416              console.log("newComment added to server: " + response);
417              console.log(response);
418              if(response.data.success==false){
419
420                  $ionicLoading.show({ template: 'failed to generate new asking package', noBackdrop: true, duration: 2000 });
421              }
422        },
423        function(response) { // optional
424              // failed
425        });
426        $scope.closeNewComment();
427    };
428})
429
430.controller('UsersCtrl', function($scope, $http, $ionicModal, $timeout) {
431    $scope.users="";
432
433    $scope.users=JSON.parse(localStorage.getItem('c_users'));
434
435    $scope.doRefresh = function() {
436        $http.get(urlapi + 'users')
437        .success(function(data, status, headers, config){
438            console.log('data success');
439            console.log(data); // for browser console
440            $scope.users = data; // for UI
441            localStorage.setItem('c_users', JSON.stringify($scope.users));
442            $scope.$broadcast('scroll.refreshComplete');//refresher stop
443        })
444        .error(function(data, status, headers,config){
445            console.log('data error');
446            $scope.$broadcast('scroll.refreshComplete');//refresher stop
447        })
448        .then(function(result){
449            users = result.data;
450        });
451    };
452})
453
454.controller('UserCtrl', function($scope, $stateParams, $http) {
455    //$scope.user="";
456    console.log($stateParams.username);
457    $http.get(urlapi + 'users/byusername/'+$stateParams.username)
458        .success(function(data, status, headers,config){
459            console.log('data success');
460            console.log(data); // for browser console
461            $scope.user = data; // for UI
462        })
463        .error(function(data, status, headers,config){
464            console.log('data error');
465        })
466        .then(function(result){
467            user = result.data;
468    });
469
470    $http.get(urlapi + 'travels/user/'+$stateParams.username)
471        .success(function(data, status, headers,config){
472            console.log('data success');
473            console.log(data); // for browser console
474            $scope.travels = data; // for UI
475        })
476        .error(function(data, status, headers,config){
477            console.log('data error');
478        })
479        .then(function(result){
480            travels = result.data;
481    });
482});