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