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