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});