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            }else{
 72                console.log("login failed");
 73            }
 74            $timeout(function() {
 75              $scope.closeLogin();
 76              $window.location.reload(true);
 77            }, 1000);
 78
 79    },
 80    function(response) { // optional
 81            // failed
 82            console.log(response);
 83    });
 84
 85  };
 86  $scope.doSignup = function() {
 87    console.log('Doing signup', $scope.signupData);
 88
 89    $http({
 90        url: urlapi + 'users',
 91        method: "POST",
 92        data: $scope.signupData
 93    })
 94    .then(function(response) {
 95            // success
 96            console.log("response: ");
 97            console.log(response.data);
 98            $timeout(function() {
 99              $scope.closeSignup();
100            }, 1000);
101
102    },
103    function(response) { // optional
104            // failed
105    });
106
107  };
108  $scope.logout = function(){
109      localStorage.removeItem("c_username");
110      localStorage.removeItem("c_token");
111      $window.location.reload(true);
112  };
113})
114
115
116.controller('TravelsCtrl', function($scope, $http, $ionicModal, $timeout, $ionicLoading) {
117    if(localStorage.getItem('c_token')){// adding token to the headers
118        //console.log("token added to headers in run module");
119        //console.log($http.defaults);
120        $http.defaults.headers.post['X-Access-Token'] = localStorage.getItem('c_token');
121        //$http.defaults.headers.post['Content-Type'] = "application/x-www-form-urlencoded; charset=UTF-8";
122        //console.log($http.defaults.headers);
123    }
124    /*if(localStorage.getItem('c_token')){// adding token to the headers
125        $http.defaults.headers.token = localStorage.getItem('c_token');
126    }*/
127
128    $scope.travels="";
129
130    $scope.travels=JSON.parse(localStorage.getItem('c_travels'));
131
132    $scope.doRefresh = function() {
133        $http.get(urlapi + 'travels')
134        .success(function(data, status, headers,config){
135            console.log('data success');
136            console.log(data); // for browser console
137            $scope.travels = data; // for UI
138            localStorage.setItem('c_travels', JSON.stringify($scope.travels));
139            $scope.$broadcast('scroll.refreshComplete');//refresher stop
140        })
141        .error(function(data, status, headers,config){
142            console.log('data error');
143            $scope.$broadcast('scroll.refreshComplete');//refresher stop
144        })
145        .then(function(result){
146            travels = result.data;
147            $ionicLoading.show({ template: 'Travels actualized from server!', noBackdrop: true, duration: 2000 });
148        });
149    };
150    $scope.newtravel={};
151    /*$scope.newtravel={
152        title: "prova",
153        from: "prova",
154        to: "prova",
155        seats: 3,
156        package: true,
157        phone: 123,
158        telegram: "telusr",
159        description: "this is the description of prova"
160    };*/
161
162  // Create the login modal that we will use later
163  $ionicModal.fromTemplateUrl('templates/newofferingtravel.html', {
164    scope: $scope
165  }).then(function(modal) {
166    $scope.modalOffering = modal;
167  });
168
169  // Create the login modal that we will use later
170  $ionicModal.fromTemplateUrl('templates/newaskingtravel.html', {
171    scope: $scope
172  }).then(function(modal) {
173    $scope.modalAsking = modal;
174  });
175
176  $ionicModal.fromTemplateUrl('templates/newaskingpackage.html', {
177    scope: $scope
178  }).then(function(modal) {
179    $scope.modalPackage = modal;
180  });
181
182  // Triggered in the login modal to close it
183  $scope.closeNewOfferingTravel = function() {
184    $scope.modalOffering.hide();
185  };
186  // Triggered in the login modal to close it
187  $scope.closeNewAskingTravel = function() {
188    $scope.modalAsking.hide();
189  };
190  $scope.closeNewAskingPackage = function() {
191    $scope.modalPackage.hide();
192  };
193
194  // Open the login modal
195  $scope.showNewOfferingTravel = function() {
196    $scope.modalOffering.show();
197  };
198  // Open the login modal
199  $scope.showNewAskingTravel = function() {
200    $scope.modalAsking.show();
201  };
202  $scope.showNewAskingPackage = function() {
203    $scope.modalPackage.show();
204  };
205
206  // Perform the login action when the user submits the login form
207  $scope.doNewOfferingTravel = function() {
208    console.log('Doing new travel', $scope.newtravel);
209    $scope.newtravel.icon="lorry";
210    $scope.newtravel.generateddate=$scope.newtravel.date;
211    $scope.newtravel.owner=localStorage.getItem("c_username");
212
213    $scope.newtravel.modality="offering";
214    //$scope.newtravel.token=localStorage.getItem("c_token");
215    console.log($scope.newtravel);
216    $http({
217        url: urlapi + 'travels',
218        method: "POST",
219        data: $scope.newtravel
220    })
221    .then(function(response) {
222            // success
223            console.log("response: ");
224            console.log(response);
225            $scope.newtravel._id=response.data._id;
226            $scope.travels.push($scope.newtravel);
227            $scope.newtravel={};
228            if(response.data.success==false){
229
230                $ionicLoading.show({ template: 'failed to generate new travel', noBackdrop: true, duration: 2000 });
231            }
232    },
233    function(response) { // optional
234            // failed
235    });
236
237    // Simulate a login delay. Remove this and replace with your login
238    // code if using a login system
239    $timeout(function() {
240      $scope.closeNewOfferingTravel();
241    }, 1000);
242  };
243
244  $scope.doNewAskingTravel = function() {
245    console.log('Doing new travel', $scope.newtravel);
246    $scope.newtravel.icon="lorry";
247    $scope.newtravel.generateddate=$scope.newtravel.date;
248    $scope.newtravel.owner=localStorage.getItem("c_username");
249
250    $scope.newtravel.modality="asking";
251    console.log($scope.newtravel);
252    $http({
253        url: urlapi + 'travels',
254        method: "POST",
255        data: $scope.newtravel
256    })
257    .then(function(response) {
258            // success
259            console.log("response: ");
260            console.log(response);
261            $scope.newtravel._id=response.data._id;
262            $scope.travels.push($scope.newtravel);
263            if(response.data.success==false){
264
265                $ionicLoading.show({ template: 'failed to generate new asking travel', noBackdrop: true, duration: 2000 });
266            }
267    },
268    function(response) { // optional
269            // failed
270    });
271
272    // Simulate a login delay. Remove this and replace with your login
273    // code if using a login system
274    $timeout(function() {
275      $scope.closeNewAskingTravel();
276    }, 1000);
277  };
278
279  $scope.doNewAskingPackage = function() {
280    console.log('Doing new package', $scope.newtravel);
281    $scope.newtravel.icon="lorry";
282    $scope.newtravel.generateddate=$scope.newtravel.date;
283    $scope.newtravel.owner=localStorage.getItem("c_username");
284    $scope.newtravel.package=true;
285
286    $scope.newtravel.modality="package";
287    console.log($scope.newtravel);
288    $http({
289        url: urlapi + 'travels',
290        method: "POST",
291        data: $scope.newtravel
292    })
293    .then(function(response) {
294            // success
295            console.log("response: ");
296            console.log(response);
297            $scope.newtravel._id=response.data._id;
298            $scope.travels.push($scope.newtravel);
299            if(response.data.success==false){
300
301                $ionicLoading.show({ template: 'failed to generate new asking package', noBackdrop: true, duration: 2000 });
302            }
303    },
304    function(response) { // optional
305            // failed
306    });
307
308    // Simulate a login delay. Remove this and replace with your login
309    // code if using a login system
310    $timeout(function() {
311      $scope.closeNewAskingPackage();
312    }, 1000);
313  };
314})
315
316.controller('TravelCtrl', function($scope, $stateParams, $http) {
317    $scope.storageusername=localStorage.getItem("c_username");
318    $scope.travel="";
319    console.log($stateParams.travelId);
320    $http.get(urlapi + 'travels/'+$stateParams.travelId)
321        .success(function(data, status, headers,config){
322            console.log('data success');
323            console.log(data); // for browser console
324            $scope.travel = data; // for UI
325        })
326        .error(function(data, status, headers,config){
327            console.log('data error');
328        })
329        .then(function(result){
330            travels = result.data;
331    });
332})
333
334.controller('UsersCtrl', function($scope, $http, $ionicModal, $timeout) {
335    $scope.users="";
336
337    $scope.users=JSON.parse(localStorage.getItem('c_users'));
338
339    $scope.doRefresh = function() {
340        $http.get(urlapi + 'users')
341        .success(function(data, status, headers, config){
342            console.log('data success');
343            console.log(data); // for browser console
344            $scope.users = data; // for UI
345            localStorage.setItem('c_users', JSON.stringify($scope.users));
346            $scope.$broadcast('scroll.refreshComplete');//refresher stop
347        })
348        .error(function(data, status, headers,config){
349            console.log('data error');
350            $scope.$broadcast('scroll.refreshComplete');//refresher stop
351        })
352        .then(function(result){
353            users = result.data;
354        });
355    };
356})
357
358.controller('UserCtrl', function($scope, $stateParams, $http) {
359    //$scope.user="";
360    console.log($stateParams.username);
361    $http.get(urlapi + 'users/byusername/'+$stateParams.username)
362        .success(function(data, status, headers,config){
363            console.log('data success');
364            console.log(data); // for browser console
365            $scope.user = data; // for UI
366        })
367        .error(function(data, status, headers,config){
368            console.log('data error');
369        })
370        .then(function(result){
371            user = result.data;
372    });
373
374    $http.get(urlapi + 'travels/user/'+$stateParams.username)
375        .success(function(data, status, headers,config){
376            console.log('data success');
377            console.log(data); // for browser console
378            $scope.travels = data; // for UI
379        })
380        .error(function(data, status, headers,config){
381            console.log('data error');
382        })
383        .then(function(result){
384            travels = result.data;
385    });
386});