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) {
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
349    $scope.deleteTravel = function(){
350        console.log("delete travel: " + $stateParams.travelId);
351        $http({
352            url: urlapi + 'travels/' + $stateParams.travelId,
353            method: "DELETE"
354        })
355        .then(function(response) {
356                console.log(response);
357        },
358        function(response) { // optional
359                // failed
360        });
361    };
362    $scope.joinTravel = function(){
363        $scope.newjoin={
364            travelId: $stateParams.travelId,
365            joinedUserId: localStorage.getItem("c_userid"),
366            joinedUsername: localStorage.getItem("c_username")
367        };
368        $http({
369            url: urlapi + 'travels/join/' + $stateParams.travelId,
370            method: "POST",
371            data: $scope.newjoin
372        })
373        .then(function(response) {
374                // success
375                console.log("response: ");
376                console.log(response);
377
378        },
379        function(response) { // optional
380                // failed
381        });
382    };
383})
384
385.controller('UsersCtrl', function($scope, $http, $ionicModal, $timeout) {
386    $scope.users="";
387
388    $scope.users=JSON.parse(localStorage.getItem('c_users'));
389
390    $scope.doRefresh = function() {
391        $http.get(urlapi + 'users')
392        .success(function(data, status, headers, config){
393            console.log('data success');
394            console.log(data); // for browser console
395            $scope.users = data; // for UI
396            localStorage.setItem('c_users', JSON.stringify($scope.users));
397            $scope.$broadcast('scroll.refreshComplete');//refresher stop
398        })
399        .error(function(data, status, headers,config){
400            console.log('data error');
401            $scope.$broadcast('scroll.refreshComplete');//refresher stop
402        })
403        .then(function(result){
404            users = result.data;
405        });
406    };
407})
408
409.controller('UserCtrl', function($scope, $stateParams, $http) {
410    //$scope.user="";
411    console.log($stateParams.username);
412    $http.get(urlapi + 'users/byusername/'+$stateParams.username)
413        .success(function(data, status, headers,config){
414            console.log('data success');
415            console.log(data); // for browser console
416            $scope.user = data; // for UI
417        })
418        .error(function(data, status, headers,config){
419            console.log('data error');
420        })
421        .then(function(result){
422            user = result.data;
423    });
424
425    $http.get(urlapi + 'travels/user/'+$stateParams.username)
426        .success(function(data, status, headers,config){
427            console.log('data success');
428            console.log(data); // for browser console
429            $scope.travels = data; // for UI
430        })
431        .error(function(data, status, headers,config){
432            console.log('data error');
433        })
434        .then(function(result){
435            travels = result.data;
436    });
437});