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