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', ['pascalprecht.translate'])
11
12.controller('AppCtrl', function($scope, $ionicModal, $timeout, $http, $window, $ionicLoading) {
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 if($scope.emptyParams($scope.signupData))
92 {
93 $http({
94 url: urlapi + 'users',
95 method: "POST",
96 data: $scope.signupData
97 })
98 .then(function(response) {
99 // success
100 console.log("response: ");
101 console.log(response.data);
102 $timeout(function() {
103 $scope.closeSignup();
104 $scope.login();
105 }, 1000);
106
107 },
108 function(response) { // optional
109 // failed
110 $ionicLoading.show({ template: 'Username already taken', noBackdrop: true, duration: 2000 });
111 });
112 }else{
113 $ionicLoading.show({ template: 'First complete all parameters', noBackdrop: true, duration: 2000 });
114 }
115
116 };
117 $scope.emptyParams = function(obj){
118 if(obj.username==undefined)
119 {
120 return(false);
121 }
122 if(obj.password==undefined)
123 {
124 return(false);
125 }
126 if(obj.mail==undefined)
127 {
128 return(false);
129 }
130 if(obj.phone==undefined)
131 {
132 return(false);
133 }
134 if(obj.avatar==undefined)
135 {
136 return(false);
137 }
138 return(true);
139 };
140 $scope.avatars=[
141 "turtle",
142 "cat",
143 "toucan",
144 "racoon",
145 "tiger",
146 "squirrel",
147 "sheep",
148 "penguin",
149 "panda",
150 "owl",
151 "pelican",
152 "whale",
153 "snake",
154 "mouse",
155 "giraffe",
156 "macaw",
157 "lion",
158 "llama",
159 "kangaroo",
160 "hen",
161 "frog",
162 "clown-fish",
163 "chameleon",
164 "octopus"
165 ];
166 $scope.avatarSelect = function(avat){
167 $scope.signupData.avatar=avat;
168 //alert($scope.signupData.avatar);
169 };
170 $scope.logout = function(){
171 localStorage.removeItem("c_username");
172 localStorage.removeItem("c_token");
173 localStorage.removeItem("c_avatar");
174 localStorage.removeItem("c_userid");
175 $window.location.reload(true);
176 };
177})
178
179
180.controller('TravelsCtrl', function($scope, $http, $ionicModal, $timeout, $ionicLoading) {
181 if(localStorage.getItem('c_token')){// adding token to the headers
182 //console.log("token added to headers in run module");
183 //console.log($http.defaults);
184 $http.defaults.headers.post['X-Access-Token'] = localStorage.getItem('c_token');
185 //$http.defaults.headers.post['Content-Type'] = "application/x-www-form-urlencoded; charset=UTF-8";
186 //console.log($http.defaults.headers);
187 }
188 /*if(localStorage.getItem('c_token')){// adding token to the headers
189 $http.defaults.headers.token = localStorage.getItem('c_token');
190 }*/
191
192 $scope.travels="";
193
194 $scope.travels=JSON.parse(localStorage.getItem('c_travels'));
195
196 $scope.doRefresh = function() {
197 $http.get(urlapi + 'travels')
198 .success(function(data, status, headers,config){
199 console.log('data success');
200 console.log(data); // for browser console
201 $scope.travels = data; // for UI
202 localStorage.setItem('c_travels', JSON.stringify($scope.travels));
203 $scope.$broadcast('scroll.refreshComplete');//refresher stop
204 })
205 .error(function(data, status, headers,config){
206 console.log('data error');
207 $scope.$broadcast('scroll.refreshComplete');//refresher stop
208 $ionicLoading.show({ template: 'Error connecting server', noBackdrop: true, duration: 2000 });
209
210 })
211 .then(function(result){
212 travels = result.data;
213 $ionicLoading.show({ template: 'Travels actualized from server!', noBackdrop: true, duration: 2000 });
214 });
215 };
216 $scope.newtravel={};
217 /*$scope.newtravel={
218 title: "prova",
219 from: "prova",
220 to: "prova",
221 seats: 3,
222 package: true,
223 phone: 123,
224 telegram: "telusr",
225 description: "this is the description of prova"
226 };*/
227
228 // Create the login modal that we will use later
229 $ionicModal.fromTemplateUrl('templates/newofferingtravel.html', {
230 scope: $scope
231 }).then(function(modal) {
232 $scope.modalOffering = modal;
233 });
234
235 // Create the login modal that we will use later
236 $ionicModal.fromTemplateUrl('templates/newaskingtravel.html', {
237 scope: $scope
238 }).then(function(modal) {
239 $scope.modalAsking = modal;
240 });
241
242 $ionicModal.fromTemplateUrl('templates/newaskingpackage.html', {
243 scope: $scope
244 }).then(function(modal) {
245 $scope.modalPackage = modal;
246 });
247
248 // Triggered in the login modal to close it
249 $scope.closeNewOfferingTravel = function() {
250 $scope.modalOffering.hide();
251 };
252 // Triggered in the login modal to close it
253 $scope.closeNewAskingTravel = function() {
254 $scope.modalAsking.hide();
255 };
256 $scope.closeNewAskingPackage = function() {
257 $scope.modalPackage.hide();
258 };
259
260 // Open the login modal
261 $scope.showNewOfferingTravel = function() {
262 $scope.modalOffering.show();
263 };
264 // Open the login modal
265 $scope.showNewAskingTravel = function() {
266 $scope.modalAsking.show();
267 };
268 $scope.showNewAskingPackage = function() {
269 $scope.modalPackage.show();
270 };
271
272 // Perform the login action when the user submits the login form
273 $scope.doNewOfferingTravel = function() {
274 console.log('Doing new travel', $scope.newtravel);
275 $scope.newtravel.icon="lorry";
276 $scope.newtravel.generateddate=$scope.newtravel.date;
277 $scope.newtravel.owner=localStorage.getItem("c_username");
278
279 $scope.newtravel.modality="offering";
280 //$scope.newtravel.token=localStorage.getItem("c_token");
281 console.log($scope.newtravel);
282 $http({
283 url: urlapi + 'travels',
284 method: "POST",
285 data: $scope.newtravel
286 })
287 .then(function(response) {
288 // success
289 console.log("response: ");
290 console.log(response);
291 $scope.newtravel._id=response.data._id;
292 $scope.travels.push($scope.newtravel);
293 $scope.newtravel={};
294 if(response.data.success==false){
295
296 $ionicLoading.show({ template: 'failed to generate new travel', noBackdrop: true, duration: 2000 });
297 }
298 },
299 function(response) { // optional
300 // failed
301 });
302
303 // Simulate a login delay. Remove this and replace with your login
304 // code if using a login system
305 $timeout(function() {
306 $scope.closeNewOfferingTravel();
307 }, 1000);
308 };
309
310 $scope.doNewAskingTravel = function() {
311 console.log('Doing new travel', $scope.newtravel);
312 $scope.newtravel.icon="lorry";
313 $scope.newtravel.generateddate=$scope.newtravel.date;
314 $scope.newtravel.owner=localStorage.getItem("c_username");
315
316 $scope.newtravel.modality="asking";
317 console.log($scope.newtravel);
318 $http({
319 url: urlapi + 'travels',
320 method: "POST",
321 data: $scope.newtravel
322 })
323 .then(function(response) {
324 // success
325 console.log("response: ");
326 console.log(response);
327 $scope.newtravel._id=response.data._id;
328 $scope.travels.push($scope.newtravel);
329 if(response.data.success==false){
330
331 $ionicLoading.show({ template: 'failed to generate new asking travel', noBackdrop: true, duration: 2000 });
332 }
333 },
334 function(response) { // optional
335 // failed
336 });
337
338 // Simulate a login delay. Remove this and replace with your login
339 // code if using a login system
340 $timeout(function() {
341 $scope.closeNewAskingTravel();
342 }, 1000);
343 };
344
345 $scope.doNewAskingPackage = function() {
346 console.log('Doing new package', $scope.newtravel);
347 $scope.newtravel.icon="lorry";
348 $scope.newtravel.generateddate=$scope.newtravel.date;
349 $scope.newtravel.owner=localStorage.getItem("c_username");
350 $scope.newtravel.package=true;
351
352 $scope.newtravel.modality="package";
353 console.log($scope.newtravel);
354 $http({
355 url: urlapi + 'travels',
356 method: "POST",
357 data: $scope.newtravel
358 })
359 .then(function(response) {
360 // success
361 console.log("response: ");
362 console.log(response);
363 $scope.newtravel._id=response.data._id;
364 $scope.travels.push($scope.newtravel);
365 if(response.data.success==false){
366
367 $ionicLoading.show({ template: 'failed to generate new asking package', noBackdrop: true, duration: 2000 });
368 }
369 },
370 function(response) { // optional
371 // failed
372 });
373
374 // Simulate a login delay. Remove this and replace with your login
375 // code if using a login system
376 $timeout(function() {
377 $scope.closeNewAskingPackage();
378 }, 1000);
379 };
380})
381
382.controller('TravelCtrl', function($scope, $stateParams, $http, $ionicModal, $ionicPopup, $filter) {
383 if(localStorage.getItem('c_token')){// adding token to the headers
384 $http.defaults.headers.common['X-Access-Token'] = localStorage.getItem('c_token');
385 }
386 $scope.storageusername=localStorage.getItem("c_username");
387 console.log($stateParams.travelId);
388 $scope.travels= JSON.parse(localStorage.getItem('c_travels'));
389 $scope.travel = $filter('filter')($scope.travels, $stateParams.travelId, true)[0];
390
391 $http.get(urlapi + 'travels/comment/'+$stateParams.travelId)
392 .success(function(data, status, headers,config){
393 console.log(data); // for browser console
394 $scope.comments = data; // for UI
395 })
396 .error(function(data, status, headers,config){
397 console.log('data error');
398 })
399 .then(function(result){
400 comments = result.data;
401 });
402
403 $scope.deleteTravel = function(){
404
405 var confirmPopup = $ionicPopup.confirm({
406 title: 'Deleting publication',
407 template: 'Are you sure you want to delete <b>'+ $scope.travel.title+'</b>?'
408 });
409 confirmPopup.then(function(res) {
410 if(res) {
411 console.log('You are sure');
412 console.log("delete travel: " + $stateParams.travelId);
413 $http({
414 url: urlapi + 'travels/' + $stateParams.travelId,
415 method: "DELETE"
416 })
417 .then(function(response) {
418 console.log(response);
419 },
420 function(response) { // optional
421 // failed
422 });
423 } else {
424 console.log('You are not sure');
425 }
426 });
427
428
429 };
430 $scope.joinTravel = function(){
431 $scope.newjoin={
432 //travelId: $stateParams.travelId,
433 joinedUserId: localStorage.getItem("c_userid"),
434 joinedUsername: localStorage.getItem("c_username"),
435 joinedAvatar: localStorage.getItem("c_avatar")
436 };
437 $http({
438 url: urlapi + 'travels/'+ $stateParams.travelId+'/join',
439 method: "POST",
440 data: $scope.newjoin
441 })
442 .then(function(response) {
443 // success
444 console.log("response: ");
445 console.log(response);
446
447 },
448 function(response) { // optional
449 // failed
450 });
451 };
452 $scope.unjoinTravel = function(){
453 console.log("unjoin");
454 $scope.unjoin={
455 travelId: $stateParams.travelId,
456 joinedUserId: localStorage.getItem("c_userid"),
457 joinedUsername: localStorage.getItem("c_username"),
458 joinedAvatar: localStorage.getItem("c_avatar")
459 };
460 $http({
461 url: urlapi + 'travels/'+ $stateParams.travelId+'/unjoin',
462 method: "POST",
463 data: $scope.unjoin
464 })
465 .then(function(response) {
466 // success
467 console.log("response: ");
468 console.log(response);
469
470 },
471 function(response) { // optional
472 // failed
473 });
474 };
475
476 /* adding comment */
477 $scope.doingNewComment=false;
478 $scope.newComment={};
479
480 $scope.showNewComment = function() {
481 $scope.doingNewComment=true;
482 };
483 $scope.closeNewComment = function() {
484 $scope.doingNewComment=false;
485 };
486 $scope.doNewComment = function() {
487 $scope.newComment.commentUserId=localStorage.getItem("c_userid");
488 $scope.newComment.commentUsername=localStorage.getItem("c_username");
489 $scope.newComment.commentAvatar=localStorage.getItem("c_avatar");
490console.log($scope.newComment);
491 $http({
492 url: urlapi + 'travels/comment/' + $stateParams.travelId,
493 method: "POST",
494 data: $scope.newComment
495 })
496 .then(function(response) {
497 // success
498 console.log("newComment added to server: " + response);
499 console.log(response);
500 if(response.data.success==false){
501
502 $ionicLoading.show({ template: 'failed to generate new asking package', noBackdrop: true, duration: 2000 });
503 }
504 },
505 function(response) { // optional
506 // failed
507 });
508 $scope.closeNewComment();
509 };
510 console.log("a");
511 console.log($scope.storageusername);
512 console.log($scope.travel.owner);
513
514
515 $scope.arrayObjectIndexOf = function(myArray, searchTerm, property) {
516 //console.log(myArray+", "+searchTerm+", "+property);
517 if(myArray)
518 {
519 for(var i = 0, len = myArray.length; i < len; i++) {
520 if (myArray[i][property] === searchTerm){
521 //console.log("i: " + i);
522 return i;
523 }
524 }
525 }
526 //console.log("i: -1");
527 return -1;
528 }
529})
530
531.controller('UsersCtrl', function($scope, $http, $ionicModal, $timeout) {
532 $scope.users="";
533
534 $scope.users=JSON.parse(localStorage.getItem('c_users'));
535
536 $scope.doRefresh = function() {
537 $http.get(urlapi + 'users')
538 .success(function(data, status, headers, config){
539 console.log('data success');
540 console.log(data); // for browser console
541 $scope.users = data; // for UI
542 localStorage.setItem('c_users', JSON.stringify($scope.users));
543 $scope.$broadcast('scroll.refreshComplete');//refresher stop
544 })
545 .error(function(data, status, headers,config){
546 console.log('data error');
547 $scope.$broadcast('scroll.refreshComplete');//refresher stop
548 })
549 .then(function(result){
550 users = result.data;
551 });
552 };
553})
554
555.controller('UserCtrl', function($scope, $stateParams, $http) {
556 //$scope.user="";
557 console.log($stateParams.username);
558 $http.get(urlapi + 'users/byusername/'+$stateParams.username)
559 .success(function(data, status, headers,config){
560 console.log('data success');
561 console.log(data); // for browser console
562 $scope.user = data; // for UI
563 })
564 .error(function(data, status, headers,config){
565 console.log('data error');
566 })
567 .then(function(result){
568 user = result.data;
569 });
570
571 $http.get(urlapi + 'travels/user/'+$stateParams.username)
572 .success(function(data, status, headers,config){
573 console.log('data success');
574 console.log(data); // for browser console
575 $scope.travels = data; // for UI
576 })
577 .error(function(data, status, headers,config){
578 console.log('data error');
579 })
580 .then(function(result){
581 travels = result.data;
582 });
583}).controller('SettingsCtrl', function($scope, $stateParams, $translate) {
584 if(localStorage.getItem('lang'))//initialization
585 {
586 $scope.lang=localStorage.getItem('lang');
587 }else{
588 localStorage.setItem('lang', 'english');
589 $scope.lang=localStorage.getItem('lang');
590 }
591
592 $scope.langChange = function(lang){
593 console.log(lang);
594 window.localStorage.setItem('lang', lang);
595 $translate.use(lang);
596 };
597});